动态数码管显示
动态数码管显示(精选八篇)
动态数码管显示 篇1
1数码管的工作原理
数码管动态显示原理图1所示。
图2a所示,数码管可以显示0、1、2…F这16个字符,数码管如果是共阴极连接方式(数码管的发光二极管的位选端为阴极)数码管可以显示0、1、2…F这16个字符,数码管如果是共阴极连接方式(数码管的发光二极管的位选端为阴极)如图2b所示,由于51单片机的位选端接在了单片机的P2口,段选端接在了单片机的P0口。要想使与P2.0口相连的数码管显示数字1,由于数码管为共阴极连接方式,故与段选端相连的P0口应在对应的引脚上使b、c两段发光二极管发光,其他段的发光二极管不发光,故P0口应输出0x06(即二进制数00000110)。然后应使位选端相连的P2口对应引脚输出低电平0,反之,数码管如果是共阳极连接方式如图2c所示,显示的字码的方式应和共阴极连接方式相反,如要在对应的数码管上显示数字1,P0口应输出0xf9(即二进制数11111001)。而想让哪个数码管能显示字码,就必须给相连的单片机的P2口的对应引脚输出高电平1。
2数码管的动态显示原理
在任意瞬时,单片机只选通一个数码管,即位选通,而各个数码管的段选端是可以同时向各个数码管送数的,但是只有位选通的数码管能显示字码。显示字码的时间也非常短暂,即延时一定时间后,位选通的数码管关闭,选通下一个数码管的位选端,使其能显示字码,同理其他数码管也是按着此原理,依次可显示字码。由于人的视觉有暂留效应(暂留效应即光信号消失后,人眼睛对光还会保留大约0.1s-0.4s的时间)和发光管的余辉效应(当电子束停止轰击荧光屏时,光点仍能保持一段时间),再加上延时时间足够短,使人感觉好像各位数码管同时都在显示。还有一点需要注意用于动态显示的限流电阻阻值应略小于静态显示的限流电阻阻值,这是由于动态显示的亮度比静态显示要小一些。
3实验程序
6个共阳极数码管采取动态显示方式与单片机相连接。P0口为段选端,P2.0、P2.1、P2.2、P2.3、P2.4、P2.5分别与三极管基极相连作为位选端。要求编写控制程序,实现6个数码管能够分别显示“2”、“3”、“8”、“d”、“f”、“5”。
分析:要使与P2.0口相连的数码管显示数字“2”,由于数码管为共阳极连接,需要使a、b、d、e、g几段发光二极管发光,其它二极管不发光,也就是与a、b、c、d、e、f、g、dp这8段发光二极管相连的单片机的P0口输出0xa4(即二进制数10100100)。然后要将其P2.0口的位选端开通,单片机的P2.0口应输出一个高电平,则第一个数码管可显示数码了。程序的编写是在Keil C51环境下进行的如图3所示,程序编写完后,先采用Proteus仿真软件进行仿真,它内含了成千上万个仿真模型库。然后通过真实的实验线路再次验证,达到预定的效果即为实验成功。
在使用单片机来控制数码管显示时,采用动态显示是将所有的数码管的段选端都接在单片机的对应引脚上,另外每个数码管的公共端都作为位选端接在单片机其他引脚上,当单片机输出字码是,每个数码管接受到的字码是相同的,单片机只不过靠控制每位数码管的位选端来确定哪个数码管可显示字码。
单片机在动态扫描时,控制程序先后给段选端和位选端送段码和位码,但由于人眼睛的滞后效应和发光管的余辉效应,再加上打开数码管的时间间隔很短,使我们看上去像是数码管同时可以显示不同的字码,其实数码管是一个一个显示的,这和数码管只能在同一时刻只能显示同一字码有着本质的区别。
参考文献
[1]郭小军.单片机控制数码管动态显示过程分析[J].武汉船舶职业技术学院学报,2010(5).
动态数码管显示 篇2
一、实验目的
掌握数码管动态显示数字的原理
二、实验内容
动态显示:按图5-2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。编程在十位和个位两个数码管上显示“56”。
三、编程提示
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
. 看清实验目的和要求 2. 注意实验步骤
3. 连接实验线路时请注意开关的位置
4. 根据原理框图编写程序,保存为学号名+SY2 例:1928101sy5 5. 记录下实验中遇到的问题,实验的实际意义
6. 准备实验报告的数据
如何解决的,搞懂
实验六 竞赛抢答器
一、实验目的
1、了解微机化竞赛抢答器的基本原理。
2、进一步学习使用并行接口。
二、实验内容
图7-1为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当某组抢答按钮按下。在七段数码管上将其组号(0~7)显示出来,并使微机扬声器响一下。
三、编程提示
设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。
附加试验: 可编程定时器/计数器(8253)
一、实验目的: 掌握8253的基本工作原理和编程方法。
二、实验内容
按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。用示波器观察OUT0,OUT1输出电平的变化和波形。同时用七段数码管段码显示出来
三、编程提示 8253控制寄存器地址283H 计数器0地址280H 计数器1地址281H CLK0连接时钟 1MHZ
请各位同学在上机实验前编好程序,要检查!
实验时间
周四
数码市场动态 篇3
惠普新推出的Compaq Presario V3804TX延续了Compaq系列简约的设计理念,采用钢琴烤漆材质并具有磨砂手感。它配备的45nm酷睿2双核T8100处理器(主频2.1GHz),配合nVIDIA GeForce 8400MGS独立显卡与2GByte内存,160GByte硬盘,可以说是为喜爱游戏的年轻人“量身定做”,加之奥特蓝星音箱营造的逼真音响效果,必将获得超凡的游戏体验。以不足8000元的价格面市,相对其它一线品牌更具竞争力。
东芝Satellite M302是东芝公司新推出的一款时尚娱乐本。它采用酷睿2双核T5550处理器和全新的ATI HD3470独立显卡,具有强大的影音娱乐功能。而它外观的独特性在于,以“星语银河”为主题设计面板,深灰色机身与银灰色条纹相得益彰,呈现出雅致、深沉、简约、内敛的时尚感。这款机器市场价约为6800元,是追求时尚、崇尚娱乐的年轻人之绝佳选择。
有“日本的IBM”之称的富士通笔记本,是日系笔记本最杰出代表,Lifebook S7211自上市以来,不断调整价位,并进行有力升级,使这款笔记本性价比越来越高,升级后的CPU主频达到了1.86GHz,硬盘也由原来的120GByte升级到160GByte,虽然其采用的是Intel GMA X3100的集成显卡,但足以应付日常的商务活动。而目前只需花上7999元就可以享受到世界顶级大厂的商务“服务”,可以说是物超所值。
51单片机的数码管动态显示技术 篇4
1 单片机与LED数码管动态显示接口电路
动态显示方式是将所有数码管的8段按同名端连在一起, 另外为每个数码管的公共极COM增加位选通控制电路, 位选通由各自独立的I/O线控制, 显示数码同时传到每个数码管, 但每个瞬时由位选通信号选通一个数码管, 即在某一瞬时只有一个数码管显示数据, 且显示时间不能太长, 一般为1-10MS, 依次循环扫描, 轮流显示, 由于人的视觉滞留效应, 人们看到的是多位同时稳定显示。占用I/O端线少, 电路较简单, 编程较复杂, CPU要定时扫描刷新显示, 一般适用于显示位数较多的场合。
由于动态显示情况下, CPU要定时扫描刷新显示, 数码管的信号在不停的通断变化, 为了保证显示效果, 一般会在数据端口接一个缓冲驱动芯片 (如74HC244、74LS244等) , 而在位选通端接一个PNP三极管作驱动 (如9012、8550等) 。 (如图1)
2 单片机控制数码管显示软件设计
2.1创建显示代码表
在单片机内部, 各种数据都是以二进制的形式存在, 但是数码管显示的数据是给人们直接读取的, 是根据人们的习惯方式使某些段点亮来直接显示出1、2、3...等, 如共阳数码管显示数据1, 就要使数码管的b和c两端点亮, 则8段代码就为0F9H, 这和1的二进制代码01H是不一样, 所以数码管的显示代码和二进制不是对应的, 必须要建显示代码表。
在程序设计时一般在显示程序最后定义一个显示代码表, 根据数码管是共阴还是共阳, 显示代码是不一样的, 共阳数码管在应用时公共极COM接+5V, 当某一字段发光二极管的阴极为低电平时, 相应字段就点亮。当某一字段的阴极为高电平时, 相应字段就不亮。共阴数码管在应用时公共极COM接到地线GND上, 当某一字段发光二极管的阳极为高电平时, 相应字段就点亮。当某一字段的阳极为低电平时, 相应字段就不亮。
2.2 显示数码转换
在很多运用单片机进行测量的系统中, 通过传感器或A/D转换后的数据只是测量数据, 并非显示数据, 这些8位二进制测量数据可能包含很多位十进制数信息, 因为数码管要显示出十进制信息或十六进制信息, 人们才能直接看出结果。所以必须将这些测量数据转换为二进制的显示数据, 才能通过查表的方式正确显示直观数据。
因为8位二进制能表示的范围为0-255, 如果测量的数据按权位展开所得的十进制数正好就是我们所需要的十进制数, 则可以按照二进制转换为十进制BCD码的方式先将测量数据除以100, 所得的商即是十进制数的百位, 再用余数除以10, 所得的商即为十位, 而所得的余数就是个位, 将这三位数分别用三个内存单元存储, 通过查表指令读出对应的显示代码传给数码管, 即可显示3位十进制数据。
当测量的数据按权位展开所得的十进制数不是我们所需要的十进制数, 就必须按照测量的要求, 找出实际的数据与测量的数据之间的对应关系来进行转换。如在电压测量系统中, 测量范围为0-5V, 测量精度为0.02V, 这样通过ADC0809转换后的数据就是8位二进制测量数据。这个数据就包含了十进制电压值得个位、十分位和百分位, 必须从这8位二进制数据中拆出个位、十分位和百分位的电压值, 每一位用一个数码管显示, 这样才能直观的读出当前测量的电压值是几点几几伏。
8位二进制有0-255共256个值, 但是电压值却只有0-5V, 此时如用二进制直接除以100、10就不能得到正确的结果, 必须根据实际情况寻求另外的方法。根据电压测量的范围可以把8位二进制的0和电压的0V对应, 而8位二进制的255和电压值的5V对应, 这样可以近似的把0-255分成5分, 每份分别对应一伏的电压, 即255/5=51, 每一伏电压用51个二进制值来表示, 1/51=0.0196V, 即一个8位二进制值所代表的电压值近似为0.0196伏。然后再按照这样的关系去除以51, 得到个位电压值;再将余数与26比较 (因为8位存贮单元最大值为255, 如果余数大于26, 乘以10后, 8位存贮单元就不能存) , 小于26直接乘以10再除以51, 所得商就是十分位电压值;如大于26则先减去26, 再乘以10, 然后除以51, 所得商最后将结果再加上5, 即得十分位电压值;将第二次除以51所得余数, 按第二次除以51的方法进行计算, 所得结果就是百分位电压值。
2.3 显示程序的实现
在程序设计时一般将具体的显示部分单独分出来组成一个显示子程序, 这样编程方便、思路清晰, 也便于检查。显示时, 从主程序调用显示子程序, 根据显示数据通过查表程序读取显示代码, 将显示代码从P0口传给数码管, 同时P2选中1个数码管, 每个数码管亮1MS, 显示完接着显示第二位数据, 当所有数码管第一轮全部显示完后返回主程序。
显示部分的逻辑结构遵循:设置显示数据存放单元地址、第1位数据数码管公共端--选中第x位数据数码管, 读取对应的显示数据--显示第x位数据--延时1ms--显示数据存放单元地址加1, 数码管公共端移位--判断几位数据第一轮是否显示完, 如果没有显示完就跳转到"选中第x位数据数码管, 读取对应的显示数据"步骤, 如果显示完就返回主程序。共阳数码管显示示例如下:
3 结束语
在实际应用中, 要根据设计的参数、显示的数据、显示的要求等合理设计硬件电路和程序, 将显示部分单列成子程序进行设计, 调整相关指令及参数。
摘要:在实际应用中, 单片机的数码管显示一般都用动态显示方式, 正确、高效应用数码管动态显示技术是这类设计成功与否的一个关键问题之一。
关键词:单片机,数码管,动态显示,数据
参考文献
[1]郑郁正.单片机原理及应用.成都, 四川大学出版社, 2003年9月.
动态数码管显示 篇5
摘要:介绍一种新型的键盘显示驱动芯片CH451的性能特点和工作原理,给出了CH451键盘显示驱动芯片与MCS-51单片机的接口方法与相应的软件驱动程序。
关键词:键盘显示控制;单片机;CH451
单片机在开发过程中,常常会因为资源不足而不得不大量扩展接口芯片以满足应用系统的需要,其中原因之一是人机界面中的键盘显示占用了系统太多资源,从而造成系统庞大,同时降低了系统的可靠性。在单片机应用系统中,键盘显示通常可采用以下几种方式:
(1)采用并行接口的键盘显示专用芯片8279。但8279所需外围元件多(显示驱动、译码等)、占用电路板面积大、综合成本高,在中小系统中常常大材小用;
(2)采用通用并行I/O芯片扩展(如用8155等),但此方案同样需要驱动显示,同时键盘显示扫描还需占用CPU大量时间;
(3)采用专用显示控制器,并用CPU的I/O引脚完成键盘输入(如MC14499、PS7219、MAX7219、ICM7218、TLC5921等,大多是串行接口并有显示驱动能力,I/O占用少)。这种接口方式省去了显示的扫描,而且电路大多也很简单,通常在系统需要的按键较少时比较适用;
(4)采用带I2C总线的键盘显示芯片(如显示用SAA1064,键盘用PCF8574),不过这种方式对于无I2C总线接口的CPU来说,编程显得有些不便;
(5)采用串行接口的键盘显示专用芯片,如BC7280/81、HD7279、CH451等。这类芯片占用CPU的资源少,传输速度较快,外围器件要求也较少,在中小系统中都可得到广泛的应用。BC7280/81与HD7279中已有介绍,本文着重介绍CH451的主要特性及接口应用方法。
1 CH451的功能与引脚介绍
CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP监控的多功能外围芯片。CH451内置RC振荡电路,可以直接动态驱动8位数码管或者64位LED,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。CH451内置大电流驱动级,段电流不小于30mA,字电流不小于160mA,并有16 级亮度控制功能;在键盘控制方面,该器件内置64键键盘控制器,可实现8×8矩阵键盘扫描,并内置去抖动电路,可提供按键中断与按键释放标志位等功能;在外部接口方面,CH451可选择简洁的1线串行接口或高速4线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位两种输出,同时内置看门狗电路Watch-Dog。CH451提供有28引脚的DIP28与SOP28封装以及DIP24S封装形式,28脚与24脚在功能上稍有差别,它们的引脚定义见表1所列。
表1 CH451的引脚说明
28脚引脚号24脚引脚号引脚名称类 型
引 脚 说 明
232VCC电源正电源,持续电流不小于200mA915GND电源接地,持续电流不小于200mA254LOAD输入4线串行接口的数据加协,带上拉265DIN输入4线串行接口的数据输入,带上拉276DCLK输入串行接口听数据时钟,带上拉,可同时用于看门狗的清除输入243DOUT输出串行接口的数据输出键盘中断22~151、24~18DIG7~SEG0三态输出及输入数码管的段驱动,高电平有效,键盘扫描输入,高电平有效,带下拉1~87~14DIG7~DIG0输出数码管的字驱动,低电平有效,键盘扫描输入,高电平有效,带下拉12不支持RST输出上电复位和看门狗复位,高电平有效13不支持RST输出上电复位和看门狗复位,低电平有效28不支持RSTI输入上电复位门限调整或手工复位输入14不支持ADJ输入段电流上限调整,带强下拉10不支持CLK输入外接阻容振荡11不支持CLKO输出CLK引脚时钟信号的二分频输出 17NC 不连接,禁止使用
2 CH451的操作命令
CH451的操作命令均为12位,其中高4位为标识码,低8位为参数,各操作命令如下:
●空操作:0000xxxxxxxxB(x可为任意值,下同)
空操作命令对CH451不产生任何影响。该命令可以在多个CH451级联的应用中透过前级CH451向后级CH451发送操作命令而不影响前级CH451的状态。例如,要将操作命令001000000001B发送给两级级联电路中的.后级CH451(后级CH451的DIN引脚连接到前级CH451的DOUT引脚),只要在该操作命令后添加空操作命令000000000000B再发送,那么,该操作命令将经过前级CH451到达后级CH451,而空操作命令留给了前级CH451。另外,为了在不影响CH451的前提下变化DCLK以清除看门狗计时器,也可以发送空操作命令。在非级联的应用中,空操作命令可只发送高4位。
● 芯片内部复位:001000000001B
内部复位命令可将CH451的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451均被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。
● 字数据移位:0011000000[D1][D0]B
字数据移位命令共有4个:开环左移、右移,闭环左移、右移。D0为0时为开环,为1时为闭环,D1为0时左移,为1时为右移。开环左移时?DIG0引脚对应的单元补00H,此时不译码方式显示为空格,BCD译码方式时显示为0;开环右移时,DIG7引脚对应的单元补00H;而在闭环时?DIG0与DIG7头尾相接,闭环移位。
● 设定系统参数:010000000[WDOG][KEYB][DISP]B
该命令用于设定CH451的系统级参数?如看门狗使能WDOG、键盘扫描使能KEYB、显示驱动使能DISP等。各个参数均可通过1位数据来进行控制,将相应的数据位置为1可启用该功能,否则关闭该功能(默认值)。
● 设定显示参数:0101[MODE][LIMIT][INTENSITY]B
此命令用于设定CH451的显示参数,如译码方式MODE(1位)、扫描极限LIMIT(3位)、显示亮度INTENSITY(4位)等。译码方式MODE为1时选择BCD译码方式,为0时选择不译码方式。CH451默认工作于不译码方式,此时8个数据寄存器中字节数据的位7~位0分别对应8个数码管的小数点和段G~段A,当数据位为1时,对应的数据段(或发光管)点亮;数据位为0时熄灭。CH451工作于BCD译码方式主要应用于数码管驱动,单片机只要给出二进制数的BCD码,便可由CH451将其译码并直接驱动数码管以显示对应的字符。BCD译码方式是对数据寄存器中字节数据的位4~位0进行兼容BCD的译码,可用于控制段驱动引脚SEG6~SEG0的输出,它们对应于数码管的段G~段A,同时可用字节数据的位7控制段来驱动引脚SEG7的输出以对应数码管的小数点,字节数据的位6和位5不影响BCD译码的输出,它们可以是任意值。将位4~位0进行BCD译码可显示以下28个字符,其中00000B~01111B分别对应于“0~F”、10000B~11010B分别对应于“ ”?空格? 、“+”?+或加号? 、“-”?负号或减号? 、“=”?等于号? 、“?"?左方括号? 、“?”?右方括号? 、“_”?下划线? 、“H” 、“L” 、“P” 、“.”?小数点? 、其余值为空格。
扫描极限LIMIT控制位001B~111B和000B(默认值)可分别设定扫描极限1~7和8。显示亮度INTENSITY控制位的0001B~1111B和0000B(默认值)则用于分别设定显示驱动占空比1/16~15/16 和16/16,以实现16级显示亮度控制。
●设定闪烁控制:0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B
设定闪烁控制命令用于设定CH451的闪烁显示属性,其中D7S~D0S 分别对应于8个字驱动DIG7~DIG0。闪烁属性D7S~D0S分别通过1位数据控制,将相应的数据位置为1可使能闪烁显示,否则为正常显示,不闪烁(默认值)。
●加载字数据:1[DIG_ADDR][DIG_DATA]B
加载字数据命令用于将字节数据DIG_DATA(8位)写入DIG_ADDR(3位)指定的数据寄存器中。DIG_ADDR的000B~111B分别用于指定数据寄存器的地址0~7,并分别对应于DIG0~DIG7引脚驱动的8个数码管。DIG_DATA为待写入的字节数据。
●读取按键代码:0111xxxxxxxxB
读取按键代码命令用于获得CH451最近检测到的有效按键的按键代码。该命令是唯一的具有数据返回的命令,CH451通常从DOUT引脚输出按键代码,按键代码总是7位数据,最高位是状态码,位5~位0是扫描码。读取按键代码命令的位数据B7~B0可以是任意值,所以控制器可以将该操作命令缩短为4位数据B11~B8。例如,CH451检测到有效按键并中断时,如按键代码是5EH,则先向CH451发出读取按键代码命令0111B,然后再从DOUT获得按键代码5EH。
CH451所提供的按键代码为7位,位2~位0是列扫描码,位5~位3是行扫描码,位6是状态码(键按下为1,键释放为0)。例如,连接DIG3与SEG4的键被按下时,按键代码为63H,键被释放后,按键代码是23H。单片机可以在任何时候读取按键代码,但一般在CH451检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位6总是1。另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位6为0。表2是连接在DIG7~DIG0与SEG7~SEG0之间的键被按下时,CH451所提供的按键代码。这些按键代码具有一定的规律,如果需要键被释放时的按键代码,可将表2中的按键代码的位6 置0,也可将表中的按键代码减去40H。应注意的是:CH451不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下。
表2 CH451的键盘编码表
3 串行接口应用电路
CH451与MCS-51单片机的连接如图1所示,其中DOUT引脚最好连接到单片机的中断输入引脚,这样可用中断方式响应按键。如果连接到非中断输入引脚,则应该使用查询方式确定CH451是否检测到有效按键,同时还可向单片机提供复位信号RESET并带Watch-Dog功能。CH451的段驱动引脚串接的电阻R1(200Ω)用于限制和均衡段驱动电流。在5V电源电压下,串接200Ω电阻通常对应13mA段电流。CH451具有64键的键盘扫描功能,为了防止键被按下后在SEG信号线与DIG信号线之间形成短路而影响数码管显示,一般应在CH451的DIG0~DIG7引脚与键盘矩阵之间串接限流电阻R2,其阻值可以从1kΩ至10kΩ。
将P1.0与DIN连接可用于输入串行数据,串行数据输入的顺序是低位在前,高位在后。另外,在上电复位后,CH451 默认选择1线串行接口,如需选择4线串行接口,则应在DCLK输出串行时钟之前,先在DIN上输出一个低电平脉冲,以通知CH451为4线串行接口。将P1.1与DCLK连接可提供串行时钟,以使CH451在其上升沿从DIN输入数据,并在其下降沿从DOUT输出数据。LOAD用于加载串行数据,CH451一般在其上升沿加载移位寄存器中的12位数据以作为操作命令进行分析并处理。也就是说,LOAD的上升沿是串行数据帧的帧完成标志,此时无论移位寄存器中的12位数据是否有效,CH451都会将其当作操作命令来处理。应注意的是,在级联电路中,单片机每次输出的串行数据必须是单个CH451的串行数据的位数乘以级联的级数。
下面是该电路的驱动程序:
;主程序需要定义的参数
DCLK BIT P1.1 ;串行数据时钟,上升沿激活
DIN BIT P1.0 ;串行数据输入
LOAD BIT P1.2 ;串行命令加载,上升沿激活
DOUT BIT P3.2 ;接INT0,键盘中断和键值数据输出
KEY DATA 7FH ;存放键盘中断时读取的键值
;******* 初始化子程序 *******
INIT? CLR DIN ;先低后高,输出上升沿通知
CH451选择4线串行接口
SETB DCLK ;置为默认的高电平
SETB DIN
SETB LOAD
SETB DOUT ;置为输入
MOV B?#04H ;设置系统参数命令
MOV A?#07H ; Watch-Dog使能,开键盘、显示功能
LCALL WRITE
MOV B?#03H ;设置移位命令
MOV A?#00H ;开环左移
LCALL WRITE
MOV B?#05H ;设置显示参数
MOV A?#00H ;不译码,8位显示,最亮
LCALL WRITE
MOV B?#06H ;设置闪烁控制
MOV A?#00H ;不闪烁
LCALL WRITE
CLR IT0 ;置外部信号为低电平触发
CLR IE0 ;清中断标志
SETB EX0 ;允许键盘中断
SETB EA
RET
;******* 输出命令子程序 ******
;入参:B、ACC待写的12位数据? 低8位在ACC中? 高4位在B的低4位中
WRITE? CLR EX0 ;禁止键盘中断
CLR LOAD ;命令开始,此命令可以放在后面
MOV R7?#08H ;将ACC中8位送出
WRITE_8?RRC A ;低位在前,高位在后
CLR DCLK
MOV DIN?C ;送出一位数据
SETB DCLK ;产生时钟上升沿通知
CH451输入位数据
DJNZ R7? WRITE 8 ;位数据未完,继续
MOV A?B
MOV R7?#04H ;将B中4位送出
WRITE 4?RRC A ;低位在前?高位在后
CLR DCLK
MOV DIN?C
SETB DCLK
DJNZ R7? WRITE 4
SETB LOAD ;产生加载上升沿通知
CH451处理命令数据
SETB EX0 ;允许键盘中断
RET
?******* 输入键值子程序 ******
? 出参? ACC键值数据
READ? CLR EX0 ;禁止键盘中断
CLR LOAD ;命令开始
MOV A?#07H ;读取键值命令的高4
位0111B
MOV R7?#04H ;忽略12位命令的低
8位
READ 4? RRC A ;低位在前,高位在后
CLR DCLK
MOV DIN?C
SETB DCLK
DJNZ R7? READ 4
SETB LOAD ;产生加载上升沿通知
CH451处理命令数据
CLR A ;先清除键值单元以便移位
MOV R7?#07H ;读入7位键值
READ_7? MOV C?DOUT ;读入一位数据
CLR DCLK ;产生时钟下降沿通知
CH451输出下一位
RLC A ;数据移入ACC,高位
在前,低位在后
SETB DCLK
DJNZ R7? READ_7 ;位数据未完继续
CLR IE0 ;清中断标志,读操作
过程中有低电平脉冲
SETB EX0 ;允许键盘中断
RET
4 结束语
动态数码管显示 篇6
数字化的数码管显示技术在现代工业控制以及医疗器械方面应用广泛, 而随着显示数据位的不断增加, 传统的基于单片机[1]、外部锁存器和外部译码器的设计显得愈发的复杂和繁琐, 设计成本也相应的增加, 显示抖动的问题愈发严重。而利用FPGA[2]硬件的并行性操作可以完全消除抖动问题, 同时提高了设计的可靠性, 简化了设计, 降低了成本。
数码管显示方式主要分为静态显示和动态显示[3]。由于静态显示方式采用的直接译码方式, 因此需要的外部接口数量是以8为底呈指数增加。因此大多数设计都采用动态显示方式进行多位的显示, 本方案也采用动态显示方式。
设计的FPGA芯片选用的是Altera 公司Cyclone[4] 系列的EP1C12Q240C6, 该芯片具有12 060 LEs 和2个PLLs资源, 173个外部可编程引脚, 内核电压为1.5 V, IO电压设为3. 3 V。由于该芯片具有12 060 LEs 资源, 因此可以为以后扩展数码管显示预留许多LEs 资源。
1系统的逻辑框图
设计主要由三个模块组成:接收模块M1、数值处理模M2、编码锁存模块M3, 其中硬件上的并行性操作主要体现在模块M2和M3上, 根据具体应用通过复制模块M2和M3实现了并行显示 (如图1) 。利用FPGA的逻辑资源换取系统的性能, 从而消除抖动。其中, 接收模块M1的功能是根据UART规范接收外部的串行输入数据, 然后将接收到的串行数据转换成并行数据, 同时将转换得到的并行数据打入内部寄存器中;数值处理模块M2的功能是将模块M1寄存器暂存的16位二进制数据转换成十进制, 同时输出相应的控制信号;译码锁存模块M3的功能是将部分控制信号编码得到数码管显示对应的信号, 同时在数据更新以前保持原来数据的正常显示。由于硬件刷新的速度很快, 从而就消除了显示抖动问题。
2各个模块的具体实现
2.1接收模块M1
为了便于描述, 本模块M1中的串行通讯协议格式定义为:波特率设为9 600 b/s、1位起始位、8位数据位、1位停止位、无校验。外部输入信号:输入时钟clk为1.843 2 MHz , 串行数据输入rx。输出并行数据:data_out[15:0] , 程序框图如图2。
其中串并转换状态机由以下5个状态组成:
rc_idel:起始状态, 执行采样点计数clkcnt12 <=4’b1011同时检测起始位rx==1’b0;
rc_start:当clkcnt12==4’b0110时, 再次检测起始位rx==1’b0;
rc_chk_start:当clkcnt12==4’b0时开始检测有效数据位, 同时执行采样点计数clkcnt12 <=4’b1011, 数据位计数
bitcnt <=4’b0;
rc_bits:当clkcnt12==4’b0110时开始采样数据进行串并转换, 同时接收到的数据位计数bitcnt <=bitcnt+1’b1, 采样点计数clkcnt12 <=clkcnt12-1’b1;
rc_finnal:当bitcnt==4’b1000时, 将两个字节按先低后高的顺序拼装成一个字后输出该字, 字节计数
rc_bytecnt <=rc_bytecnt+1’b1;
该状态机的迁移图如图3。
2.2数值处理模块M2
将M1模块输出的16位二进制数转换成十进制数, 然后将该十进制数进行数值处理得到该数各位的权值, 同时输出相应的控制信号。根据具体要求可以复制多个该模块, 并行的完成多组数值处理以及输出多组相应的控制信号。
2.3编码锁存模块M3
将M2模块输出的各位权值, 按照数码管各个码段的显示定义进行编码, 同时译码每位数码管的公共端, 控制是否点亮码段, 从而实现数码管的显示。在数据更新以前锁存了原来的状态, 同时由于FPGA硬件刷新率很高, 从而避免出现抖动。根据具体的应用可以复制多个该模块, 配合多个M2模块并行的完成多组多位的数值处理, 实现了多组多位的并行显示, 消除了抖动。
3设计的仿真和验证
设计采用VerilogHDL语言[5]实现了6组5位数码管的并行显示。首先在Synplify pro 9.4下完成对源代码的综合, 生成网表文件.vqm, 然后将该网表文件导入Quartus 7.2中完成了布局布线生成了布局布线后的网表文件.vo和延迟文件.sdo, 再将这两个文件导入ModelsimSE 6.3f中, 编写了testbench, 进行布线后的时序仿真, 对波形进行分析满足设计要求。
在Quartus 7.2中完成布局布线后, 查看资源使用情况如下:
Total logic elements: 7717 / 12060 (64%)
Total pins :81 / 173 (47%)
Max frequence (Fmax) :11.65 MHz
从以上数据可以得出:该系统工作的速度足够快可达11.65 MHz, 完全能满足实际需要, 彻底解决了数码管显示抖动的问题, 同时有足够的剩余资源供以后的扩展。
4结语
采用基于FPGA设计的多组多位数码管显示方案, 解决了传统设计中的显示抖动问题, 简化了设计, 降低了成本, 提高了可靠性, 利用模块的可复用性在几乎不用增加硬件成本的情况下可以很方便的进行扩展, 同时在进行系统模块设计以及后期的仿真验证, 都不需要具体硬件的支持, 而在完成布线后的时序仿真满足时序要求后, 只需将布局布线后的网表文件汇编下载到验证板上EP1C12Q240C6的配置芯片EPCS4即可, 这是传统设计无法做到的。
摘要:论述了采用VerilogHDL设计语言开发串行输入的多组多位数码管显示的设计思想。在硬件物理层实现串行数据的接收和硬件编码, 而该物理层是采用VerilogHDL编程在FPGA上实现。利用FPGA硬件执行的并行性解决传统设计方法中难以克服的多组多位数码管显示抖动问题, 这也是一种充分利用FPGA资源换取系统性能的设计方法, 也易于实现数码管显示的扩展。本设计方案的VerilogHDL源代码已经完成综合并通过了布局布线后的时序仿真, 系统性能完全满足实际需求。
关键词:物理层,数码管,FPGA,抖动,VerilogHDL,时序仿真
参考文献
[1]李刚.新概念单片机教程.天津:天津大学出版社, 2007
[2]罗杰.Verilog HDL与数字ASIC设计基础.武汉:华中科技大学出版社, 2008
[3]徐道兵.大尺寸数码管的动态驱动和保护电路设计.单片机与嵌入式系统, 2009; (3) :1—3
[4]Altera Corporation.Cyclone Device Handbook, 2008; (1) :100—340
动态数码管显示 篇7
一、教学基本情况的分析
1.教材分析。《单片机应用技术》是中职电子专业必修的专业平台课程, 通过本课程的学习, 学生具备简单系统的设计、开发能力, 为学生胜任电子企业中的调试、检测、维修等职业岗位工作奠定基础。
我选用的教材是张平、李烨老师主编的《单片机应用技术》, 教材以项目为载体, 以学生为主体, 在项目的层层推进中完成知识与技能的学习。“单只数码管显示”是该课程的重要内容, 具有承前启后的关键作用。
在此部分主要从课程着手分析课程在专业培养目标中的地位, 以及课题在该课程的作用。
2.学情分析。我的授课对象是中职电子专业二年级学生。他们的思维习惯适合“做中学”;适合在企业工作情景中完成学习;他们的基础及能力适合以小组为单位, 合作探究学习。
通过前面的专业学习他们已经具备最基本的读图识图能力, 组装电路的基本能力, 熟练使用办公自动化软件;熟悉单片机开发的流程, 掌握C语言基础知识。但他们刚接触单片机, 在编程, 组装, 调试等一系列过程中难免会出现错误, 会存在“遇难则退”的现象, 这对项目的完成形成一定障碍。
该部分主要分析了学生的学习基础, 学习能力及教学目标形成的困难, 既分析优点有分析不足, 对教学目标达成的可能性作了充分分析。
3.教材处理。结合课程标准及本地企业的岗位需求, 为满足学生学习需要, 对教材作如下处理: (1) 引入生产实例“公交车站牌”, 把评分表换成质检单更符合企业生产实际。 (2) 自制虚拟仿真软件———“数码管显示”. (3) 设计和书本相配套的开发板, 满足学生课外自我学习。
引入校企合作的思想, 借助信息化的教学手段, 使教学内容更贴合学生实际, 减轻学生学习的难度, 激发学生的学习兴趣。
4.教学目标的确定。针对以上情况, 确定教学三维目标, 学生在任务的驱动和教师的点拨下, 完成相关知识的理解, 从中体会团队合作和职业素养的重要性。
基于企业人才需求和岗位需要, 确定教学重点为 “编写循环显示0-9程序”;基于学生实际情况和编程时易漏掉“延时”程序的问题, 确定教学难点为“数码管的显示原理及‘延时’程序的作用”。
教学过程中主要通过提问—讨论—释疑等一系列的活动完成教学目标。借助教学软件、仿真、实物演示来突破教学难点。
二、教学策略的设计
本教学设计按照“做中学”、“做中教”, “教学做合一”的职业教育教学理念, 运用具有我校特色的体验式教学模式, 来组织教学。整个教学以教师和学生为两条主线, 在情景创设, 情感体验、任务引领, 探究体验、总结评价, 强化体验、拓展探究, 升华体验、课外作业, 延伸体验等五个环节中完成教学。
我主要采用情景教学、任务驱动, 多媒体辅助教学, 角色扮演, 让学生在轻松而又紧张的气氛中自主、 合作学习, 良性竞争, 挖掘潜能, 这些都将在之后的教学过程中有所体现。
在教学过程中, 我充分利用了如下资源达成教学目标: (1) 文本资源:项目任务书, 引导学生探究学习。 项目完成后的产品质检单, 课堂评价表培养学生质量意识。 (2) 媒体资源:课前学生通过视频资源, 有效预习。课中通过动画, 降低原理学习的难度。 (3) 实训资源:集仿真、组装、调试于一体的综合实训室使学生感受工作情景, 虚拟实验室便于学生进行仿真学习。
三、教学实施过程
教学环节是课程学习的核心, 本次课主要在师生的相互体验中完成教与学。
为达到良好的课堂教学效果, 课前我充分整合实训资源, 模拟企业真实工作情景, 将实训室划分为不同的区域 (仿真区, 电路组装区和综合调试区) , 让学生在体验职业环境中, 养成良好的职业习惯和职业素养;仿真软件和编程软件搭建单片机虚拟实验室。教师通过QQ群共享教学资源, 如动画、视频、教学软件、项目任务书、成品质检单等帮助学生有效进行课前预习。
1.情景创设, 情感体验。情景创设情感体验环节, 教师展示学生课前调研的成果, 如十字路口的交通灯、公交车站牌中的数码管显示, 让学生获得情感体验, 在情境的感染下, 教师展示仿真作品和实物作品, 明确教学任务———采用数码管循环显示0-9来模拟公交车站牌显示。接着引导学生按照项目开发流程, 实施项目。
此时实训室俨然是个真实的设计车间, 学生身临其境, 在其中掌握知识, 提升能力。
2.任务引领, 探究体验。任务引领探究体验环节, 每个任务中, 学生用手机拍摄自己的表现并完成自我评价, 便于在总结环节分享经验教训。
任务一:知识准备。面对原理抽象的特点, 我采用多媒体辅助教学法引导学生有效学习。学生在问题的指引下, 充分利用教学软件等学习资源, 小组讨论完成项目任务书中相关内容, 教师巡回指导, 适时点拨。 通过组间交流学习成果, 校对知识点的方式, 完成知识的准备, 为控制程序的学习打下基础。
任务二:硬件电路设计。在虚拟实验室中搭建电路, 可避免以往教学中因反复修改电路造成的资源浪费。结合中职生的培养目标, 将设计电路调整为看懂并修改电路图。我通过电子教室展示硬件电路, 学生小组讨论完成电路的搭建, 展示小组方案, 师生评估方案。该环节为学生搭建一个开拓思维的平台, 学生的不同创意将体现其中。
任务三:软件设计。软件设计是教学的重点和难点所在, 细分成了两个活动。活动一, 用数码管显示小组组别, 活动二, 循环显示“0-9”, 活动由易到难, 符合中职生的认知规律。活动一, 学生用已有知识, 小组讨论程序流程图, 编写并调试程序。刚接触数码管编程, 学生的问题还比较多, 主要通过组内探究, 组间帮助及教师引导的方式解决问题。这是其中一组学生的成果展示。
在学生体验成功的喜悦时, 转入活动二的学习, 学生编写调试程序, 各组展示成果, 观察到两种现象, 第一种能正常显示, 第二种人眼能辨别, 但跳动太快, 显然第二种有问题。教师采用实物演示法, 引导学生把仿真环境下不同效果的“hex”文件烧入开发板, 观察到两种完全不同的效果, 教师趁机让学生明白“仿真只是实践前的一次演练, 无法替代实践”。师生结合程序, 找出程序的差异, 分析不正常显示的原因, 让学生理解“延时”的作用, 有效突破教学难点。
任务四:电路的组装与调试。任务四中, 我主要采用角色扮演法组织教学。组内三人各司其职, 在组长的统调下, 装配工负责电路的组装与调试, 程序员负责优化程序, 检测工负责检测产品及制作总结汇报的PPT。
装配工在前面组装的基础上牢记用电安全完成本项目的硬件电路, 装配工用杜邦线搭建硬件电路; 检测工检查无误后通电;程序员烧入程序, 按照项目要求综合调试实现相应的功能。这是最终实现的效果。检测工完成产品质量检查, 并填写产品质检单, 教师巡回指导并充当质检监督的角色。
学生制作好的电路板, 最终形成本书的开发板。 主要采用小组比拼的方式进行, 学生间互相帮助, 密切配合, 团队意识的培养融入其中。至此, 教学的三维目标已经基本达成。
3.总结评价, 强化体验。根据质检结果及完成的速度评选出“最佳质量组”。在教学过程中, 我们关注的不仅仅是产品的质量, 而更应该是学生对完成项目的总结和升华。“最佳质量组”代表通过电子教室从产品介绍, 组员分工及表现、解决问题的方法等方面一一分享。在答辩环节, 每组同学分享制作项目时遇到的问题, 根据回答问题的质量将评选出“最佳辩手”, 期间我则对他们的问题释疑, 补充。教师颁发奖状, 激励先进。学生完成课堂评价表。此环节让每个同学深受启发, 增强团队凝聚力, 有助于培养学生的质量意识和学习自信心。
4.拓展探究, 升华体验。引导学生利用本次课的所学知识推导共阴和共阳数码管显示“H”时候的代码, 归纳代码间的关系。建议学生用共阳数码管实现 “0-9”的循环显示。
拓展探究, 使学生进一步掌握数码管的显示原理;进一步巩固单只数码管显示的编程方法。
5.课外作业, 延伸体验。鼓励学生课后进一步优化程序, 完成拓展部分未完成的内容。此时教师引导学生以8S标准整理完实训场所, 有序离开, 培养学生良好的职业素养。
四、教学反思
在整个任务实施的过程中, 我们采用体验式教学模式, 学生在不断的体验过程中, 完成了单只数码管显示的学习, 达到预定的教学目标。成功之处在于:
1.信息技术的合理利用, 有效突破教学重难点。如教学软件、Proteus仿真软件, 多媒体电子教室, QQ群交流平台的合理使用。
2.教学过程与生产过程对接。让学生有效形成职业岗位能力。在项目实施过程中, 发现学生处理细节的能力高低, 决定了产品的质量和速度。这就要求我善于捕捉生成性教学资源, 课前细化项目任务书, 利用学生感兴趣的视频、动画、微课等方式, 使学生预习更有针对性, 课堂任务实施更有效。
参考文献
[1]张平, 李烨.单片机应用技术[M].南京:江苏教育出版社, 2013.
[2]耿一波.实施体验式教学, 构建高效课堂教学模式[J].江苏教育研究, 2013, (11) .
[3]周荻.职业学校加工制造类专业技能课程“两课”评比的特点归析[J].江苏教育, 2014, (3) .
动态数码管显示 篇8
本文以SEP3203处理器+实时操作系统Nucleus为平台,讨论如何在电机保护装置中优化设计动态显示功能。文章先就电机保护硬件平台做简要的介绍,接着说明显示部分硬件的设计,然后着重阐述,在Nucleus操作系统中如何实现驱动程序的设计,最后阐述如何通过Nucleus实时操作系统的任务调度,保证动态显示时不破坏保护的实时性要求,以及通过优化设计去除显示时的闪烁。
1 硬件平台实现
图1为显示部分硬件系统框架图。
1.1 主要芯片介绍
SEP3203:东南大学国家ASIC中心自主研发的一款基于ARM7TDMI内核的嵌入式处理器芯片。芯片可以稳定工作在75MHz,内置SDRAM/SRAM/NORFLASH/NANDFLASH控制器、TFT/STN LCD控制器、2个串口和85个GPIO,主要面向低成本的多媒体手持终端应用和嵌入式控制器类应用。
74LVT12645:16位3态传输接收缓冲芯片
74HC595:8位串行输入串/并行输出移位寄存器
1.2 工作原理
电机运行时的数据,如三相电流电压等值,以及保护装置的设定值,保护发生的历史信息要告知给用户,就要通过数码管的显示来实现,为了区分不同类型的数据信息以及便于人机交互,就给装置定义了一套数码管的GUI。GUI是显示的上层,位于下层的是显示部分硬件电路以及数码管和LED驱动程序,数据串转并的硬件连接图如图2。
PG5,PG6,PG7是SEP3203的一组通用输入输出口,LVT16245是一个缓冲器,只起到隔离作用,不影响正常信号波形,SER,CLK和CS分别是74HC595的串行数据输入引脚,时钟输入引脚和片选引脚,电路由SEP3203的PG5通过编程产生时钟信号,经过LVT16245后作为74HC595的输入时钟,再由SEP3203的PG7产生片选信号,低电平则选中74HC595芯片,Q7是74HC595的串行输出引脚,可用于级联。
由于电机保护中共有6个LED灯用于指示电机和装置的不同状态,4位8段数码管共用8个数据通道,所以有效数据位数为14位。数据从SEP3203的通用输入输出口PG5以串行的方式输出,一次送16位数据,完成一次数据传输。其中低8位数据用于LED指示灯,有效的数据只有6位,高8位数据用于数码管显示,16位数据以低位先送的方式从U1的SER引脚输入,传输16位以后,低8位从U1的Q7以串行的方式输出至U2的串行输入引脚SER,并在U2的并行输出引脚输出,来驱动LED指示灯;同时高8位数据仍留在U1中,并在U1的并行引脚输出,来驱动数码管的8个段。
由于8位数码管共用8位数据通道,如不加控制电路使4位数码管轮显,4位数码管在同一时刻将显示相同的内容,起不到动态显示的作用。为了实现动态显示,需加控制电路,如图3。
四位数码管的8根用来段显示的数据线是公用的,只有接地引脚是分开的。PE6,PE7,PE8,PE9也是SEP3203的一组通用输入输出口,这组端口用作轮显控制信号输出,经LVT16245缓冲隔离后直接控制4个开关管,控制方法是PE9,PE8,PE7,PE6轮流置高电平,即依次循环输出0001、0010、0100、1000。当第一组16位数据的高8位到达U1后,PE9,PE8,PE7,PE6输出0001,使Q1导通,其余截止就只在第一个数码管上显示,依此类推,第二组,第三组,低四组数据的高8位分别显示在第二,第三,第四个数码管上。这样就实现了轮显,利用视觉残留,在同一时刻看起来4个数码管分别显示了不同的内容。
2 驱动程序实现
前面已经论述了硬件平台的实现,但要使硬件能正常工作,就要依赖于软件的设计。电机保护中数码管显示的GUI是位于上层的软件,数码管显示驱动程序则是位于硬件电路和GUI之间的中间层。为了让硬件能按既定功能正常工作,为GUI提供接口以及将来移植的方便性,驱动程序的设计就是关键的一环。驱动程序主要实现以下四个功能:对端口初始化,对字符和数字的编码,实现字符和数字的显示接口和显示更新。函数如下:
ARM处理器的通用输入输出端口,从图2,图3可以看出需要初始化的端口有PG5、PG6、PG7、PE6、PE7、PE8、PE9,首先需要将这些端口配置为通用端口,然后再配置端口为输出端口,初始化完成。Led_Num_Init(void)用于为数码管显示所用到的字符和数字进行编码,并将将编码存放于数组中,以便上层的GUI直接调用这些字符和数字。函数sLedout()是驱动程序的核心函数,数码管显示的字符和数字是通过直接调用此函数完成的,此函数提供了一个显示接口。函数实现的流程如图4。
3 数码管GUI任务
在驱动程序完成以后,需要创建GUI任务,在GUI任务中调用驱动程序中的显示接口函数,使字符和数字显示在数码管上。电机保护中含有比较复杂的运算,要占用大量系统资源,为了保证程序运行可靠有序,并考虑移植时的方便,就要引入操作系统,让操作系统来进行管理。
3.1 Nucleus实时操作系统
Nucleus操作系统是Accelerated Technology公司开发的抢先式多任务操作系统内核,其中95%的内核用ANSIC写成,因此非常便于移植并能够支持大多数类型的处理器。Nucleus PLUS是其内核,具有以下特点:
1)快速响应时间:对临界资源的检测时间不依赖于占有该临界资源的线程执行时间的长短,一旦低优先级线程释放掉临界资源(不管其是否执行完),高优先级线程就会抢占运行。
2)每个任务的执行时间和其他任务的处理时间无关。
3)较高吞吐量:随着任务数目的增多,任务的调度时间为常数。
4)可扩展性:利用现有系统调用的结合可得到新的系统调用。
3.2 显示任务
为了保证电机保护中保护任务,通信任务,故障入波等任务的可靠执行,应该将显示任务的优先级设定为它们之中最低的一个,显示任务的优先级仅比空任务的优先级高。在Nucleus中用于创建任务的函数是:NU_Create_Task,在创建任务之前还需要创建内存池,该函数是NU_Create_Memory_Pool,在Nucleus的应用程序入口函数中,调用这两个函数就创建了一个GUI任务,代码如下:
3.3 消除闪烁
由于4位数码管显示是动态显示,所以每一位的延时如果设定不当,延时时间太小或太大都将引起闪烁,由于数码管被点亮需要一定的时间,电信号传输过快,没来得及完全点亮数码管下一个电信号就已经来临,看起来就会闪烁。电信号传输太慢,4位数码管轮流显示的过程,就会被肉眼分辨出来。经测试,在保护任务等几个任务运行完成以后,再运行显示任务,刚好看起来数码管不闪烁。
4 结论
微机电机保护装置中数码管显示功能的设计分成三个方面:第一硬件电路的设计;第二驱动程序的设计;第三显示任务的设计,下层设计都是为上层服务的,上层又依赖于下层的设计,层次分明,便于移植和系统的维护。
摘要:在电机保护装置中,装置采集到的数据以及装置的工作状态等一系列信息需要实时地显示出来,如果采用液晶显示,虽然一屏能显示的信息会比较大,但也同时增加了装置的成本,如果采用4个独立的1位数码管,将会增加硬件连线的复杂度,占用大量的输入输出端口,造成硬件资源的浪费,基于以上原因,采用4位数码管不仅可以降低成本,还可以节省有限的硬件资源,利用视觉残留来实现数据的动态显示。通过该文以基于ARM7TDMI核的SEP3203嵌入式微处理器,以及Nucleus实时操作系统为例,阐述如何在电机保护装置中实现4位数码管动态显示。
关键词:电机保护,4位数码管,实时性,轮显,动态显示
参考文献
[1]Nucleus Plus Reference Manual[S].Accelerated Technology Inc.,1998.
[2]ARM Limited.ARM Architecture Reference Manual[S].2000.
[3]ARM Limited.ARM7TDMI Technical Reference Manual[S].2001.
[4]时龙兴,凌明.嵌入式系统——基于SEP3203微处理器的应用开发[M].北京:电子工业出版社,2006.
[5]SEP3203F50用户手册[S].南京博芯电子技术有限公司,2004.
[6]胡庆钟,李小刚,吴钰淳,等.C/C++语言硬件程序设计——基于TMS320C5000系列DSP[M].西安:西安电子科技大学出版,2003.