单片机简易计算器.doc

上传人:文库蛋蛋多 文档编号:4147487 上传时间:2023-04-07 格式:DOC 页数:33 大小:1.18MB
返回 下载 相关 举报
单片机简易计算器.doc_第1页
第1页 / 共33页
单片机简易计算器.doc_第2页
第2页 / 共33页
单片机简易计算器.doc_第3页
第3页 / 共33页
单片机简易计算器.doc_第4页
第4页 / 共33页
单片机简易计算器.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《单片机简易计算器.doc》由会员分享,可在线阅读,更多相关《单片机简易计算器.doc(33页珍藏版)》请在三一办公上搜索。

1、新疆工业高等专科学校电气系课程设计说明书单片机简易计算器专业班级: 电气自动化09-40(3)班 学生姓名: # 指导教师: 杨峰 完成日期: 2011年6月6日 电气与信息工程系课程设计任务书2010/2011学年 第二学期 2011 年 6 月 6 日专业电气自动化班级自动化09-40(3)班课程 名称单片机课程设计设计 题目简 易 计 算 器指导 教师杨 峰起止时间2011.6.6-2011.6.10周数1周设计 地点单片机实验室设计目的:1、贯彻理论联系实际的教学原则,巩固已经学习过的单片机基础知识,提高学生的工程实践能力。2、掌握单片机的C语言编程方法。3、了解单片机仿真软件并掌握其

2、使用方法4、加强组织性和纪律性,促进学生综合素质的全面提高。设计任务或主要技术指标:1、了解单片机原理及其编程方法。2、熟练掌握单片机仿真软件(Keil uVision3和proteus7)。3、通过编程和仿真实现相应控制任务。设计进度与要求:6.06 置设计任务,深入了解设计内容,阅读参考资料,收集有关资料。6.07 硬件方案设计及编程。6.08 实现方案,调试、仿真。6.09 编写设计说明书。6.10 答辩。主要参考书及参考资料:苏家健等编的单片机原理及应用技术 高等教育出版社.2004。张毅坤 单片微型计算机原理及应用,西安电子科技大学出版社.1998。 余锡存 单片机原理及接口技术.陕

3、西:西安电子科技大学出版社.2000。毕万新 单片机原理及接口技术.大连理工出版社.2002。田淑清 C语言程序设计高等教育出版社.2007。教研室主任(签名) 系(部)主任(签名) 年 月 日新疆工业高等专科学校电气与信息工程系课程设计评定意见设计题目: 单片机简易计算器 学生姓名: # 专业 电气自动化 班级 09-40(3)班 评定意见:评定成绩: 指导教师(签名): 年 月 日评定意见参考提纲:1.学生完成的工作量与内容是否符合任务书的要求。2.学生的勤勉态度。3.设计或说明书的优缺点,包括:学生对理论知识的掌握程度、实践工作能力、表现出的创造性和综合应用能力等。摘 要随着社会的发展,

4、科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的7位数计算器。该设计系统是以AT89C51为单片机, P1口作为输入端,外接4X4的键盘,通过键盘扫描来对输入数的控制,在P0口接了驱动电路。用来保证LCD的工作正常。计算器将完成的功能有加,减,乘,除,清零等功能。该系统还设了功能键,开始显示0,按了键后就进入计算状态。关键词:单片机 AT89C51 4X4键盘 LCD目 录1 单片

5、机的介绍11.1 单片机的概述11.2 单片机的基本组成21.3 单片机及单片机系统41.4 MSC-51芯片简介51.4.1 MCS-51单片机内部结构51.4.2 MCS-51的引脚说明72 简易计算器的设计102.1 设计要求102.2 设计思路102.3 硬件设计应用原理112.3.1 LCD显示器的工作原理122.4 设计流程解析132.5 程序模块设计143 主程序164 仿真204.1 Proteus软件介绍204.2 Proteus软件特点204.3 基本操作214.3.1 图形编辑窗口214.3.2 对象选择器窗口214.3.3 图形编辑的基本操作214.3.4 编辑区域的缩

6、放224.3.5对象的添加和放置224.4 系统仿真原理图224.5 仿真图23总 结26致 谢27参考文献281 单片机的介绍1.1 单片机的概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,是一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。概括的讲:一块芯片就成了一台计算机。它的

7、体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。图1.1 单片机外形及内部结构单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,单片机通过编写程序可以实现高智能,高效率,以及高可靠性。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简易可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS

8、51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows

