关于ATS八位单片机计算机_第1页
关于ATS八位单片机计算机_第2页
关于ATS八位单片机计算机_第3页
关于ATS八位单片机计算机_第4页
关于ATS八位单片机计算机_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、刘洋:基于AT89S52单片机电子计算器的设计与实现1 绪论1.1 引言当今社会,计算器因为它的小巧,方便深得人们的喜爱,家里,办公桌上都可以看到它的身影,计算器已经成为了人们日常生活不可分割的一部分。目前,大部分的计算器是基于单片机系统开发的。随着时代的进步和发展,单片机技术已经普及到人们的生活、工作、科研等各个领域,已经成为一种比较成熟的技术。并且随着社会的发展,科学的进步,尤其是微电子技术的发展,单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。1.2 课题背景伴随着二十一世纪的曙光,人类迎来了又一个充满希望的新时代。而作为二十世纪人类社会最伟大的发明之一,计算机

2、也迈入了其另一个充满机遇的阶段后PC时代。不知不觉中,形式多样的数字化产品已经开始继PC机之后成为信息处理的一大主要工具,并且正在逐步形成一个充满商机的巨大产业。后PC时代的到来,使得人们开始越来越多地接触到一个新的概念嵌入式产品。像手机、PDA(如商务通等)均属于手持的嵌入式产品,VCD机、机顶盒等也属于嵌入式产品,而像车载GPS系统、数控机床等同样都采用嵌入式系统。嵌入式软件是数字化产品的核心。如果说PC机的发展带动了整个桌面软件的发展,那么数字化产品的广泛普及必将为嵌入式软件产业的蓬勃发展提供无穷的推动力1。中国有世界上最大的家用电子产品消费市场,彩电、VCD等拥有量都居世界第一;随着消

3、费结构的改变,人们对家电的灵活性和可控性提出了更高的要求;随着电话通信费用和通信类电子产品的价格进一步下调,PDA结合数字手机将成为今后个人数据通信和事务处理的最佳选择;同时,对于现代化的医疗、测控仪器和机电产品也需要有专用的嵌入式系统。这些需求极大地刺激了嵌入式系统的发展2。单片机作为嵌入式的重要应用,已经普及到人们的生活、工作、科研等各个领域,已经成为一种比较成熟的技术。现在只需要一块几平方厘米的单片机,写入简单的程序,就可以实现电路的简单化和功能的多样化。相信在使用并掌握了单片机技术后,不管在今后的生活或是工作中,一定会带来意想不到的惊喜。基于这样的理念,本文选择了这个设计课题:基于AT

4、89S52单片机电子计算器的设计与实现34。1.3 课题研究目的、意义随着社会的发展,科学的进步,尤其是微电子技术的发展,犹如雨后春笋般的变化。单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。计算器在人们的日常中是比较的常见的电子产品之一。当今社会,计算器因为它的小巧,方便深得人们的喜爱。家里,办公桌上都可以看到它的身影,计算器已经成为了人们日常生活不可分割的一部分。并且用单片机来实现日常中常见的电子产品可以满足成本低、控制简单等特点。1.4 本文研究主要内容本设计是用AT89S52单片机来实现的八位数计算器。该系统以AT89S52为主控制器,P3口作为输入端,外接4

5、×4的键盘,通过对键盘的扫描来实现对输入数的控制,P0口和P2口接LED显示器,用来实现计算器数据的实时显示。本设计系统还设了清零键C,开始时计算器显示0,按了键后就进入计算状态。通过计算器的设计这个实例,可以很好地了解单片机的使用方法,这主要表现在以下两个方面:1)计算器的结构简单,并且具备最小单片机系统的基本构成。通过计算器的实例,可以明白构成一个最简单,同时也具备实用性的单片机系统需要哪些外围设备的基本电路。2)计算器电路中使用了单片机系统中最为常用的输入输出设备。通过本设计,可以明确单片机系统的最简单的用途和控制方法。本论文主要从以下几个方面对本设计进行论述:第2章介绍了设计

