ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:130.77KB ,
资源ID:19772175      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19772175.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计十进制加法计算器设计Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计十进制加法计算器设计Word文档格式.docx

1、学生签名: 2016年12月26日课程设计(论文)评审意见(1)任务难易及完成情况:优()、良()、中()、般()、差();(2)完成调试能力评价八(3)论文撰写水平评价、差();(4)论文格式规范性评价(5)考勤及任务饱满情况评阅人:2017 年1 月7 日1、 摘要 22、 设计任务和要求 23、 单片机简要原理 33.1AT89C51 的介绍 33.2单片机最小系统 83.3七段共阳极数码管 94、 硬件设计 94.1键盘电路的设计 94.2显示电路的设计 115、 软件设计 125.1 系统设计 125.2显示与按键设计 146、 系统调试. 226.1系统初始状态的调试 226.2键

2、盘输入功能的调试 236.3系统运算功能的调试 257、 心得体会 26参考文献 29附录系统硬件电路图 291、 摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时 带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应 用系统中,单片机往往作为一个核心部件来使用, 仅单片机方面知识 是不够的,还应根据具体硬件结构软硬件结合,加以完善。本设计是实现两位数的加减运算的简易计算器, 实现键盘输入,由七段LED数码管输出;程序都是根据教材内和网络中的程序参考编 写而成,在功能上还并不十分完善,限制也较多。本设计重在设计构 思,使得我们用专业知识、专业技能分析和解决问题,通过设计使得

3、 我们对所学知识彻底巩固。2、 设计任务和要求本次课程设计,我选题是单片机十进制加法计算器软设计 ,设计任务为:设计一键盘显示装置,键盘上除需定义10个十进制数字键外还要 相应的功能键,其它键不定义无响应。利用此系统可分别可输入十进 制被加数与加数,实现两数相加并将结果以十进制形式显示出来。(扩 展:多位10进制数相加)本课程设计的十进制加法计算器的计算范围为 0255,计算结 果全为整数,计算结果溢出结果不显示。1、加法:三位加法,计算结果超过255溢出不显示2、减法:三位减法,计算结果若小于零溢出不显示3、乘法:三位数乘法4、除法:整数除法5、有清零功能3、单片机简要原理在该课程设计中,主

4、要用到一个 AT89C51芯片和串接的共阴数 码管。作为该设计的主要部分,下面将对它们的原理及功能做详细介 绍和说明。3.1 AT89C51 的介绍:图一 AT89C51外形结构和引脚分布图芯片AT89C51的外形结构和引脚图如图一所示。AT89C51是一种带4K 字节闪烁可编程可擦除只读存储器(FPEROFalsh Programmable and Erasable Read Only Memory )的低电压,高性能 CMOS位微处 理器,俗称单片机。该器件采用ATME高密度非易失存储器制造技术 制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功 能8位CPU和闪烁存储器组合

5、在单个芯片中,ATMEL勺AT89C51是一 种咼效微控制器,为很多嵌入式控制系统提供了一种灵活性咼且价廉 的方案。其功能特性描述:AT89C5单片机在电子行业中有着广泛的应用。AT89C52具有以下标准功能:8k字节Flash , 256字节RAM 32位 I/O 口线,看门狗定时器,2个数据指针,三个16位 定时器/计数 器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电 路,8位微控制器8K字节在系统可编程Flash ROM。P0 口: P0 口是一个8位漏极开路的双向I/O 口。作为输出口, 每位能驱动8个TTL逻 辑电平。对P0端口写“ 1”时,引脚用作高 阻抗输入端用。在

6、访问外部数据存储器或程序存储器时, P0 口被分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口: P1 口是一个具有内部上拉电阻的 8位双向I/O 口,P1 输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“ 1”时,内部 上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入 (P1.0/T2 )和时器/计数器2的触发输入(P1.1

7、/T2EX),具体如下表 所示。在flash编程和校验时,P1 口接收低8位地址字节。P1端口引脚号第二功能:P1.0 T2 (定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX定时器/计数器T2的捕捉/重载触发信号和方向控制)P2 口 : P2是一个带有内部上拉电阻的 8位双向I/O 口,P2的 输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口 P2写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入 口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号 拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执 行MO

8、VX DPT指令)时,P2 口送出高8位地址数据。在访问8位 地址的外部数据存储器(如执行MOVRI指令)时,P2 口输出P2锁 存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3 口: P3 口是一组带有内部上拉电阻的 8位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流) 4个TTL逻辑门电路。对P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。此 时,被外部拉低的P3 口将用上拉电阻输出电流(IIL )。P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制 信号。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功 能。P

