這是我前幾天用stm32f03c8t6單片機做的一個簡易計算器,用4×4矩陣鍵盤輸入,LCD1602顯示。下面是對我計算器的介紹,附件中還可以下載源程序代碼碼。我的簡易計算器是搭建在面包板上面的,下面這是實物圖和仿真圖。
圖片1.png (552.68 KB, 下載次數(shù): 131)
下載附件
2020-11-17 21:24 上傳
圖片2.png (31.65 KB, 下載次數(shù): 120)
下載附件
2020-11-17 21:26 上傳
該計算器可以實現(xiàn)連續(xù)加減運算圖:
圖片3.png (819.73 KB, 下載次數(shù): 132)
下載附件
2020-11-17 21:27 上傳
較大數(shù)字或者較小數(shù)字可以用科學(xué)計數(shù)法顯示
圖片4.png (823.62 KB, 下載次數(shù): 139)
下載附件
2020-11-17 21:34 上傳
圖片5.png (773.36 KB, 下載次數(shù): 118)
下載附件
2020-11-17 21:34 上傳
當用除法運算時,能夠保留三位小數(shù)字
圖片6.png (773.77 KB, 下載次數(shù): 113)
下載附件
2020-11-17 21:36 上傳
另外,在運算時還可以通過串口觀察數(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)//+號 { 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);//'-'號 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('*');//×號 //LCD_write_data(0x2a);//×號 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('');//除號 LCD_write_data(0xfd);//÷號 if(c>=1) { q=1; j=0; x=z;
} printf("/");
NSV`S3@9{)5TFQFX2W22BPV.png (44.7 KB, 下載次數(shù): 146)
下載附件
2020-11-17 21:42 上傳
有需要的小伙伴可以到附件中去下載全部代碼。 由于本人儲備知識量較少,基礎(chǔ)較為薄弱,計算器中使用變量較多,代碼較為繁瑣,感興趣的小伙伴們可以在評論區(qū)相互探討學(xué)習(xí),若計算器中還存在問題,也希望大家可以指正批評。 最后,感謝大家的支持!。
全部資料51hei下載地址:
stm32計算器.7z
(197.07 KB, 下載次數(shù): 712)
2020-11-18 05:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|