简易加减乘除计算
江西渝州科技职业学院
毕业设计
简易加减乘除计算
题目
器
系别电子系
专业应用电子技术
班级 08应电1班
姓名黄宏炎
学号1085030537
指导教师江小文
日期 2011年12月
摘要. II
前言. 1
目录. 2
1 单片机的发展及应用. 3
1.1 单片机的发展. 3
1.2 单片机的应用. 4
2 总体方案设计. 5
2.1系统框图. 5
2.2显示控制方案. 5
2.3键盘控制方案. 5
3 硬件设计. 6
3.1 89S51单片机的简介. 6
3.2 89S51单片机的引脚. 10
3.3 89S51I/O接口组成及功能. 11
3.4 74LS164的功能. 11
3.5 键盘接口工作原理. 13
3.6 七段LED显示工作原理. 15
3.7 电路原理. 16
4设计思路. 18
4.1 主程序模块. 18
4.2静态显示模块. 19
4.3 按键程序模块. 19
5 系统调试. 21
5.1 在伟福中的调试. 21
5.2 在Keil中的调试并连接实验箱. 22
6 结论. 26
致谢. 27
参考文献. 28
附录A 29
1 单片机的发展及应用
1.1 单片机的发展
单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃和颇具有生命力的机种。单片微型计算机简称单片机,特别适用于工业控制领域,因此又称为微控器。
1971年微处理器研制成功不久,就出现了单片微型计算机即单片机,但最早的单片机是1位的,处理能力有限。
果将8位单片机的推出作为起点,那么单片机的发展历史大
致可以分为以下几个阶段:
第一阶段(1976—1978):单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。
第二阶段(1978—1982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。
(1).完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
(2).CPU外围功能单元的集中管理模式。
(3).体现工控特性的地址空间及位操作方式。
(4).指令系统趋于丰富和完善,并且增加了许多突出控制
功能的指令。
第三阶段(1982—1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的
微控制器特征。
第四阶段(1990—):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉
价的专用型单片机。
1.2 单片机的应用
单片机的应用很广,分别在以下领域中得到了广泛的应用。
工业自动化:在自动化技术中,无论是过程控制技术、数据采集技术还是测控技术,都离不开单片机。在工业自动化的领域
中,机电一体化技术将发挥愈来愈重要的作用,在这种机械、微电子和计算机技术为一体的综合技术(例如机器人技术、数控技术)中,单片机将发挥非常重要的作用特别是近些年来,随着计算机技术的发展,工业自动化也发展到了一个新的高度,出现了无人工厂、机器人作业、网络化工厂等,不仅将人从繁重、重复和危险的工业现场解放出来,还大大提高了生产效率,降低了生
产成本。
仪器仪表:目前对仪器仪表的自动化和智能化要求越来越高。在自动化测量仪器中,单片机应用十分普及。单片机的使用有助于提高仪器仪表的精度和准确度,简化结构,减小体积,易于携带和使用,加速仪器仪表向数字化、智能化和多功能化方向
发展。
消费类电子产品:该应用主要反映在家电领域。目前家电产品的一个重要发展趋势是不断提高其智能化程度。例如,电子游戏、照相机、洗衣机、电冰箱、空调、电视机、微波炉、手机、IC卡、汽车电子设备等。在这些设备中使用了单片机后,其功能和性能大大提高,并实现了智能化、最优化控制信方面:较高档的单片机都具有通信接口,因而为单片机在通信设备中的应用创造了很好的条件。例如,在微波通信、短波通信、载波通信、光纤通信、程控交换等通信设备和仪器中都能
找到单片机的应用。
武器装备:在现代化的武器装备中,如飞机、军舰、坦克、导单、鱼雷制导、智能武器设备、航天飞机导航系统,都有单片
机在其中发挥重要作用。
终端及外部设备控制:计算机网络终端设备,如银行终端,以及计算机外部设备如打印机、硬盘驱动器、绘图机、传真机、复印机等,在这些设备中都使用了单片机。
近年来随着科技的飞速发展,同时带动自动控制系统日新月异更新,单片机的应用正在不断地走向深入。
2 总体方案设计
2.1系统框图
计算器的总体设计框图如图2.1所示。
AT89C51
最
小
应
用
系
统
按键电路
晶振电路
复位电路
LED
静
态
显
示
图2.1系统框图
2.2显示控制方案
在单片机应用系统中,显示分为静态示和动态显示,本次设计采用静态显示。静态显示数码管中的各位相互独立,而且各位的显示字符一经确定相应的输出将维持不变,直到显示另一个字符为止。正因为如此,静态显示的亮度都比较高。各位分别由一个8位I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口,较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,便于监测和控制,本设计所需显示位数不多,故采用静态显示模块,在实验箱上连接简
单、方便。
2.3键盘控制方案
键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟I/O 接口线,I/O接口线浪费较大,在单片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根I/O 接口线上,故只在按键数量不多时采用。而行列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省I/O接口。本次设计计算器所用按键较多,为节省I/O接口,方便设计,故采用矩阵式键盘。
3 硬件设计
3.1 89S51单片机的简介
AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种
控制领域。
主要性能参数:
·与MCS-51产品指令系统的全兼容
·4k字节可重擦写Flash闪速存储器
·1000次可擦写周期
·全静态操作:0Hz-24MHz
·三级加密程序存储器
·128×8字节内部RAM
·32个可编程I/O口线
·2个16位定时/计数器
·6个中断源
·可编程串行UART通道
·低功耗空闲和掉电模式
3.1.1 AT89C51功能特性描述:
AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到
下一个硬件复位。
图3.1.1 单片机AT89C51
3.1.2 AT89C51引脚功能说明:
3.2 89S51单片机的引脚
89S51单片机内部总线是单总线结构,即数据总线和地址总线是公用的. 89S51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。 89S51单片机为双列直插式封装结构, 如图
3.2所示。
图3.2 89S51引脚分配图
89S51单机的电源线有以下两种:
(1) VCC:+5V电源线。电源线
(2) GND:接地线。
89S51单片机的外接晶体引脚有以下两种:
(1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容
的一个引脚。
(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。
外接晶体引脚。
控制线 89S51单片机的控制线有以下几种:
(1) RST:复位输入端,高电平有效。
(2) ALE/PROG:地址锁存允许/编程线。
(3) PSEN:外部程序存储器的读选通线。
(4) EA/Vpp:片外ROM允许访问端/编程电源端。
3.3 89S51I/O接口组成及功能
8051共有4 I/O端口,为P0,P1,P2,P3;4个I/O口都是双向的,且每个口都具有锁存器。每个端口有8条线,共计32条I/O
线。
P0.0~P0.7;P1.0~P1.7;P2.0~P2.7;P3.0~P3.7
(1) P0 有三个功能
1)外部扩充存储器时,作数据总线(D0~D7)
2)外部扩充存储器时,作地址总线(A0~A7)3)不扩充时,作一般I/O使用,内部无上拉电阻,作为输
出/输入使用时应加上拉电阻.。
(2) P1只做I/O口使用,有内部上拉电阻。
(3)P2有两个功能
1) 扩充外部存储器时,作地址总线(A8~A15)使用。
2)作一般I/O口使用,有内部上拉电阻。
3)P3有两个功能
除作为I/O口(有内部上拉电阻)外,还有一些特殊
功能。
3.4 74LS164的功能
74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,用来驱动数码管。它内部有一个的8位移位寄存器,先一位一位地移入,等到8个移满了,再给出个信号将8位数据一起输出,就是所谓的串转并。其管脚图如下所示
图3.3 74Ls164管脚图其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位
二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q0…Q7(第3-6和10-13引脚)并行输出端分别接LED显示器的HG···A各段对应的引脚上。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲,第一个脉冲就会从最高位移出。这就是它的工作原理。其功能表如图
3.4所示
图3.474LS164功能图
3.5 键盘接口工作原理
在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机
通信。
3.6.1 按键开关的去除抖动功能
目前, MCS—51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.6所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。由于抖动,会造成被查询的开关状态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。为了保证CPU
对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产
生的前沿(后沿)抖动影响。
图3.6按键过程
3.6.2 阵列式键盘的接口电路
阵列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,在按键数较多的时候,为减少I/O接口线数,通常采用这种方式,设计计算器主要用到按键,选用阵列
式键盘方便易行。
1.键盘工作原理
行列式键盘电路原理如图3.7所示。按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5伏时,被钳位在高电平状态。
键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。键盘中哪一个键按下可由列线逐列置低电平后,
检查行输入状态来判断。
图3.7阵列式键盘原理电路
2.键盘工作方式
键盘的工作方式:
编程扫描方式、定时扫描方式、中断扫描方式三种。
在键盘扫描子程序中完成下述几个功能。
(1)判断键盘上有无键按下
(2)去键的机械抖动影响。
(3)求按下键的键号。
(4)键闭合一次仅进行一次键功能操作
3.键盘扫描方式
扫描法:在判定有键按下后逐列(或逐行)置低电平,同时读入行(或列)的状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。特点是逐列(或逐行)扫描查询。这时相应行(或列)应有上拉电阻接高电平。
反转法:只要经过两个步骤就可获得键值。
3.6 七段LED显示工作原理
LED显示器是由发光二极管显示字段的MCS-51单片机输出设备。单片机应用系统常采用七段LED数码管作为显示器,这重显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。因此应用比较广泛。
LED数码管显示器可以分为共阴极和共阳极两种结构。
(1)共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光,如图3.8A所示。
(2)共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低平有效,当某段输入低电平该段便发光,如图3.8b所示。
A .共阴极 b .共阳极
图3.8七段LED显示器
(3)LED静态显示方式:LED静态显示是指当数码管显示某一字符时,相应段的发光二极管处于恒定的导通或截止状态,直到需要显示另一个字符为止。
数码管工作在静态显示方式下,共阴极或共阳极连接在一起,若为共阴极则接地;为共阳极则接+5V电源。每位的段选线与一个8位的并行接口相连。只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。数码管中的各位相互独立,而且各位的显示字符一经确定,相应的输出将维持不变,直到显示另一个字符为止。也正因为如此,静态显示的亮度都比较
高。
静态显示方式各位可独立显示。由于各位分别由一个8未I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口,较小的电流即可获得较高的亮度,且占用CPU的时间少,编程简单,便于监测和控制,但其占用的接口线多,硬件电路复杂,成本高,只适合于显示位数较少
的场合。
用MCS-51单片机构建七段数码管静态显示系统时,5位数码管均采用共阴极LED,利用74LS1S164串入并出的特性,构成静态显示电路,单片机的P3.6作数据串行输出,P3.7作移位脉冲输出,用导线连接 P3.6、P3.7到串行静态显示模块的DIN、CLK端,这样就构成了计算器的显示部分。
3.7 电路原理
电路的核心是89S51单片机,其内部带有4KB的FLAsHROM,无须扩展程序存储器;电脑没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM,系统配备5位LED显示和4*4键盘,采用P1口接阵列式键盘,5个串/并移位寄存器芯片74LS164首尾相连,每片的并行输出作为LED数码管的段码控制驱动信号,把P3.6、P3.7连接到串行静态显示模块的DIN、CLK端。整个系统采用查表的方法,将数码管的段码定义和按键的键码定义分别以代码的形式送到LED数码管和键盘中。这样就构成了计算器的电路连接部分。如图3.9所示
图3.9电路原理图
4设计思路
关于这个设计,需要我们理解计算器的工作原理,熟练掌握编程指令的运用掌握算术运算指令及运算功能程序的编写方法。计算器简而言之,就是要实现加、减、乘、除的功能,其中
键盘和显示很重要。
4.1 主程序模块
首先,初始化参数,调显示子程序,判断是否有键按下,判断键码,看是否是数字键、功能键还是清零键然后对每一种情况
进行分别处理。如图4.1所示
图4.1主程序流程图
4.2静态显示模块
如图4.2所示。
图4.2中断程序流程图
4.3 按键程序模块
如图4.3所示
图4.3按键程序流程图
5 系统调试
完成了硬件的设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。系统调试包括硬件调试和软件调试两个部分。不过,作为一个单片机系统,其运行是软硬件相结合的,因此,软硬件的调试也是绝对不可能分开的。
5.1在伟福中的调试