9、和Linux操作系统。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的主要区别。单片机比专用处理器更适合应用于嵌入式系统。因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。1.

10、2 单片机的基本组成1) 中央处理器(CPU)MCS-51的CPU能处理8位二进制数或代码;2) 内部数据存储器(RAM)8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00HFFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。3) 内部程序存储器(ROM)在前面也已讲过,8051内部有4KB的ROM,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000H-F

11、FFFH(64KB)。4) 定时器/计数器8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。5) 并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。P0.0-P0.7:P0 口是一个8位漏极开路型双向 I/O 端口。在访问片外存储器时,它分时作低 8 位地址和8位双向数据总线用。在EPROM 编程时,由 P0 输入指令字节,而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。P0 能以吸收

12、电流的方式驱动8个LSTTL负载。P1.0-P1.7(18 脚):P1是一上带内部上拉电阻的8位双向I/O口。在 EPROM编程和验证程序时,由它输入低8位地址。P1能驱动4个LSTTL负载。在8032/8052中,P1. 0还相当于专用功能端T2 ,即定时器的计数触发输入端;P1. 1 还相当于专用功能端T2EX,即定时器 T2 的外部控制端。 P2.0-P2.7 ( 2128 脚):P2 也是一上带内部上拉电阻的8位双向 I/O 口。在访问外部存储器时,由它输出高8位地址。在对EPROM编程和程序验证时,由它输入高8位地址。P2可以驱动4个LSTTL负载。P3. 0 -P3. 7(1017

13、脚):P3也是一上带内部上拉电阻的双向I/O口。在MCS-51中,这8个引脚还用于专门的第二功能。P3能驱动4个LSTTL负载。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 (片外数据存储器读选通)6) 串行口 MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用

14、。RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。7) 中断控制系统 MCS-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。8) 时钟电路 MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12MHZ。1.3 单片机及单片机系统单片机是微型计算机发展的一个分支,是一种专门面向控制的微处理器件,故又称之为微控制器(Micro Controller Unit,MCU)。单片机通常以单一芯片的形式出现,但是它已具有了

15、微型计算机所包含的基本组成结构和特有的控制应用功能,是一种芯片级的微型计算机。另外,由于单片机的体积、结构和功能特点,在实际应用中可以完全融入应用系统之中,故而也称为嵌入式微控制器(Embedded Micro-Controller)。 最基本的单片机系统由单片机芯片和软件程序共同组建而成,是用户为了实现某种控制用途的需要而设计的实际装置。在单片机系统中,单片机芯片内部的中央处理单元(CPU)处于核心地位,CPU通过执行软件程序调动硬件电路完成控制功能。根据这种工作方式,单片机系统可以划分为硬件和软件两个组成部分。单片机系统的硬件部分是包括CPU在内的所有硬件电路,按照硬件电路的功能和配置大致

16、可以分为以下3类1) 基本功能类基本功能类硬件包括:CPU(用于运算、控制)、RAM(用于数据存储)、ROM(用于程序存储)、I/O设备(实现串行、并行输入/输出接口)及时钟电路(建立工作时序)。在微型计算机中,上述部件被分成若干块芯片,安装在一块称之为主板的印刷线路板上,在程序的指挥下完成计算机的基本运算操作功能。但是在单片机中,除了时钟电路之外,其余部分一般均被集成到一块半导体芯片上,所以被称为单片机,即单芯片微型计算机。 2) 控制功能类控制功能类硬件包括:定时器/计数器(用于时间设定/事件记录)和中断装置(实现实时处理)。使用这类硬件是为了实现单片机的控制功能,即定时控制、顺序控制和实

17、时控制等基本控制功能。作为面向嵌入式控制的特色,这类部件通常也集成在单片机芯片内部。3) 辅助功能类辅助功能类硬件包括:A/D(模/数转换)和D/A(数/模转换,通常采用PWM形式)等部件。这类部件根据芯片的配置不同不一定集成在单片机芯片上,需要用户根据使用要求选择。 单片机的软件部分与微型计算机的运行原理相似,单片机系统的运行也需要软件系统的支持,但是由于处理任务的不同,其复杂程度相对较低。根据单片机软件所要实现的功能,可以将软件划分为管理程序和应用程序两类。1) 管理程序管理程序是单片机系统的监控程序,主要用于控制过程复杂,控制量较大的装置,例如测控仪器、仪表等。对于仅完成简易控制任务的单