9、3 口亦作为AT89C52特殊功能(第二功能)使用,如下所示。在flash编程和校验时,P3 口也接收一些控制信号。P3端口引脚第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断 0)P3.3 INT1(外中断 1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST复位输入。当振荡器工作时, RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PRO当访问外部程序存储器或数据存储器时, ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。一

10、般情况下,ALE 仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时 钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过 一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PRO)如有必要,可通过对特殊功能寄存器(SFR区中的8EH单元的 DO位置位,可禁止 ALE操作。该位置位后,只有一条 MOV)和MOVC 指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部 程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN输出是外部程序存储器的读选通 信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器 周期两次PSEN有效

11、,即输出两个脉冲,在此期间,当访问外部数据 存储器,将跳过两次PSEN言号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地 址为OOOOH-FFFFH, EA端必须保持低电平(接地)。需注意的是:如 果加密位LB1被编程,复位时内部会锁存 EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指 令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当 然这必须是该器件是使用12V编程电压Vpp。引脚使用说明:I/O端口的编程实际上就是根据应用电路的具体功能和要求对I/O寄存器进行编程。具体步骤如下:1.根据实际电路的要求,选择要使用哪些I/O端口

12、。2.初始化端口的数据输出寄存器,应避免端口作为输出时的开 始阶段出现不确定状态,影响外围电路正常工作。3.根据外围电路功能,确定PO端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为 PO的复位缺省值为输入。4.用作输入的P0管脚,需上拉电阻。5.最后对I/O端口进行输出(写数据输出寄存器)和输入(读端 口)编程,完成对外围电路的相应功能。3.2 单片机最小系统单片机最小系统就是支持主芯片正常工作的最小部分,包括主控 芯片、复位电路和晶振电路。(一) 复位电路图二复位电路本设计采用上电与手动复位电路,电阻分别选取 100和10K电容选取10uF,系统一上电,

13、芯片就复位,或者中途按按键也可以进行复位。(二) 晶振电路.XI,CRYSTALltAI XT2 XT130pF 图三 晶振电路晶振电路是单片机的心脏,它用于产生单片机工作所需要的时钟信 号。单片机的晶振选取11.0592MHz晶振旁电容选取30pF。3.3七段共阳极数码管图四 七段共阳数码管图为七段共阳数码管的引脚图,从左到右数码管的段码分别为 a,b,c,d,e,f,g和小数点dp,低电平时点亮,最右边为位选端。4、硬件设计简易数字计算器系统硬件设计主要包括: 键盘电路,显示电路以及其他辅助电路。下面分别进行设计。4.1键盘电路的设计键盘可分为两类:编码键盘和非编码键盘。编码键盘是 较多按

14、键(20个以上)和专用驱动芯片的组合,当按下某个 按键时,它能够处理按键抖动、连击等问题,直接输出按键 的编码,无需系统软件干预。通用计算机使用的标准键盘就 是编码键盘。当系统功能比较复杂,按键数量很多时,采用 编码键盘可以简化软件设计。但大多数智能仪器和电子产品 的按键数目都不太多(20个以内),为了降低成本和简化电 路通常采用非编码键盘。非编码键盘的接口电路有设计者根 据需要自行决定,按键信息通过接口软件来获取。本课题需 要的是16个按键,故选择用非编码键盘。计算器输入数字和其他功能按键要用到很多按键, 如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口 资源,

15、因此在很多情况下都不采用这种方式, 而是采用矩阵键盘的方 案。矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键 盘,在行线和列线的每个交叉点上设置一个按键。 这样键盘上按键的个数就为4X 4个。这种行列式键盘结构能有效地提高单片机系统中 I/O 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图五所示:一般有16 个键组成,在单片机中正好可以用一个 P 口实现16个按键功能,这种 形式在单片机系统中也最常用。具体电路连接如图五所示:1 1- ,-k - 1 1 w0 0 1 11 V0 - 0 fc O II3 二O O9匸彳 |O OU II . o o4=.oO O图五 4*

16、4键盘接口电路4.2显示电路的设计当系统需要显示少量数据时,采用LE敢码管进行显示是一种经济实用的方法。数码管显示有静态显示和动态显示两种方法。 为了减少端口的使用,故选择动态显示。 电路如下图六所示:图六 三位数码管的显示电路5、 软件设计在十进制加法计算器的软件规划要求下,简易计算器的程序主要包括以下功能模块:(1) 主模块,为系统的初始化。(2) 显示与读键模块,分为判键程序段、运算操作子程序、显示子程序等部分;5.1系统设计(一) 系统模块图图七系统模块图此系统包括晶振电路、复位电路、LED显示电路、矩阵按键电路 运算法则指示灯以及单片机。其中通过输入键盘模块将数字 09和运算符号“

