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

上传人:b****4 文档编号:13545533 上传时间:2022-10-11 格式:DOCX 页数:28 大小:768.60KB
下载 相关 举报
基于89C51的计算器设计Word文档格式.docx_第1页
第1页 / 共28页
基于89C51的计算器设计Word文档格式.docx_第2页
第2页 / 共28页
基于89C51的计算器设计Word文档格式.docx_第3页
第3页 / 共28页
基于89C51的计算器设计Word文档格式.docx_第4页
第4页 / 共28页
基于89C51的计算器设计Word文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

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

《基于89C51的计算器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于89C51的计算器设计Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

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

任务要求

(进度)

第1-2天:

熟悉课程设计任务及要求,查阅技术资料,确定设计方案。

第3-4天:

按照确定的方案设计单元电路。

要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。

第5-6天:

软件设计,编写程序。

第7-8天:

实验室调试。

第9-10天:

撰写课程设计报告。

要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。

主要参考

资料

[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3]阎石.数字电路技术基础(第五版).北京:

高等教育出版社,2006

审查意见

系(教研室)主任签字:

年月日

目录

绪论1

1.硬件组成与方案设计1

1.1系统框图1

1.2硬件设计2

1.3功能设计2

2.硬件电路设计2

2.1时钟电路2

2.2复位电路3

2.3显示电路4

2.4键盘电路5

3.系统软件设计6

3.1主程序6

3.2键盘检测程序7

3.3读键输入程序8

3.4数码管显示程序10

4.仿真与调试11

4.1软件调试11

4.2硬件调试11

4.3调试结果11

总结13

参考文献13

附录A:

整体电路图14

附录B:

程序代码15

绪论

近十几年来,单片机技术凭借其速度快,体积小,价格低,控制功能强,易于掌握,功能丰富等自身优点迅速发展,在各个领域发挥了重大作用,如今已成为一门成熟的学科。

利用单片机可以实现非常丰富的功能,如流水灯,闹钟,秒表,音乐盒等,能够独立完成,实现设计,可以很好的检验自己对硬件以及对软件的理解和掌握水平。

本设计采用80C51芯片,实现了利用单片机进行了一个简单计算器设计。

允许对输入数据进行加,减,乘,除运算及LED数码管的显示。

当然也可以用如LED显示屏显示来显示出更多的字符,实现更多的功能。

但设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,实现单片机和其他模块的完整的衔接。

1.硬件组成与方案设计

1.1系统框图

硬件组成如图1.1所示,通过时钟电路来提供时钟脉冲,使单片机有节拍的协同各个部件的同步有序工作,键盘电路来检测各个功能键,通过数码管来显示输出结果,复位电路可以在单片机异常工作或者需要重新计算时进行复位:

图1.1芯片和键盘实现功能

1.2硬件设计

根据功能和指标要求,本系统选用89C52单片机为主控机。

通过扩展必要的

外围接口电路,实现对计算器的设计。

按键分布如下表1.2所示:

表1.2按键分布表

硬件设计如下:

①由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高故我们采用可以进六位数字的运算,选用6个LED数码管显示数据和结果。

②另外键盘包括数字键(0~9)、符号键(+、-、×

、÷

)、清除键和等号键,故只需要16个按键即可。

1.3功能设计

功能实现如下:

1初始化:

上电后,屏幕初始化。

2计算。

按下数字键,屏幕显示要运算的第一个数字,再按下符号键,屏幕不显示,然后再按下数字键,屏幕显示要运算的第二个数字,最后按下“﹦”号键,屏幕上显示出计算结果。

3如果要再次计算,可以按下“C”键清零,或者按下单片机的复位键,重新初始化。

2.硬件电路设计

2.1时钟电路

时钟电路是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地工作。

因此时钟频率直接影响单片机的速度,时钟电路的质量也影响单片机系统的稳定性。

本文时钟电路采用内部时钟电路,在引脚XTAL1和XTAL2两端跨接石英晶体,通过外接晶振C1,C2形成内部时钟电路,C1,C2一般取30pF:

图2.1时钟电路

2.2复位电路

上电复位电路是一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。

上电复位是指在系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随VCC对电容的充电过程而回落,故RST引脚复位的高电平维持时间取决于电容的充电时间。

为保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长时间,电路图如下图图2.2所示:

图2.2复位电路

2.3显示电路

如下图2.3所示为一位共阴极数码管的元件图:

图2.3数码管

它是一种半导体发光器件,其基本单元是发光二极管。

表2.1为常用的字形表,为了显示数字或符号,要为LED显示器提供代码,即字形代码为方便查询数码管共阴极字形段码,通过查询下表可以很方便的找到所需要段码:

显示字型

g

f

e

d

c

B

a

段码

1

3fh

06h

2

5bh

3

4fh

4

66h

5

6dh

6

7dh

7

07h

8

7fh

9

6fh

表2.1常用字形码(低电平有效)

数码管是由8段发光二极管显示字段的显示器件,发光二极管简称字段,要显示某字形就应使该字形的相应字段点亮,也就是向数码管送入不同的电平组合,通过不同的组合可以显示0~9,A~F以及小数点“.”等字符,而本设计为正整数的运算,并不涉及到小数点的点亮。

数码管的显示方法为:

