单片机课程设计简单计算器的设计

上传人:仙*** 文档编号:34641122 上传时间:2021-10-22 格式:DOC 页数:16 大小:483KB
收藏 版权申诉 举报 下载
单片机课程设计简单计算器的设计_第1页
第1页 / 共16页
单片机课程设计简单计算器的设计_第2页
第2页 / 共16页
单片机课程设计简单计算器的设计_第3页
第3页 / 共16页
资源描述:

《单片机课程设计简单计算器的设计》由会员分享,可在线阅读,更多相关《单片机课程设计简单计算器的设计(16页珍藏版)》请在装配图网上搜索。

1、单片机与接口技术课程设计报告课题名称简易计算器的设计学院自动控制与机械工程学院专业机械设计制造及其自动化班级机制6班姓名学号时间2013年1月7日至 2013年1月18日目录一课程设计的目的和要求31设计目的32设计任务及要求3二设计步骤及思路41、设计的步骤42设计思路4三硬件电路设计41总体设计42单元电路的设计53总电路图7四软件设计8五调试说明111未启动仿真时,初始状态112开启仿真以后123计算过程演示12六设计体会13七参考文献14八、附录14附录一14附录二14一课程设计的目的和要求1设计目的单片机课程作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完单片机

2、与接口技术课程后,并在进行相关课程设计基础上进行的一次综合练习。单片机课程设计过程中,我们通过查阅资料,接口设计、程序设计、安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并具有综合应用功能的小应用课程设计,使我们不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路电子元件等方面的知识进一步加深认识,同时在软件编程调试相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。课程设计以学生认知为主体,充分调动学生的积极性,重视学生自学能力的培养,根据具体课题安排时间确定课题的设计、编程和调试内容,分团队开展课程设计活动,按时完成每部分工作。坚持独立完成

3、,实现课题规定的各项指标,并写出设计报告。要求学生自己查阅资料和充分利用所学知识,根据所要设计系统所要达到的功能,划分软硬件功能、选择器件、编写相关程序,用Proteus 在计算机上绘图并用Keil进行程序编写进行防真,再对整个系统做调试运行,有问题再进一步调试修改,直至达到设计的要求和取得满意的效果,最后编写系统说明书,其内容包括系统的功能介绍,使用范围,主要性能指标,使用方法,注意事项等。2设计任务及要求基于MCS51系列单片机 AT89C51,设计一个简单的电子计算器。1)通过44的矩阵键盘输入数字及运算符;2)可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示

4、E;3)可以进行加法以外的计算(乘、除、减);4)其他功能。二设计步骤及思路1、设计的步骤(1)制定相应的设计方案;(2)硬件的初步设计;(3)选择设计所用元器件和参数;(4)在Proteus 7.5中设计和连接电路图;(5)软件的初步设计;(6)编写程序实现其功能;(7)在keil_v4中进行调试运行;(8)硬件和软件联合调试。2设计思路根据功能和要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。(2)另外键盘包括数字键(09)、

5、符号键(+、-、)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘。(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。(4)错误提示:当除数为0计算得到的结果小于0或大于计算器的表示范围时,计算器会在LCD上显示E。三硬件电路设计 1总体设计本设计选用AT89C52单片机为主控单元。显示部分采用LCD液晶显示,按键部分采用4*4键盘。51系列单片机系统4*4键盘LCD显示时钟电路复位电路图1 线路原理框图2单

6、元电路的设计1)、时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本处用的是内部时钟方式。电路如图2:图2 内部时钟电路2)、复位电路MCS-51单片机的复位是由外部的复位电路来实现的。上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电

7、容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。电路图如图3:图3 复位电路3)、LCD显示模块本设计采用LCD液晶显示器来显示输出数据。通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应数据。LCD功能以及控制命令:表1LCD模块控制端LCD基本操作RSR/WE001写命令:用于初始化、清屏、光标定位等011读状态:读忙标志,当忙标志为“1”时,表明LCD正在进行内部操作,此时不能进行其他三类操作;当忙标志位为“0”时,表示LCD内部操作完成,可以对其他三类操作,一般

8、使用查询方式。101写数据:写入要显示的数据111读数据:将显示存储区中的数据反读出来,一般比较少用。图4 LCD显示图4)、键盘接口电路计算器所需按键有:数字键:1,2,3,4,5,6,7,8,9,0;功能键:+,-,*,/,=,C(清零)。 共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘扫描的功能。图5 矩阵键盘布局图3总电路图图6 总电路图四软件设计现实生活

9、中人们熟知的计算器,其功能主要如下:键盘输入;数值显示;加减乘除四则运算;对错误的控制及提示。针对上述功能,计算器软件程序要完成以下模块的设计:LCD显示设计键盘设计算术运算程序设计。编程语言当中,汇编语言比较接近底层,编程效率高;C语言则比较灵活,在编写算法中要方便一些,因此在本设计中我选用C语言。总体设计流程图如下图。图7 总程序流程图LCD显示模块键盘模块计算模块流程图分别如图8图9图10。图8 LCD显示流程图图9 键盘识别程序流程图图10 运算程序流程图五调试说明仿真结果和分析:1未启动仿真时,初始状态;图112开启仿真以后图12 3计算过程演示1)、4位十进制以内加法运算:1234

