已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#includereg52.h #define uchar unsigned char#define uint unsigned intsbit busy=P07;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);char i,j,temp,num;long a,b,c; /a,第一个数 b,第二个数 c,得数uchar flag,fuhao;/flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table=7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30; /按键显示编码表sbit lcden=P22;sbit lcdwrite=P21;sbit lcdrs=P20;/lcd的写指令void write_com(uchar com) lcdrs=0; lcden=0; P0=com; delay(1); lcden=1; delay(1); lcden=0;/lcd的写数据void write_date(uchar da) lcdrs=1; lcden=0; P0=da; delay(1); lcden=1; delay(1); lcden=0;/初始化void init() /初始化 uchar num; num=-1; lcdwrite=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); delay(500);/延时0.5s write_com(0x01); i=0; j=0; a=0; /第一个参与运算的数 b=0; /第二个参与运算的数 c=0; flag=0; /flag表示是否有符号键按下, fuhao=0; / fuhao表征按下的是哪个符号void keyscan() / 键盘扫描程序 P3=0xfe; if(P3!=0xfe) delay(10); /延迟20ms if(P3!=0xfe) temp=P3&0xf0; switch(temp) case 0xe0:num=0; break; case 0xd0:num=1; break; case 0xb0:num=2; break; case 0x70:num=3; break; while(P3!=0xfe); if(num=0|num=1|num=2)/如果按下的是7,8或9 if(j=1)/确认一次计算完毕,清屏 write_com(0x01); j=0; if(flag=0)/没有按过符号键 a=a*10+tablenum; else/如果按过符号键 b=b*10+tablenum; else/如果按下的是/ flag=1; fuhao=4;/4表示除号已按 i=table1num; write_date(0x30+i); P3=0xfd; if(P3!=0xfd) delay(10); if(P3!=0xfd) temp=P3&0xf0; switch(temp) case 0xe0:num=4; break; case 0xd0:num=5; break; case 0xb0:num=6; break; case 0x70:num=7; break; while(P3!=0xfd); if(num=4|num=5|num=6)/如果按下的是4,5或6 if(j=1) write_com(0x01); j=0; if(flag=0)/没有按过符号键 a=a*10+tablenum; else/如果按过符号键 b=b*10+tablenum; else/如果按下的是X flag=1; fuhao=3;/3表示乘号已按 i=table1num; write_date(0x30+i); P3=0xfb; if(P3!=0xfb) delay(10); if(P3!=0xfb) temp=P3&0xf0; switch(temp) case 0xe0:num=8; break; case 0xd0:num=9; break; case 0xb0:num=10; break; case 0x70:num=11; break; while(P3!=0xfb); if(num=8|num=9|num=10)/如果按下的是1,2或3 if(j=1) write_com(0x01); j=0; if(flag=0)/没有按过符号键 a=a*10+tablenum; else/如果按过符号键 b=b*10+tablenum; else if(num=11)/如果按下的是- flag=1; fuhao=2;/2表示减号已按 i=table1num; write_date(0x30+i); P3=0xf7; if(P3!=0xf7) delay(10); if(P3!=0xf7) temp=P3&0xf0; switch(temp) case 0xe0:num=12; break; case 0xd0:num=13; break; case 0xb0:num=14; break; case 0x70:num=15; break; while(P3!=0xf7); switch(num) case 12:/按下的是清零 write_com(0x01); a=0; b=0; flag=0; fuhao=0; break; case 13:/按下的是0 if(flag=0)/没有按过符号键 a=a*10; write_date(0x30); if(flag=1)/如果按过符号键 b=b*10; write_date(0x30); break; case 14: j=1; if(fuhao=1) write_com(0x80+0x4f);/按下加号键,光标前进至第二行最后一个显示处 write_com(0x04); /设置从后住前写数据 c=a+b; while(c!=0) write_date(0x30+c%10); c=c/10; write_date(0x3d); /写= a=0;b=0;flag=0;fuhao=0; else if(fuhao=2) write_com(0x80+0x4f);/按下减号按键 write_com(0x04); /设置从后住前写数据 if(a-b0) c=a-b; else c=b-a; while(c!=0) write_date(0x30+c%10); c=c/10; if(a-b0) write_date(0x2d); /写负号- write_date(0x3d); /再写= a=0;b=0;flag=0;fuhao=0; else if(fuhao=3)/按下乘号按键 write_com(0x80+0x4f); write_com(0x04); c=a*b; while(c!=0) write_date(0x30+c%10); c=c/10; write_date(0x3d); a=0;b=0;flag=0;fuhao=0; else if(fuhao=4)/按下除号按键 write_com(0x80+0x4f); write_com(0x04); i=0; c=(long)(float)a/b)*1000); while(c!=0) write_date(0x30+c%10); c=c/10; i+; if(i=3) /精确到小数点后3位 write_date(0x2e); /写小数点2e i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省吉林市第一中学2025-2026学年高二下学期期末考试语文试卷(文字版含答案)
- 国民经济-藤制品制造行业(2025年)分析报告
- 国民经济-金属家具制造行业(2025年)分析报告
- 国民经济-稻谷种植行业分析报告(2025年)
- 机器人技术基础与应用场景研究
- 感恩的种子爱的河流-小学主题班会课件
- 《江南春》古诗深度赏析
- 心灵护航助力成长小学六年级主题班会课件
- 石油钻井工程师钻井工艺KPI考核表
- 基因序列分析师工作绩效考评表
- 2026四川甘孜州丹巴县选调事业单位人员9人笔试备考题库及答案详解
- 2026年度北京首都旅游集团有限责任公司管理培训生招募笔试历年难易错考点试卷带答案解析
- 2026中国碳纤维复合材料汽车轻量化成本效益分析
- (四调)吉林市2026年高三毕业年级第四次调研测试 生物试卷(含答案)
- 2026贵州毕节市威宁县国营建筑工程有限公司招聘7人笔试备考题库及答案详解
- 2026年交管12123学法减分复习考试题库及参考答案【新】
- GB/T 4982-2025真空技术夹紧型快卸连接器尺寸
- 2024哈希PL1020茶多酚在线自动监测仪
- 起重吊装标准化
- 南昌大学实验班数学试卷
- 脊髓电刺激的护理
评论
0/150
提交评论