通过右边的公共端控制数码管的亮灭,通过左边的段选码的电平状态确定每位发光二极管亮灭。

本次设计采用的是6位七段共阴极数码管,但是不需要单独使每个数码管送出段选码,而是每3个数码管的段选端通过内部总线相连,再通过动态显示数码管的方式使每个数码管分时轮流选通,因此大大简化了电路,更好的利用了I/O资源。

下图2.4即为所使用的6位数码管的元件图:

图2.4数码管显示电路

2.4键盘电路

考虑到独立式键盘每个按键都要占用一个I/O口,按键较多时需要占用较多的的I/O口线,资源利用率低,并且由于本次采用的单片机开发板本身就是行列式键盘,故最终采用的是4行列式键盘。

行列式键盘的四个行线处于输入状态,四个列线处于输出状态,按键设置在行列线的交叉点上,行列线分别连在按键开关的两端。

具体键盘电路如图2.3所示:

图2.5键盘电路

3.系统软件设计

3.1主程序

主程序流程图如图3.1所示,主程序构成循环,首先初始化参数,送LED为高电平,初始状态下没有字形码显示。

然后扫描键盘看是否有键输入,若有,读取键码。

判断键码是数字键0~9、清零键,“=”还是四则运算符(“+”,“-”,“*”,“/”),如果是数字值,则计数第几个数,第几位数,进行内部运算处理,送入数码管进行显示输出,是清零键则做对数码管进行清零,如果是四则运算,则内部进行运算处理,同时数码管不显示,若为“=”号则输出运算结果,显示在数码管上。

图3.1主程序流程图

3.2键盘检测程序

此子程序为本设计的核心之一,因为按键是利用机械触点来进行合,断作用的,机械触点在闭合或断开的瞬间由于弹性作用的影响,有抖动现象,从而使电压信号出现抖动,会造成按键读入的不稳定性,产生误读现象,因此为了保证键盘读入的可靠性,必须消除去除抖动影响,抖动时间与按键的机械特性相关,一般为5~10ms,去除抖动的方法有硬件和软件去抖两种,本实验采用的是软件去抖:

检测到有键按下时,执行一个20ms的延时程序,再确认该键电平是否保持闭合电平状态,若仍为闭合电平状态,则确认该键处于闭合状态,从而去除抖动影响,子程序流程图如图3.2所示:

图3.2键盘程序流程图

3.3读键输入程序

为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。

为了得到被按键的键码,现使用行扫描法识别按键。

列扫描信号进行读入行的信号,判断该列是否有列的输出——是则进行按照行列计算键盘的值,查表取得键码并返回——若否则进行再次扫描。

本设计采用矩阵式键盘,行线为P3.0-P3.3,列线为P3.4-P3.7,通过读取行线P3.0-P3.3的状态可以确定有无键按下,当键盘上没有键被按下时,行列线是断开的,P3.0-P3.3输入全部为高电平,当某个键被按下时,行列线短路,P3.0-P3.3短路,所有行线输入都是低电平,而列线某一位为低电平,其他位均为高电平。

通过结合行线和列线的输入状态可以确定哪个键被按下,从而确定正确的键码值。

图3.3读键输入程序流程图

3.4数码管显示程序

数码管显示分为静态显示和动态显示,考虑到静态显示需要显示较多I/O口,占用资源多,并且考虑到本单片机实验板硬件的限制,本数码管的显示采用的动态显示方案,通过分时轮流选通数码管的公共端,使各个数码管轮流选通,再送出段码,显示特定字符。

在各个数码管依次显示一遍后,通过循环使显示器分时点亮,由于视觉暂留效用与余晖效应,人眼无法识别数码管的点亮顺序,就好像所有数码管同时点亮,具体流程如下图3.4:

图3.4数码管显示流程图

4.仿真与调试

4.1软件调试

1、打开KeiluVision2软件后,在Project菜单中选择NewProject命令,打开一个新项目。

保存此项目,输入工程文件名calculator后,并保存工程文件的目录。

2、为项目文件选择一个目标器件,即选择80C51的类型。

在Database列表框中选择“Atmel89C52”,确定。

3、选择“File”目录下的Target1,在右键列表中选择“组SourceGroup1属性”,在输出项勾选“E成HEX文件”,HEX格式为“HEX-80”。

4、上述设置好后,创建源程序文件并输入程序代码。

输入好代码后点击“文件/保存”,保存为calculator.asm。

5、把源文件添加到项目中,用鼠标指在目标工作区的目标:

1.点击右键在弹出的菜单中选择“添加文件到组SourceGroup1”,在弹出的添加文件框中,选择需要添加到项目中的文件。

6、开始编译,对项目文件进行编译,对代码进行修改完善,最后编译0错误,0警告。

7、打开stc-isp软件,选择单片机型号为STC89C52RC,选择正确的串口号,加载程序文件,给单片机上电后,HEX文件下载编程成功。

4.2硬件调试

1.依次按下矩阵键盘上定义的数字键“0~9”,经检测数码管都可以正确显示。

2.依次进行不同算法“+”,“—”,“*”,“/”,经检测可以正常进行运算。

3.输入某个数,按下清零键,屏幕无显示,可以实现清零功能。

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

当前位置:首页 > 经管营销 > 经济市场

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

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