基于单片机PIC12C508的LED显示电路及编程设计
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:主复位(低电平)。
在电路中,两片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口,所用芯片体积小,价格低廉,软件译码方式增大显示信息量,且简化了硬件电路,故该模块特别适用于低价格的便携式系统。
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)