目录1. 设计目的与要求..................................................... - 1 -1.1 设计目的...................................................... - 1 -1.2 设计环境...................................................... - 1 -1.3 设计要求...................................................... - 1 -2. 设计的方案与基本原理............................................... - 2 -2.1 6 位 8 段数码管工作原理....................................... - 2 -2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示................... - 3 -2.3 动态显示原理.................................................. - 4 -2.4 unSP IDE2.0.0 简介............................................ - 6 -2.5 系统硬件连接.................................................. - 7 -3. 程序设计........................................................... - 8 -3.1主程序......................................................... - 8 -3.2 中断服务程序.................................................. - 9 -4.调试............................................................... - 12 -4.1 实验步骤..................................................... - 12 -4.2 调试结果..................................................... - 12 -5.总结............................................................... - 14 -6.参考资料........................................................... - 15 - 附录设计程序汇总.................................................... - 16 -1.设计目的与要求1.1 设计目的1. 了解 6 位 7 段 LED数码管的工作原理。
2. 熟悉并进一步掌握定时器和时基信号的使用方法。
3. 掌握 SPCE061A单片机控制 LED数码管显示的方法。
4. 通过本次课程设计使学生对智能仪表与装置系统有更深一步的了解,培养学生将理论知识综合利用的能力,并与实践紧密结合。
5. 掌握各子系统设计方法、步骤,培养学生创新能力,总结报告的能力。
1.2 设计环境1. 装有 Windows 系统和μ’nSP(TM) IDE 仿真环境的 PC 机一台,μ’nSP(TM)十六位单片机实验箱一个。
2. 本实验用到的实验箱硬件模块为:SPCE061A核心及周边电路模块(包含 32 个I/O口),6位 8 段数码管电路模块。
1.3 设计要求1. 编程要求:主程序利用 C 语言编写,中断服务程序利用汇编语言编写。
2. 实现功能:SPCE061A单片机控制 6 个 LED数码管的显示。
3. 实验现象:运行开始点亮所有的数码管,6 位 LED 数码管均显示 0 并持续1s。
1s 后,第一位数码管从 0 显示到9,刷新时间为 0.5s,其他数码管全部显示 0。
当第一位数码管显示到9 后,第一位数码管保持显示 9,第二位数码管从 0 显示到 9,刷新时间为 0.5s,其他数码管显示 0。
依次直到第 6位数码管显示 9,即6 位数码管全部显示 9,6 位数码管全部显示 0,持续1s,如此循环。
(1s 的时间、0.5s 的时间都使用 2Hz 的时基信号(IRQ5)提供)。
6 位数码管的显示状态见表1.表 1 6 位数码管显示状态注意:①表中序号为0 和61 的状态持续1s;其他状态刷新时间为0.5s。
②表中需要类似“1~10”表示有十个状态。
2.设计的方案与基本原理2.1 6 位 8 段数码管工作原理实验箱的6 位8 段数码管电路采用“共阴”连接,阴极公共端(COM)由晶体管推动。
实验箱上的数码管共有两种,如图1。
图 1 两种数码管图首先介绍两个基本概念:段码和位码,段码即段选信号SEG,它负责数码管显示的内容,图4-1中a~g、dp组成的数据(a 为最低位,dp 为最高位)就是段码。
比如1的段码“0x06”(b=1,c=1,其他都为0,即段码为00000110b),8 的段码为“0x7f”;位码即位选信号DIG,它决定哪个数码管工作,哪个数码管不工作,比如仅使能DIG4,那么6 个LED 只有LED4 工作,而其它的五个都不工作。
当需要某一位数码管显示数字时,只需要先选中这位数码管的位信号,再给显示数字的段码。
比如当在第一个数码管上显示一个“6”时,如图2,先选中第一位数码管的位信号(实验箱上标号是“1”),即先给和“1”相连接的I/O 口送1;再把段码设置为0x007d,即在a、c、d、e、f、g各段引出的端口检测到高电平,就可以显示一个“6”出来。
图 2 数码管显示“6”2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示实验箱在6位8 段数码管的上面有16 对排针,其中有7 个“a\b\c\d\e\f\g\”是控制此6位8 段数码管的段码选择的,另有 6 个“1\2\3\4\5\6”是控制 6 位8 段数码管位选择的,“DD”控制“点”或“分隔符号”,“DP”控制小数点。
把实验箱上JP4 和JP5 的引针用跳线全部短接。
框图如图3。
图 3 实验箱上SPCE061A和6位LED显示电路模块的连接按照上面数码管的显示原理,当要在第四个数码管上显示一个“E”时,先要通过IOB12 端口给“4”端口送一个1,选中第四个数码管;由图4-1 可以看出,显示“E”时,需要a、d、e、f、g段被点亮,所以给IOA0、IOA3、IOA4、IOA5、IOA6 端口各送一个1,则在a、d、e、f、g 端口各能检测到一个高电平,就可以点亮a、d、e、f、g 段,显示一个“E”。
2.3 动态显示原理动态显示是数码管显示比较常用的方式,可以很好的解决端口资源紧张问题。
下面以四位数码管为例说明动态显示的原理,如图 4 所示图 4 4位*7段数码管动态显示原理图动态显示的过程:以显示“1234”为例说明,首先发送“1”的段码“0x06”至数码管,然后仅使能位信号DIG4,LED4 就会显示“1”,其余的数码管都是不工作的;延时一定时间之后再发送“2”的段码“0x5b”至数码管,同时仅使能位信号DIG3,这时“2”就会在LED3 上显示出来;延时之后再发送“3”的段码并使能位信号DIG2,LED2 就会显示“3”;延时一定时间之后再发送“4”的段码并使能位信号DIG1,LED1 就会显示“4”;延时之后再回过头来重新发送“1”的代码,并选中位信号DIG4,重复循环点亮数码管。
由于相邻两次(第一次点亮LED4 和第二次点亮LED4)的时间间隔很短(t<10ms),看起来仿佛LED4 一直在显示“1”,4 各数码管整体看起来就在显示“1234”。
动态显示的延时很重要,延时太短,数码管发光时间过短,数码管的亮度不够;延时太长,回扫间隔过大(超过11ms),肉眼就会感觉到闪烁。
该例程采用4KHz 中断作为时间基准执行动态扫描,每来一次中断,显示自动移位,回扫时间t = 0.25ms*6 = 1.5ms。
通过对I/O口的控制,定时1s 的时间和0.5s 的时间都使用2Hz 的时基信号(IRQ5)。
按照基础实验中IRQ5 中断的工作原理,响应一次IRQ5_2Hz 中断需要0.5s 的时间,而响应两次中断的时间刚好是1s。
按照实验要求,当开IRQ5_2Hz 中断时,6 位数码管全部显示“0”后,响应两次IRQ5_2Hz中断,再从第一个数码管开始显示;而刷新时间刚好是响应一次IRQ5_2Hz 中断的时间。
2.4 unSP IDE2.0.0 简介1. 为什么推出unSP IDE2.0.0D (R)为了提高μ’nSP IDE 工具的兼容性,让μ’nSP IDE 工具能支持更多的芯片,并且由于实验箱实验指导书的全面改版,IDE 下的例程全面修改、更新,凌阳科技推出了μ’nSP IDE 工具的最新版本——unSP IDE 2.0.0(以下简称:IDE2.0.0)。
IDE 2.0.0 作为μ’nSP IDE 工具截止现在(2005-11-11)最新的一个版本,它不但继承以前版本IDE 的特点,同时增加了一些新的功能,集纳了众多用户在使用μ’nSP IDE 过程中提出的一些意见,并包含了一些新的例程。
除增加了一些新的功能外,IDE2.0.0 在编译优化、代码查错定位等方面都有了一定的进步,用户在使用本版IDE 时,应该可以体会到,其对代码的严谨性有了更高的要求。
而在新版IDE 的各个方面,都有所加强,用户在使用过程当用会有所体会。
新添加功能、加强原有功能等,都没有改变unSP IDE 一惯的使用方法,所以用户可以参考unSP IDE184(R) 的用户手册,以学习μ’nSP IDE 的基本操作及相关知识,这在IDE2.0.0 的使用当中是保持不变的。
2. 从IDE184 到IDE2.0.0D的变化IDE1.8.4 是用户用的最多的一版μ’nSP IDE 工具,实际上在推出IDE1.8.4 之后,μ’nSP IDE 也在不断的升级,其间也出现了非常多的版本,比如已发布的就有IDE1.16.1 和IDE1.18.1;但相比之下,IDE2.0.0的版本有更多细节的完善,更多新功能的添加,为用户的代码编辑、工程调试等提供了更人性化的辅助功能和更便利的工具。