基于51单片机的lcd1602液晶显示的计算器.doc

基于51单片机的lcd1602液晶显示的计算器.doc

ID:51793961

大小:93.00 KB

页数:21页

时间:2020-03-15

基于51单片机的lcd1602液晶显示的计算器.doc_第1页
基于51单片机的lcd1602液晶显示的计算器.doc_第2页
基于51单片机的lcd1602液晶显示的计算器.doc_第3页
基于51单片机的lcd1602液晶显示的计算器.doc_第4页
基于51单片机的lcd1602液晶显示的计算器.doc_第5页
资源描述:

《基于51单片机的lcd1602液晶显示的计算器.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于51单片机的lcd1602液晶显示的计算器/****************************************************************阿斌独家制作:计算器,1602液晶显示可计算10以下数加减乘除可连续运算,最大显示结果数值65536*****************************************************************/键盘设置:液晶初始显示:运算显示:主程序:#include#include

2、#defineuintunsignedint#defineucharunsignedcharsbitlcden=P2^2;sbitlcdrw=P2^1;sbitlcdrs=P2^0;ucharnum,temp,jia=0,jian=0,cheng=0,chu=0,qing=0;uintkey,key1,shu;ucharfuhao,flag1,flag=0;uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

3、0x6f,0x0};voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}bitlcd_bz(){bitresult;lcdrs=0;lcdrw=1;lcden=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);lcden=0;returnresult;}voidwrite_com(ucharcom){while(lcd_bz());lcdrs=0;lcden=0;l

4、cdrw=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_date(uchardate){while(lcd_bz());lcdrs=1;lcden=0;lcdrw=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}voidlcd_init(){lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);}void

5、keyscan(){P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case0xee:key=1;num=0;break;case0xde:key=2;num=0;break;case0xbe:key=3;num=0;break;case0x7e:num=1;break;//加号}while(temp!=0

6、xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case0xed:key=4;num=0;break;case0xdd:key=5;num=0;break;case0xbd:key=6;num=0;break;case0x7d:num=2;bre

7、ak;//减号}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case0xeb:key=7;num=0;break;case0xdb:key=8;num=0;break;case0xbb:key=9;num=0;bre

8、ak;case0x7b:num=3;break;//乘号}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case0xe7:key=0;num=0;break;case0xd7:num=6;break;//清除case0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。