1、=采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并行传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之
2、后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两个部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以至影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能。对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器
3、进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。图7.1为显示屏电路实现的结构框图。列驱动电路列驱动电路由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。行驱动电路单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的行线。一条行线上要带动16列的LED进行显示,按每一LED器件20mA电流计算,16个LED同时发光时,需要320mA电流,选用三极管
4、8550作为驱动管可满足要求。原理图:74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SHcp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在STcp(存储器时钟输入)的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。8位串
5、行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。编辑本段特点8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态输出寄存器(三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路。)可以直接清除 100MHz的移位频率编辑本段输出能力并行输出,总线驱动; 串行输出;标准中等规模集成电路595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。参考数据
6、Cpd决定动态的能耗,Pd=CpdVCCf1+(CLVCC2f0)F1=输入频率,CL=输出电容 f0=输出频率(MHz) Vcc=电源电压编辑本段引脚说明符号 引脚 描述Q0Q7 8位并行数据输出,其中Q0为第15脚GND 第8脚 地Q7 第9脚 串行数据输出MR 第10脚 主复位(低电平)SHCP 第11脚 移位寄存器时钟输入STCP 第12脚 存储寄存器时钟输入OE 第13脚 输出有效(低电平)DS 第14脚 串行数据输入VCC 第16脚 电源编辑本段功能表输入输出功能SHCPSTCPOEMRDSQ7QnLNCMR为低电平时仅仅影响移位寄存器空移位寄存器到输出寄存器HZ清空移位寄存器,并
7、行输出为高阻状态Q6逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态 移入Qn移位寄存器的内容到达保持寄存器并从并口输出Q6移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出编辑本段注释H=高电平状态L=低电平状态=上升沿=下降沿Z=高阻NC=无变化=无效当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。真值表编辑本段程序样例DS接MOSI,OE/GND接GND,SH_CP接SCLK,ST_CP接使能信号BIT0P1,MR/VCC接POWER,如果不需要16位,改US16B,不使用H寄存器即可,还有SPI工作期间可以进入低功耗
8、,也可以执行指令.#include void main(void)WDTCTL = WDTPW + WDTHOLD;P1DIR |= BIT0 + BIT1;P1OUT &= BIT0;USICTL0 |= USIPE6 + USIPE5 + USIMST + USIOE;USICTL1 |= USIIE;USICKCTL = USIDIV_7 + USISSEL_2;USICTL0 &= USISWRST;while(1)P1OUT |= BIT0;USISRH = 0xAA;USISRL = 0xAA;USICNT = 0x10 + USI16B; / 16位数,级联可用.1while(USICTL1 & USIIFG) != 0x01) /此处可以干别的/这里写入与SPI无关的代码,共8*16=128条单周期指令.USICTL1 &= USIIFG;74HC595 是一款漏极开路输出的CMOS 移位寄存器,输出端口为可控的三态输出 端,亦能串行输出控制下一级级联芯片。特点: 高速移位时钟频率Fmax25MHz 标准串行(SPI)接口 CMOS 串行输出,可用于多个设备的级联 低功耗:TA =25时,Icc=4A(MAX)引脚功能表: