51微控制器計算器的編寫及實現

2021-08-14 00:18:21 字數 2250 閱讀 7848

code:

/*  s16 s12 s8 s4分別是123+

s15 s11 s7 s3分別是456-

s14 s10 s6 s2分別是789*

s13 s9 s5 s1分別是0 clr = /

*//* 實現兩個數的運算,每個數的位數至少可以八位 */

#includetypedef unsigned char uint8;

typedef unsigned int uint16;

sbit rw=p2^5;

sbit rs=p2^6;

sbit e=p2^7;

sbit led=p3^7;

sbit beep=p2^0;

uint8 key,num;

uint8 fuhao;//定義具體的那個符號,是加減還是乘除。

uint8 flag; //定義有沒有按下符號鍵,這個是統稱

long a,b,c,d; //定義運算資料的第乙個和第二個及等於的數變數

uint8 k; //定義小數點後面顯示的位數

uint8 biao;

uint8 dat1=;//儲存顯示的資料

void delay(uint16 i)

void lcdwrc(uint8 c)

void lcdwrd(uint8 dat)

void lcdinit()

void keyscan()

} while(p1!=0xfe);

if(num==0||num==1||num==2) //確認第一行的數1,2,3

else

} if(num==3)

lcdwrd(0x30+dat1[num]);

} p1=0xfd; //令第二行為0,判斷是哪一列按下

if(p1!=0xfd)

}while(p1!=0xfd);

if(num==4||num==5||num==6)

else

} else

lcdwrd(0x30+dat1[num]);

} p1=0xfb; //令第三行為0,判斷哪一列按下

if(p1!=0xfb)

}while(p1!=0xfb);

if(num==8||num==9||num==10)

else

} else

lcdwrd(0x30+dat1[num]);

} p1=0xf7; //令第四行為0,判斷哪一列按下

if(p1!=0xf7)

}while(p1!=0xf7);

switch(num)

else

break;

case 13:

lcdwrc(0x01); //清屏指令

a=0;

b=0;

flag=0;

fuhao=0;

break;

case 15:

flag=1;

fuhao=4;

lcdwrd(0x2f);//除號/

break;

case 14:

if(fuhao==1)//加

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}if(fuhao==2) //減

if(alcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}if(fuhao==3)//乘法

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}if(fuhao==3)//乘法

lcdwrd(0x3d); //顯示等於號=

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}if(fuhao==4)

}if(a/b<0) //如果a比b小的話那麼除的結果最高位是0

lcdwrd(0x3d); //顯示等號

a=0;

b=0;

flag=0;

fuhao=0;//全部清除為0

}break;

} }}void main()

}

基於51微控制器的計算器

繼續寫一下寒假做的51小專案,這一次是基於at89c51的計算器,帶乙個八位密碼鎖功能。具體實現了計算器的加減乘除功能,並且自帶八位密碼鎖,輸入密碼後按 確定,錯誤輸入三次密碼就會鎖定,重啟後解除鎖定,密碼可以在密碼表中設定。顯示部分採用了1602顯示屏。這一次在使用ad畫pcb時,考慮到計算器要脫...

51微控制器LCD1602實現計算器

整合 include include define kong1 p1 控制矩陣按鍵 kong0 p0 傳送命令傳送資料 uc code a long sum1,sum2 float sum3 用於除法 long sum4,sum5 用於除法 uc addflag,subflag,mulflag,di...

微控制器實現計算器功能

include sbit e p2 2 sbit rs p2 0 sbit rw p2 1 define gpio key p1 unsigned char keyvalue 17 鍵盤按鍵值 void keydown void 鍵盤掃瞄 void delay1ms unsigned int x v...