6、思路及总体设计。第3章介绍了计算器硬件电路设计。第4章介绍了软件设计。第5章介绍了电路仿真分析及结果。2 设计思路及总体设计2.1 设计思路本设计中即包括硬件电路设计,也包括软件设计。其具体设计思路如下:1)硬件设计思路硬件设计是整个系统的基础,要考虑的方面很多,除了实现此设计的基本功能以外,主要还要考虑如下几个因素:(1)系统稳定性。(2)器件的通用性或易选购性。(3)软件编程的易实现性。(4)系统其它功能及性能指标5。2)软件设计思路软件设计是整个系统的灵魂,失去了软件系统的支持,硬件系统也就失去了其功能的完整性。本系统主要是通过对各个模块的驱动和连接来实现计算器的设计。主要考虑如下几个方

7、面:(1)键盘电路的驱动。(2)LED显示电路的驱动。(3)计算器算法的实现67。2.2 系统框图根据功能和指标要求,本系统选用AT89S52单片机为主控制器。通过扩展必要的外围接口电路,实现对计算器的设计。系统框图如图1所示。图1 系统方框图功能模块说明:1)单片机模块主要是利用单片机作核心控制器,主要起到控制和计算等作用。 2)显示电路模块用于显示单片机的输入输出等状态。3)键盘电路是整个系统的输入设备,主要作用是实现数字和操作符的输入。2.3本章小结 计算器的设计主要应考虑三个方面,键盘电路的设计,显示电路的设计和计算器算法的设计。其次,因为计算器的设计涉及到软件和硬件的设计,所以系统的

8、稳定性和易实现性就显得尤为重要。3 计算器硬件电路设计3.1 单片机最小系统电路设计单片机最小系统电路是所有单片机电路设计中最基本的设计。单片机最小系统电路的错误设计足以导致整个系统的瘫痪。所以单片机最小系统电路设计至关重要。3.1.1 AT89S52单片机简介单片机 AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。其引

9、脚结构如图2所示。其主要性能如下:1)与MCS-51单片机产品兼容。2)8K字节在系统可编程Flash存储器。3)1000次擦写周期。4)全静态操作:0Hz33Hz。5)三级加密程序存储器。6)32个可编程I/O口线。7)三个16位定时器/计数器。8)八个中断源。9)全双工UART串行通道。10)低功耗空闲和掉电模式。11)掉电后中断可唤醒。12)看门狗定时器。13)双数据指针。14)掉电标识符8。图2 AT89S52引脚结构3.1.2 单片机时钟电路设计89S52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可

10、以构成稳定的自激振荡器。电容C1和C2通常取30pF左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为fosc=0-24MHZ。晶体振荡器的频率为fosc,振荡信号从XTAL2端输入到片内的时钟发生器上,如图3所示。图3 时钟电路3.1.3 单片机复位电路设计89系列单片机与其他微处理器一样,在启动时都需要复位,使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号时从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上有一个高电平并维持2个机器周期(24个振荡周期),则CPU就可以响应并将系统复位。复位操作有上

11、电自动复位和按键手动复位两种方式。1)上电自动复位上电自动复位时在加电瞬间电容通过充电来实现的,其电路如图4所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。图4 上电复位2)手动复位所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态。系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电复位组合,其电路如图5所示。复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否复位成功。初步检查可用示波器探头监视RST引脚,按下复

12、位键,观察是否有足够幅度的波形输出(瞬间的),还可以通过改变复位电路阻容值进行试验。图5 按键电平复位3.2 LED显示电路设计单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED(Light Emitting Diode);液晶显示器,简称LCD(Liquid Crystal Display);今年也有配置CRT显示器的。前者价廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口较复杂,成本也较高。结合本设计实际,本文选用LED显示器。LED显示器是单片机应用系统中的一种简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。因而作为典型的外围器件,LED显

13、示单元是反映系统输出和操作输入的有效器件9。3.2.1 LED显示器结构原理单片机中通常使用7段LED构成字形“8”,如图6所示。另外,还有一个小数点发光二极管,以显示数字,符号及小数点。这种显示器有共阴极和共阳极两种。发光二极管的阳极连在一起的(公共端K0)称为共阳极显示器(如图7所示),阴极连在一起的(公共端K0)称为共阴极显示器(如图8所示)。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔画(段)a-g,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,须外加限流电阻。本次设计采用共