10、+5678=6192; 图13 5555+6666=12221,计算结果超过4位数,LCD显示E。 图142)、减法运算:789-456=333 图15 减法运算结果小于0,456-789= -333,LCD显示E 图163)、除法运算:56/8=7 图17 除数为0,258/0,LCD显示E 图184)、乘法运算:25*69=1725 图19 运算结果超过4位数:1000*100=100000,LCD显示E 图20六设计体会在课本上了解到单片机具有体积小可靠性高性价比高等优点,主要应用于工业检测与控制智能仪器仪表家用电器和机电一体化产品等领域。虽然知道单片机具有这些优点和应用范围,却不知道怎

11、样去设计和应用,通过这两周的课程设计,加深了我对单片机小应用系统设计的认识,熟悉了单片机在控制系统中的运用。将所学的理论知识与实际应用结合起来,对自己如何使用已有知识及获取相关资料方面的能力又有了提高。但本次课程设计体会最深的是单片机学的不够扎实。根据老师的参考电路设计完硬件电路后就感觉无从下手了,从图书馆和网上查阅了很多相关资料,但由于自己基础知识不够扎实,不能举一反三,软件设计部分还是感觉很困难;看着有同学运行出来自己就急了,找一些看着差不多的程序盲目去运行,结果当然是什么都没有还浪费了一些时间,最后只有静下心来认真看找的资料,相互对比看看与自己的有何不同,别人的显示键盘扫面是怎么设计的,

12、才有所明白。在选用编程语言方面一开始还在汇编语言和C语言间徘徊,后来经老师提示及建议选用了C语言,因为C语言比较灵活,在编写算法中要方便一些。程序要尽量做到由各个子程序组成,有些程序后面最好加上注释这样在程序出错的检测过程中可以更容易查找到,也更简洁,更明白易懂。设计过程中最重要的是自己动手,虽然会遇到许多问题,但只有自己动手才能去发现问题解决问题,这也是课程设计的一个目的。这次的单片机课程设计重点是理论与实际相结合。该设计从头到尾都是自己动手,熟悉了整个设计过程,更充分的锻炼了自己。在此要感谢老师对我的指导及同学对我的帮助,在整个设计过程中我懂得了很多东西,相信这将会对我以后的学习工作生活有

13、一定的影响。虽然这次设计还不是很完善,但在设计中所学到的东西是这次设计最大的收获,在以后的学习中我会更加努力,争取做的更好。七参考文献【1】吴亦锋,陈德为.单片机原理与接口技术M.北京:电子工业出版社,2010.八、附录附录一图21 系统硬件电路原理图附录二程序清单:#includereg51.h#includeabsacc.h#includeintrins.h#define com XBYTE0x0000/LCD送命令#define dat XBYTE0x0002/LCD送数据unsigned char code tab=0123456789.;unsigned char w,yi,yd,s

14、uan,d,h;unsigned long z1,pd;float z3,z2;void ys()unsigned char i,j;for(i=0;i10;i+)for(j=0;j100;j+);/*/*LCD初始化*/*/void INIT()com=0x3c;ys();com=0x0c;ys();com=0x01;ys();com=0x04;ys();com=0x8f;ys();/*/*显示程序*/*/void sip()unsigned char qq,q;if(yd=3)INIT();pd=z1;yd+;if(d=1)&(pd10)dat=tabpd;ys();dat=tab10;y

15、s();dat=0;d=0;else if(yd=1)qq=pd%10;dat=tabqq;else for(q=0;q=0)&(z1=10)&(z1=100)&(z1=1000)&(z110000)yd=3;else yd=101; /超出范围/*/*键值定义*/*/void split() switch(pd) /数字键 case 0:pd=7;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 1:pd=8;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 2:pd=9;if(h=1

16、)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 4:pd=4;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 5:pd=5;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 6:pd=6;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 8:pd=1;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 9:pd=2;if(h=1)h=0;

17、z1=0;if(z11000000)z1=z1*10+pd;break;case 10:pd=3;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;case 13:pd=0;if(h=1)h=0;z1=0;if(z11000000)z1=z1*10+pd;break;/功能键case 3:suan=/;z2=z1;h=1;yd=100;break;case 7:suan=*;z2=z1;h=1;yd=100;break;case 11:suan=-;z2=z1;h=1;yd=100;break;case 12:pd=0;yd=100;z1=0;h=1

18、;d=0;break;case 14:fruit();break;case 15:suan=+;z2=z1;h=1;yd=100;break;sip();/*/*判断按键*/*/void key()ys();w=P1&0xf0;while(w!=0xf0)switch(w)case 0xe0:pd=yi*4+0;break;case 0xd0:pd=yi*4+1;break;case 0xb0:pd=yi*4+2;break;case 0x70:pd=yi*4+3;break;split();while(w!=0xf0)w=P1&0xf0;void main()INIT();dat=0;while(1)for(yi=0;yi4;yi+)P1=_crol_(0xfe,yi);w=P1&0xf0;if(w!=0xf0)key();ys();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!