www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]按鍵和液晶,可以組成我們最簡(jiǎn)易的計(jì)算器。下面我們來(lái)寫一個(gè)簡(jiǎn)易整數(shù)計(jì)算器提供給大家學(xué)習(xí)。為了讓程序不過于復(fù)雜,我們這個(gè)計(jì)算器不考慮連加,連減等連續(xù)計(jì)算,不考慮小數(shù)情況。加減乘除分別用上下左右來(lái)替代,回車

按鍵和液晶,可以組成我們最簡(jiǎn)易的計(jì)算器。下面我們來(lái)寫一個(gè)簡(jiǎn)易整數(shù)計(jì)算器提供給大家學(xué)習(xí)。為了讓程序不過于復(fù)雜,我們這個(gè)計(jì)算器不考慮連加,連減等連續(xù)計(jì)算,不考慮小數(shù)情況。加減乘除分別用上下左右來(lái)替代,回車表示等于,ESC 表示歸0。程序共分為三部分,一部分是 1602 液晶顯示,一部分是按鍵動(dòng)作和掃描,一部分是主函數(shù)功能。

/***************************Lcd1602.c文件程序源代碼*****************************/#include#defineLCD1602_DBP0sbitLCD1602_RS=P1^0;sbitLCD1602_RW=P1^1;sbitLCD1602_E=P1^5;/*等待液晶準(zhǔn)備好*/voidLcdWaitReady(){unsignedcharsta;LCD1602_DB=0xFF;LCD1602_RS=0;LCD1602_RW=1;do{LCD1602_E=1;sta=LCD1602_DB;//讀取狀態(tài)字LCD1602_E=0;//bit7等于1表示液晶正忙,重復(fù)檢測(cè)直到其等于0為止}while(sta&0x80);}/*向LCD1602液晶寫入一字節(jié)命令,cmd-待寫入命令值*/voidLcdWriteCmd(unsignedcharcmd){LcdWaitReady();LCD1602_RS=0;LCD1602_RW=0;LCD1602_DB=cmd;LCD1602_E=1;LCD1602_E=0;}/*向LCD1602液晶寫入一字節(jié)數(shù)據(jù),dat-待寫入數(shù)據(jù)值*/voidLcdWriteDat(unsignedchardat){LcdWaitReady();LCD1602_RS=1;LCD1602_RW=0;LCD1602_DB=dat;LCD1602_E=1;LCD1602_E=0;}/*設(shè)置顯示RAM起始地址,亦即光標(biāo)位置,(x,y)-對(duì)應(yīng)屏幕上的字符坐標(biāo)*/voidLcdSetCursor(unsignedcharx,unsignedchary){unsignedcharaddr;if(y==0){//由輸入的屏幕坐標(biāo)計(jì)算顯示RAM的地址addr=0x00+x;//第一行字符地址從0x00起始}else{addr=0x40+x;//第二行字符地址從0x40起始}LcdWriteCmd(addr|0x80);//設(shè)置RAM地址}/*在液晶上顯示字符串,(x,y)-對(duì)應(yīng)屏幕上的起始坐標(biāo),str-字符串指針*/voidLcdShowStr(unsignedcharx,unsignedchary,unsignedchar*str){LcdSetCursor(x,y);//設(shè)置起始地址while(*str!='