0 引 言
LED显示以其使用方便,价格低廉等优点而得到广泛应用。它的显示接口按驱动方式可分为静态显示和动态显示两种。静态显示虽然亮度高,无闪动,但具有功耗大,占I/O口多,成本高等缺点。在I/O口紧张的情况下大多采用动态显示方式。目前,市场上有许多专用的动态显示接口芯片可供选择。但是,这些芯片价格普遍较高,而不适合在廉价系统中应用。有些专用芯片(如MC14489)采用硬件译码方式,显示的信息量有限,难以满足各种要求,影响了它的应用。在此介绍一种价格低廉,效果良好的LED动态显示电路,通过软件译码,串行显示方式,节省大量I/O线,不仅能显示数字,而且可以显示大部分英文字母。
1 硬件说明及工作原理
主要硬件包括:单片机PIC12C508,2片移位寄存器74HC595,8个LED数码管,8个220 Ω左右的限流电阻。
1.1 PIC12C508的介绍
PIC12C508是MICROCHIP公司开发的具有低价格、低功耗、高性能、8位、全静态等特点的CMOS单片机。它采用RISC结构,有着广泛的应用范围,尤其适用于便携式电子产品。
PIC12C508引脚图(见图1)说明如下:
GP0:双向输入/输出端口/串行编程数据端;
GP1:双向输入/输出端口/串行编程时钟端;
GP2:双向I/O端口;
GP3:输入端口;
GP4:双向I/O端口;
GP5:双向I/O端口。
1.2 74HC595的介绍
74HC595具有8位移位寄存器,1个存储器和三态输出功能。移位寄存器为串行输入,8位并行(或串行)输出。移位寄存器和存储器分别是时钟、数据在SR-CLK上升沿的输入并移位:Q0→Q1→Q2→…→Q7,在RCLK上升沿进入存储寄存器。当E为低电平时,存储寄存器的数据输出到总线。74HC595引脚图(见图2)功能如下:
Q0~Q7:并行数据输出端;
Q7':级联输出端;
SRCLK:移位寄存器的时钟脉冲输入端;
RCLK:存储寄存器的时钟脉冲输人端;
SER:串行数据输入端;
E:输出有效(低电平);
SRCLR:主复位(低电平)。
1.3 硬件电路设计
在电路中,两片74HC595,一片作为段码驱动A,另一片作为位码驱动B,采用级联方式连接。单片机PIC12C508的GP0,GP1和GP2端口模拟数据输出端和时钟输出端。段码驱动A的串行数据输入端(SER)和移位寄存器时钟端 (SRCLK)分别接12C508的GP0和GP1端口,存储寄存器时钟端(RCLK)接GP2。位码驱动B的SER和SRCLK端分别接段码驱动A的级联输出端(Q7')和12C508的GP1端口,RCLK端接GP2。同时,两片74HC595的E端接地(见图3)。
在显示过程中,通过译码表确定要显示字符的段码值,根据字符在LED中的显示位置(假定为最低位)确定其位码值为FEH(1111 1110)。先将位码值在SR-CLK脉冲的作用下送入段码驱动A;接着取字符段码值,同样送入段码驱动A。此时,位码值已通过级联端Q7'送入位码驱动 B。然后,让GP2输出一上升沿,使移位寄存器中的值输出至存储寄存器,进而从8个并行输出端输出。延时2 ms,字符就可在预定位置显示。若要求在低二位显示时,位码变为FDH(1111 1101),再译得第二个字符的段码值,重复上述过程即可。这样,在主程序中循环调用显示程序,交替发送段码和位码,就可使LED达到理想的显示效果。
2 程序流程及编写
主程序流程图如图4所示,以下程序实现数字0~7的显示:
3 结 语
在此介绍一种新型LED显示电路,采用串行方式,极大地节省了单片机I/O口,所用芯片体积小,价格低廉,软件译码方式增大显示信息量,且简化了硬件电路,故该模块特别适用于低价格的便携式系统。