這是我前幾天用stm32f03c8t6單片機(jī)做的一個(gè)簡(jiǎn)易計(jì)算器,用4×4矩陣鍵盤(pán)輸入,LCD1602顯示。下面是對(duì)我計(jì)算器的介紹,附件中還可以下載源程序代碼碼。我的簡(jiǎn)易計(jì)算器是搭建在面包板上面的,下面這是實(shí)物圖和仿真圖。
該計(jì)算器可以實(shí)現(xiàn)連續(xù)加減運(yùn)算圖:
較大數(shù)字或者較小數(shù)字可以用科學(xué)計(jì)數(shù)法顯示
當(dāng)用除法運(yùn)算時(shí),能夠保留三位小數(shù)字
另外,在運(yùn)算時(shí)還可以通過(guò)串口觀察數(shù)據(jù)變化
下面是部分源碼: #include "stm32f10x.h" #include "delay.h" #include "keyscan.h" #include "LCD1602.h" #include "usart.h" #include "math.h" u8 num,flag; double r,o; long long a,b,x,y,z,sum,k; int e,f,g,h,i,t,len,w,l; int s,m,w,j,q,d,n,c=0;
int main() { LCD_init(); uart_init(9600);
while(1) { num=keyscan(); a=num; if(a>=0&&a<=9&&s!=2&&flag!=0) { if(a!=0||n!=0) { LCD_write_data((u8)a+0x30); if(n==0) { b=a; } else { b=sum*10; sum=a; } sum=sum+b; /////////////////////////////// if(q==0&&j==0) { x=sum; printf("x=%lld ",x); d=1; m=0; }
if(q==1&&j==1) { x=-sum; printf("x=%lld ",x); d=1; m=0; }
/////////////////////////////////
if(q==1&&(j==2||j==0)) { y=sum; printf("y=%lld ",y); d=2; }
///////////////////////////////// n++; w++; delay_ms(100); } } if(a==10&n!=0&&m!=1&&flag!=0)//+號(hào) { if(c>=1) { q=1; j=0; x=z;
} //LCD_write_data('+'); LCD_write_data(0x2b); printf(" + "); j=0; n=0; q=1; flag=1; b=0; sum=0; c++; w++;
delay_ms(100); } if(a==11&&m!=1&&flag!=0) { //LCD_write_data('-'); LCD_write_data(0x2d);//'-'號(hào) printf(" - "); if(c>=1) { q=1; j=0; x=z;
}
if(d==0) { j=1; } if(d==1) { j=2; }
n=0; q=1; flag=2; b=0; sum=0; m=-m; w++; c++; delay_ms(100); }
if(a==12&n!=0&&m!=1&&flag!=0) { LCD_write_data('*');//×號(hào) //LCD_write_data(0x2a);//×號(hào) if(c>=1) { q=1; j=0; x=z;
} printf(" * "); j=0; n=0; q=1; flag=3; b=0; sum=0; m=-m; w++; c++; delay_ms(100); } if(a==13&n!=0&&m!=1&&flag!=0) { // LCD_write_data('');//除號(hào) LCD_write_data(0xfd);//÷號(hào) if(c>=1) { q=1; j=0; x=z;
} printf("/"); 有需要的小伙伴可以到附件中去下載全部代碼。 由于本人儲(chǔ)備知識(shí)量較少,基礎(chǔ)較為薄弱,計(jì)算器中使用變量較多,代碼較為繁瑣,感興趣的小伙伴們可以在評(píng)論區(qū)相互探討學(xué)習(xí),若計(jì)算器中還存在問(wèn)題,也希望大家可以指正批評(píng)。 最后,感謝大家的支持!!!
全部資料51hei下載地址:
stm32計(jì)算器.7z
(197.07 KB, 下載次數(shù): 712)
2020-11-18 05:09 上傳
點(diǎn)擊文件名下載附件
|