18、片机系统一般可以相应简化。 2) 应用程序应用程序是针对具体的控制动作而编写的程序,是实现控制具体功能的程序基础,通常以子程序模块的形式出现,便于执行控制动作时调用。 1.4 MSC-51芯片简介1.4.1 MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进

19、制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。下图为MCS-51系列单片机8051的内部结构图,如图1.2所示。图1.2 8051内部结构示意图程序存储器(ROM)8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM)8051有两个16位

20、的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和

21、数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图1.3是MCS-51系列单片机的内部结构示意图:图1.3 MCS-51系列单片机内部结构图1.4.2 MCS-51的引脚说明MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个

22、I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图1.4所示:图1.4 MCS-51系列单片机的引脚说明Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0

23、-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0R7)的状态,8051的初始态。如图1.5为8051的时钟工作方式。图1.5 8051时钟工作方式8051的复位方式可以是自动复位,也可以是手动复位,如下图1.6为8051的复位方式,此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 图1.6 8051复位方式Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而

24、访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。图1.7 引脚图样Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超

25、过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。2 简易计算器的设计2.1 设计要求设计一个可以进行加减乘除简易运算的计算器要求:使用LCD16*1制作一个简易的计算器;拥有+、-、*、/的算法;除法保留一位小数;LCD使用直接访问的方式;最大能算至百万位。2.2 设计思路本实训设计一个可以进行加减乘除四种运算的计算器,主要包括三个模块: 键盘扫描,数据的加减乘除运算,LCD显示。MCU的P1口作为键盘的输入,采用软件循环扫描,P3和P6作为LCD的

26、输出口,采用静态显示七位数据。1、操作显示设备显示设备采用LCD显示器,共设置16 个键,其中数字键09 共十个,接下来依次是加号键、减号键、乘号键、等于号、清除键。操作设备是两行八列共16键的简易键盘。第一行从左至右分别为0、1、2、3,第二行分别为4、5、6、7,第三行分别为8、9、10、11,第四行分别为12、13、14、15。2、程序实现功能(1)十进制加减乘除法计算:输入范围为(19999999),该程序输出为七位计算结果。数据输入采用规范化输入,输入完成显示键显示计算结果;(2)计算机复位功能:ON/C均为清零重启,任何时候按下ON/C中一个将重新开始。3、部分程序介绍:该计算器有

27、5个子程序:PLUS(加法),SUB(减法),WUL(乘法),DIV(除法),KEY-NAME(获得键值)。行列的扫描线分别接到1口的高4位和低4位。4、消除按键抖动的方法:通常的按键所用开关为机械弹性开关。由于机械触电的弹性作用,按键在闭合和断开均伴随有一连串的抖动,键抖动会引起一次按键误差多次,为了确保 CPU对键的一次闭合仅作一次处理,必须去除抖动。消除抖动的方法有硬件和软件两种方法。硬件方法常用RS 触发器电路。软件方法是当检测出键闭合后执行一个10ms 20 ms的延时程序,再一次检测键的状态,如仍保持闭合状态,则确定正有键按下LCD两位显示分别接在P3和P6.。加减乘除计算器采用L

28、CD液晶显示屏显示。2.3 硬件设计应用原理下图2.1是89C51芯片介绍图图2.1 89C51芯片89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51

29、是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1. 主要特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工

30、作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 2. 结构特点:8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器寻址范围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;2.3.1 LCD显示器的工作原理 LCD显示器的工作原理,对于笔记本电脑或者桌面型的LCD显示器需要采用的更加复杂的彩色显示器而言,还要具备专门处理彩色显示的色彩过滤层。通常,在彩色LCD面板中,每一个像素都是由三个液晶单元格构成,其中每一个单元格前面都分别有红色,绿色,或蓝色的过滤器。这样,通过不同单元格的光

31、线就可以在屏幕上显示出不同的颜色。LCD克服了CRT体积庞大、耗电和闪烁的缺点,但也同时带来了造价过高、视角不广以及彩色显示不理想等问题。CRT显示可选择一系列分辨率,而且能按屏幕要求加以调整,但LCD屏只含有固定数量的液晶单元,只能在全屏幕使用一种分辨率显示(每个单元就是一个像素)。CRT通常有三个电子枪,射出的电子流必须精确聚集,否则就得不到清晰的图像显示。下表2.1为LCD的功能及控制命令。LCD模块控制端LCD基本操作RSR/WE001写命令:用于初始化、清屏、光标定位等011读状态:读忙标志,读忙标志为“1”时3,表明LCD正在进行内部操作,此时不能进行其他是三类操作:当忙标志为“0

