版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕 业 设 计 (论 文)设计(论文)题目:_单片机简易计算器的设计与仿真 单 位(系别):_电 子 信 息 工 程_ 学 生 姓 名:_ _ 专 业:_ 电 子 信 息 工 程_ 班 级:_ _学 号:_指 导 教 师:_ _ 答辩组负责人:_ 填表时间: 20 年 月重庆邮电大学移通学院毕业设计(论文)任务书设计(论文) 单片机简易计算器的设计与仿真 学生姓名 李海洋 系别 电子信息工程 专业:电子信息工程 主 要 研 究 内 容 、 方 法 和 要 求熟悉介绍各种单片机的发展与分类,特别是51系列单片机。掌握C语言程序设计,熟悉汇编语言对其计算器功能进行编程。掌握计算器各部分结构原理和
2、作用。熟悉keil和protues进行计算器仿真 进 度 计 划第3周:确定毕业设计题目第46周:根据毕业设计题目查阅资料、综合考虑前后对比、理论分析与计算,了解要求及实现方法。第710周:完成硬件与软件的设计,完成初步调试,做好设计过程中的记录,完成初稿。第1012周:完成老师对初稿提出的建议,整理修改并完善。第1214周:完成毕业设计,并做好修改和打印。第1516周:制作毕业设计论文PPT,做好毕业答辩的准备工作。主 要 参 考 文 献C语言程序设计,计算机基础知识,计算器工作原理设计,单片机开发使用技术指导教师签字: 年 月 日系主任签字: 年 月 日班 级 01120802 指导教师
3、唐伶俐 摘 要随着科学的不断进步,我们的生活已经离不开电子产品了,可以说这次时代是电子的时代,市场是电子的市场。大到航天科技板块,小到家庭用的洗衣机, 煲等等都是电子技术的衍生物。现在的嵌入式系统已经进入的一个新的阶段。全自动洗衣机之所以能够完成独自洗衣任务,汽车防盗系统能够真正发挥功能都是应为加入了单片机还有编写了程序,使得他们能够给我们的生活带来这么多的方便。可以说单片机系统改变的大家的生活,使得我们的生活变得丰富多彩。计算器我相信大家都用过,它给大家带来了计算的方便和计算的快捷。是人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器。本文基于对单
4、片机AT89C51的理解和运用,结合MM74C922做一个简易的计算器,实现基本功能加减乘除。采用LCD显示结果数据,熟悉掌握C语言进行软件编译,最后学习protues和keil软件对设计出的计算器进行仿真校对。这次计算器的设计不能对小数进行计算,对于计算的范围也有规定。不能超出正134217728和负134217728.【关键词】单片机 LCD C语言 KEIL protuesABSTRACTAlong with the science advances, our life has cannot leave the electronic products, can say the age i
5、s electronic age, the market is electronic market. Big to space technology sector, small with a washing machine in home, telephone pot, etc., are electronic technology to the derivatives. Now the embedded system has entered a new stage of. Automatic washing machine are able to complete tasks alone l
6、aundry, guard against theft system can give full play to the function is to join the single chip microcomputer and should write the program so that they can bring to our lives so much convenience. Can say the SCM system change your life, make our life becomes rich and colorful. Calculator I believe
7、that people are used, and it bring you the calculations convenient and fast calculation. It is Peoples Daily life is one of the more common electronic products. But it also developing, later will appear function more powerful calculators. Based on the single chip microcomputer AT89C51 understanding
8、and using, combined with a simple MM74C922 do the calculator, realize the basic function of add, subtract, multiply and divide. WE use the LCD display the results , master C language software compiler, finally learning protues keil software to design and the calculator simulation proofreading. This
9、calculator designed not calculated to decimal for calculating the range of has a regulation. the results has biggest number Beyond the 134217728 and 134217728 are negative. HYPERLINK :/fanyi.youdao / 关闭全屏阅读 【Key words】 MSC LED keyboard C language protues目 录 TOC o 1-3 h z u HYPERLINK l _Toc31953 前 言
10、PAGEREF _Toc31953 1 HYPERLINK l _Toc10182 第一章 单片机的介绍 PAGEREF _Toc10182 2 HYPERLINK l _Toc9423 第一节 单片机的发展与分类 PAGEREF _Toc9423 2 HYPERLINK l _Toc16169 第二节 MCS-51系列单片机介绍 PAGEREF _Toc16169 4 HYPERLINK l _Toc23083 第三节 其他电路设计 PAGEREF _Toc23083 8 HYPERLINK l _Toc12194 第四节 对KEIL的了解 PAGEREF _Toc12194 9 HYPER
11、LINK l _Toc19898 第五节 对protues进行了解 PAGEREF _Toc19898 10 HYPERLINK l _Toc8748 第二章 计算器其他各部分设计 PAGEREF _Toc8748 12 HYPERLINK l _Toc14872 第一节 LCD显示模块 PAGEREF _Toc14872 12 HYPERLINK l _Toc3642 第二节 键盘接口电路 PAGEREF _Toc3642 14 HYPERLINK l _Toc27411 第三节 运算模块 PAGEREF _Toc27411 17 HYPERLINK l _Toc514 第三章 硬件设计电路
12、和软件设计讲解 PAGEREF _Toc514 19 HYPERLINK l _Toc18741 第一节 硬件设计说明 PAGEREF _Toc18741 19 HYPERLINK l _Toc21065 一、时钟电路 PAGEREF _Toc21065 19 HYPERLINK l _Toc21236 二、复位电路 PAGEREF _Toc21236 19 HYPERLINK l _Toc5482 三、键盘电路 PAGEREF _Toc5482 21 HYPERLINK l _Toc30739 四、动态显示部分 PAGEREF _Toc30739 21 HYPERLINK l _Toc111
13、76 第二节 软件设计说明 PAGEREF _Toc11176 21 HYPERLINK l _Toc12587 一、主函数 PAGEREF _Toc12587 22 HYPERLINK l _Toc26384 二、LCD显示函数 PAGEREF _Toc26384 23 HYPERLINK l _Toc15491 三、键盘扫描函数 PAGEREF _Toc15491 25 HYPERLINK l _Toc14201 四、算术函数 PAGEREF _Toc14201 25 HYPERLINK l _Toc29337 第四章 调试与仿真 PAGEREF _Toc29337 27 HYPERLIN
14、K l _Toc9055 第一节 Keil C51单片机软件开发系统操作 PAGEREF _Toc9055 27 HYPERLINK l _Toc30736 第二节 proteus软件的操作 PAGEREF _Toc30736 27 HYPERLINK l _Toc23717 第三节 仿真结果图 PAGEREF _Toc23717 28 HYPERLINK l _Toc32728 第四节 仿真调试里错误总结 PAGEREF _Toc32728 32 HYPERLINK l _Toc30870 结 论 PAGEREF _Toc30870 33 HYPERLINK l _Toc10188 参考文献
15、 PAGEREF _Toc10188 35 HYPERLINK l _Toc19594 附 录 PAGEREF _Toc19594 36 HYPERLINK l _Toc2849 一、英文原文 PAGEREF _Toc2849 36 HYPERLINK l _Toc15646 二、英文翻译 PAGEREF _Toc15646 38 HYPERLINK l _Toc16720 三、源程序 PAGEREF _Toc16720 39前 言 在信息时代的今天我们身边到处都可以看到各种电子产品,电子产品功能和作用也越来越强大,出现的什么智能电饭煲,全自动洗衣机等等,他们为什么能够发挥这些功能呢?是因为人
16、们采用了单片机,单片机利用其自身优势,给人类带来了巨大的快捷和方便,整个社会中可以说人们对单片机的利用是源源不断的,各行都在使用它,他被用在了智能仪表上,在工业控制中也能找到它,单片机在家用电器,计算器网络及通信领域中,医药设备,大型电器模块和汽车中都发挥着重要作用。单片机可以说改变了整个社会彻底改变了人们的生活。对于单片机开发和编译人们一直都在努力挖掘。我这里运用单片机结合自己所学,做一个简易计算器,实现加减乘除功能,利用c语言作为软件部分进行。此次论文的价值和核心在于倡导自己把所学知识运用到现实生活,为现实生活服务,把自己的知识转化为实物哪怕是很简单的物件,很简单的功能,但真真切切的让自己
17、感受到创造的快乐,为自己今后的工作做好铺垫,往后通过更多的学习,更多的尝试,把知识的作用真正发挥出来,改变大家的生活。单片机的介绍第一节 单片机的发展与分类 单片微型计算机就是单片机,单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,是典型的嵌入式微控制器,现在常用英文字母的缩写MCU表示单片机,单片机是一种集成的电路芯片,是取用大型规模集成电路设计技术把有数据处理功能的中央处理器CPU随机存储器RAM、定时器,记时器、多种I/O口和中断系统,只读存储器ROM等功能(有些还会包含显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块小小的硅片上构成的一个完善的计
18、算机系统,可以虽然小但是完备。它最早是被用在工业控制领域。因为单片机在工业控制领域的广泛应用,为使更多的业内人士、学生、爱好者,产品开发人员掌握单片机,产生单片机开发板,例如有名的电子人DZR-01A单片机开发板。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设想是通过将大量外围设备和CPU还有其它所有综合在一个芯片里,为了得到更小的计系统算机,更容易集成而且体积越来越小,把所以集合在一起控制装备里。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的命运和研发便截然不同了。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的
19、一些功能,这是别的器件所不能达到的,有些则是不管怎么努力花多大的牺牲都不能换来的。一个功能比较简单的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!二十世纪跨越了三个“电”的时代,即快速电气化时代、高速电子化时代和现已是的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机。简
20、单来说,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的内部里。它在整个装置中,起着有如同人灵魂一样,没有它的存在,就像一个没有的灵魂人,行动做什么事都不会完成就像一个僵尸一样无法活动四肢。现在,这种单片机的使用领域已十分广泛,如能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品得到质的变化,常在产品名称前加上“智能型”,如智能型洗衣机,智能电饭煲等。目前一些工厂的工作人员或其它业余电子爱好开发者研究出来的某些产品,不是电路过于复杂话,就是功能太简单且极易被仿制和模仿。询问更本原因,可能就卡在产品未使用单
21、片机或其它可编程逻辑器件上。所以对于单片机的研究和设计都是大家最在意的,同时也是我们学生学习的重点,单片机从某个角度来说是改变了我们整个社会,给我们带来了很多实际的好处。单片机可以分为几个类别:1.控制型/家电型 这是按照单片机目前在市场应用的区块进行划分的。简单而言,工控型寻址范围大,运算 能力强;用于家电的单片机多为专用型,通常是使用小封装、价格便宜,外围器件和外设接口集成度极高。 2.通用型/专用型 这是按单片机目前适用市场来划分的。例如,80C51就是通用型的单片机,它不是为了某个产品而单独设计开发的;专用型单片机是面对一类产品不然就是某一个具体产品设计生产的,例如为了满足电子体温计的
22、要求,在片内集成ADC接口等功能的温度测量控制电路3.总线型/非总线型 这是按单片机是否采用数据总线划分的。总线型单片机通常设置有并行地址总线、 控制总线、数据总线,这些引脚用来发展还有行外围器件都可通过单片机与串行口相接,同时许多单片机已把所需要的外围器件及外设接口集成一片单片机内,所以在大部分的条件中不要并行扩展总线,大大减低包装成本和芯片体积,这类单片机称为非总线型单片机。总体来说对于单片机的分类不是单一固定的,比如80C51类单片机既是通用型又是总线型。第二节 MCS-51系列单片机介绍8051是MCS-51系列单片机的典型产品,以这一代表性的机型进行系统的讲解。8051单片机包含中央
23、处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,其内部结构如图所示,现在分别加以说明。 8051内部结构图中央处理器:中央处理器(CPU)是整个单片机的核心区域,就如同人的大脑一般,他是8位数据宽度的处理器,能处理8位二进制代码或字符,CPU负责控制、掌握和调度控制整个单元系统协调的工作,完成运算和控制输入输出功能等一切操作。数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用
24、户数据,因此,用户能使用的RAM只有128个,可记录读写的数据,运算的中间结果或用户定义的字型表。程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器:8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断,用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2和P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/
25、计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。AT89C51是一种带4K字节FLASH的存储器的高效能、第电压CMOS 8位微处理器简称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以达到反复擦除1000次。该材料是取用ATMEL高密度非易失存储器制造技术研发,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种
26、高效微控制器,AT89C2051是它的一种简约版本。AT89C51单片机为很多嵌入方案设计提供的帮助和使用的方案。为嵌入式系统带来前所没有的开发,其外形及引脚排列如图所示:图1.2.2 AT89C51引脚图VCC:供电电压(图中未画出)GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,
27、P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时
28、,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚 备选功能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
29、(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令
30、时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端将会保持平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:用于振荡放大器的输入和部时钟工作电路的输入。 XTAL2:是用于荡
31、器的输出引脚。第三节 其他电路设计为确保单片机能够正常工作,我们还需要在与单片机做几个特殊电路。加入单片机时钟电路和复位电路。时钟电路对于单片机来说就像是CPU对于电脑一样,就如一个人体的心脏,他是一切的控制。如果没有时钟电路来产生时钟驱动单片机,那单片机就不能执行程序。单片机时钟电路是用来配合外部晶体实现振荡的电路,这样可以为单片机提供运行时钟,如果运行时钟为0 的话,单片机就不工作,当然超出单片机的工作频率的时钟也会导致单片机不工作,单片机时钟电路有两种如图所示:内部时钟 外部时钟图 时钟图为确保单片机中电路稳定可靠工作,复位电路也是必需的一部分,应为微机电路是时序数字电路,它需要稳定的时
32、钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从系统开始初始。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统在正常工作时稳后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,如图所示:上电自动复位 手动复位电路图 复位电路图当使用内部振荡电路时,引脚外接石英晶体和微调电容,如图1所示,图中大小一般为30PF。还
33、加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化行之前,单片机做好准备工作。如何进行复位呢?只用在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作当主电源Vcc发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行第四节 对KEIL的了解 51系列兼容单片机C语言软件开发系统是Keil C51是Keil Software公司的荣誉出品它是公司的高端产品,与汇编做比较,C语言在功能上、结构
34、性、可读性、可维护性上有明显的优势,因而易学易用。Keil采取了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分放在在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。它的优点一般有1、Keil C51生成的目标代码效率是十分有效的,汇编代码语句生成是十分紧凑,理解起来也是十分容易。在开发大型软件时更能体现高级语言的优势。2、与汇编
35、相比,C语言在功能的条件上,可保护性条件上、可读性条件上、结构可读条件上上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。3、其对程序纠错功能很强大,能够清晰的把错误全部显示出来,对错误的位置进行编序,使得编写者容易识别,最后生成HEX格式便于protues识别,与其进行联仿提供了很大方便。KEIL也能进行单独仿真但是还是比较有局限性,故这次不采用其进行仿真。第五节 对protues进行了解Protues软件是英国Labcenter electronics公司出版的EDA编译软件。
36、它不单单具有EDA工具软件的仿真功能,还能仿真单片机及外围一切器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前在我国才刚刚建立起来,但是其发展的速度确实让人惊叹。在社会中每个行业的人都会很喜欢它,它给人们带来了很多帮助,学习单片机的学生和研究单片机的研究者都对其十分喜欢,他的仿真功能十分强大,融合了其他没有的部分,从原理图的设计和在电子元件的挑选下都是十分详细的,其他没有的电子元件他都有,操作比较简单,给学习和爱好单片机的朋友带来了福音。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。其具有巨大的资源(1)Protues可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数
37、千种元器件,有30多个元件库。 (2)Protues可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号器、模式器、交直流电压表、交直流电流表。从研究上表明同一种仪器可以在一个电路中任意的取用。(3)除了现实存在的仪器外,Protues还有一个现实图像的功能,在图片中能够显示信号的传输情况实时显示,其作用可以说和示波器同,但功能比其更加强大。这些虚拟仪器仪表都具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都最大值得降低了仪器对测量结果的影响。(4)Protues可提供的调试手段 Protues提供了比较丰富的测试信号用于电路的测试。这些测试信号包
38、括模拟信号和数字信号。Protues具有四大功能模块1:智能原理图设计2:完善的电路仿真功能3:独特单片机协调仿真功能4:实用的pcb设计平台。电路仿真时,在PROTUES中通过自己的核对把电子原图进行连接后,结合之前生成的:*.HEX文件,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。PROTUES 是单片机现在老师的得力助理,老师都用它进行教学。PROTUES不单单可将许多单片机实例功能形象化充实化,也可将许多单片机的运行过程清晰明显不会让学生不知所云,困在以前的误解中。前者可在相当程度上得到实体现收的感觉和效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路,运行
39、方式等却和传统的单片机保持了一致,可以说沿用了以前的优点并在以前的优点上进行了开展使得功能更加完全。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。仿真工程现已被大家广泛使用,他不仅可以节约成本,可以避免不要的风险,还能为人们节约人力物力。第二章 计算器其他各部分设计第一节 LCD显示模块LED显示发
40、光二极管是单片机应用系统中一个长用的设备输出,在系统里的主要功能就是显示输出数据和状态。LED最大的特点比较便宜,寿命长,对电压要求不高,可以实现多路等。这次毕业设计我选择的是LM044L。它采用标准14脚接口,其中:包括8根数据线(D0-D7),三根控制线(rs,rw,e)电源地,电源以及液晶驱动电压引脚(VSS,VDD,VEE),如图所示:图 LM044L线路图我们采用8 段数码管,其中位于显示器右下角的LED 作小数点用。LED 显示器有两种不同的形式:共阴极和共阳极。本次设计采用共阴极接法(如图与图2.1.3所示):图2.1.2 8段数码显示管 图 LED共阴极接法LED显示器由七段发
41、光二极管组成,排列成8字形状,因此也称为七段LED显示器。简易计算器用到的数字09的共阴极字形代码如下表:显示字gfEdcba段码001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh表 共阴极值代码第二节 键盘接口电路键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需软件进行干预,非编码键盘的接口电路需要设计者根据
42、需要自行决定,按键信息通过接口软件来获取。但是非编码键盘的优点是一般成本较低和电路比较简化。在键盘中按键数量较多时,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是直接接一个按钮在其中作为连接。所以,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。而且在计算器输入数字和其他功能按键要用到很多按键的时候,如果采用独立按键的方式,在这种情况下,编程虽然会相对简单一
43、些,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键 。矩阵键盘的工作原理按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到 电源上。无按键按下时,行线处 于高电平的状态, 而当有按键按下时,行线电平与此行线相连的列 线电平决定。 1、 行列扫描法原理 第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线, 判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则 所有的行线都为高电平。第二步,在第一步判断有键按下后, 延时 10ms 消除机械抖动,再次读取行值,如果此行线还处于低电平状态则进入下一步,否
44、则返回第一步重新判断。第三步,开始扫描按键位置,采用逐 行扫描,每间隔 1ms 的时间,分别拉低第一列,第二列,第三列,第四列,无论拉低哪一列其他三列都为高电平,读取行值找到按键的位置,分别把行值和列值储存在寄存器里。第四步,从寄存器中找到行值和列 值并把其合并,得到按键值,对此按键值进行编码,按照从第一行第一个一直到第四行第四个逐行进行编码,编码值从“0000” 至“1111” , 再进行译码,最后显示按键号码。 2、数码管动态扫描原理: 数码管动态扫描原理: 数码管的 7 个段及小数点都是由 LED 块组成的,显示方式分为静 态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位选 信
45、号均为低电平,四个数码管的共用段选线 a、b、c、d、e、f、g、dp 分别与 CPLD 的 8 根 I/O 口线相连,显示数字时只要给相应的段选线送 低电平。数码管在动态显示方式时,在某一时刻只能有一个数码管被 点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时, 段选码端口的信号也要做相应的改变 ,每位显示字符停留显示的时间 一般为 1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定 的数字显示。计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用,如图。图 矩阵键盘布局图矩阵键盘内部电路图如图所示
46、:图 矩阵键盘内部电路图为了进一步节省单片机I/O口资源,我们在设计中使用了MM74C922芯片。MM74C922是一款4*4键盘扫描IC,它可检测到与之相连的4*4键盘的按键输入,并通过数据输出口将按键相应的编码输出。其引脚图如图所示::图 MM94C22硬件图MM74C922引脚说明:(1) Y1Y4(脚1脚4):4*4键盘第一列至第四。(2) X1X4(脚11、10、8、7):4*4键盘第一行至第四行。(3) DOA DOD(Dataout AD,脚1417):按键之BCD码输出,其中DOA为LSB,DOD为MSB。(4) VCC(脚18):电源脚,+3V+15V。HYPERLINK :
47、/ ab126 / o ab126计算公式大全 t _blankab126计算公式大全(5) GND(脚9):接地管脚。HYPERLINK :/www 486 / o 新艺图库 t _blank新艺图库(6) OSC(Oscillator,脚5):键盘扫描电路之频率所需外加电容的连HYPERLINK :/ 838dz 引脚。(7) KBM(Keyboard Mask,脚6):内部消除开关弹跳电路所外加电容的HYPERLINK :/ 838dz 引脚。(8) OE(Output Enable,脚13):芯片使能脚,接低电位可使芯片使能。(9) DA(Data Available,脚12):数据有
48、效输出脚。任一按键按下时,此脚位会输出高电位,按键释放后此脚又会恢复为低电位。MM74C922对各按键的响应如下表所示:表 各按键响应图第三节 运算模块MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等计算机所需要的基本功能部件。如果按功能划分单片机,由以下功能部件组成,即微处理器(CPU),数据存储器(RAM),程序存储器(ROM/EPROM),并行I/O口,串行口,定时器/计数器,中断系统及特殊功能寄存器(SFR)。单片机是 必须靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,所以使得单片机的功能很强大很实用。尤其是特殊的一些功能,通过使
49、用单片机编写的程序可以实现高智能、高效率以及高可靠性还有高安全性,这次采用单片机作为计算器的主要功能部件是正确的,它可以很快的实现运算功能。运算模块包括键盘和显示屏组成。单片机通过按键来实现输入数据和操作方式的控制,在运算过程中,对所设的数据进行四则运算时,要先确定选用的是哪一个运算符,若是+或*,则要判断结果是否会溢出,溢出则显示错误提示,没有溢出则显示运算结果,若是/,则要判断除数是否为零,为零时显示错误提示,不为零显示运算结果。第三章 硬件设计电路和软件设计讲解第一节 硬件设计说明这次论文设计所用到的硬件有单片机AT89C51,芯片MM74C922,LM044L数码显示管,44的键盘,如
50、图所示:图 硬件说明图这里我想重点对几点做出解释。一、时钟电路在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式。我们采用内部时钟方式。在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路, C1和C2取 30pF左右,晶振的频率取值范围1.2MHz12MHz。根据实际情况,本设计采用12MHz作为系统的外部晶振,电容值取30pF。二、复位电路 单片机复位是使CP
51、U和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。所以,必须弄清楚MCS-51单片机复位的条件、复位电路和复位后的状态。单片机复位的条件是:必须使RST/Vpd或RST引脚(9脚)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平。在RST引脚出现高电平后的第二个周期执行复位。单片机常见的复位电路有上电复位电路和按键复位电路。为了方便系统的硬件初始化,我们采用按键复位电路。按键复位电路除具有上电复位功能外,若要复位,只需要按下S9键
52、,在RST端产生一个复位高电平,如图所示。图 时钟电路和复位电路连接图三、键盘电路在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,在矩阵式键盘电路中,行连接线占用4条I/O口线,列连接线占用4条I/O口线,共连接16个按键。行线连接的接口为输入口,用于输入按键的行位置信息,列线连接的接口为输出口,用于输出扫描电平。为了进一步节省单片机I/O口资源,我们在设计中使用了MM74C922芯片MM74C922的数据输出口与单片机的P2口相连,MM74C922的DA引脚经过一个非门连接到单片机的/INT0脚,当MM74C922检测到键盘输入时,DA产生高电平,与之相连的/INT
53、0检测到低电平,给单片机一个中断,单片机从P2口的低四位读入键盘上按下的键的值。Mm74C922各引脚功能上章节以作介绍,这里不在做解释四、动态显示部分 各个数码管的段码都是p0口的输出,即各个数码管输入的段码都是一样的, 为了使其分别显示不同的数字, 可采用动态显示的方式,即先只让最低位显示0,经过一段延时,再只让次低位显示1,如此类推。由视觉暂留,只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定。第二节 软件设计说明在这次软件板块设计中,因为c语言具有灵活多变而且我对c语言相对比较熟悉故这次使用的是c语言对其编程。整个程序包括:主函数还有相关的各类定义(宏定义,管脚定义)计算
54、运算模块函数(包括错误处理函数,溢出函数)键值扫描函数LCD显示函数图 计算器主程序图计算器的主要部分就如图表示,这次设计的主芯片是AT89C51。当输入模块有信号输入时会传送到显示模块中并在LCD灯上进行显示,同时传入单片机中,单片机识别并计算后输出在显示板块里。这样就成功完成了计算。一、主函数利用微机控制台首先完成并行控制接口和液晶显示模块的初始化设置,液晶显示模块可以输出0界面。完成模块的初始化后,用并行控制模块扫描自定义的距阵键盘模块,根据扫描的结果通过并行控制接口将数据送到微机控制台,微机控制台将接收到的数据送到液晶显示模块进行实时显示。在数据传输显示的过程,应通过程序控制实时处理信
55、息,显示包括输入数据,差错控制信息,运算结果的显示。实时处理自定义的控制键功能,并完成控制功能。具体操作流程见下图。图 主流程图二、LCD显示函数LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。简易计算器用到的数字09的共阴极字形代码如下表:显示字gfedcba段码001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh表 LCD显示代码图在设计lcd显示的时候,应为要设计到lcd写数据还有lcd的清屏
56、。在设计是比较复杂的,我先对他们进行定义,最后在lcd显示函数中把他们嵌到一起,这样就比较方便的,也是c语言的优点。程序如下:void LCD_DISPLAY(long a)long temp,b,c=-1;int lenth=1,i,j;LCD_CLEAR();if(a0;i-)b=1;for(j=0;ji-1;j+)b=b*10;LCD_WRITE_DAT(0 x30+a/b);a=a%b;三、键盘扫描函数在进行数字显示之前,系统都会进行扫描,先要对数字进行识别然后储存。调用外部中断函数然后接着调用键值转化为键盘上的键值函数。最后在调用lcd显示函数显示数据。(相关函数见附录)四、算术函数
57、首先初始化参数,送LED低位显示“0”,高位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。为了计算方便,我把超限部分的函数和错误函数一起调用在了一起详见附录(算数运算函数),如图所示。开始键码是?数字键清零键功能键 图算术运算流程图初始化参数有键输入输入数值根据上次功能键输入的数据计算结果计算结果读取键码状态清零数据送显示缓冲数据送显示缓冲本次功能键?是“=”其他键计算最后结果保存信息
58、数据送显示缓冲等待数值输入第四章 调试与仿真前面第一章已经对protues和keil软件做了介绍,现在重点讲下怎样具体对两个软件进行调试和仿真过程。第一节 Keil C51单片机软件开发系统操作1.首先在电脑上正确的下载keil软件。 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)。3.用keil的文本编辑器编写源文件,可以是汇编语言,也可以为c语言,完成后将该文件添加到项目中去。注意保存的时候如果是c语言编写程序必须在后面加.C。 的相关选择项,配置编译环境、连接定位器以及Debug调试器
59、的功能。5.对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,根据软件中的错误提示进行修改源文件,切记不要浮躁,一步一步修改直到最后提示没有差错最终生成hex文件。6.对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的ROM中。第二节 proteus软件的操作1首先在电脑里下载正确的软件版本,此软件主要是对硬件部分进行模拟。2进入软件后蓝色框内就是工作区域,可以在里面随意选择元器件,移动元器件。正确的进行导线连接。3完成所有连接后,双击单片机把生成的HEX文件进行导入。4最后如果程序和连图都没有问题就可以进行仿真了
60、。第三节 仿真结果图图 系统仿真总图这次设计因为技术的问题暂时不能实现对有小数的进行计算,只能显示整数部分。如图。乘法 比如在键盘上输入45时,mm74c922会检测输入信号,DA会产生一个高电平,同时在单片机的p3口会接受到一个低电平,给单片机一个中断,单片机从P2口的低四位读入键盘上按下的键的值。 x=x+y;num=x;if(num-134217728)LCD_DISPLAY(num);else DATA_OVERFLOW_DEAL();break;这是我设计的加法程序,其运算的方法就如同程序。其余的加减法和除法的程序都可以在附件里找到,这里就不一一介绍了。论文附件里有很详细的介绍。 除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华师大版初中科学温度的测量
- 加班与休假管理规章制度
- 医疗危机处理与应急制度
- 2022年三年级语文下册第二单元主题阅读+答题技巧(含答案、解析)部编版
- 算法设计与分析 课件 10.4-综合应用-资源分配问题
- 2024年达州客运从业资格证到期换证考试
- 2024年上海客运急救考试题及答案
- 2024年银川客运急救知识培训内容
- 2024年阳江客运资格证情景题
- 2024年淄博道路运输客运从业资格证模拟考试
- 2024-2030年中国丝苗米行业发展趋势及发展前景研究报告
- JTJ034-2000 公路路面基层施工技术规范
- 《现代控制理论》课程教学大纲
- 《娱乐场所管理条例》课件
- 特殊儿童心理辅导理论与实务 课件 第4、5章 特殊儿童心理辅导与治疗的基本方法、特殊儿童常见的心理行为问题及辅导
- 北师大版2024-2025学年六年级数学上册典型例题系列第一单元圆概念认识篇【八大考点】(原卷版+解析)
- 餐饮服务模考试题(附答案)
- 大数据 AI大模型-智慧统计大数据平台解决方案(2023版)
- 教科版科学二年级上册全册教案(完整版)
- 如何引导孩子明确自己的兴趣与爱好
- 院长行政查房科主任汇报
评论
0/150
提交评论