毕业设计(论文)基于C51单片机的计算器系统设计.doc
《毕业设计(论文)基于C51单片机的计算器系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于C51单片机的计算器系统设计.doc(34页珍藏版)》请在三一办公上搜索。
1、目录引言:41. 设计任务42. 方案论证53电路的硬件设计53.1 系统框图53.2 微处理器的选择53.3 电源模块63.4 AT89C51单片机参数63.5 键盘的设计83.6 复位电路的设计93.7 振荡电路的设计93.8 数码显示及驱动电路94. 电路调试和结论114.1 具体电路系统图114.2 复位电路的测试114.3 振荡电路及端口测试124.4 电源的测试124.5数码显示电路及测试135软件设计部分145.1 软件设计总宽图145.2 程序流程图156本次设计的心得与体会166.1 设计需考虑下列几点166.2 硬件系统稳定工作应考虑的几点问题166.3 软件编程注意事项1
2、76.4 C语言编程与汇编编程的比较187本次课程设计已完成如下功能208结论:21参考文献21附录一:PCB的3D效果:22附录二:总的程序23附录三:元件清单表38致 谢39基于C51单片机的计算器系统设计 专业:电子信息科学与技术引言:随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的两位数计算器。该设计系统是以AT89C51为单片机, P1口作为输入端,外接4
3、X4的键盘,通过键盘扫描来对输入数的控制,在P0口,P2口接了驱动电路。用来保证LED的工作正常。计算器将完成的功能有加,减,乘,除等功能。该系统还设了功能键,开始显示0,按了键后就进入计算状态,再按该键就进入时钟状态。当然还有一些不足之处,本次设计还不能进行小数计算。在做除法运算时也只能计算除数是被除数的整数倍的情况。但是硬件的设计上是可以实现的。比如,设几个功能键,还可以实现时间的调时,频率计,秒表等。1. 设计任务基于AT89C51芯片的应用及端口的扩展,来实现两位数的计算即加,减,乘,除等功能;在硬件的基础上做扩展功能,如时钟显示。2. 方案论证 方案一:用分立元件来做计算器系统,分别
4、用4X4键盘、加法器、移位寄存器、译码器、存储器、4个1位的共阴LED显示管;其中乘法运算是用加法和移位两种操作实现,除法运算可用减法和移位操作来实现。 方案二:采用AT89C51为核心,4x4的键盘,用共阴的四位来显示计算数值,其中数码管的段码驱动电路是选用74LS245,UN2003来做位选。经过对两个方案的比较,本设计运用方案二来实现计算器系统。3电路的硬件设计3.1 系统框图键盘输入驱动芯片数码显示AT89C51 3.1 系统框图3.2 微处理器的选择1控制中心用AT89C51来实现。2驱动是用74LS245 , UN2003来实现。3显示是用共阴的四位数码管来完成。4用7805来做稳
5、压,提供+5V电源(实际是+4.98V),符合设计的要求。3.3 电源模块图3.3电源模块参数设置:变压器选取原则:VI比VO一般高出2-6V;D1-D4为普通整流二极管,D5为发光二极管;C1取1000UF-4700uf的电解电容;C2,C4取0.1-1uf的无极性的电容;C3取100-470uf;此系统的元件参数如上图3.3。在7805的1,3两端可以在就加个二极管可以有效的保护电路,在电流过大时候可以对7805的耐压起到了保护作用一致于烧毁7805芯片。在C1的电容增大时可以提高电路的稳压效应,当然也不是说越大越是好。还的受其使用电路的制约,C2是一个滤波电容可以有效的滤掉高平信号产生的
6、干扰。D5是一个发光的二极管可以在上电是看到电路是不是导通。C3和C4构成了电容的反馈有效的滤低平波和进行保护电路。3.4 AT89C51单片机参数 Vcc正常的运行的电压是5v的电源,Vss 为地端。I/O总线,P0口,P1口,P2口,P3口。AT89C51是MCS-51产品的兼容型,ROM、128字节ROM,32根I/O引线,每根都可以独立的使用。每个的端口包含一个8位的数据锁存和一个输入缓冲器。输出时,数据可以锁存;输入是,数据可以缓冲。作为一般的I/O口使用时,在指令的控制下,可以有三种基本的方式:输入输出和读修改写。在AT89C51用作输入端时,将首先向引脚写“1”而使内部MOS管截
7、止以便引脚处于悬浮状态,从而可获得高阻抗输入。引脚图如下图 图3.4 AT89C51单片机的注意事项1 在把电流输入单片机的过程中我们要做的事前有4步,第一:用万用表测电压是不是在5v+1.5v5v-1.5v之间,因为电压太大会给单片机工作造成硬件的损害。电流要求是(1.5A0.5A)安全电流。第二步:确保电压输入,电流的安全情况下。先断电源,再插89c51芯片测量各个端口电压。第三:在各个端口的电压在调试相关的用电器件达到了规定的数值,然后就可以编程了。第四:要是出现电压为0v的情况我们就要首先查看有没有虚焊的现象。2 在P0口加上拉电阻(10K)目的是提供单片机的内部电压。因为单片机P0口
8、内部是由CMOS管构成的,电压偏低,不能使单片机P0口正常工作。3.5 键盘的设计 图3.5 键盘的设计图是键盘设计,采用AT89C51芯片接口构成4X4的的键盘,P1口的高四位作为输入,P1口的低四位作为输出.如果有键按下,则应输出为低电平,否则输出为高电平,通过这样可以判断按下什么键。在键按下后,要有一定的延时,防止由于键盘的抖动而引起误操作。键盘电路设计说明:1 在安装前首先要确保开关没有什么问题。2看电路有没有短接的现象。3在把开关安装好后要测一下看看有没有虚焊。4在p1口的低四位都加了10k的电阻,把电压拉高的目的。3.6 复位电路的设计 图3.6 复位电路的设计 图中的RC为延时电
9、路,只要RST端出现2个机器周期的高电平就可以使单片机复位。单片机复位后RST端出现底电平。3.7 振荡电路的设计 图3.7振荡电路的设计 单片机芯片内部设有一个反向放大器所构成的振荡器,18脚和19脚分别为振荡电路的输入端和输出端,时钟由内部电路产生,定时器件为石英晶体和电容组成的并联谐振回路,电容C5,C6的取值在530Pf;Y1的取值在1.212M之间选取。3.8 数码显示及驱动电路 如图所示,AT89C51的P0口用于数码管的段选,由74LS245来驱动;P2口用于数码管的位选,由ULN2003来驱动。所用数码管为共阴极 图3.8 数码显示及驱动电路四位数码管,段码端为高电平有效,位码
10、端为低电平有效。在设计驱动电路时,是把驱动分成了两部分,即断码驱动和位驱动。断码驱动电路:芯片从单片机的p0口加上拉(10k)的电阻并且送数据到74LS245芯片。位选择驱动电路:从单片机的p2口加上拉选择(10k)的电阻送数据到头UN2003芯片的低四位。在从低四位送数据到数码管。4. 电路调试和结论4.1 具体电路系统图 图4.1 具体电路系统图 4.2 复位电路的测试经过测试复位后,单片机的1脚电压为0,只是在复位的瞬间出现4.95 V的高电平 ,从而使单片机复位。在测试中,在上电后还会出现不能复位的现象,或者是复位跳变(有时候可以复位有时候不能跳变)。分析情况有电容太小了,或者是电容的
11、保护电阻选择不是很正确,通常电阻4701k而电容是10u-1000u。电容大电阻也要相应的变大。在与单片机连接处还要加一个10k的电阻,电阻接地,使复位工作稳定。4.3 振荡电路及端口测试在电路中,我们用示波器看到晶振不能起振波形,对这样的情况,我们可查看硬件电路,一看:电容(33p104p)是不是有引脚没有接地,二看:是不是存在虚焊。三看:单片机有没有电流输出。四测:把晶振拿下来,再测是不是正常。经过测试单片机4脚电压为3.7V,5脚的电压为2.2V;振荡电路的波形测试为11.0522MHZ的正弦波。复位后的端口除10脚和1脚为低电平0V外,其他脚为高电平4.95V4.4 电源的测试电源通过
12、示波器测试图形如下: 图4.4 电源的测试 电源在调试过程中1在稳压管前面的电容太小,出现电源的输出不是很稳定情况。常在稳压管前面加的电容是有极限的470u1000u左右。2 接通电源以后会出现稳压管很烫的现象,出现的情况可能是输入的电流功率太大,也有可能是硬件的接法存在问题,基于第一种,我们可以用人为的加一个煽热片,保证稳压管的正常工作。第二种可加入一个反向的稳压二级管,不让稳压管烧坏。在稳压管的后面还要加滤波电容和反馈电容。4.5数码显示电路及测试在进行调试过程中我们会发现数码管显示不是很正常,问题如:比较的暗,显示的断码不是很全面以及数码显示时出现闪动的现象等。下面简要地描述一些解决问题
13、的方法。 首先,检查在编写程序没有出现编写错误的前提下,要从单片机的输出口查起,看看输出值跟编写的程序输出值是不是相一致。接下来就要看看各个端口连接处是不是有虚焊的存在。再次,就要用万用表测量电压,电流的输出结果,看看能不能达到可以让数码管正常工作,有击穿的话就应该立即更换。最后,要是数码管的相关的问题还是没有解决,那就要看自己的电路图是不是存在问题,以及电阻选择上的错误。5软件设计部分 5.1 程序流程图 初始化地址参数输出列扫描信号列扫描信号移位读入行信号时钟记时间状态模式键再次按下四列扫描完?返回模式键第一次按下?开始计算器状态读入键值执行运算操作等于操作终止 图5.1程序流程图5.2
14、软件设计总宽图 显示缓冲初始地址LED 显 示开 始读取键值键值转换为显示数判断有键输入? 图5.2 软件设计总宽图 6本次设计的心得与体会6.1 设计需考虑下列几点1.尽可能选择典型电路。2.系统的扩充与外围装置,应充分满足应用系统的要求,并保留一些扩充槽,以便进行第二次开发。3硬件结构应结合应用软件一并考虑。软件有执行的功能尽可能用软件来执行,以便简化硬件结构。但必须注意,用软件执行硬件的功能,其响应时间比直接使用硬件时间长,且占CPU时间。4整个系统器件应尽可能做到性能匹配,例如选用石英振荡频率较高时,应选择存储速度较快的IC,选择CMOS单片机构成低功耗系统时,系统IC都应选择低功耗的
15、IC。5可靠性及抗干扰设计是硬件设计极其重要的部分,包括器件选择、电路版布线、通道隔离等。6单片机微处理器外接电路较多时,必须考虑其驱动能力,驱动能力不足时,系统工作不可靠,解决办法是:增加驱动能力或减小IC功耗,降低总线负载。6.2 硬件系统稳定工作应考虑的几点问题 1.与外界容易产生干扰的输入接点,继电器的输出接点等器件部分,采用光耦隔离,使外界杂散信号无法干扰CPU的运行。2.没有使用的端口引脚应接到一个固定的逻辑电位以免受到外界的静电干扰,导致CPU运行失常而死机。3易受杂散信号干扰处则接一个0.01uF的树脂电容的机体外壳,使杂散信号的尖峰毛刺经此电容到外壳。4每一颗IC的VCC与G
16、ND之间一般接0.01uF到0.1uF的积层电容以使电源的电压波纹及杂散信号有所旁路同时可以抵消电路的电感性,使整个电路有较好的稳定性。5所设计的逻辑门尽量使用高速CMOS型来配合CPU的快速动作要求。硬件设计时尽量使用商品化的设计电路,以减小个人开发时间。6.3 软件编程注意事项1编程时先画流程图,使编程思路更清晰2. 嵌入汇编语言的非主函数必须放在同主函数不同的文件中。放在同一文件中时,会在程序初始化时产生不能跳转至主函数的错误。3. 编程中,间接寻址要使用DPTR、PC、R0、R1 寄存器,写入数据时亦同,且不能写入立即数,而应用寄存器,如A。例子如下:MOV R1, SPMOV A,
17、R1MOV A, #03HMOV R1, A4. 堆栈压入时指针为从低地址到高地址移动,先压入高地址,后压入低地址,堆栈指针所指为空。函数返回后,PC修改为所弹出的地址,由此可通过修改堆栈中的地址,而达成修改函数返回后的运行位置。5.关于MOVX的使用。对于DPTR在程序运行中不能直接赋值,由于没有其他寄存器同为16位,想直接赋值只能用直接数。但间接赋值很方便,把寄存器内容MOV给DPH和DPL赋值就可以了。在MOVX中,P0与P2的值都只是在前半部分跳变一下,后面就不再输出地址了,若想将P2的数值锁存,另需他法。ALE的信号亦同,但需注意,其他命令也会导致ALE的跳变,故不可认为使用MOVX
18、之后,所存器的输出端会一直为P0所输出的低地址。6注意跳转指令的跳转范围,例如JZ跳转范围为256个字节,而AJMP为2KB的跳转范围,当碰到跳转范围不够时,可以想办法搞一个中间跳转。先让JZ跳到某个位置,然后用AJMP去跳到所需要跳的地方。7编程时尽量优化代码。6.4 C语言编程与汇编编程的比较1汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。2C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。缺点是占用资源较多,执行效率没有汇编高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 C51 单片机 计算器 系统 设计

链接地址:https://www.31ppt.com/p-2392934.html