32、”时,表明LCD 内部操作完成,可以对其他三类操作,一般使用查询方式。101写数据:写入要显示的数据111读数据:将显示存储区的数据反读出来,一般比较少用。表2.1 LCD功能及控制命令若连续对LCD操作 应延时一段时间:工作方式:DL数据口位数DL=1八位DL=0四位,显示行数N=0一行,字形F=1、5*10;显示状态:显示开关D=1开显示,光标开关C=0光标不显示,光标闪烁B=0光标不闪烁;清屏:将光标设置为第一行第一列,屏幕清空;输入方式:I/D=1增量方式右移,I/D=0减量方式左移,S=1移位,S=0不移位。2.4 设计流程解析本次设计流程图如下图2.2所示。LCD显示零键盘行列扫描

33、初始化参数有 键 按 下读取键码开始键 码 是?数字键清零键运算功能键记忆其对应的键值是“=”?LCD显示其他键是“=”记忆其运算符LCD显示计算最后结果LCD显示图2.2 设计流程图2.5 程序模块设计1)主程序的设计主程序主要是用来进行初始化的,调用自检程序,清空各个标志位,清空缓存区,给定定时器0工作方式。在等待定时器0中断时主程序在以下程序段内循环。2)中断模块的程序设计进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。如果不是则退出

34、中断程序。图2.3 proteus软件使用3)显示模块的程序设计由于使用的是静态显示,故先要对SCON进行相关设置,让串口工作在方式0下,使用指令MOV SCON,#00H就可以了。首先从高位开始进行灭零显示,并将最后一个灭零的位,标志为负号位,然后判断负数标志位是否为一,是则将标志为负号位的送出显示负号(笔形码0FEH),否则直接送出显示。3 主程序程序清单:/* Note:Your choice is C IDE */#include stdio.h#includereg51.h#includeabsacc.h#includeintrins.h#define com XBYTE0x0000

35、 /LCD送命令#define dat XBYTE0x0002 /LCD送数据unsigned char code tab=0123456789.;unsigned char w,yi,yd,suan,d,h;unsigned long zl,pd;float z3,z2;void ys() unsigned char i,j;for(i=0;i10;i+)for(j=0;j100;j+);/*LCD初始化*/void INIT()com=0x3c;ys();com=0x0c;ys();com=0x01;ys();com=0x04;ys();com=0x8f;ys();/*显示程序*/void

36、 sip()unsigned char qq,q;if(yd=6)INIT();pd=zl;yd+;if(d=1)&(pd10)dat=tabpd;ys();dat=tab10;ys();dat=0;d=0;else if(yd=1)qq=pd%10;dat=tabqq;else for(q=0;q=0)&(zl=10)&(zl=100)&(zl=1000)&(zl=10000)&(zl=100000)&(zl=1000000)&(zl10000000)yd=6; else yd=101; /超出范围/*键值定义*/void split()switch(pd) /数字键 case 0:pd=7

37、;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 1:pd=8;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 2:pd=9;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 4:pd=4;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 5:pd=5;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 6:pd=6

38、;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 8:pd=1;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 9:pd=2;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case10:pd=3;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case13:pd=0;if(h=1)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break; case 3:suan

39、=/;z2=zl;h=1;yd=100;break; case 7:suan=*;z2=zl;h=1;yd=100;break; case 11:suan=-;z2=zl;h=1;yd=100;break; case 12:pd=0;yd=100;zl=0;h=1;d=0;break; case 14:fruit();break; case 15:suan=+;z2=zl;h=1;yd=100;break;sip();/*判断按键*/void key()ys();w=P1&0xf0;while(w!=0xf0)switch(w)case 0xe0:pd=yi*4+0;break;case 0x

40、d0:pd=yi*4+1;break;case 0xb0:pd=yi*4+2;break; case 0x70:pd=yi*4+3;break;split();while(w!=0xf0)w=P1&0xf0; void main()INIT();dat=0;while(1)for(yi=0;yi4;yi+)P1=_crol_(0xfe,yi);w=P1&0xf0;if(w!=0xf0)key(); ys();4 仿真4.1 Proteus软件介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。4.2 Proteus软件特点(1)互动的电路仿真用户甚至可以实时采用诸如LCD/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。(2)仿真处理器及其外围电路可以仿真51系列、AVR、PIC等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。具有3大功能模块:(1)个易用而又功能强大的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号