《PIC单片机控制点阵LED显示技术研究》由会员分享,可在线阅读,更多相关《PIC单片机控制点阵LED显示技术研究(3页珍藏版)》请在金锄头文库上搜索。
1、1单片机控制点阵显示技术 研究摘要LED 显示技术在工业仪表中应用十分广泛,它能直观地显示运行系统的实时状态。同时 PIC 单片机由于功能强,成本低的优势在各种仪表中应用广泛。对 PIC 单片机控制点阵 LED 显示技术进行研究。 关键词PIC 单片机 LED 控制 一、点阵 LED 的结构 使用的 LED 为 14*15 点阵,由六片 7*5 点阵 LED 拼接而成,先分别用三片LED 横向组成两个 7*15 点阵,再用两个 7*15 上下排列,组成需要的 14*15 点阵。当某一个 LED 所在的行驱动为低,列驱动为高时,这个发光管被点亮。 二、静态显示电路的构成 74LS164 为 TT
2、L 单向 8 位移位寄存器,可实现串行输入,并行输出。其中A、B(第 1、2 脚)为串行数据输入端,2 个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。CLK(第 8 脚)为时钟输入端,可连接到串行口的同步时钟输出端。每一个时钟信号的上升沿加到 CLK 端时,移位寄存器移一位,8 个时钟脉冲过后,8 位二进制数全部移入 74LS164 中。在给出了 8 个脉冲后,最先进入74LS164 的第一个数据到达了最高位,再来一个脉冲,第一个脉冲就会从最高位移出。4 片 74LS164 首尾相串,而时钟端则接在一起。 只要我们对每片 LED 上 7 位行驱动中的一位输入低电平,这行中相应列驱动为
3、高的点就会被点亮。如此反复向每一行送入低电平,同时在相应的行被选中时,2在列送入相应的数据,并反复的扫描,由于人眼存在视觉暂留效应就可以看到预期的画面信息。 三、编码方式 编码方式是由硬件设计方式决定的。因为送入下排三个 LED 中最后一片最后一位的列驱动是最先进入 74LS164 的数据,所以字模的编码顺序和在 LED 显示顺序正好相反。而且 PIC16F877 做串行输出时,串行输出寄存器 SSPBUF 中的 8位数据的最高位是最先送出的,所以每行 8 个点是右面为高位,左面为低进行编码。后面的类推,要显示一个完整的 14*15 点阵共需要 28 组的 8 位 2 进制字模数据。 四、PI
4、C16F877 与 LED 电路的连接 PIC16F877 中提供了两个串行通信模块,分别是同步串行口和通用同步异步接收发送器。其中 MSSP 模块又提供了两种工作方式,一种是串行外围接口(SPI),另一个工作方式是芯片间通信总线(IIC)。SSP 模块主要用于单片机和其他外围接口或微处理器芯片间的串行通信,像串行 EEPROM、显示控制器、模拟数字转换器等,都属于电路板上众多器件间的串行通信接口。USART 则属于和电路板外部设备串行通信的接口,简单地说就是 RS232 接口,可以与 PC 通信。所以,我们选择 SPI 同步串行通信方式送入行选编码。SPI 工作方式提供 8 位数据的传输,S
5、CK引脚上的时钟速度决定数据的传输速度。在连接的器件中,由主控器件来产生时钟,其他器件以此外界的时钟为标准。因此在使用 SPI 方式时,必须确定那个器件为主控器件,其它则为从控器件。本电路使用 PIC16F877 作为主控器件,SSP 模块工作在主控方式下。SCK 引脚的时钟由单片机自己产生,因此可以在任何时候3数据的传送,传送在有写入 SSPBUF 缓冲器的动作时开始,我们用 SCK 引脚输出串行输出同步时钟。本电路中的 SPI 模块中用来输入出数据,那么 SDI 引脚可以关掉不用,这时 SSBUF 寄存器里的内容全根据设定的时钟一位的由 SDO 引脚移出。在设置使用 MSSP 模块的 SP
6、I 工作方式前第一件事是初始化 MSSP 模块,SSPCON 寄存器包含了要设置的相关位,在设置完成后,置 MSSP 模式使能位SSPEN,便可以开始 SPI 方式的工作。同时,要复位 SSP 模块,只要先将 SSPEN位清除 0,然后重新设置 SSPCON,再将 SSPEN 设置为 1 就可以。设定好SSPCON 就相当于设定了 SDO,SCK,SDI,SS 为串行通信用的引脚,因此除了SSPCON 寄存器的设置外,对 SPI 工作方式用到的引脚也要设置。SDO 和 SCK 为输出引脚,因此 TRISC3和 TRISC5必须清零。 PORTD 端口寄存器读出的是相应的 I/O 引脚上的电平状
7、态,而写 PORTD 端口寄存器则是写入其数据锁存器。另外,D 端口还可以作为并行从动端口与单片机总线接口。这里,我们使用它的 8 位并行数据输出功能,作为 7 位并行行选信号和一位使能信号的输出。 五、程序的编写 程序各模块功能说明: INITIAL:初始化模块。设置串行口工作方式为 SPI 主动方式;RC3,RC5 引脚为输出;SSPBUF 寄存器在时钟上升沿送出数据;串行同步时钟为单片机内部时钟的四分频;清 SSP 中断标志;使能 SSP 模块。 I2C_OUT:串行口发送数据模块,要发送的数据存放在 TXDATA 寄存单元中。将 TXDATA 内容送入 SSPBUF 中后,检查 SSP
8、IF 位。当此位被置 1 时,表示4SSPBUF 数据送完。SSPIF 位需要手动清零,然后此模块返回。 SHOW:将表 TABLE 的段地址装入数据寄存器 DATA1 中。共有四个字符要显示,数据寄存器 NUM 中存放当前显示的是第几个字体符。 SHOW1:每送一次行选取数据后连续送四个列选数据,数据寄存器 R1 中存放在送出的是每四个列选数据是的第几个,初始值为 4。 SHOW2:初始化表地址段内偏移数据寄存器 R0。由段地址和段内偏移相加得出要查表数据的页内地址,地址值存放 W 寄存器。查表得到地址 W 内的数据内容放入 TXDATA 数据寄存器,即当前要送入的列选数据。 SHOW3:将
9、行选数据寄存器 R2 中的内容送放 D 口,显示已经送出的四组列选数据。调用延迟模块。关闭 D 口,LED 全灭。从新计算行选数据,然后存入行选数据寄存器 R2 中。通过 R3 寄存器判断是否一个字符是否全部显示完毕,如果没有完毕则回到 SHOW1 模块,送出下面四个列选数据;否则转到下一个模块。 NUMBER:将当前的段内偏移加上段地址作为新的段地址,这个新的段地址存放在 DATA1 数据寄存器中。判断是否所有字符都已经显示完毕。如果没有则转移到 SHOW6 模块准备显示下一个字符;如果所有字符都已经显示完毕,则回到主模块 MAIN,循环显示四个字符。 DELAY:延迟模块。因为每次 LED 上只有一行是显示出来的,所以快速的刷新会在人的视觉系统中造成视觉暂留,人眼看到的就会是一幅完成的画面。延迟程序时间的长短应使人肉眼看到的画面连贯,无强烈闪烁。 参考文献: 1程明、刘琴,LED 显示屏的原理及其无线寻呼通信方法J.电讯技术,2004, (04). 2王永忠,银行自动叫号系统的设计J.北京服装学院学报(自然科学版),2006, (02).