1、 单片机原理与接口技术课程设计 单片机系统 课程设计任务书 学生姓名 专业班级 自动 F1205 学号 题 目 基于 89C51 的计算器设计 课题性质 工程设计 课题来源 自拟 指导教师 主要内容 (参数) 利用 89C51 单片机设计一个计算器,实现功能如下: 1.4*4 按键用于 09 的数字输入、加减乘除、等于、清零功能; 2.能实现简单的加减乘除运算; 3.输入数字及计算结果通过 LED 显示器显示。 任务要求 (进度) 第 1-2 天:熟悉课程设计任务及要求,查阅技术资料,确定设计 方案。 第 3-4 天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,
2、各单元电路的设计要有详细论述。 第 5-6 天:软件设计,编写程序。 第 7-8 天:实验室调试。 第 9-10 天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。 主要参考 资料 1 张迎新单片微型计算机原理、应用及接口技术(第 2 版) M北京:国防工业出版社, 2004 2伟福 LAB6000 系列单片机仿真实验系统使用说明书 3 阎石数字电路技术基础(第五版) 北京:高等教育出版社, 2006 审查意见 单片机原理与接口技术课程设计 系(教研室)主任签字: 年 月 日 单片机原理与接口技术课程设计 目录 绪论 . 1 1. 硬件组成与方案设
3、计 . 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. 软件调试 . 11 4.2 硬件调试 . 11 4.3 调试结果 . 11 总结 . 13 参考文献 . 13 附录 A:整体电 路图 . 14 附录 B:程序代码 . 15 单片机原理与接口技术课
4、程设计 1 绪论 近十几年来,单片机技术凭借其速度快,体积小,价格低,控制功能强,易于掌握,功能丰富等自身优点迅速发展,在各个领域发挥了重大作用,如今已成为一门成熟的学科 。 利用单片机可以实现 非常 丰富的功能, 如流水灯,闹钟,秒表,音乐盒等, 能够 独立 完成, 实现设计,可以很好的 检验自己 对硬件以及 对软件的 理解和 掌握水平。 本设计采用 80C51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加 , 减 , 乘 , 除运算 及 LED数码管的 显示。当然也可以用如 LED显示屏 显示来 显示出更多的字符, 实现更多的功能 。但 设计的关键所在,必须非常熟悉单
5、片机的原理与结构,同时还要对整个设计流程有很好的把握, 实现 单片机和其他模块 的 完整的衔接。 1. 硬件组成与方案设计 1.1 系统框图 硬件组成如图 1.1 所示 ,通过时钟电路来提供时钟脉冲,使单片机 有节拍的协同各个部件的同步有序工作,键盘电路来检测各个功能键, 通过数码管来显示输出结果,复位电路可以在单片机异常工作或者需要重新计算时进行复位 : AT 89 C 51键盘电路数码管显示电路时钟电路复位电路图 1.1 芯片和键盘实现功能 单片机原理与接口技术课程设计 2 1.2 硬件 设计 根据功能和指标要求,本系统选用 89C52单片机为主控机。通过扩展必要的 外围接口电路,实现对计
6、算器的设计。 按键分布如下表 .所示: 表 .按键分布表 硬件 设计 如下: 由于要设计的是简单的计算器,可以进行四则运算 ,对 数字的大小范围要求不高故我们采用可以进六 位数字的运算,选用 6个 LED数码管显示数据和结果。 另外键盘包括数字键( 0 9)、符号键( +、 -、 、 )、清除键和等号键,故只需要 16个按键即可。 1.3 功能 设计 功能实现如下 : 初始化 :上电后,屏幕初始化。 计算。按下数字键,屏幕显示要运算的第一个数字,再按下符号键, 屏幕不显示, 然后再按下 数字键,屏幕显示要运算的第二个数字,最后按下 “ ”号键,屏幕上显示出计算结果。 如果要再次计算,可以按下
7、“C”键清零,或者按下单片机的复位键,重新初始化。 2. 硬件 电 路设计 2.1 时钟电路 时钟 电路 是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地工作。因此时钟频率直接影响单片机的速度,时钟电路的质量也 单片机原理与接口技术课程设计 3 影响单片机系统的稳定性。 本文时钟电路采用内部时钟电路,在引脚 XTAL1 和 XTAL2 两端跨接石英晶体,通过外接晶振 C1,C2 形成 内部 时钟电路 , C1,C2 一般取 30pF: 图 . 时钟电路 2.2 复位电路 上电复位电路是一种简单的复位电路,只要在 RST 复位引脚接一个电容到VCC,接一个电阻到地就可以了。
8、上电复位是指在系统上电时,复位 电路通过电容加到 RST 复位引脚一个短暂的高电平信号,这个复位信号随 VCC 对电容的充电过程而回落,故 RST 引脚复位的高电平维持时间取决于电容的充电时间。为保证系统安全可靠的复位, RST 引脚的高电平信号必须维持足够长时间,电路 图如下图图 2.2 所示 : 图 . 复位电路 单片机原理与接口技术课程设计 4 2.3 显示 电路 如下图 2.3 所示为一位共阴极数码管的元件图 : 图 2.3 数码管 它 是一种 半导体发光器件,其基本单元是发光二极管。 表 2.1 为常用的字形表 , 为了显示数字或符号,要为 LED 显示器提供代码,即字形代码 为方便
9、查询 数码管共阴极字形 段码 ,通过查询下表可以很方便的找到所需要段码: 显示字型 g f e d c B a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 5bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh 表 2.1 常用字形码(低电平有效) 数码管 是由 8 段发光二极管显示字段的显示
10、器件,发光二极管简称字段, 要显示某字形就应使该字形的相应字段点亮,也就是向数码管送入不同的电平组合, 通过不同的组合可以显示 09, AF 以及小数点 “.”等字符, 而 本设计为正整数的运算, 并 不涉及到小数点 的点亮。数码管的显示方法为: 通过右边的公共端单片机原理与接口技术课程设计 5 控制 数码管的亮灭,通过左边的段选码的电平状态确定每位发光二极管亮灭。 本次设计采用的是 6 位七段 共阴极 数码管, 但是 不需要单独使每个数码管送出段选码,而是 每 3 个 数码管的段选端通过内部总线相连, 再 通 过动态显示数码管的方式使每个数码管分时轮流选通 ,因此大大简化了电路,更好的利用了
11、 I/O资源。下图 2.4 即为所使用的 6 位数码管的 元件 图: 图 2.4 数码管显示电路 2.4 键盘电路 考虑到独立式键盘每个按键都要占用一个 I/O 口,按键较多时需要占用较多的的 I/O 口线,资源利用率低,并且 由于 本次 采用的单片机开发板 本身就是行列单片机原理与接口技术课程设计 6 式键盘,故 最终 采用的是 4 行列式键盘 。行列式键盘的四个行线处于输入状态,四个列线处于输出状态,按键设置在行列线的交叉点上,行列线分别连在按键开关的两端。 具体 键盘电路如图 2.3 所示: 图 2.5 键盘电路 3. 系统软件 设计 3.1 主程序 主程序流程图如图 3.1 所示 ,主
12、程序构成循环,首先初始化参数, 送 LED为高电平,初始状态下没有字形码显示 。然后扫描键盘看是否有键输入,若有,读取键码 。 判断键码是数字键 09、清零键 , “ ”还是 四则运算符 ( “+”, “-”, “*”,“/” ), 如果是数字值,则计数第几个数,第几位数,进行内部运算处理,送入数码管进行显示输出, 是清零键则做 对数码管进行 清零, 如果是四则运算,则内部进行运算处理, 同时数码管不显示, 若为 “ ”号则输出运算结果,显示在数码管上。 单片机原理与接口技术课程设计 7 开始初始化输入处理数码管输出显示结束是否为四则运算符 ?Y是否为等号 ?读键盘数码管输出结果显示YN运算处
13、理 清零图 3.1 主程序流程图 3.2 键盘 检测 程序 此 子程序为本设计的核心之一, 因为按键是利用机械触点来进行合,断作用的 , 机械触点在闭合或断开的瞬间由于弹性作用的影响,有抖动现象,从而使电压信号出现抖动,会造成按键读入的不稳定性,产生误读现象,因此为了保证键盘读入的可靠性,必须消除去除抖动影响,抖动时间与按键的机械特性相关,一般为 510ms,去除抖动 的方法有 硬件和软件 去抖两种,本实验采用的是软件去抖 :: 检测到有键按下时,执行一个 20ms 的延时程序,再确认该 键电平是否保持闭合电平状态,若仍为闭合电平状态,则确认该键处于闭合状态,从而去除抖动影响, 子程序流程图如图 3.2 所示: