欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)基于AT89C51单片机的简易计算器设计.doc

    • 资源ID:3978641       资源大小:668KB        全文页数:22页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)基于AT89C51单片机的简易计算器设计.doc

    引言计算器(Calculator)是微型电子计算机的一种特殊类型。它与一般通用计算机的主要区别在于程序输入方式的不同。计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算(有的还带有数据总加、求平均值等统计运算)。现代电子计算器首次问世是1963年。那时的计算器是台式的,在美国波士顿的电子博览会上展出过。与计算机相比,它小巧玲珑,计算迅捷,一般问题不必事先编写复杂的程序。 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器计数器、并行和串行接口、看门狗、前置放大器、AD转换器、DA转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。随着社会需求,计算器也从原有单一的数字加减计算演变为复杂的多种运算。现在不在单一的在某一方面而是涉及到生活的方方面面.由于我对知识掌握的不够熟练,重点不够清楚,导致在重点与非重点处花费的时间不成比例,进度缓慢,这是设计没能全部完成的部分原因。目前只做到按键与显示的结合(即在显示器上可以显示数字键还有命令键+-*/ =清零);加法子程序已经编写成功并严整无误,但在整体调试中未能圆满实现,本部分正在调试中。等调试成功后,其它运算子程序的问题将迎刃而解。目录引言1目录21.简易计算器的设计方案31.1硬件部分设计方案31.2软件部分设计31.3 硬件设计原理图42. 简易计算器部分电路设计52.1 AT89C51常用指令52.2 显示及显示接口112.3 键盘、液晶显示的组合接口182.4 算术逻辑运算处理213.总设计电路及调试24致谢30参考文献311.简易计算器的设计方案1.1硬件部分设计方案1 单片机部分 单片机以AT89C51来做为核心元器件。2 按键部分 方案一:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键。但是这种方式采用了大量的I/O口线。 方案二:采用独立式按键。独立式按键接口电路配置灵活,软件结构简单. 但是在本实验中根据实际的需要19个按键,所以我们采用方案二。3 显示部分在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示器以及CRT接口。方案一:使用8位LED数码管来做显示。LED显示器是是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点。方案二:使用液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的混浊固态。在电机的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。LCD还具有以下几个优点(1)低压、微功耗(2)显示信息量大(3)长寿命(4)无辐射,无污染。1.2软件部分设计软件部分的设计思路是将整个程序划分为键盘扫描部分,显示部分,运算程序部分,清屏显示部分。对于其中的键盘扫描部分在编写时又分为动态扫描和静态扫描;运算程序部分包括加、减、乘、除四个子程序。软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),如果是数字键,执行数字键处理子程序,即显示数字并将数值存储;如果是命令键,即先判断是否为清屏,如为清屏键,则执行清屏子程序,若为+-*/运算键则显示相应的符号并存储结果,若都不是则为=键,即要先判断上个符号位,然后调用对应的运算子程序运算,就可以得到需要的结果。1.3 硬件设计原理图简易计算器大致分为:单片机、液晶显示、键盘三大部分。因此,总的电路设计方案以单片机AT89C51来做为核心元器件,外围采用4*4行列式键盘作为输入,采用LCM1602液晶显示器来做输出控制部分单片机输入部分键盘输出部分液晶 图 1.1 硬件设计框图2. 简易计算器部分电路设计2.1 AT89C51常用指令AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器,寿命:1000写/擦循环, 数据保留时间:10年 。·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路 2 管脚说明:如图2.1  VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3 口管脚 备选功能:P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。图2.1 AT89C51芯片管脚图3. 单片机的复位:电路如图2.2所示.RST:复位输入,在RESET(图中表示为RST )输入端出现高电平时实现复位和初始化.。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。MCS-51RESMCS-51RES +5V +5V 图2.2 复位电路在振荡运行的情况下,要实现复位操作,必须使RES 引脚至少保持两个机器周期(24个振荡器周期)的高电平。CPU在第二个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直至RES端电平变低。复位期间不产生ALE及PSEN信号。内部复位操作使堆栈指示器SP为07H,各端口都为1(P0-P3口的内容均匀0FFH),特殊功能寄存器都复位为0,但不影响RAM的状态。当RES引脚返回低电平以后,CPU从0地址开始执行程序。图2.2(a)为加电自动复位电路。加电瞬间,RES 端的电位与Vcc相同,随着RC 电路充电电流的减小RES的电位下降,只要RST 端保持10毫秒以上的高电平就能使MCS-51单片机有效地复位,复位电路中的RC 参数通常由实验调整。当振荡频率选用6MHz时,C选22uF,R选1K,便能可靠地实现加电自动复位,若采用RC电路接斯密特电路的输入端,斯密特电路输出端接MCS-51和外围电路的复位端,能使系统可靠地同步复位。图2.2(b)为人工复位电路。    ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。    /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。    /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。4振荡器特性:XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。    此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。5.特殊功能寄存器MCS-51单片机内的锁存器、定时器、串行口数据缓冲器以及各种控制寄存和状态寄存器都是以特殊功能寄存器的形式出现的,它们分散地分布在内部RAM地址空间范围,(1)累加器A最常用的特殊功能寄存器,大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器A或A、 B寄存器对中。指令系统中用A作为累加器的助记符。(2)B寄存器B寄存器是乘除法指令中常用的寄存器。乘法指令的两个操作数分别取自A和B ,其结果存放在A B寄存器对中。除法指令中,被除数取自A,除数取自B,商数存在放于A,余数存放于B。在其它指令中,B寄存器可作为RAM中的一个单元来使用。(3) 程序状态字PSW程序状态字是一个8位寄存器,它包含了程序状态信息。此寄存器各位的含义参见图2-8,其中PSW·1未用。其它各位说明如下: 表2.1 寄存器各位含义CYACF0RS1RS0OV-P CY(PSW·7)进位标志在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在布尔处理机中它被认为是位累加器,其重要性相当于一般中央处理机中的累加器A。 AC(PSW·6)辅助进位标志当进行加法或减法操作而产生由低4位数(BCD码一位)向高4位数进位或借位时,AC将被硬件置位,否则就被清零。AC被用于BCD码调整。详见DA A指令。 F0(PSW·5)用户标志位F0是用户定义的一个状态标记,用软件来使它置位或清零。该标志位状态一经设定,可由软件测试F0,以控制程序的流向。 RS1,RS0(PSW·4,PSW·3)寄存器区选择控制位可以用软件来置位或清零以确定工作寄存器区。RS1,RS0与寄存器区的对应关系见表2-3。 OV(PSW·2)溢出标志:当执行算术指令时,由硬件置位或清零,以指示溢出状态。当执行加法指令ADD时,位6向位7有进位而位7不向CY进位时,或位6不向位7进位而位7向CY进位时,溢出标志OV置位,否则清零。溢出标志常用于ADD和SUBB指令对带符号数作加减运算时,OV=1表示加减运算的结果超出了目的寄存器A所能表示的带符号数(2的补码)的范围(-128-+127),在MCS-51中,无符号数乘法指令MUL的执行结果也会影响溢出标志。若置于累加器A和寄存器B的两个数的乘积超过255时,OV=1,否则OV=0。此积的高8位放在B内,低8位放在A内。因此,OV=0意味着只要从A中取得乘积即可,否则要从B A寄存器对中取得乘积。除法指令DIV也会影响溢出标志。当除数为0时,OV=1,否则OV=0。 P(PSW0)奇偶标志每个指令周期都由硬件来置位或清“0”,以表示累加器A 中1的位数的奇偶数。若1的位数为奇数,P置“1”,否则P清“0”。P标志位对串行通信中的数据传输有重要的意义,在串行通信中常用奇偶校验的办法来检验数据传输的可靠性。在发送端可根据P的值对数据的奇偶置位或清零。通信协议中规定采用奇校验的办法,则P=0时,应对数据(假定由A取得)的奇偶位置位,否则就清0。(4)栈指针栈指针SP是一个8位特殊功能寄存器。它指示出堆栈顶部在内部RAM中的位置。系统复位后,SP初始化为07H,使得堆栈事实上由08H 单元开始。考虑到08H-1FH单元分属于工作寄存器区1-3,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值,SP的初始值越小,堆栈深度就可以越深,堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。除用软件直接改变SP值外,在执行PUSH,POP指令,各种子程序调用,中断响应,子程序返回(RET)和中断返回(RETI)等指令时,SP值将自动调整。(5)数据指针数据指针DPTR是一个16位特殊功能寄存器,其高位字节寄存器用DPH表示,低位字节寄器用DPL表示,既可以作为一个16位寄存器DPTR来处理,也可以作为两个独立的8位寄存器DPL和DPL来处理。DPTR主要用来存放16位地址,当对64KB外部存储器寻址时,可作为间址寄存器用。可以用下列两条传送指令:MOVX A,DPTR和MOVX DPTR,A。在访问程序存储器时,DPTR可用作基址寄存器,有一条采用基址+变址寻址方式的指令MOVC A,A+DPTR,常用于读取存放在程序存储器内的表格常数。2.2 显示及显示接口1 单片机引脚及常用命令简介:本次设计在显示部分采用的是LCM1602B,它是一个双行显示的液晶显示器。其采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:分别为背光灯正负极,A接正极, K接负极。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表3-1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等, 表 2.2 点阵字符图形表 高位低位00000010001101000101011001110000CGRAM(1)0Pp0001(2)!1AQa q0010(3)“2BRb r0011(4)#3CSc s0100(5)$4DTd t0101(6)%5EUeu0110(7)6FVf v0111(8)>7GWgw1000(1)(8HXhx1001(2))9IYiy1010(3)*:JZjz1011(4)+;Kk1100(5) <Ll |1101(6)=Mm 1110(7).>Nn 。1111(8)/?Oo每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。1602液晶模块内部的控制器共有11条控制指令,如表3-2所示,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H 。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 (有些模块是 DL:高电平时为8位总线,低电平时为4位总线)。指令7:字符发生器RAM地址设置 。指令8:DDRAM地址设置 。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据 。指令11:读数据 。 表 2.3 液晶控制指令表指令RSR/WD7D6D5D4D3D2D1D0清显示000001光标返回00001*置输入模式0001I/DS显示开/关控制001DCB光标或字符移位01S/CR/L*置功能1DLNF*置字符发生存贮器地址字符发生存贮器地址(AGG)置数据存贮器地址显示数据存贮器地址(ADD)读忙标志或地址BF计数器地址(AC) 写数到CGRAM或DDRAM要写的数从CGRAM或DDRAM读数读出的数据2液晶显示模块与单片机的连接方式单片机AT89C51与LCD模块(LCM)的接口方式有两种1. 直接访问方式的接口电路是将液晶显示模块LCM挂接在AT89C51的总线上,通过对数据总线的读写实现对LCD的控制。2. 间接控制方式可分为4位总线和8位总线两种方式,4位数据传输时需传输两遍,相对比较麻烦,本设计采用间接连接方式,在此重点讨论8位总线方式。其电路图如图2-4所示。对应与2.3图,LCD的8位数据总线与AT89C51的P1口相连,三个控制端口RS、R/W和E分别接AT89C51的P3.0、P3.1、P3.3管脚,根据程序设计的不同也可选用P3口的其它管脚。VL是LCD的对比度调节端,接正电源时对比度最弱,接地时对比度最高,本电路使用1K的电位器来调整对比度,也可直接串接一个电阻到地。单片机要写入指令时RS为低电平;单片机要写入数据时RS为高电平;R/W为高电平时读取数据,R/W为低电平时写入数据。需要背光时,BLA串接一个限流电阻接VDD,BLK接地。9管脚的复位端分别接10uf极性电容和10K电阻,电容接电源,电阻接地,同时复位端通过按键接电源,当按键按下时单片机复位。LCD初始化是必需的,包括清除显示,设置工作方式、光标闪烁设置等。工作方式设置为:DL=1,为8位数据长度接口;N=1,为两行显示;F=0,为5*7点阵字符。 图 2.3 LCD1602与单片机的间接连接电路在显示部分,先设计了LCD初始化的程序,其次完成了显示程序的设计。简要的介绍LCD显示过程中用到的个子程序(1) 系统初始化(单片机定义、LCD初始化)2.3 键盘、液晶显示的组合接口在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应用系统有按键或键盘。例如复位用的复位键,功能转换用的功能键以及数据输入用的数字键盘等。按键或键盘中的每一个键都赋予特定的功能,他们通过借口电路与单片机相连。通过软件了解按键的状态及键信息的输入,并转去执行该功能键的功能处理程序,键盘的接口方法有多种,但键输入过程软件结构基本是一样的。对键盘上的每一个键,都有一个编号,(即键号),CPU可采用中断方式或查询方式了解有无按键按下,并检查是哪一个按键按下,确定键号,将该键号送如累加器A,然后通过散转指令转入执行该键的功能程序。最后返回到原处。2.3.1 键盘接口和键输入软件中应解决的几个问题1.消除键抖动按键的合断都存在一个抖动的暂态过程,。这种抖动的暂态过程约经过510MS的时间,人发肉眼是觉察不到的,但对高速的CPU是有反应的,可能差生误差处理,为了按键的动作一次,仅做一次处理,必须采取措施一消除抖动。消除抖动的措施有两种:硬件消抖和软件消抖。硬件消除抖动可用简单的R-S触发器或单稳态电路构成,软件消除抖动是用延时来躲过暂态抖动过程,执行一段大于10MS的延时程序后,再读取稳定的键状态。2.键编码及键值 一组案件或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构不同,采用不同的编码方法。但无论有无编码,以及采用什么编码,最后都要转换成为与累加器中的数值相对应的键值,以实现案件功能程序的散转。顺序排列键编码。如图:采用此种方法,键值的形成要根据I/O线的状态来做相应处理。键码可按下式形成: 键码= 行首键号 + 列号3.键盘的检测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。2.3.2 行列式键盘工作原理 行列式键盘又称矩阵式键盘。用I/O线组成行、列结构,按键设置行列的交点上,例如4*4的行列结构可组成16个键的键盘。因此在案件数量较多时,可节省I/O口线。(1) 行列式键盘的接口行列式键盘的接口方法有许多,例如直接接口与单片机的I/O上;用扩展的并行I/O接口;用串行口扩展并行I/O接口;利用一种可编程的键盘、显示接口芯片进行接口等。其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。(2)键盘工作原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接+5V,被置位在高电平状态。对键盘的工作过程可分为两步:第一步是CPU首先检测键盘上是否有键按下;第二步是识别是哪一个键按下。检测键盘上有无按键按下可采用查询工作方式、定时扫描方式和中断工作方式。查询工作方式:键盘中有无键按下是有列线送如入全扫描字,读入行线状态来判别的。其方法是:所有列线置低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉低至低电平,从而使行输入状态不全为“1”。键盘中哪一个键按下是又列线逐列置低电平后,检查行输入状态,称为逐列扫描。方法是:置对应的列线为低电平,然后读入行线状态,如果全为“1”,则所按下之键不在此列;如果不全为“1”,则所按下之键必在此列,而且是与0电平行线相交的交点上的那个键。为求取键码,在逐列扫描时,可用计数器纪录当前列的列号,然后用行线值为“0”的行首键码加列号的办法计算。键盘扫描子程序如下:2.4 算术逻辑运算处理1. 运算子程序 在本设计中,要求计算器可以进行三位的加减乘除运算,因为计算器要求显示的是十进制数,所以在运算子程序中也采用十进制。本设计中算数子程序与按键程序同步,按键按下处理运算。在设计初期,一方面由于自己以前所学知识不是很扎实,一边学习,进度慢;另一方面将键盘和显示部分做为重点处理,处置不当,导致在后期时间不充足,仅仅对加法子程序进行了编写,对加法子程序我已进行了验证,正确无误。由于时间关系,其它的运算子程序没进行一一编写。2.特殊功能键处理(1)清屏键 “C”:清屏子程序write_com(0x01); (2)输出键“=”: “=”键意义在于首先判断前一个符号位存储的键值是否为加减乘除中某一个,然后调用相应的运算子程序,其次是将运算后的结果存储并显示。3.总设计电路及调试简易计算器软件设计总流程图: 开 始系统初始化键 盘 扫 描 判断是命令键?判断是清屏键?判断是“+-*/”键?显示数字并存储结果显示运算符号存 储 结 果调清屏子程序调运算子程序显示结果并储存YYYNNN 图3.1 软件设计总流程图简易计算器液晶显示处理软件设计流程图:图3.2 液晶显示软件设计流程图致谢 在论文完成之际,我要特别感谢我的指导老师郑老师的热情关怀和悉心指导。在我做毕业设计的整个过程中,郑老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我很受感动,在此对郑老师表示我深深的谢意。在论文的写作过程中,也得到了许多同学的宝贵建议,同时还到许多在工作过程中许多同事的支持和帮助,在此一并致以诚挚的谢意。感谢所有关心、支持、帮助过我的良师益友。参考文献1丁元杰单片微机原理及应用(第三版)北京:机械工业出版社,20057 2李建忠. 单片机原理及应用(第一版). 西安电子科技大学出版社,20023李维绨.郭强.液晶显示与应用技术。北京 电子工业出版社,2003

    注意事项

    本文(毕业设计(论文)基于AT89C51单片机的简易计算器设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开