《单片机简易计算器.pdf》由会员分享,可在线阅读,更多相关《单片机简易计算器.pdf(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新疆工业高等专科学校电气系课程设计说明书单片机简易计算器专 业 班 级:电 气 自 动 化09-40(3)班_ _ _ _ _ _ _ _学 生 姓 名:#_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _指 导 教 师:杨峰_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _完 成 日 期:2011年6月6日 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _电气与信息工程系课程设计任务书20 1 0/20 1 1学 年 第 二 学 期20 1 1年6月6日专
2、业电气自动化班级自动化0 9-40 (3)班课程名称单片机课程设计设计题目简 易 计 算 器指导教师杨 峰起止时间20 1 1.6.6-20 1 1.6.1 0周数1周设计地点单片机实验室设计目的:1、贯彻理论联系实际的教学原则,巩固已经学习过的单片机基础知识,提高学生的工程实践能力。2、掌握单片机的C语言编程方法。3、了解单片机仿真软件并掌握其使用方法4、加强组织性和纪律性,促进学生综合素质的全面提高。设计任务或主要技术指标:1、了解单片机原理及其编程方法。2、熟练掌握单片机仿真软件(K e i l u V i s i o n 3和p r o t e u s 7)。3、通过编程和仿真实现相应
3、控制任务。设计进度与要求:6.0 6置设计任务,深入了解设计内容,阅读参考资料,收集有关资料。6.0 7硬件方案设计及编程。6.0 8实现方案,调试、仿真。6.0 9编写设计说明书。6.1 0答辩。主要参考书及参考资料:苏家健等编的 单片机原理及应用技术 高等教育出版社.20 0 4。张 毅 坤 单片微型计算机原理及应用,西安电子科技大学出版社.1 9 9 8。余锡存 单片机原理及接口技术.陕西:西安电子科技大学出版社.20 0 0。毕 万 新 单片机原理及接口技术.大连理工出版社.20 0 2。田淑清 C语言程序设计高等教育出版社.20 0 7。教研室主任(签名)系(部)主 任(签名)年 月
4、 日新疆工业高等专科学校电气与信息工程系课程设计评定意见设计题目:_ _ _ _ _ _ _ _ _ _ _ _ 单片机简易计算器_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _学生姓名:#专业 电气自动化 班级 09-40(3)班评定意见:评定成绩:_ _ _ _ _ _ _ _ _ _ _ _指导教师(签名):年 月 日评定意见参考提纲:1.学生完成的工作量与内容是否符合任务书的要求。2.学生的勤勉态度。3.设计或说明书的优缺点,包括:学生对理论知识的掌握程度、实践工作能力、表现出的创造性和综合应用能力等。摘 要随着社会的发展,科学的进步,人们
5、的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的7位数计算器。该设计系统是以A T 8 9 c5 1 为单片机,P 1 口作为输入端,外 接 4 X 4 的键盘,通过键盘扫描来对输入数的控制,在 P 0 口接了驱动电路。用来保证L C D 的工作正常丁计算器将完成的功能有加,减,乘,除,清零等功能。该系统还设了功能键,开始显示0,按了键后就进入计算状态。关键词:单片机 AT89C51 4X4键盘
6、L C D目录1 单片机的介绍.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 对象选择器
7、窗口.214.3.3 图形编辑的基本操作.214.3.4 编辑区域的缩放.224.3.5 对象的添加和放置.224.4 系统仿真原理图.234.5 仿真图.23总 结.26致 谢.27参考文献.28单片机课程设计1单片机的介绍1.1 单片机的概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,是一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:C P U,内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚
8、至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜,为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。(TVTU)P3.(TSTT)P3.(TO)Plm)P3.施)P3.M P 3.AT89C52 AT89s51 AT89C51三种单片机的外形图AT89C51vccPO.0/(ADO)PO.I/(ADDPO.2/(AD2)PO.3/(AD3)P 0.4/M)PO.5/(ADS)PO.6/(AM)PO.7/(AD7)EA/VPPALE/PROCF 5 E NP2.6/(A14)P2.
9、5/(A13P2.4(AI2)P2.3/(A11P2.2/(A10)P2.1/(A9)P2.0/(A8AT89C51的引脚排列图1.1单片机外形及内部结构单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国5 0年代开发的7 4系列,或 者6 0年 代 的C D 4 0 0 0系列这些纯硬件来搞定的话,单片机通过编写程序可以实现高智能,高效率,以及高可靠性。早期的单片机都是8位 或4位的。其中最成功的是I N T E L的8 0 3 1,因为简易可靠而性能不错
10、获得了很大的好评。此 后 在8 0 3 1上发展出了 M C S 5 1系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制1单片机课程设计领域要求的提高,开始出现了 1 6位单片机,但因为性价比不理想并未得到很广泛的应用。9 0年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随 着I N T E L i 9 6 0系列特别是后来的A R M系列的广泛应用,3 2位单片机迅速 取 代1 6位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起8 0年代提高了数百倍。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌
11、入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的W i n d o w s和L i nu x操作系统。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的主要区别。单片机比专用处理器更适合应用于嵌入式系统。因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有b2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备4 0多
12、部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过P C机和其他计算的综合,甚至比人类的数量还要多。1.2单片机的基本组成1)中 央 处 理 器(C P U)M C S-5 1的C P U能处理8位二进制数或代码;2)内部数据存储器(R A M)8 0 5 1芯片共有2 5 6个R A M单元,其 中 后1 2 8单元被专用寄存器占用,能作为寄存器供用户使用的只是前1 2 8单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前1 2 8单元,简 称 内 部R A M。地址范围为0 0 H F F H(2 5 6 B)。是一个多用多功能数据存储器,
13、有数据存储、通用工作寄存器、堆栈、位地址等空间。3)内部程序存储器(R O M)在前面也已讲过,8 0 5 1内部有4 K B的R O M,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部R A M。地址范围为0 0 0 0 H-F F F F H (6 4 K B)。4)定时器/计数器8 0 5 1共 有2个1 6位的定时器/计数器,以实现定时或计数功能,并以其定2单片机课程设计时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对 P 3.4 (T O)或 P 3.5 (T 1)端口的低电平脉冲计数。5)并 行 I/O 口M C S-5 1 共 有 4个
14、 8位 的 I/O 口(P O、P l、P 2、P 3)以实现数据的输入输出。P O.0-P 0.7:P 0 口是一个8位漏极开路型双向I/O 端口。在访问片外存储器时,它 分 时 作 低 8位地址和8位双向数据总线用。在 E PR OM 编程时,由 P0输入指令字节,而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。P 0 能以吸收电流的方式驱动8 个 L S T T L 负载。Pl.0-P1.7(18 脚):P 1 是一上带内部上拉电阻的8 位 双 向 I/O 口。在E PR OM 编程和验证程序时,由它输入低8 位地址。P 1 能驱动4 个 L S T T L 负载。在 80
15、3 2/8052 中,P1.0 还相当于专用功能端T 2 ,即定时器的计数触发输入端;Pl.1 还 相 当 于 专 用 功 能 端 T 2 E X,即 定 时 器 T2的外部控制端。P2.0-P2.7(2 1-2 8 脚):P 2也是一上带内部上拉电阻的8 位 双 向 I/O 口。在访问外部存储器时,由它输出高8 位地址。在 对 E PR OM 编程和程序验证时,由它输入高8 位地址。P 2 可 以 驱 动 4 个 L S T T L 负载。P3.0-P3.7(10-17脚):P 3 也是一上带内部上拉电阻的双向I/O 口。在 M C S-51中,这 8 个引脚还用于专门的第二功能。P 3 能
16、驱动4 个 L S T T L 负载。P3.0 R X D (串行口输入)P3.1 T X D (串行口输出)P3.2 I NT O(外 部 中 断 0 输入)P3.3 I NT 1(外 部 中 断 1 输入)P3.4 T 0(定 时 器 0 的外部输入)P3.5 T 1(定 时 器 1 的外部输入)P3.6 W R (片外数据存储器写选通)P3.7 R D (片外数据存储器读选通)6)串行口M C S-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。R X D (P3.0)脚为接收端口,T X D (
17、P3.1)脚为发送端口。7)中断控制系统M C S-51单片机的中断功能较强,以满足不同控制应用的需要。共 有 5 个中断源,即外中断2个,定时中断2个,串行中断1 个,全部中断分为高级和低3单片机课程设计级共二个优先级别。8)时钟电路M C S-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12 M H Zo1.3单片机及单片机系统单片机是微型计算机发展的一个分支,是一种专门面向控制的微处理器件,故又称之为微控制器(M i cr o C o ntr o l l e r U ni t,M C U)o单片机通常以单一芯片的形式出现,但
18、是它已具有了微型计算机所包含的基本组成结构和特有的控制应用功能,是一种芯片级的微型计算机。另外,由于单片机的体积、结构和功能特点,在实际应用中可以完全融入应用系统之中,故而也称为嵌入式微控制器(E m b e d d e d M i cr o-C o ntr o l l e r)。最基本的单片机系统由单片机芯片和软件程序共同组建而成,是用户为了实现某种控制用途的需要而设计的实际装置。在单片机系统中,单片机芯片内部的中央处理单元(C PU)处于核心地位,C PU通过执行软件程序调动硬件电路完成控制功能。根据这种工作方式,单片机系统可以划分为硬件和软件两个组成部分。单片机系统的硬件部分是包括CP
19、U在内的所有硬件电路,按照硬件电路的功能和配置大致可以分为以下3类1)基本功能类基本功能类硬件包括:CP U(用于运算、控制)、R A M(用于数据存储)、R O M(用于程序存储)、I/O设备(实现串行、并行输入/输出接口)及时钟电路(建立工作时序)。在微型计算机中,上述部件被分成若干块芯片,安装在一块称之为主板的印刷线路板上,在程序的指挥下完成计算机的基本运算操作功能。但是在单片机中,除了时钟电路之外,其余部分一般均被集成到一块半导体芯片上,所以被称为单片机,即单芯片微型计算机。2)控制功能类控制功能类硬件包括:定时器/计数器(用于时间设定/事件记录)和中断装置(实现实时处理)。使用这类硬
20、件是为了实现单片机的控制功能,即定时控制、顺序控制和实时控制等基本控制功能。作为面向嵌入式控制的特色,这类部件通常也集成在单片机芯片内部。3)辅助功能类4单片机课程设计辅助功能类硬件包括:A/D(模/数转换)和D/A (数/模转换,通 常 采 用P W M形式)等部件。这类部件根据芯片的配置不同不一定集成在单片机芯片上,需要用户根据使用要求选择。单片机的软件部分与微型计算机的运行原理相似,单片机系统的运行也需要软件系统的支持,但是由于处理任务的不同,其复杂程度相对较低。根据单片机软件所要实现的功能,可以将软件划分为管理程序和应用程序两类。1)管理程序管理程序是单片机系统的监控程序,主要用于控制
21、过程复杂,控制量较大的装置,例如测控仪器、仪表等。对于仅完成简易控制任务的单片机系统一般可以相应简化。2)应用程序应用程序是针对具体的控制动作而编写的程序,是实现控制具体功能的程序基础,通常以子程序模块的形式出现,便于执行控制动作时调用。1.4 MSC-51芯片简介1.4.1 M CS-5 1单片机内部结构8 0 5 1是M CS-5 1系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8 0 5 1单片机包含中央处理器、程序存储器(R O M)、数据存储器(R A M)、定时/计数器、并行接口、串行接口和中断系统等儿大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说
22、明:中央处理器中央处理器(CP U)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CP U负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(R A M)8 0 5 1内 部 有1 2 8个8位用户数据存储单元和1 2 8个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的R A M只 有1 2 8个,可存放读写的数据,运算的中间结果或用户定义的字型表。下图为M C S-5 1系列单片机8 0 5 1的内部结构图,如 图1.2所示。5单片机课程设计80
23、51内部结构据线址线数总地总8051时钟I程序存绪器I I数据存绪器I I定时计数器Im制线控总图1.2 8051内部结构示意图 程序存储器(R O M)8 0 5 1共 有4 0 9 6个8位 掩 膜R O M,用于存放用户程序,原始数据或表格。定时/计数器(R O M)8 0 5 1有 两 个1 6位的可编程定时7计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口8 0 5 1共 有4组8位I/O 口(P 0、P l、P 2或P 3),用于对外部数据的传输。全双工串行口8 0 5 1内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信
24、收发器,也可以当同步移位器使用。中断系统8 0 5 1具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路8 0 5 1内置最高频率达1 2 M H z的时钟电路,用于产生整个单片机运行的脉冲时序,但8 0 5 1单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(H a r va r d)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(P r i n c e t o n)结构。I N TEL的M C S-5 1系列单片机采用的是哈佛结构
25、的形式,而后续产品1 6位 的M C S-9 6系列单片机则采用普林斯顿结构。下 图1.3是M C S-5 1系列单片机的内部结构示意图:6单片机课程设计图1.3 MCS-51系列单片机内部结构图1.4.2 M C S-5 1 的引脚说明M C S-5 1 系列单片机中的8 0 3 L8 0 5 1 及 8 7 5 1 均采用4 0 P i n 封装的双列直接D I P 结构,右图是它们的引脚配置,4 0 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组 8位 共 3 2 个 I/O 口,中断口线与P 3 口线复用。现在我们对这些引脚的功能加以说明:M C S-5 1 的引脚说明:
26、M C S-5 1 系列单片机中的8 0 3 L8 0 5 1 及 8 7 5 1 均采用4 0 P i n 封装的双列直接D I P 结构,右图是它们的引脚配置,4 0 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组 8位 共 3 2 个 I/O 口,中断口线与P 3 口线复用。现在我们对这些引脚的功能加以说明:如 图 1.4 所示:P1.0Pl.1P1.2P1.3P1.4P1.5P1 6P1 7RSTRXD/P3 0TXD/P3-1IHT0ZP3,2IHTT/P3.3T0/P3.4T1/P3.5啦pa.GRD/P3.7XTAL2XTAL1 cc P0.O/ADO3 P0.1/
27、AD1 P0.2/AD2 P0.P0.PDIF P2.7/A1S P2.6/A14 P2.5/A13 P2.4/Al 2 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 P0.5/AD5 PO.6/AD6 PO.7/AD7 EA/V33图1.4 MCS-51系列单片机的引脚说明7单片机课程设计 P i n 9:R ES ET/Vpd复位信号复用脚,当8 0 5 1通电,时钟电路开始工作,在R ES ET引脚上出现2 4个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器P C指 向0000H,P 0-P 3输出口全部为高电平,堆栈指针写入07 H,其它专用寄存器被清
28、“0。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RA M (包括工作寄存器R0R7)的状态,8 05 1的初始态。如 图1.5为8 05 1的时钟工作方式。81 r内部时钟方式外部时钟方式图 1.5 8051时钟工作方式8 05 1的复位方式可以是自动复位,也可以是手动复位,如 下 图1.6为8 05 1的复位方式,此外,RESET/Vp d还是一复用脚,Vc c掉电其间,此脚可接上备用电源,以保证单片机内部RA M的数据不丢失。上 电自动复位 手动复位电路图 1.6 8051复位方式 P i n 3 0:A L E/旃当访问外部程序器时,A L
29、 E(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,A L E端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,A L E会跳过一个脉冲。如果单片机是EP RO M,在编程其间,丽将用于输入编程脉冲。8单片机课程设计 P i n 29:赖当访问外部程序存储器时,此脚输出负脉冲选通信号,P C 的16 位地址数据将出现在P 0 和 P 2 口上,外部程序存储器则把指令数据放到P 0口上,由 C P U 读入并执行。P I.o cP1.1 CP1.2 CP1.3 CP l.4 CP1.5 CP
30、 l.6 CP1.7 LRESET CRXD/P3.0 CTXD/P3.1 CIBT0/P3.2 CINT1/P3.3 CT0/P3.4 CT1/P3.5 CTO/P3.6 CM/P3.7 CXTAL2 CXTAL1 CPDIP Vss C01234567890123456789111111111120987654321098765432143333333333222222222J Vcc PO.O/ADOJ PO.1/AD1 PO.2/AD2I PO.3/AD3J PO.4/AD4J PO.5/AD5 PO.6/ADSJ PO.7/AD7J EA/VppJ ALE/PROt PSEN P2.
31、7/AD15 P2.6/AD14J P2.5/AD13J P2.4/AD12 P2.3/AD 11 P2.2/AD 10J P2.1/AD9 P2.0/AD8图1.7引脚图样 P i n 3 1:EA/Vp p 程序存储器的内外部选通线,8 05 1和 8 7 5 1单片机,内置有 4 k B 的程序存储器,当 E A 为高电平并且程序地址小于4 k B 时,读取内部程序存储器指令数据,而 超 过 4 k B 地址则读取外部指令数据。如 E A 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的 8 03 1,E A 端必须接地。在编程时,EA/Vp p 脚还需加
32、上21V的编程电压。9单片机课程设计2简易计算器的设计2.1 设计要求设计一个可以进行加减乘除简易运算的计算器要求:使 用 L C D 16*1制作一个简易的计算器;拥有+、-、*、/的算法;除法保留一位小数;L C D 使用直接访问的方式;最大能算至百万位。2.2 设计思路本实训设计一个可以进行加减乘除四种运算的计算器,主要包括三个模块:键盘扫描,数据的加减乘除运算,L C D 显示。M C U 的 P 1 口作为键盘的输入,采用软件循环扫描,P 3 和 P 6 作 为 L C D 的输出口,采用静态显示七位数据。1、操作显示设备显示设备采用L C D 显示器,共 设 置 1 6个键,其中数
33、字键0-9共十个,接下来依次是加号键、减号键、乘号键、等于号、清除键。操作设备是两行八列共16 键的简易键盘。第一行从左至右分别为0、1、2、3,第二行分别为4、5、6、7,第三行分别为8、9、10、1 1,第四行分别为12、13、14、15 o2、程序实现功能(1)十进制加减乘除法计算:输入范围为(1-9 9 9 9 9 9 9),该程序输出为七位计算结果。数据输入采用规范化输入,输入完成显示键显示计算结果;(2)计算机复位功能:O N/C 均为清零重启,任何时候按下O N/C 中一个将重新开始。3、部分程序介绍:该计算器有5个子程序:P L U S(加法),S U B(减法),W U L
34、(乘法),D I V(除法),K E Y-N A M E (获得键值)。行列的扫描线分别接到1 口 的 高 4位 和 低 4位。4、消除按键抖动的方法:通常的按键所用开关为机械弹性开关。由于机械触电的弹性作用,按键在闭合和断开均伴随有一连串的抖动,键抖动会引起一次按键误差多次,为了确保 C P U 对键的一次闭合仅作一次处理,必须去除抖动。消除抖动的方法有硬件和软件两种方法。硬件方法常用RS触发器电路。软件方法是当检测出键闭合后执行一个10 m s 20 ms的延时程序,再一次检10单片机课程设计测键的状态,如仍保持闭合状态,则确定正有键按下L C D两位显示分别接在P 3和 P 6.o加减乘
35、除计算器采用L C D液晶显示屏显示。2.3 硬件设计应用原理下 图2.1是8 9 C 5 1芯片介绍图图2.1 8 9 C 5 1芯片8 9 C 5 1是一 种 带4 K字节闪烁可编程可擦除只读存储器(FP E R O M Fa l s hP r o g r a m m a b l e a n d E r a s a b l e R e a d O n l y M e m o r y)的低 电压,高性能 C M 0 S 8 位微处理器,俗称单片机。8 9 C 20 5 1是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除10 0次。该器件采用A T M
36、E L高密度非易失存储器制造技术制造,与工业标准的M C S-5 1指令集和输出管脚相兼容。由于将多 功 能8位C P U和闪烁存储器组合在单个芯片中,A T M E L的8 9 c 5 1是一种高效微控制器,8 9 c 205 1是它的一种精简版本。8 9 c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.主要特性:与M C S-5 1兼容 4 K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0H z-24 H z 三级程序存储器锁定 128*8位 内 部R A M 32可 编 程I/O线1 1单片机课程设计 两 个 16 位定时器/计数器
37、5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路此外,A T 8 9 c 5 1 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,C P U 停止工作。但 R A M,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保 存 R A M 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.结构特点:8 位 C P U;片内振荡器和时钟电路;3 2 根 I/O 线;外部存贮器寻址范围R O M、R A M 6 4 K;2 个 16 位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;2
38、.3.1 L C D 显示器的工作原理L C D 显示器的工作原理,对于笔记本电脑或者桌面型的L C D 显示器需要采用的更加复杂的彩色显示器而言,还要具备专门处理彩色显示的色彩过滤层。通常,在彩色 L C D 面板中,每一个像素都是由三个液晶单元格构成,其中每一个单元格前面都分别有红色,绿色,或蓝色的过滤器。这样,通过不同单元格的光线就可以在屏幕上显示出不同的颜色。L C D 克服了 C R T 体积庞大、耗电和闪烁的缺点,但也同时带来了造价过高、视角不广以及彩色显示不理想等问题。C R T 显示可选择一系列分辨率,而且能按屏幕要求加以调整,但 L C D 屏只含有固定数量的液晶单元,只能在
39、全屏幕使用一种分辨率显示(每个单元就是一个像素)。C R T 通常有三个电子枪,射出的电子流必须精确聚集,否则就得不到清晰的图像显示。下 表 2.1为 L C D 的功能及控制命令。12单片机课程设计表 2.1 L C D 功能及控制命令LCD模块控制端L C D 基本操作S/WE1写命令:用于初始化、清屏、光标定位等1读状态:读忙标志,读 忙 标 志 为“1”时 3,表明L C D 正在进行内部操作,此时不能进行其他是三类操作:当忙标志为“0”时,表 明 L C D 内部操作完成,可以对其他三类操作,一般使用查询方式。1写数据:写入要显示的数据1读数据:将显示存储区的数据反读出来,一般比较少
40、用。若连续对L C D 操作应延时一段时间:工作方式:D L 数据口位数D L=1 八 位 D L=O 四位,显示行数N=0 一行,字形F=l、5*1 0;显示状态:显示开关D=1 开显示,光标开关C=0 光标不显示,光标闪烁B=0光标不闪烁;清屏:将光标设置为第一行第一列,屏幕清空;输入方式:I/D=l 增量方式右移,I/D=0 减量方式左移,S=1 移位,S=0 不移位。2.4 设计流程解析本次设计流程图如下图2.2所示。1 3单片机课程设计图2.2设计流程图2.5 程序模块设计1)主程序的设计单片机课程设计主程序主要是用来进行初始化的,调用自检程序,清空各个标志位,清空缓存区,给定定时器
41、0工作方式。在等待定时器0中断时主程序在以下程序段内循环。2)中断模块的程序设计进入定时器0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为一,如果不为一,说明这不是持续按键导致的按键相应,并且进行相应的程序。如果不是则退出中断程序。图 2.3 proteus软件使用3)显示模块的程序设计由于使用的是静态显示,故 先 要 对SCO N进行相关设置,让串口工作在方式0下,使用指令M O V SCO N,#00H就可以了。首先从高位开始进行灭零显示,并将最后一个灭零的位,标志为负号位,然后判断负数标志位是否为一,是则将标志为
42、负号位的送出显示负号(笔形码0F E H),否则直接送出显示。15单片机课程设计3主程序程序清单:/*Note:Your choice is C IDE*/#include stdio.h#includereg51.hn#includenabsacc.hn#includenintrins.h#define com XBYTE0 x0000/LCD 送命令#define dat XBYTE0 x0002/LCD 送数据unsigned char code tab=0123456789.0;unsigned char w,yi,yd,suan,d,h;unsigned long zl,pd;flo
43、at z3,z2;void ys()unsigned char i,j;for(i=0;i10;i+)for(j=0;j100;j+);/*LCD 初始化*/void INIT()L com=0 x3c;ys();com=0 x0c;ys();com=0 x01;ys();com=0 x04;ys();com=0 x8f;ys();16单片机课程设计void sip()unsigned char qq,q;if(yd=6)INIT();pd=zl;yd+;if(d=l)&(pd10)dat=tabpd;ys();dat=tab10;ys();dat=10,;d=0;else if(yd=l)q
44、q=pd%10;dat=tabqq;)else for(q=0;q=0)&(zl=10)&(zl=100)&(zl=1000)&(zl=10000)&(zl=100000)&=1000000)&(zl 10000000)yd=6;else yd=101;超出范围/*定义*/void split()switch(pd)数字键case 0:pd=7;if(h=l)h=0;zI=0;if(zl1000000)zl=zl*10+pd;break;case l:pd=8;if(h=l)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break;case 2:pd=9;if(h=l)h
45、=0;zl=0;if(zl1000000)zl=zl*10+pd;break;case 4:pd=4;if(h=l)h=0;zl=0;if(zl 1000000)zl=zl*10+pd;break;case 5:pd=5;if(h=l)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break;case 6:pd=6;if(h=l)h=0;zl=0;if(zl 1000000)zl=zl*10+pd;break;case 8:pd=l;if(h=l)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break;case 9:pd=2;if(h=l)h=0;
46、zl=0;if(zl1000000)zl=zI*10+pd;break;casel0:pd=3;if(h=l)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break;casel3:pd=0;if(h=l)h=0;zl=0;if(zl1000000)zl=zl*10+pd;break;case 3:suan=7,;z2=zl;h=l;yd=100;break;case 7:suan=,*,;z2=zl;h=l;yd=100;break;case 11:suan=L,;z2=zl;h=1 ;yd=100;break;case 12:pd=0;yd=100;zl=0;h=l;
47、d=0;break;case 14:fruit();break;case 15:suan=,+,;z2=zl;h=l;yd=100;break;18单片机课程设计sip();/*判 断 按 键*/void key()ys();w=Pl&0 xf0;while(w!=OxfO)switch(w)case 0 xe0:pd=yi*4+0;break;case 0 xd0:pd=yi*4+l;break;case 0 xb0:pd=yi*4+2;break;case 0 x70:pd=yi*4+3;break;split();while(w!=0 xf0)w=P 1&0 xf0;void main(
48、)INIT();dat=10,;while(l)for(yi=0;yiStart/Stop debug Session 图标,进入调试环境。按“F5”键,顺序运行程序。调 出“Proteus ISIS”界面,以观察LCD的显示,如 图4.6所示。(a)(b)图4.6仿真图及波形25单片机课程设计总 结本次实训我们小组用单片机设计了计算器,简单说明了计算器的工作原理,设计要求和程序设计方法。这次课程设计通过小组的共同努力终于顺利完成,当然还有一些不足之处,由于时间仓促本次设计并没有实现小数的计算,负数以及更多数位的显示的计算可在本设计基础上完善,以实现更加强大的功能。在理论知识方面,我们对所学过
49、的知识理解的不够深刻,掌握的不够牢固,对单片机语言掌握的不够好。总的来说,这次单片机课程设计对我们来说意义很大,不仅巩固了以前学过的知识,还学到了书本上学不到的知识,锻炼了我们的动手操作能力和增强了与他人合作的团队意识。26单片机课程设计致 谢在本次单片机课程设计学习中,我提高了对理论知识和实践操作的结合能力。特别感谢指导老师的耐心教诲,感谢给予我组帮助的指导老师和同学,让我完成了本次设计。在此,我对你们衷心的说声:“谢谢各位,你们辛苦了!”谨此也诚挚的感谢我组成员:李旭升、闫骄梅、余鹏。27单片机课程设计参考文献 1 苏 家 健 等 编 的 单片机原理及应用技 术 高 等 教育出版社,2 0 0 4 2 张 毅 坤 单片微型计算机原理及应用西安电子科技大 学 出 版 社,1 9 9 8 3 余 锡 存 单片机原理及接口技术 陕 西:西 安 电 子 科 技 大 学 出 版 社,2 0 0 0 4 毕 万 新 单片机原理及接口技术大连理 工 出 版 社,2 0 0 2 5 田 淑 清 C语 言 程 序 设 计 高 等 教 育 出 版 社,2 0 0 728
限制150内