14、阳极接法。图6 七段数码管内部排列图7 共阳极连接法图8 共阴极连接法3.2.2 LED显示器接口及显示方式LED数码管有静态显示和动态显示两种方式。1)LED静态显示方式静态显示就是当显示器显示某个字符时,相应的段(发光二极管)恒定地导通或截止,直到显示另一个字符为止。例如,7段显示器的a,b,c段恒定导通,其余段和小数点恒定截止时显示7;当显示字符8时,显示器的a,b,c,d,e,f,g段恒定导通,dp截止。LED显示器工作于静态显示方式时,各位的共阴极(公共端K0)接地;若为共阳极(公共端K0),则接+5V电源。每位的段选线(a-dp)分别与一个8位锁存器的输出口相连,显示器中的各位相互

15、独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。正因为如此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多。因此,在显示位数较多的情况下,一般都采用动态显示方式。2)LED动态显示方式在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(或共阳)极公共端K分别由相应的I/0线控制,实现各位的分时选通。6位共阳极LED动态显示与单片机的接口电路如图9所示。图9 6位LED动态显示电路由于6位LED所有段选线皆由一个8位I/O口控制,因此,在每一瞬间,6位LED会显示相同的字符。要想每位显示不同的字符

16、,就必须扫描方法轮流点亮各位LED,即在每一瞬间只使用某一位显示字符。在此瞬间,段选控制I/O口输出相应字符段选码(字型码),而位选则控制I/O口在该显示位送入选通电平,以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示的字符。段选码,位选码每送入一次后延时1ms,因为人眼的视觉暂留时间为0.1s(100ms),所以每位显示的间隔不必超过20ms,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。这种方式称为软件扫描显示。3.2.3 电路设计在实际应用中由于单片机的驱动能力小,如果直接驱动数码管显示,可能导致数码管显示亮度低,故本设计中采用三极管来驱动数码管显示,以保

17、证数码管的显示亮度。如图10所示。图10 三极管驱动数码管显示3.3 键盘电路设计3.3.1 矩阵键盘结构键盘可以分为独立连接式和行列式(矩阵式)两类,每一类按其译码方法又可以分为编码及非编码两种类型。本设计中使用行列式非编码键盘。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键连接。利用这种行列矩阵结构只需N条行线和M条列线,即可组成具有N×M个按键的键盘。如图11所示。图11 4×4矩阵键盘接口图计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都采用矩阵

18、键盘结构。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。在这种行列矩阵式非编码键盘的单片机系统中,按键处理程序首先执行有无键按下的程序段,当确认有按键按下后,下一步就是识别哪一个按键被按下。矩阵式键盘显然需要比直接法更多的器件,识别软件的设计也要复杂一些。但是在按键数较多时,矩阵键盘的优势就显现出来了。矩阵式结构键盘常用的键码识别方法有行扫描法、行反转法等。本设计使用行扫描法按键识别方法10。3.3.2 行扫描法的原理由图11可得,当无按键闭合时,P1.0P1.3与P1.4P1.7之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断有无按键按下的方法是:第一步,置列

19、线P1.4P1.7为输入状态(置1),从行线P1.0P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合;第二步,行线轮流输出低电平,从列线P1.4P1.7读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。3.3.3 按键开关去抖动通常按键所用的开关为机械弹性开关,当机械触点断开,闭合时,电压信号波形如图12所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合

20、及断开的瞬间均伴随有一连串的抖动,如图12所示。抖动时间的长短由按键的机械特性决定,一般为510ms。这是一个很重要的时间参数,在很多场合都要用到。图12 按键时的抖动按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒。键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。在键闭合稳定时,读取键的状态,并且必须判断;在键释放稳定后,在作处理。按键的抖动,可用硬件或软件两种方法消除。如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生510ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为

21、真正有键按下。当检测到按键释放后,也要给510ms的延时,待后延抖动消失后,才能转入该键的处理程序11。3.3.4 电路设计本设计中用到的按键比较多,所以采用4×4矩阵式键盘,16个键分别对应着“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“+”“-”“×”“/”“=”“C”。其电路图如图13所示。13 计算器键盘电路设计3.4 本章小结硬件电路设计的重点在LED显示器驱动电路和矩阵键盘电路。LED显示器作为常用的显示器件,具有体积小、寿命长等优点,并且它能在低电压,小电流下工作。矩阵键盘作为常用的输入器件,具有占用端口少、识别简单等优点。4 软件设计本设计软

