![基于51單片機(jī)1602液晶顯示簡(jiǎn)易計(jì)算器設(shè)計(jì)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/29/dd64999e-0bea-4b86-b3df-9757437725f6/dd64999e-0bea-4b86-b3df-9757437725f61.gif)
![基于51單片機(jī)1602液晶顯示簡(jiǎn)易計(jì)算器設(shè)計(jì)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/29/dd64999e-0bea-4b86-b3df-9757437725f6/dd64999e-0bea-4b86-b3df-9757437725f62.gif)
![基于51單片機(jī)1602液晶顯示簡(jiǎn)易計(jì)算器設(shè)計(jì)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/29/dd64999e-0bea-4b86-b3df-9757437725f6/dd64999e-0bea-4b86-b3df-9757437725f63.gif)
![基于51單片機(jī)1602液晶顯示簡(jiǎn)易計(jì)算器設(shè)計(jì)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/29/dd64999e-0bea-4b86-b3df-9757437725f6/dd64999e-0bea-4b86-b3df-9757437725f64.gif)
![基于51單片機(jī)1602液晶顯示簡(jiǎn)易計(jì)算器設(shè)計(jì)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/29/dd64999e-0bea-4b86-b3df-9757437725f6/dd64999e-0bea-4b86-b3df-9757437725f65.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include<reg52.h>#include<math.h>#define uint unsigned int #define uchar unsigned char#define PI 3.141592sbit RS = P20; sbit RW = P21; sbit EN = P22;sbit led=P24;sbit speek=P37;uchar table0="Welcome to use"uchar table1="made by Ms. Li" uchar table2="error"uc
2、har count;void main(void)uchar error=0,i,first=0,dot1,dot2,dot1_num,dot2_num,minus1,minus2;/錯(cuò)誤標(biāo)志、第一次清屏標(biāo)志、小數(shù)點(diǎn)標(biāo)志以及小數(shù)點(diǎn)個(gè)數(shù) 負(fù)號(hào)標(biāo)志、負(fù)號(hào)個(gè)數(shù) uchar Sin,Cos,Tan,ln;uchar Key_num,last_key_num; /鍵號(hào)uchar flag=0,equal_flag; /運(yùn)算符、等于符double num1=0,num2=0,num=0,result=0,save_result; /第一個(gè)數(shù)、第二個(gè)數(shù)、計(jì)算結(jié)果uchar first_num=0,Ans=0
3、,second_num=0;InitLcd();EA=1;ET0=1;TMOD=0X01;TH0=(65536-500)/256;TL0=(65536-500)%256;write_com(0x80+0x40+15); write_Dat('0'); write_com(0x80); while(1)while(key_scan()=0xff);TR0=1;if(first=0)first=1; write_com(0x01); Key_num=key_scan();switch(key_scan()case 1:if(last_key_num!=Key_num)write_D
4、at('l');write_Dat('n');ln=1;break;case 2:if(last_key_num!=Key_num)write_Dat('s');write_Dat('i');write_Dat('n');Sin=1;break;case 3:if(last_key_num!=Key_num)write_Dat('c');write_Dat('o');write_Dat('s');Cos=1;break;case 4:if(last_key_num!=
5、Key_num)write_Dat('t');write_Dat('a');write_Dat('n');Tan=1;break;case 5:if(last_key_num!=Key_num)write_Dat('');flag=5;break;case 6:write_Dat('7');num=7;break;case 7:write_Dat('8');num=8;break;case 8:write_Dat('9');num=9;break;case 9:if(last_key
6、_num!=Key_num)write_Dat('+');flag=1; break;case 10:if(last_key_num!=Key_num)write_Dat('T');flag=6;break;case 11:write_Dat('4');num=4;break;case 12:write_Dat('5');num=5;break;case 13:write_Dat('6');num=6;break;case 14:if(last_key_num!=Key_num)write_Dat('-
7、39;);flag=2;break;case 15:if(last_key_num!=Key_num)if(equal_flag=1)write_com(0x01);write_com(0x80);write_Dat('A');write_Dat('n');write_Dat('s');write_Dat('=');save_result=result;elseif(Key_num!=1&&Key_num!=2&&Key_num!=3&&Key_num!=4&&Key
8、_num!=22&&Key_num!=23&&Key_num!=25)write_Dat('A');write_Dat('n');write_Dat('s');if(flag=0)num1=save_result;first_num=1;elsenum2=save_result;second_num=1;break;case 16:write_Dat('1');num=1;break;case 17:write_Dat('2');num=2;break;case 18:write_D
9、at('3');num=3;break;case 19:if(last_key_num!=Key_num)write_Dat('*');flag=3;break;case 21:write_Dat('0');num=0;break;case 22:if(last_key_num!=Key_num)if(flag=0)minus1+;if(minus1=1)write_Dat('-');else minus2+; if(minus2=1) write_Dat('-'); break;case 23:if(last_k
10、ey_num!=Key_num)if(flag=0)dot1+;if(dot1=1)write_Dat('.');else dot2+; if(dot2=1) write_Dat('.'); break;case 24:if(last_key_num!=Key_num)write_Dat('/');flag=4;break;case 25:if(last_key_num!=Key_num)write_Dat('=');equal_flag=1;break;if(Key_num!=1&&Key_num!=2&
11、&Key_num!=3&&Key_num!=4&&Key_num!=15&&Key_num!=22&&Key_num!=23&&Key_num!=25)/第一個(gè)數(shù)if(flag=0)num1=num1*10+num;num=0;if(dot1!=0)dot1_num+;first_num=1;if(flag!=0)num2=num2*10+num;num=0;if(dot2!=0)dot2_num+;second_num=1;if(equal_flag=1&&first_num=1)if(d
12、ot1!=0) num1=num1/pow(10,dot1_num); dot1=0;if(dot2!=0) num2=num2/pow(10,dot2_num); dot2=0;if(minus1!=0)num1=num1*(-1);if(minus2!=0) num2=num2*(-1);if(second_num!=0)switch(flag)case 1:result=num1+num2;break;case 2:result=num1-num2;break;case 3:result=num1*num2;break;case 4:if(num2!=0) result=num1/num
13、2; else write_com(0x80+0x40+10); for(i=0;i<5;i+) write_Dat(table2i); error=1; break;case 5:result=pow(num1,num2);break;case 6: result=pow(num1,1/num2);break; else if(second_num=0&&Sin=0&&Cos=0&&Tan=0&&ln=0) result=num1;else if(second_num=0&&(Sin=1|Cos=1|Tan
14、=1|ln=1)if(Sin=1) result=sin(num1/180*PI)+0.005; if(Cos=1) result=cos(num1/180*PI)+0.005;if(Tan=1) result=tan(num1/180*PI)+0.005; if(ln=1) if(num1>0) result=log(num1)+0.005;elsewrite_com(0x80+0x40+10); for(i=0;i<5;i+) write_Dat(table2i); error=1; if(error!=1) display(result);if(Key_num=20)/清零n
15、um1=num2=result=0;flag=equal_flag=0;error=0;first=0;dot1_num=dot2_num=0;minus1=0;minus2=0;first_num=0,second_num=0;Sin=Cos=Tan=ln=0;write_com(0x01);write_com(0x80+0x40+15);write_Dat('0');last_key_num=Key_num;while(key_scan()!=0xff);void time0() interrupt 1TH0=(65536-600)/256; TL0=(65536-600)
16、%256;count+;speek=!speek;if(count>50)TR0=0;count=0;void delay(uint x) uchar y;while(x-)for(y=0;y<120;y+);void write_com(unsigned char c)RS=0;RW=0;EN=1;delay(5);P0=c;EN=0;void write_Dat(unsigned char c)RS=1;RW=0;EN=1;delay(5);P0=c;EN=0;void InitLcd()write_com(0x38); /display mode write_com(0x06
17、); /顯示光標(biāo)移動(dòng)位置 write_com(0x0c); /顯示開(kāi)及光標(biāo)設(shè)置 write_com(0x01); /顯示清屏uchar key_scan()uchar key_num=0xff;uint temp;P3=0x03;P1=0xe0;temp=(P3<<8)|P1;if(temp&0x03e0)!=0x03e0)delay(10); if(temp&0x03e0)!=0x03e0)P3=0x03;/第一行P1=0xfe;temp=(P3<<8)|P1;switch(temp)case 0x03de:key_num=1; break;case
18、0x03be:key_num=2; break;case 0x037e:key_num=3; break;case 0x02fe:key_num=4; break;case 0x01fe:key_num=5; break;P3=0x03; /第二行P1=0xfd;temp=(P3<<8)|P1; switch(temp)case 0x03dd:key_num=6; break;case 0x03bd:key_num=7; break;case 0x037d:key_num=8; break;case 0x02fd:key_num=9; break;case 0x01fd:key_n
19、um=10; break;P3=0x03; /第三行P1=0xfb;temp=(P3<<8)|P1; switch(temp)case 0x03db:key_num=11; break;case 0x03bb:key_num=12; break;case 0x037b:key_num=13; break;case 0x02fb:key_num=14; break;case 0x01fb:key_num=15; break;P3=0x03; /第四行P1=0xf7;temp=(P3<<8)|P1; switch(temp)case 0x03d7:key_num=16; b
20、reak;case 0x03b7:key_num=17; break;case 0x0377:key_num=18; break;case 0x02f7:key_num=19; break;case 0x01f7:key_num=20; break;P3=0x03; /第五行P1=0xef;temp=(P3<<8)|P1; switch(temp)case 0x03cf:key_num=21; break;case 0x03af:key_num=22; break;case 0x036f:key_num=23; break;case 0x02ef:key_num=24; break
21、;case 0x01ef:key_num=25; break;return key_num;void display(double Data)uchar xs=0,fs=0,i;if(Data<0)fs=1;Data=Data*(-1);if(Data>(long)Data)xs=1;if(Data<10) /09if(xs=1)Data=Data*100;write_com(0x80+0x40+11);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/100+'
22、0');write_Dat('.');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(xs=0)write_com(0x80+0x40+14);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data+'0');else if(Data<100) /1099if(xs=1)Data=Data*100;write_com(0x80+0x4
23、0+10);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/1000+'0');write_Dat(long)Data/100%10+'0');write_Dat('.');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(xs=0)write_com(0x80+0x40+13); if(fs=1)write_Dat('
24、;-');elsewrite_Dat(' ');write_Dat(long)Data/10+'0');write_Dat(long)Data%10+'0');else if(Data<1000) /100999if(xs=1)Data=Data*100;write_com(0x80+0x40+9);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/10000+'0');write_Dat(long)Data/1
25、000%10 +'0');write_Dat(long)Data/100%10+'0');write_Dat('.');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(xs=0)write_com(0x80+0x40+12);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/100+'0');write_Dat
26、(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(Data<10000)/10009999if(xs=1)Data=Data*100;write_com(0x80+0x40+8);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/100000+'0');write_Dat(long)Data/10000%10+'0');write_Dat(long)Dat
27、a/1000%10 +'0');write_Dat(long)Data/100%10+'0');write_Dat('.');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(xs=0) write_com(0x80+0x40+11);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/1000+'0');writ
28、e_Dat(long)Data/100%10+'0');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(Data<100000)/1000099999if(xs=1)Data=Data*100;write_com(0x80+0x40+7);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/1000000+'0');write_Dat(l
29、ong)Data/100000%10+'0');write_Dat(long)Data/10000%10+'0');write_Dat(long)Data/1000%10 +'0');write_Dat(long)Data/100%10+'0');write_Dat('.');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(xs=0)write_com(0x80+0x40+10);if(fs=1)write_Dat('-');elsewrite_Dat(' ');write_Dat(long)Data/10000+'0');write_Dat(long)Data/1000%10+'0');write_Dat(long)Data/100%10+'0');write_Dat(long)Data/10%10+'0');write_Dat(long)Data%10+'0');else if(Data<1000000) /1000
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海洋潛標(biāo)系統(tǒng)合作協(xié)議書(shū)
- 2024-2025學(xué)年海南省定安縣四年級(jí)(上)期末數(shù)學(xué)試卷
- 2022年國(guó)家開(kāi)放大學(xué)電大《心理學(xué)》過(guò)關(guān)練習(xí)試題A卷-含答案
- 建筑地基處理技術(shù)規(guī)范考試試題及答案
- 2025年人教版四年級(jí)數(shù)學(xué)下冊(cè)教學(xué)工作總結(jié)(四篇)
- 2025年二年級(jí)語(yǔ)文組工作總結(jié)范文(二篇)
- 2025年中央空調(diào)安裝工程承包合同(2篇)
- 2025年二年級(jí)下學(xué)期班主任工作計(jì)劃總結(jié)(2篇)
- 2025年二年級(jí)語(yǔ)文教師教學(xué)總結(jié)(三篇)
- 2025年二手房屋裝修合同(五篇)
- 丙烯-危險(xiǎn)化學(xué)品安全周知卡
- 粉條加工廠建設(shè)項(xiàng)目可行性研究報(bào)告
- 《配電網(wǎng)設(shè)施可靠性評(píng)價(jià)指標(biāo)導(dǎo)則》
- 2024年國(guó)家電網(wǎng)招聘之通信類(lèi)題庫(kù)附參考答案(考試直接用)
- CJJ 169-2012城鎮(zhèn)道路路面設(shè)計(jì)規(guī)范
- 食品企業(yè)日管控周排查月調(diào)度記錄及其報(bào)告格式參考
- 產(chǎn)品質(zhì)量法解讀課件1
- 第八單元金屬和金屬材料單元復(fù)習(xí)題-2023-2024學(xué)年九年級(jí)化學(xué)人教版下冊(cè)
- 倉(cāng)庫(kù)搬遷及改進(jìn)方案課件
- 精神科護(hù)理技能5.3出走行為的防范與護(hù)理
- 采購(gòu)管理學(xué)教學(xué)課件
評(píng)論
0/150
提交評(píng)論