版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!目录摘要……………1绪论……………11.设计要求及功能分析………………………11.1设计要求………………11.2基本功能………………22.设计方案……………………22.1硬件部分设计方案……………………22.1.1单片机部分…………22.1.2按键部分……………22.1.3显示部分……………22.2软件部分设计方案……………………23.系统的硬件总体设计………………………43.1系统的总体硬件设计…………………43.2键盘连接电路…………43.3显示屏连接电路………………………53.4单片机芯片AT89C51…………………63.5外接电路………………74.系统的软件总体设计………………………84.1键盘识别程序设计……………………84.2显示程序………………114.3运算程序………………115.元器件清单及程序清单……………………125.1元器件清单……………125.2程序清单………………126.软件仿真……………………186.1仿真验证………………186.2性能分析………………206.3出现故障及其原因……………………206.4解决方法………………20结论……………20参考文献………………………21致谢……………21附录PCB图……………………22简易计算器的设计学生:李飞马鹏超舒宏超指导老师:王孝俭摘要:关键词:设计要求掌握数码管移位动态扫描显示的编程方法,掌握矩阵扫描的编程方法,掌握数据在内部运算的编程方法。设计任务实现最大8位正整数加、减、乘、除,具备清零、等于功能,16个按键功能依次为:数字0、数字1、数字2、数字3、数字4、数字5、数字6、数字7、数字8、数字9、清零、等于、加、减、乘、除。1.1设计要求:本次单片微型计算机与接口技术课程设计做的是利用C51单片机为主体的计算器,实现了简单的加、减、乘、除功能。采取的是键盘输入和液晶显示屏的输出结果显示。主要硬件构成部分由四个,一个AT89C51单片机芯片,一个液晶显示屏,一个4*4键盘和一个排阻(10K)做P0口的上拉电阻,可以实现16位的数值操作计算。1.2基本功能:首先,计算器可现实8全部不显示;1其次,可以对计算结果在16位以内的;两个无符号数进行加、减、乘、除运算,并显示计算结果,如果输入操作数和输出结果超过16者输入错误,应清零后重新输入。最后,运算时,如果按错了可以使用清零键直接清零,重新输入数据,运算过程中,如果运算表达式是加、减、乘、除混合运算,可以进行连续运算,不需要按等号键,运算规则则是从左到右,不区分运算等级。即认为加减乘除是同等级的运算。2.设计方案2.1硬件部分设计方案2.1.1单片机部分单片机以AT89C51来作为核心元器件。2.1.2按键部分方案一:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键,但是这种方式采用了大量的I/O口线。方案二:采用独立式按键,独立式按键借口电路配置灵活,软件结构简单。虽然采用独立式按键时每个按键必须占用一根I/O口线,但是在本实验中根据实际的需要采用通过四个按键即只占用四个I/O4*4行列式键盘时占用8个I/O口线,所以我们采用一方案。2.1.3显示部分在单片机应用系统中,使用的显示器主要有液晶显示亲以及CRT接口。方案一:使用8位LED数码管来显示,LED显示器是由发光二极管显示字段组成的显它具有成本低廉、配置灵活和单片机接口方便等特点。方案二:使用液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的浑浊固态。在电机的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。LCD2.2软件部分设计方案软件部分的设计思路时将整个程序划分为键盘扫描部分、显示部分、运算程序部分、清屏显示部分。对于其中的键盘扫描部分在编写时又分为动态扫描和静态扫描;运算程序部分包括加、减、乘、除四个子程序。软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行值存储;如果是命令键,即先判断是否为清屏,如为清屏键,则执行清屏子程序,若为加减乘除运算键则显示相应的符号并存储结果,若都不是则为=键,即要先判断上个符号位,然后调用对应的运算子程序运算,就可以得到需要的结果。28位LCD显示部分图133.1系统的总体硬件设计硬件系统是指构成微机系统的实际装置,通常是由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种拓展接口电路、外部设备等才能构成一个单片机应用系统。单片机芯片选择AT89C51,显示区域使用显示屏,键盘是4*4普通矩阵键盘,P0口接上拉电阻,芯片的P0口和P3口的前5脚接入数字显示屏,键盘横行A~D接入单片机芯片AT89C511~4则分别接入单片机芯片AT89C51的P2口的前四个接口。另外12MHz晶振接入单片机芯片AT89C51的XTAL1接口。系统总接线图如下:图2本设计之中使用的是4*4的普通键盘,我们可以使用其行列号来识别被按下的按键以此来获知被按键的信息,因此将行输出信号和列输出信号分别接入单片机芯片C51的P2口,通过循环扫描,读取行列的数据来判断是否有按键被按下,如果有则调用按键识别程序来识别具体按键,并执行相应的操作,按键识别是根据按键时得到的列代码与行代码的结合,在汇编语言中进行查表来判断是哪个键。4键盘如图:图3如上所述,当数字输入键盘有键按下的时候,经过程序识别,则会有相应结果被送入显示屏得到显示。如果是数字键则直接放入液晶显示缓冲区,如果再次有数字键按下,则应将缓冲区的数字向高位移动一位,以构成两位数,之前输入的置之高位,并记录按键次数,每输入一个键值都调用显示程序出来;如果是运算符,则执行相应的运算,送入单片机芯片C51内进行计算后将结果调用显示程序显示结果。该设计中选取的是LM0202型号液晶显示屏,如下图:5图4应本次课程设计的要求,此设计之中选取的是C51芯片,取代了之前设计之中的pic芯片。芯片包含有一个8位ROMRAM数据存储器;可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;32条可编程的I/O个8位并行I/O16位的定时/计数器;一个可编程全双工串行口;5个中断源、两个优先级嵌套终端结构。芯片如下图:6图5为了进一步强化该设计的功能,所以在单片机芯片C51外围添加了时钟脉冲芯片和复位电路,这样就可以对其电路频率进行调节。这个电路当中,是选取的是12M的晶振,对其两头电容接地,并一端接入芯片XALT1端口输入,调节芯片内部频率。另外一端,高电平通过按钮接入单片机芯片RST端口,并接一个电容和一个电阻,降低电流冲击对芯片的影响。7图6由此,就是由以上的键盘连接电路、显示屏连接电路、外部电路和芯片共同构成了整个设计的硬件结构部分。编程语言当中,汇编语言比较接近底层,编程效率高;C语言则语言灵活,在编写算法中会比较方便。但是我们在学习中是学习的汇编语言,我们还是对于单片机的编程更加4.1键盘识别程序设计首先将P2口送P1口弦送1在读P1口的数据当P1口低四位全1时说明没有键按下;再扫描下一行,如果P1口不是全1,则说明有键按下,将P2口高四位和低四位组合成一个字节,放入R5寄存器中,通过延迟技术来进行按键去抖,判断按键是否松开,如松开则将得到的键值进行判断是哪一个键。如果是数字键则首先将其对应的数字放入缓冲区30H,同时将键值放入结果缓冲区,并调用显示程序,显示键值。在调用扫描键盘程序,如果再有键值输入则将原来的数值在显示屏高位依次移一位,将刚键入的数值放入最低位,并将原来的数值乘十加上刚键入的键值的数放入结果缓冲区,然后调用显示程序;如果是运算符,则记录运算符标志,加法用01H表示,剑法使用02H表示,乘法使用03H04H等待输入运算数据,当按下等号时,根据记录的运算符标志,判断运算类型,执行运算将结果依次除以10取余数放入结果显示缓冲区,调用显示程序。依次循环执行。键盘识别程序流程图如下:8N下YNNY符YNY图79结束是否有键图8104.2显示程序显示程序是将30H~37H40H单元作为输入数据的计数单元。因为运算结果超出范围时应采取报错,使之显示“error”即可,将数字0~9和“error”存入列表中,当调用显示程序时,显示程序根据40H这样就得到了显示程序的入口:30H~37H,依次存放各位到千万位;40H,存放输出的数字位数。出口:数码管,P0输出字段码P2输出位选码。NY图94.3运算程序运算程序分四个模块,即加减乘除。分别采用两字节运算,因此运算结果不能超出亮11加法程序:入口是R0被加数低位字节地址指针,R1加数低位字节地址指针,R3字节数。出口R0和值地址指针,R3和值字节数。运算时用回送到R0所指的单元中,并将和字节数放入R3单元中,如果R3大于3说明溢出。R0减数低位字节地址指针,R3字节数。出口R0差值低位字节地址指针,R3差值字节数。只是判断溢出时通过CY位,如果运算后CY位有借位,则将07H位置1,否则置0.乘法程序入口R3被乘数低位地址字节,R2被乘数高位地址字节,R7乘数低位地址字乘数高位地址字节。出口结果字节由高到低。通过判断R5是否为除法程序入口被除数放在内容为高R5低,除数放在高R3低。出口商放在R6R7,R6高R7低,余数放在R4R5,R4高R5低。5.1元器件清单型号3214G-1-100EAT89C511111211111123BUTTON45CAP-ELEC20uFCRYSTAL12MHzKEYPAD-SMALLCALCLM020L678910上拉电阻RESPACK-8;写5.2程序清单e;确;调12;a;;或;接与13ff;;调ff;调;位2行;;调;调14;调;写ee;调;取1e;判)e15bcacbbbbbacbbabb16babbac17a码6.软件仿真6.1仿真验证将源程序装载进仿真程序,运行,随机抽取数字进行计算,例如验证1+2=3:按下“1”时,如图:18按下“+”和“2”时,如图:图图图综合以上两种情况,证明仿真成功。6.2性能分析对于计算器的性能,主要的衡量指标就在于计算的精度,本次制作的计算器性能情况如下:加法运算:八位加法运算,和值不超过99999999,若超过上限,则显示错误提示减法运算:八位减法运算,若结果为负,对其取绝对值。乘法运算:积不超过99999999通过对实际性能的分析,可以得到本次设计满足设计的要求。6.3出现故障及其原因:LCD显示的输入数据或计算结果与实际不符。2.实践经验不够,知识不够解决问题需花较多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论