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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于89C51的计算器设计Word文档格式.docx

1、任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张迎新单片微型计算机原理、应用及接口技术(第2版)M北京:国防工业出版社,20042伟福LAB6000系列单片机仿真实验系统使用说明书3 阎石数字电路技术基础(第五版)北京:高等教育出版社,2006审查意见系(教研室)主任签

2、字: 年 月 日 目录绪论 11. 硬件组成与方案设计 11.1 系统框图 11.2 硬件设计 21.3 功能设计 22. 硬件电路设计 22.1 时钟电路 22.2 复位电路 32.3 显示电路 42.4 键盘电路 53. 系统软件设计 63.1 主程序 63.2 键盘检测程序 73.3 读键输入程序 83.4 数码管显示程序 104. 仿真与调试 114. 软件调试 114.2 硬件调试 114.3 调试结果 11总结 13参考文献 13附录A:整体电路图 14附录B:程序代码 15绪论 近十几年来,单片机技术凭借其速度快,体积小,价格低,控制功能强,易于掌握,功能丰富等自身优点迅速发展,

3、在各个领域发挥了重大作用,如今已成为一门成熟的学科。利用单片机可以实现非常丰富的功能,如流水灯,闹钟,秒表,音乐盒等,能够独立完成,实现设计,可以很好的检验自己对硬件以及对软件的理解和掌握水平。本设计采用80C51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加,减,乘,除运算及LED数码管的显示。当然也可以用如LED显示屏显示来显示出更多的字符,实现更多的功能。但设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,实现单片机和其他模块的完整的衔接。1. 硬件组成与方案设计1.1 系统框图 硬件组成如图1.1所示,通过时钟电路来提供时钟脉冲,

4、使单片机有节拍的协同各个部件的同步有序工作,键盘电路来检测各个功能键,通过数码管来显示输出结果,复位电路可以在单片机异常工作或者需要重新计算时进行复位:图1.1芯片和键盘实现功能1.2 硬件设计根据功能和指标要求,本系统选用89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。按键分布如下表.所示:表.按键分布表硬件设计如下:由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高故我们采用可以进六位数字的运算,选用6个LED数码管显示数据和结果。另外键盘包括数字键(09)、符号键(+、-、)、清除键和等号键,故只需要16个按键即可。1.3 功能设计功能实现如

5、下:1 初始化:上电后,屏幕初始化。2 计算。按下数字键,屏幕显示要运算的第一个数字,再按下符号键,屏幕不显示,然后再按下数字键,屏幕显示要运算的第二个数字,最后按下“”号键,屏幕上显示出计算结果。3 如果要再次计算,可以按下“C”键清零,或者按下单片机的复位键,重新初始化。2. 硬件电路设计2.1 时钟电路 时钟电路是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也影响单片机系统的稳定性。本文时钟电路采用内部时钟电路,在引脚XTAL1和XTAL2两端跨接石英晶体,通过外接晶振C1,C2形成内部时钟电路,C1,C2一般

6、取30pF:图.时钟电路 2.2 复位电路上电复位电路是一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随VCC对电容的充电过程而回落,故RST引脚复位的高电平维持时间取决于电容的充电时间。为保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长时间,电路图如下图图2.2所示:图.复位电路 2.3 显示电路如下图2.3所示为一位共阴极数码管的元件图:图2.3数码管它是一种半导体发光器件,其基本单元是发光二极管。表2.1为常用的字形表,为了显示数字或符号,要为L

7、ED显示器提供代码,即字形代码为方便查询数码管共阴极字形段码,通过查询下表可以很方便的找到所需要段码:显示字型gfedcBa段码13fh06h25bh34fh466h56dh67dh707h87fh96fh表2.1常用字形码(低电平有效)数码管是由8段发光二极管显示字段的显示器件,发光二极管简称字段,要显示某字形就应使该字形的相应字段点亮,也就是向数码管送入不同的电平组合,通过不同的组合可以显示09,AF以及小数点“.”等字符,而本设计为正整数的运算,并不涉及到小数点的点亮。数码管的显示方法为:通过右边的公共端控制数码管的亮灭,通过左边的段选码的电平状态确定每位发光二极管亮灭。本次设计采用的是

