


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WORD格式基于 51 单片机的简易计算器1、前言:本设计是基于51 系列单片机来进展的数字计算器系统设计,可以完成计算器的键盘输入,进展加、减、乘、除根本四那么运算,并在LCD上显示相应的结果;设计电路采用 STC90C51单片机为主要控制电路, 利用 MM74C922作为计专业资料整理WORD格式算器4*4键盘的扫描IC读取键盘上的输入;显示采用字符LCD静态显示;软件专业资料整理WORD格式方面使用C 语言编程,并用PROTUES仿真。专业资料整理WORD格式2、设计任务:计算器软件程序要完成以下模块的设计:(1) 键盘输入检测模块; 2LCD显示模块; 3算术运算模块; 4错误处理及提
2、示模块。3、主体设计局部: 1、系统模块图:单片机输入模块运算模块显示模块 2、系统总流程图:专业资料整理WORD格式开场初始化参数初始化LCD显示有否有键值?NLCD 显示4、硬件局部Y读取键码数字键清零键功能键根据上次功能键和输入键入数值状态清零的数据计算结果本次功能键?YN结果送显示缓冲结果送显示缓冲等待数值键入等待数值键入结果送显示缓冲数值送显示缓冲等待数值键入专业资料整理WORD格式单片机局部 +矩阵键盘 +1602 显示专业资料整理WORD格式如下列图为简易计算器的电路原理图。 P3 口用于键盘输入, 接 4*4 矩阵键盘,键值与键盘的对应表如表 - 所示,p0 口和 p2 口用于
3、显示, p2 口用于显示数值的高位, po 口用于显示数值的低位。简易计算器电路原理图矩阵键盘有 16 个按键,满足对简易计算器的计算实现,显示局部采用LCD1602,第一行显示计算的数值符号,第二行显示计算结果。专业资料整理WORD格式LCD显示模块:本设计采用 LCD液晶显示器来显示输出数据。 通过 D0-D7引脚向 LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据。5、软件局部#include<reg52.h>#include<intrins.h>#define uchar unsigned charsbit lcden=P27;专业资料整理WORD格
4、式sbit lcdrs=P26;专业资料整理WORD格式sbit lcdrw=P25;sbit lcdbf=P07;uchar temp,key,i,j,flag,fh,k;long a,b,c;uchar code table=1,2,3,0,4,5,6,0,7,8,9,0,0,0,0,0;uchar code table2="123+456-789*000/"void delay(uchar ms)uchar x,y;for(x=ms;x>0;x-)for(y=110;y>0;y-);/*-对 LCD1602的操作 -*/bit busy(void)/判断忙
5、碌专业资料整理WORD格式bit res;lcdrs=0;lcdrw=1;lcden=1;_nop_();_nop_();res=lcdbf;lcden=0;return res;专业资料整理WORD格式void write_inst (uchar cmd)/ 写命令专业资料整理WORD格式while(busy()=1); /lcdrs=0;lcdrw=0;lcden=0;_nop_();_nop_();P0=cmd;_nop_();_nop_();lcden=1;_nop_();忙碌就等待专业资料整理WORD格式_nop_();lcden=0;void write_com(uchar com
6、)/写地址write_inst(com|0x80);void write_date(uchar dat) /写数据while(busy()=1);lcdrs=1;lcdrw=0;lcden=0;P0=dat;_nop_();_nop_();lcden=1;_nop_();_nop_();lcden=0;专业资料整理WORD格式专业资料整理WORD格式void init()/ 初始化lcden=1;write_inst(0x38);/显示 8 位 2 行delay(5);write_inst(0x0c);/显示开,光标关,不闪烁delay(5);write_inst(0x06);/增量方式不位移
7、delay(5);write_inst(0x80);/检测忙碌信号delay(5);write_inst(0x01);/delay(5);/*-键盘扫描 -*/void keyscan()/键盘扫描P3=0xfe;if(P3!=0xfe)专业资料整理WORD格式delay(100);专业资料整理WORD格式if(P3!=0xfe)temp=P3&0xf0;switch(temp)case 0xe0:key=0;break;case 0xd0:key=1;break;case 0xb0:key=2;break;case 0x70:key=3;break;while(P3!=0xfe);i
8、f(key=0|key=1|key=2)if(j!=0)write_inst(0x01);j=0;if(flag=0)a=a*10+tablekey;专业资料整理WORD格式if(flag=1)b=b*10+tablekey;write_date(table2key);elseif(k=0)flag=1;k=1;fh=1;write_date(table2key);P3=0xfd;if(P3!=0xfd)专业资料整理WORD格式delay(100);专业资料整理WORD格式if(P3!=0xfd)temp=P3&0xf0;switch(temp)case 0xe0:key=4;brea
9、k;case 0xd0:key=5;break;case 0xb0:key=6;break;case 0x70:key=7;break;while(P3!=0xfd);if(key=4|key=5|key=6)if(j!=0)write_inst(0x01);j=0;if(flag=0)a=a*10+tablekey;专业资料整理WORD格式if(flag=1)b=b*10+tablekey;write_date(table2key);elseif(k=0)flag=1;k=1;fh=2;write_date(table2key);P3=0xfb;if(P3!=0xfb)delay(100);
10、if(P3!=0xfb)专业资料整理WORD格式专业资料整理WORD格式temp=P3&0xf0;switch(temp)case 0xe0:key=8;break;case 0xd0:key=9;break;case 0xb0:key=10;break;case 0x70:key=11;break;while(P3!=0xfb);if(key=8|key=9|key=10)if(j!=0)write_inst(0x01);j=0;if(flag=0)a=a*10+tablekey;if(flag=1)专业资料整理WORD格式b=b*10+tablekey;write_date(tab
11、le2key);elseif(k=0)flag=1;k=1;fh=3;write_date(table2key);P3=0xf7;if(P3!=0xf7)delay(100);if(P3!=0xf7)专业资料整理WORD格式temp=P3&0xf0;专业资料整理WORD格式switch(temp)case 0xe0:key=12;break;case 0xd0:key=13;break;case 0xb0:key=14;break;case 0x70:key=15;break;while(P3!=0xf7);switch(key)case 12:write_inst(0x01);a=0
12、;b=0;flag=0;fh=0;j=0;k=0;break;case 13:if(flag=0)a=a*10;write_date(0x30);P1=0;else if(flag=1)专业资料整理WORD格式b=b*10;专业资料整理WORD格式write_date(0x30); break;case 14:j=1;if(fh=1)write_com(0x4f);write_inst(0x04);c=a+b;while(c!=0)write_date(0x30+c%10);c=c/10;write_date(0x3d);a=0;b=0;flag=0;fh=0;k=0;else if(fh=2
13、)write_com(0x4f);write_inst(0x04);专业资料整理WORD格式if(a-b)>0)c=a-b;elsec=b-a;if(c=0)write_date(0x30+0);while(c!=0)write_date(0x30+c%10);c=c/10;if(a-b)*(-1)>0)write_date(0x2d);write_date(0x3d);a=0;b=0;flag=0;fh=0;k=0;else if(fh=3)write_com(0x4f);write_inst(0x04);c=a*b;if(c=0)write_date(0x30+0);while
14、(c!=0)专业资料整理WORD格式write_date(0x30+c%10);c=c/10;write_date(0x3d);a=0;b=0;flag=0;fh=0;k=0;else if(fh=4)write_com(0x4f);write_inst(0x04);i=0;c=(long)(float)a/b)*1000); /计算 c 的数据if(c=0)write_date(0x30+0);while(c!=0)write_date(0x30+c%10);c=c/10;i+;if(i=3)write_date(0x2e); /写数据专业资料整理WORD格式专业资料整理WORD格式if(a/b)<=0)write_date(0x30);write_date(0x3d);a=0;b=0;flag=0;fh=0;k=0; break;case 15:if(k=0)write_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运输业务佣金合同协议
- 郑州房车采购合同协议
- 买手房资金托管合同书
- 临时用工劳动合同
- 安装工程合作协议合同
- 车辆外包劳务合同协议
- 退货折旧费合同协议
- 路灯维修协议合同协议
- 软硬件采购合同协议
- 郑州市装饰装修合同协议
- 2025年保密观知识竞赛题库附答案(完整版)参考答案详解
- 2024户用电化学储能系统技术规范
- 2025-2030年中国海洋生物制药市场竞争格局及发展机会研究报告
- 【MOOC】中医与辨证-暨南大学 中国大学慕课MOOC答案
- GA/T 72-2013楼寓对讲电控安全门通用技术条件
- DBJ∕T13-356-2021 市政道路沥青路面施工全过程质量管理标准
- xx学校研学旅行活动告家长书
- 圣地非遗-鲁锦纹样特征
- 自动扶梯标准安装施工方案
- 化探取样规范
- 起重机械交叉作业安全措施
评论
0/150
提交评论