数码管的控制器的设计与实现_第1页
数码管的控制器的设计与实现_第2页
数码管的控制器的设计与实现_第3页
数码管的控制器的设计与实现_第4页
数码管的控制器的设计与实现_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 课程设计任务书课程设计任务书 学生姓名 学生姓名 谢斌谢斌 专业班级 专业班级 通信通信 1002 指导教师 指导教师 黄秋元黄秋元 工作单位 工作单位 信息学院信息学院 题题 目目 数码管显示控制器的设计与实现数码管显示控制器的设计与实现 初始条件 初始条件 Keil 软件 Proteus 软件 单片机的相关知识 要求完成的主要任务要求完成的主要任务 包括课程设计工作量及其技术要求 以及说明书撰写等 具体要求 能自动一次显示出数字 0 1 2 3 4 5 6 7 8 9 自然数列 1 3 5 7 9 奇数列 0 2 4 6 8 偶数列 0 1 2 3 4 5 6 7 0 1 音乐符号序列 然后再从头循环 打开电源自动复位 从自然数列开始显示 时间安排 时间安排 序号序号阶段内容阶段内容所需时间所需时间 1选题 原理方案设计2 天 2 电路原理图 印刷版图设计 电路的仿真 实物制 作 3 天 3撰写报告1 天 4答辩1 天 合计7 天 指导教师签名 指导教师签名 2012 年年 7 月月 日日 系主任 或责任教师 签名 系主任 或责任教师 签名 2012 年年 7 月月 日日 2 目目 录录 摘 要 3 Abstract 4 1 引言 5 2 设计方案 6 2 1 方案一基本门电路法 6 2 2 方案二单片机法 6 2 3 方案比较 6 3 硬件电路设计 7 3 1 芯片及元器件介绍 7 3 1 1 AT89C51 单片机介绍 7 3 1 2 数码管介绍 8 3 2 硬件电路 9 3 2 1 单片机最小系统 9 3 2 2 整体电路图 10 4 单片机程序 11 4 1 部分程序代码 11 4 1 1 数码管段选编码 11 4 1 2 数码管片选编码 11 4 1 3 定时器的设定 11 4 2 总程序代码 11 5 仿真结果 16 6 总结 18 参考文献 19 附录 1 元件清单 20 附录 2 21 3 摘摘 要要 本次设计的数码管显示控制器是可以循环显示 1 0 1 2 3 4 5 6 7 8 9 自然数列 1 3 5 7 9 奇数列 0 2 4 6 8 偶数列 0 1 2 3 4 5 6 7 0 1 音乐符号序列 开机启动 时先显示自然数列 采用单片机对数码管进行控制 以单片机为核心 本系统大部分功能由软件来实现 吸收了硬件软件化的思想 大部分功能通过软件来实现 使电路简单明了 系统稳定性 大大提高 应用定时器对数码管显示时间进行精确控制 其中应用 Keil 软件进行编程 Proteus 搭建仿真电路并且和 Keil 进行连调 关键词 单片机 Keil Proteus 4 Abstract The design of the digital tube display controller can cycle show 1 0 1 2 3 4 5 6 7 8 9 the natural numbers 1 3 5 7 9 odd columns 0 2 4 6 8 even numbered 0 1 2 3 4 5 6 7 0 1 music symbol sequence boot when the first display of nature series The application of single chip microcomputer in digital tube control with the single chip microcomputer as the core This system most of the functions are realized by software absorb the ideas of hardware and software most of the functions by software so that the circuit is simple greatly improve the stability of the system Application of the timer on the digital tube display time to carry on the accuracy control The application of Keil software programming Proteus building simulation circuit and Keil sandhi Key words SCM Keil Proteus 5 1 1 引言引言 现如今 电气化领域渗透到我们的生活的内容已经越来越宽泛了 对我们的影响也 越来越大了 所以 学好有关 电 的知识对我们的未来有很大的帮助 我们作为通信工程专业的学生 更应该好好学习有关模电和数电的知识 因为它们是相 辅相成的 然而 要想学好这两门课程单靠看书本的内容是很难学好的 有效的学习方 法应该是理论与实践的结合 所以 我们必须要认真对待所有的实验设计练习 在实际 的设计实践中发现自己的不足并克服各种困难从而提高自己的能力 我经过不断的探讨与合作研究后 终于亲手完成了我的设计 对单片机有了更深刻 的认识 我感到无比的高兴 6 2 2 设计方案设计方案 2 12 1 方案一基本门电路法方案一基本门电路法 本控制器主要由四部分构成 1 包括一个 30 进制计数器 负责产生 0 到 29 这三十个数 并循环 2 一个译码后再编码成三十个要求的四位二进制数 0 1 2 3 4 5 6 7 8 9 自然数列 1 3 5 7 9 奇数数列 0 2 4 6 8 偶数数列 0 1 2 3 4 5 6 7 0 1 音乐符号数列 3 一个 BCD 八段显示译码器 负责将编码译码电路产生的四位二进制数译码 4 八段数码管由译码器驱动进行显示 七段译码器 进行译码 数码管 显 示需要的数 字 图 2 1 1 门电路法原理框图 2 22 2 方案二单片机法方案二单片机法 本控制器主要由两部分构成 硬件 1 AT89C51 单片机最小系统 2 数码管与单片机的输出端吕进行连接 软件 对单片机进行编程以达到设计要求 0 1 2 3 4 5 6 7 8 9 自然数列 1 3 5 7 9 奇数数列 0 2 4 6 8 偶数数列 0 1 2 3 4 5 6 7 0 1 音乐符号数列 数码管进行动态显示 其中要用定时器来对显示时间进行准确的控制 2 32 3 方案比较方案比较 通过比较方案一与方案二 可知方案二的电路简单 易实现 且是由单片机来控制 数码管的显示 时间精确 所以本人决定采用方案二来实现数码管显示的控制设计 30 进制计数 器 循环作 用 30 选 1 数据 选择器 7 3 3 硬件电路设计硬件电路设计 3 13 1 芯片及元器件介绍芯片及元器件介绍 3 1 13 1 1 AT89C51AT89C51 单片机介绍单片机介绍 AT89C51 是一种低功耗 高性能的片内含有 4KB 快闪可编程 擦除只读存储器 FPEROM Flash Programmable and Eraseable Read Only Memory 的 8 位 CMOS 微控制 器 使用高密度 非易失存储技术制造 并且与 80C51 引脚和指令系统完全兼容 主要 性能 与 MCS 51 微控制器产品系列兼容 片内有 4KB 可在线重复编程的快闪擦写存储器 存储数据保存时间为 10 年 全静态工作 可从 0Hz 至 16MHz 程序存储器具有 3 级加密保护 128 8 位内部 RAM 32 条可编程 I O 线 两个 16 位定时器 计数器 中断结构具有 5 个中断源和 2 个优先级 可编程全双工串行通道 空闲状态维持低功耗和掉电状态保存存储内容 存贮器为 64K 前 4K 8K20K 在 CPU 内部 其它程序在 EPR0M27512 中 数据存贮器为 32K 62256 地址为 8000 FFFFH O 扩展 8155 片内 RAM 地址 200O 20FFH 8155 命令口地址为 2100H A 口地址 21O1H B 口地址 2102H C 口地址 2103H T 低八位 2104H T 高八位 2105H A D 采用精高度 速度快 25us 的 AD574 并在其转换前对信号作了采 样保持处理 AD574 启动地址为 4000H 高八位地址为 4002H 低四位地址为 4003H 多路模拟开关的使用 IN0 P1 0F8H IN4 P1 0FCH IN1 P1 0F9H IN5 P1 OFDH IN2 P1 0FAH IN5 P1 0FEH IN3 P1 0FBH IN7 P1 0FFH P1 0 按 CD4051 的 C P1 1 按 CD4051 的 B 脚 10 P1 2 按 CD4051 的 A 脚 11 D A 采用 0832 输出 地址为 6000H 6FFFH 键盘显示 CZ2 采用 8279 地址为 7FFEH 7FFFH 日历时钟芯片 DS12887 命令寄存器为 5000H 500DH 不掉电数据存贮器为 500EH 507FH 控制板 160 x1O9 mm 供电 5V300mA 12V100mA 12V100mA 8 图 3 1 1 1AT89C51 实物图 图 3 1 1 2AT89C51 引角图 3 1 23 1 2 数码管介绍数码管介绍 数码管按段数分为七段数码管和八段数码管 八段数码管比七段数码管多一个发 光二极管单元 多一个小数点显示 按能显示多少个 8 可分为 1 位 2 位 4 位等 等数码管 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管 共阳数码管是指将所 有发光二极管的阳极接到一起形成公共阳极 COM 的数码管 共阳数码管在应用时应将公 共极 COM 接到 5V 当某一字段发光二极管的阴极为低电平时 相应字段就点亮 当某 一字段的阴极为高电平时 相应字段就不亮 共阴数码管是指将所有发光二极管的阴极 接到一起形成公共阴极 COM 的数码管 共阴数码管在应用时应将公共极 COM 接到地线 GND 上 当某一字段发光二极管的阳极为高电平时 相应字段就点亮 当某一字段的阳 极为低电平时 相应字段就不亮 编辑本段结构 led 数码管 LED Segment Displays 是由多个发光二极管封装在一起组成 8 字型 的器件 引线已在内部连接完成 只需引出它们的各个笔划 公共电极 led 数码管 常用段数一般为 7 段有的另加一个小数点 还有一种是类似于3 位 1 型 位数有半 位 1 2 3 4 5 6 8 10 位等等 led 数码管根据 LED 的接法不同分为共阴 和共阳两类 了解 LED 的这些特性 对编程是很重要的 因为不同类型的数码管 除 了它们的硬件电路有差异外 编程方法也是不同的 图2 是共阴和共阳极数码管的内 部电路 它们的发光原理是一样的 只是它们的电源极性不同而已 颜色有红 绿 蓝 黄等几种 led 数码管广泛用于仪表 时钟 车站 家电等场合 选用时要注意产 9 品尺寸颜色 功耗 亮度 波长等 下面将介绍常用 LED 数码管内部引脚图片 图 3 1 3 这是一个 7 段两位带小数 点 10 引脚的 LED 数码管 图 3 1 4 引脚定义每一笔划都是对应一个字母表示 DP 是 小数点 图 3 1 2 3 10 引脚的 LED 数码管 图 3 1 2 4 LED 数码管引脚定义 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示出我们 要的数字 因此根据数码管的驱动方式的不同 可以分为静态式和动态式两类 静 态显示驱动静态驱动也称直流驱动 静态驱动是指每个数码管的每一个段码都由一个单 片机的 I O 端口进行驱动 或者使用如 BCD 码二 十进制译码器译码进行驱动 静态驱动 的优点是编程简单 显示亮度高 缺点是占用 I O 端口多 如驱动 5 个数码管静态显示则 需要 5 8 40 根 I O 端口来驱动 要知道一个 89S51 单片机可用的 I O 端口才 32 个呢 实际应用时必须增加译码驱动器进行驱动 增加了硬件电路的复杂性 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一 动态驱动是将 所有数码管的 8 个显示笔划 a b c d e f g dp 的同名端连在一起 另外为每个数码管的公共 极 COM 增加位选通控制电路 位选通由各自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同的字形码 但究竟是那个数码管会显示出字形 取决于单片机 对位选通 COM 端电路的控制 所以我们只要将需要显示的数码管的选通控制打开 该位 就显示出字形 没有选通的数码管就不会亮 通过分时轮流控制各个数码管的的 COM 端 就使各个数码管轮流受控显示 这就是动态驱动 在轮流显示过程中 每位数码管的点 亮时间为 1 2ms 由于人的视觉暂留现象及发光二极管的余辉效应 尽管实际上各位数 码管并非同时点亮 但只要扫描的速度足够快 给人的印象就是一组稳定的显示数据 不会有闪烁感 动态显示的效果和静态显示是一样的 能够节省大量的 I O 端口 而且功 耗更低 3 23 2 硬件电路硬件电路 3 2 13 2 1 单片机最小系统单片机最小系统 在 Proteus 当中构建单片机最小系统电路 晶振为 12MHz 如图 3 2 1 所示 10 图 3 2 1 单片机最小系统 3 2 23 2 2 整体电路图整体电路图 选用共阳数码管的段选接在单片机的 P1 端口 十个数码管的片选通过增益接在 P2 端口和 P3 1 P3 2 引角构成的电路图如图 3 2 2 所示 图 3 2 2 总电路图 11 4 4 单片机程序单片机程序 4 14 1 部分程序代码部分程序代码 4 1 14 1 1 数码管段选编码数码管段选编码 数码管选用的是共阳数码管 当给高电平时所选的段会亮 根据数码的引角及与单 片机引角连接的方式可以得到数码管的显示编码 0 1 2 3 4 5 6 7 8 9 a b c d e f 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 0 x88 0 x83 0 xC6 0 xA1 0 x86 0 x8E 4 1 24 1 2 数码管片选编码数码管片选编码 有八个数码管和 P2 口相连 根据其给低电平选中编写编码 0 xFE 0 xFD 0 xFB 0 xF7 0 xEF 0 xDF 0 xBF 0 x7F 4 1 34 1 3 定时器的设定定时器的设定 设置 TMOD 寄存器中的 M1M0 位来进行工作方式选择 本次设计选用定时器 0 的工 作方式 1 即 TMOD 0X01 时钟频率为 12MHz 12 个时钟周期为一个机器周期 那么此时机器周期就是 1us 计 满 TH0 和 TL0 就需要 2exp16 1 个数 再来一个脉冲计数器溢出 随即向 CPU 申请中断 如果我们要定时 50ms 的话 那么就需要先给 TH0 和 TL0 装一个初值 在这个初值的基 础上计 50000 个数后 定时器溢出 此时刚好就是 50ms 中断一次 当需要 1s 时 我们 写程序时当产生 20 次 50ms 的定时中断后便认为是 1s 这样便可精确控制定时时间 需 要计数的个数 N 装入 THX 和 TLX 中的数值为 THX 65536 N 256 4 1 1 TLX 65536 N 256 4 1 2 初始化过程如下 1 对 TMOD 赋值 以确定 T0 和 T1 的工作方式 2 计算初值 并将初值写入 TH0 TL0 或 TH1 TL1 3 中断方式时 则对 IE 赋值 开放中断 4 使 TR0 或 TR1 置位 启动定时器 计数器定时或计数 4 24 2 总程序代码总程序代码 include 声明 52 系列头文件 define uchar unsigned char 宏定义 int code S Data 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 数码管显示编码 0 xF8 0 x80 0 x90 0 x88 0 x83 0 xC6 0 xA1 0 x86 0 x8E int code W0 Data 0 xFE 0 xFD 0 xFB 0 xF7 0 xEF 0 xDF 0 xBF 0 x7F P2 口段选编码 int code W1 Data 0 x0E 0 x0D P3 口段选编码 void delay uchar 申明延时函数 void display uchar 申明显示函数 uchar temp 0 num 0 定义变量 void main 主函数 TMOD 0X01 设置定时器 0 为工作方式 1 12 TH0 65536 50000 256 装初值 12M 晶振定时 50ms 数为 50000 TL0 65536 50000 256 开总中断 EA 1 开定时器 0 中断 ET0 1 启动定时器中断 0 TR0 1 while 1 display num 数码管显示数字 void display uchar num 显示函数 if num 0 显示 0 1 2 3 4 5 6 7 8 9 P2 W0 Data 0 P3 0 xFF P1 S Data 0 delay 1 P2 W0 Data 1 P1 S Data 1 delay 1 P2 W0 Data 2 P1 S Data 2 delay 1 P2 W0 Data 3 P1 S Data 3 delay 1 P2 W0 Data 4 P1 S Data 4 delay 1 P2 W0 Data 5 P1 S Data 5 delay 1 P2 W0 Data 6 P1 S Data 6 delay 1 P2 W0 Data 7 P1 S Data 7 delay 1 P2 0 xFF P3 W1 Data 0 P1 S Data 8 delay 1 P3 W1 Data 1 13 P1 S Data 9 delay 1 if num 1 奇数列显示 1 3 5 7 9 P2 W0 Data 0 P3 0 xFF P1 S Data 1 delay 1 P2 W0 Data 2 P1 S Data 3 delay 1 P2 W0 Data 4 P1 S Data 5 delay 1 P2 W0 Data 6 P1 S Data 7 delay 1 P2 0 xFF P3 W1 Data 0 P1 S Data 9 delay 1 if num 2 偶数列显示 0 2 4 6 8 P2 W0 Data 1 P3 0 xFF P1 S Data 0 delay 1 P2 W0 Data 3 P1 S Data 2 delay 1 P2 W0 Data 5 P1 S Data 4 delay 1 P2 W0 Data 7 P1 S Data 6 delay 1 P2 0 xFF P3 W1 Data 1 P1 S Data 8 delay 1 14 if num 3 显示音乐符号序列 0 1 2 3 4 5 6 7 0 1 P2 W0 Data 0 P3 0 xFF P1 S Data 0 delay 1 P2 W0 Data 1 P1 S Data 1 delay 1 P2 W0 Data 2 P1 S Data 2 delay 1 P2 W0 Data 3 P1 S Data 3 delay 1 P2 W0 Data 4 P1 S Data 4 delay 1 P2 W0 Data 5 P1 S Data 5 delay 1 P2 W0 Data 6 P1 S Data 6 delay 1 P2 W0 Data 7 P1 S Data 7 delay 1 P2 0 xFF P3 W1 Data 0 P1 S Data 0 delay 1 P3 W1 Data 1 P1 S Data 1 delay 1 void T0 time interrupt 1 定时器 0 中断函数 temp TH0 65536 50000 256 TL0 65536 50000 256 if temp 20 如果到了 20 次 说明到了一 秒 15 temp 0 数码管显示构成循环 num if num 4 num 0 void delay uchar z 延时函数 uchar x y for x z x 0 x f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论