17、+”、“-”、“*”、“/”输入单片机进行运算;运算模块分别根 据输入的运算符进行加减乘除运算;显示模块将运算后的数值通过动 态扫描使之在数码管上输出。(二) 系统总流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标 志位,清空缓存区,读取键码,判断功能,在 LEDk作出回应,主程 序流程图如图六所示。(1)数字送显示缓冲程序设计简易计算器所显示的数值最大位三位。要显示数值,先判断数值 大小和位数,如果是超过三位或大于 255,将不显示数字。可重新输 入数字,再次计算。(2)运算程序的设计首先初始化参数,送LE三位显示0”,其它位不显示。然后扫描 键盘看是否有键输入,若有,读取键码

18、。判断键码是数字键、清零键 还是功能键,是数值键则送LE显示并保存数值,是清零键则做清零 处理,是功能键则又判断是=”还是运算键,若是=”则计算最后结果 并送LED显示,若是运算键则保存相对运算程序的首地址。5.2 显示与按键设计(一) LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也称为 七段LEE显示器。为了显示数字或符号,要为LEDB示器提供代码,即 字形代码。七段发光二极管,再加上一个小数点位,共计 8段,因此 提供的字形代码的长度正好是一个字节。简易计算器用到的数字 09 的共阳极字形代码如下表:显示字型gfedcba段码10c0h0f9h20a4h30b0

19、h499h592h682h70f8h880h990h表一 共阳极数码管段码对照表(二)读键子程序设计为了实现键盘的数据输入功能和命令处理功能, 每个键都有其处 理子程序,为此每个键都对应一个码 一一键码。为了得到被按键的键 码,现使用行扫描法识别按键。其程序框图如图八:读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进 行两次读键。第一次所有列线均输出低电平,从所有读入键盘信息(行 信息);第二次所有行线均输出低电平,从所有行线读入键盘信息(列 信息)。将两次读键信息进行组合就可以得到按键的特征编码,然后 通过查表得到按键的顺序编码。将各特征编码按希望的顺序排成一张 表,然后用当前读得的

20、特征码来查表。当表中有该特征码时,它的位 置就是对应的顺序编码;当表中没有该特征码时,说明这是一个没有 定义的键码,与没有按键(OFFH)同等看待。(三)流程图初始化地址参数输出列扫描信号等待按键释战列扫描信号移位读入行信号图八计算键值子程序流程图(四)源程序RESULTEQU60HRESULT161HFUNCTIONKEY EQU62HORGOOHSTART:MOVR3,#0FUNCTIONKEY,#O32H,#00H33H,#00H34H,#00HMLOOP:CALLDISP;调显示子程序WAIT:TESTKEY判断有无按键JZWAITGETKEY ;读键INCR3按键个数CJNEA,#0

21、,NEXT1判断是否数字键LJMPE1 ;转数字键处理NEXT1:A,#1,NEXT2E1NEXT2:A,#2,NEXT3NEXT3:A,#3,NEXT4NEXT4:A,#4,NEXT5NEXT5:A,#5,NEXT6NEXT6:A,#6,NEXT7NEXT7:A,#7,NEXT8NEXT8:A,#8,NEXT9NEXT9:A,#9,NEXT10NEXT10:A,#10,NEXT11 判断是否功能键E2转功能键处理NEXT11:A,#11,NEXT12NEXT12:A,#12, NEXT13NEXT13:A,#13,NEXT14NEXT14:A,#14,NEXT15NEXT15:E3判断是否清

22、除键E1:R3,#1,N1判断第几次按键E11 ;为第一个数字N1:R3,#2,N2E12为第二个数字N2:R3,#3,N3E13为第三个数字N3:第四个数字转溢出E11:R4,A输入值暂存R434H,A输入值送显示缓存MLOOP等待再次输入R0,FUNCTIONKEY;与上次功能键交换FUNCTIONKEY,AA,R0A,#10,N21判断功能键JIA+A,#11,N22JIANIIJA,#12,N23CHENG*A,#13,N24E2:N21:N22:N23:E12:E13:E3:34H,R7按键次数清零R4,#0输入值清零RESULT,#。计算结果清零FUNCTIONKEY,#0功能键设为零显示清空CHU/N24:A,#0,N25FIRST首次按功能键N25:DEN一J 一N4:FIRST:RESULT,R4输入值送结果DISP1结果处理JIA:A,RESULT上次结果送累加器ADDA,R4上次结果加输入值JBCY,N4溢出RESULT,A存本次结果JIAN:SUBB上次结果减输入值负数溢出A,B取个位数个位数送显示缓存A,RESULT1DISP11结果是否为一位数B,#10A,RESU

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1