22、件环境为Keil uVision3。KeilC51是美国Keil Software公司出品的兼容51系列单片机C语言的软件开发系统。Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面,其生成的目标代码效率非常高12。 4.1 软件总体设计流程在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然后组合起来。这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。根据需要,本文可以采用自上而下的程序设计方法,此方法

23、先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影响。程序流程图14所示。图14 程序流程图4.2 各模块设计流程1)键盘扫描流程4×4矩阵键盘是通过给一个端口分别置高低电平来读取按键状态的。其扫描方式为逐行扫描。其扫描流程图如图15所示:图15 键盘扫描流程图2)LED显示流程LED显示器的显示是通过两个端口来控制的。其中一个控制段选,另一个控制位选。其显示流程图如图16所示:图16 LED显示流程图4.3 本章小结通过对系统软件部分的介绍,本章展示了计算器的工作流程

24、。软件部分的重点在按键的识别和计算器算法的实现。5 电路仿真分析及结果本设计所用的仿真软件为Proteus. Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计软件,它可以仿真、分析各种模拟电路与集成电路,该软件提供了大量的模拟与数字元器件、外部设备和各种虚拟仪器,特别是它具有对单片机及其外围电路组成的综合系统的交互仿真功能。5.1 电路仿真分析上面分别介绍了硬件系统和软件系统的设计,为了验证其正确性和可行性,设计出测试用表,如表1所示。表1 计算器设计测试表测试内容测试用例说明测试数据期望结果输入数值按键“37”37显示37(如图17所示)输入运算符按键“+”

25、+清屏(如图18所示)输入数值按键“52”52显示52(如图19所示)输入运算符按键“=”=显示89(如图20所示)图17 按键“37”图18 按键“+”图19 按键“52”图20 按键“=”5.2 计算器实物图通过对硬件和软件原理的分析,并且在仿真成功的基础上,通过焊接制作,成功制作出基于单片机的计算器。如图21所示。图21 计算器实物图5.3 本章小结本章通过对计算器的仿真测试,验证了本设计的正确性和可行性。并且在此基础上,通过焊接、调试,制作出了基于单片机的计算器。6 总结与展望本设计采用AT89S52芯片,实现了单片机电子计算器的设计。实现了对输入数据的加,减,乘,除等运算及LED实时

26、显示功能。并通过软件仿真验证了本设计的正确性和可行性。最后通过焊接调试,制作出了基于单片机的电子计算器。由于作者水平有限,本系统只能实现8位正整数的简单四则运算。另外,本设计是用LED显示器实现实时数据显示的,当然也可以用其他显示器,如LCD液晶显示器,这样就可以显示出更多的字符。在此基础上,还可以编写出更加完善的程序来实现更多的计算功能。计算器的未来是小型化、轻便化和专业化,如使用太阳能提供电池的计算器,使用ASIC设计的计算器,使用纯软件实现的计算器,数学、物理等方面的专业计算器等。随着社会的发展,知识的更新,各行各业的需要带动了电子产品的发展,智能化计算器将是未来的发展方向。7 心得体会本设计从对AT89S52微控制器组织结构的了解,学习,到LED显示电路设计,再到键盘扫描驱动设计,最后到计算算法的实现,经历了一个充实紧凑的学习过程,本系统的设计涉及了AT89S52微控制器的好几个功能模块(如:键盘、LED显示等),可为刚接触AT89S52的初学者提供参考。经过这次毕业设计,使我不论是从理论知识还是从实际操作中都学到了不少知识,我接触到更多平时没有接触过的科学仪器设备、元器件,并且获得了相关的仪器调试经验,同时也发现了自己在这方面的很多不足之处。体会到理论知识对实践有很大的指导作用,只有在正确理论的指引下才能设计出合乎实际需要的硬件电路。参考文献1王宜怀,刘晓

温馨提示

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

最新文档

评论

0/150

提交评论