8、6位七段共阴极数码管,但是不需要单独使每个数码管送出段选码,而是每3个数码管的段选端通过内部总线相连,再通过动态显示数码管的方式使每个数码管分时轮流选通,因此大大简化了电路,更好的利用了I/O资源。下图2.4即为所使用的6位数码管的元件图:图2.4数码管显示电路2.4 键盘电路考虑到独立式键盘每个按键都要占用一个I/O口,按键较多时需要占用较多的的I/O口线,资源利用率低,并且由于本次采用的单片机开发板本身就是行列式键盘,故最终采用的是4行列式键盘。行列式键盘的四个行线处于输入状态,四个列线处于输出状态,按键设置在行列线的交叉点上,行列线分别连在按键开关的两端。 具体键盘电路如图2.3所示:图

9、2.5键盘电路3. 系统软件设计3.1 主程序主程序流程图如图3.1所示,主程序构成循环,首先初始化参数,送LED为高电平,初始状态下没有字形码显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键09、清零键,“”还是四则运算符(“+”,“-”,“*”,“/” ),如果是数字值,则计数第几个数,第几位数,进行内部运算处理,送入数码管进行显示输出,是清零键则做对数码管进行清零,如果是四则运算,则内部进行运算处理,同时数码管不显示,若为“”号则输出运算结果,显示在数码管上。图3.1主程序流程图3.2 键盘检测程序此子程序为本设计的核心之一,因为按键是利用机械触点来进行合,断作用的,机

10、械触点在闭合或断开的瞬间由于弹性作用的影响,有抖动现象,从而使电压信号出现抖动,会造成按键读入的不稳定性,产生误读现象,因此为了保证键盘读入的可靠性,必须消除去除抖动影响,抖动时间与按键的机械特性相关,一般为510ms,去除抖动的方法有硬件和软件去抖两种,本实验采用的是软件去抖::检测到有键按下时,执行一个20ms的延时程序,再确认该键电平是否保持闭合电平状态,若仍为闭合电平状态,则确认该键处于闭合状态,从而去除抖动影响,子程序流程图如图3.2所示:图 3.2 键盘程序流程图3.3 读键输入程序为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得

11、到被按键的键码,现使用行扫描法识别按键。列扫描信号进行读入行的信号,判断该列是否有列的输出是则进行按照行列计算键盘的值,查表取得键码并返回若否则进行再次扫描。本设计采用矩阵式键盘,行线为P3.0-P3.3,列线为P3.4-P3.7,通过读取行线P3.0-P3.3的状态可以确定有无键按下,当键盘上没有键被按下时,行列线是断开的,P3.0-P3.3输入全部为高电平,当某个键被按下时,行列线短路,P3.0-P3.3短路,所有行线输入都是低电平,而列线某一位为低电平,其他位均为高电平。通过结合行线和列线的输入状态可以确定哪个键被按下,从而确定正确的键码值。图3.3读键输入程序流程图3.4 数码管显示程

12、序数码管显示分为静态显示和动态显示,考虑到静态显示需要显示较多I/O口,占用资源多,并且考虑到本单片机实验板硬件的限制,本数码管的显示采用的动态显示方案,通过分时轮流选通数码管的公共端,使各个数码管轮流选通,再送出段码,显示特定字符。在各个数码管依次显示一遍后,通过循环使显示器分时点亮,由于视觉暂留效用与余晖效应,人眼无法识别数码管的点亮顺序,就好像所有数码管同时点亮,具体流程如下图3.4:图3.4数码管显示流程图4. 仿真与调试4. 软件调试1、打开Keil uVision2软件后,在Project菜单中选择New Project命令,打开一个新项目。保存此项目,输入工程文件名calcula

13、tor后,并保存工程文件的目录。2、为项目文件选择一个目标器件,即选择80C51的类型。在Data base 列表框中选择“Atmel 89C52”,确定。、选择“File”目录下的Target1,在右键列表中选择“组 Source Group1属性”,在输出项勾选“E成HEX文件”,HEX格式为“HEX-80”。4、上述设置好后,创建源程序文件并输入程序代码。输入好代码后点击“文件/保存”,保存为calculator.asm。5、把源文件添加到项目中,用鼠标指在目标工作区的目标:1.点击右键在弹出的菜单中选择“添加文件到组Source Group1”,在弹出的添加文件框中,选择需要添加到项目中的文件。6、开始编译,对项目文件进行编译,对代码进行修改完善,最后编译错误,警告。7、打开stc-isp软件,选择单片机型号为STC89C52RC,选择正确的串口号,加载程序文件,给单片机上电后,HEX文件下载编程成功。4.2 硬件调试1.依次按下矩阵键盘上定义的数字键“09”,经检测数码管都可以正确显示。2.依次进行不同算法“+”,“”,“*”,“/”,经检测可以正常进行运算。3.输入某个数,按下清零键,屏幕无显示,可以实现清零功能。

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

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