当前位置: 首页 > 工业电气产品 > 高低压电器 > 微型断路器

类型分类:
科普知识
数据分类:
微型断路器

PIC单片机控制点阵LED显示技术研究

发布日期:2022-04-18 点击率:117

 一、点阵LED的结构 
  使用的LED为14*15点阵,由六片7*5点阵LED拼接而成,先分别用三片LED横向组成两个7*15点阵,再用两个7*15上下排列,组成需要的14*15点阵。当某一个LED所在的行驱动为低,列驱动为高时,这个发光管被点亮。 
  二、静态显示电路的构成 
  74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。CLK(第8脚)为时钟输入端,可连接到串行口的同步时钟输出端。每一个时钟信号的上升沿加到CLK端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,再来一个脉冲,第一个脉冲就会从最高位移出。4片74LS164首尾相串,而时钟端则接在一起。 
  只要我们对每片LED上7位行驱动中的一位输入低电平,这行中相应列驱动为高的点就会被点亮。如此反复向每一行送入低电平,同时在相应的行被选中时,在列送入相应的数据,并反复的扫描,由于人眼存在视觉暂留效应就可以看到预期的画面信息。 
  三、编码方式 
  编码方式是由硬件设计方式决定的。因为送入下排三个LED中最后一片最后一位的列驱动是最先进入74LS164的数据,所以字模的编码顺序和在LED显示顺序正好相反。而且PIC16F877做串行输出时,串行输出寄存器SSPBUF中的8位数据的最高位是最先送出的,所以每行8个点是右面为高位,左面为低进行编码。后面的类推,要显示一个完整的14*15点阵共需要28组的8位2进制字模数据。 
  四、PIC16F877与LED电路的连接 
  PIC16F877中提供了两个串行通信模块,分别是同步串行口和通用同步异步接收发送器。其中MSSP模块又提供了两种工作方式,一种是串行外围接口(SPI),另一个工作方式是芯片间通信总线(IIC)。SSP模块主要用于单片机和其他外围接口或微处理器芯片间的串行通信,像串行EEPROM、显示控制器、模拟数字转换器等,都属于电路板上众多器件间的串行通信接口。USART则属于和电路板外部设备串行通信的接口,简单地说就是RS232接口,可以与PC通信。所以,我们选择SPI同步串行通信方式送入行选编码。SPI工作方式提供8位数据的传输,SCK引脚上的时钟速度决定数据的传输速度。在连接的器件中,由主控器件来产生时钟,其他器件以此外界的时钟为标准。因此在使用SPI方式时,必须确定那个器件为主控器件,其它则为从控器件。本电路使用PIC16F877作为主控器件,SSP模块工作在主控方式下。SCK引脚的时钟由单片机自己产生,因此可以在任何时候数据的传送,传送在有写入SSPBUF缓冲器的动作时开始,我们用SCK引脚输出串行输出同步时钟。本电路中的SPI模块中用来输入出数据,那么SDI引脚可以关掉不用,这时SSBUF寄存器里的内容全根据设定的时钟一位的由SDO引脚移出。在设置使用MSSP模块的SPI工作方式前第一件事是初始化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引脚上的电平状态,而写PORTD

 端口寄存器则是写入其数据锁存器。另外,D端口还可以作为并行从动端口与单片机总线接口。这里,我们使用它的8 位并行数据输出功能,作为7位并行行选信号和一位使能信号的输出。 
  五、程序的编写 
  程序各模块功能说明: 
  INITIAL:初始化模块。设置串行口工作方式为SPI主动方式;RC3,RC5引脚为输出;SSPBUF寄存器在时钟上升沿送出数据;串行同步时钟为单片机内部时钟的四分频;清SSP中断标志;使能SSP模块。 
  I2C_OUT:串行口发送数据模块,要发送的数据存放在TXDATA寄存单元中。将TXDATA内容送入SSPBUF中后,检查SSPIF位。当此位被置1时,表示SSPBUF数据送完。SSPIF位需要手动清零,然后此模块返回。 
  SHOW:将表TABLE的段地址装入数据寄存器DATA1中。共有四个字符要显示,数据寄存器NUM中存放当前显示的是第几个字体符。 
  SHOW1:每送一次行选取数据后连续送四个列选数据,数据寄存器R1 中存放在送出的是每四个列选数据是的第几个,初始值为4。 
  SHOW2:初始化表地址段内偏移数据寄存器R0。由段地址和段内偏移相加得出要查表数据的页内地址,地址值存放W寄存器。查表得到地址W 内的数据内容放入TXDATA数据寄存器,即当前要送入的列选数据。 
  SHOW3:将行选数据寄存器R2中的内容送放D口,显示已经送出的四组列选数据。调用延迟模块。关闭D口,LED全灭。从新计算行选数据,然后存入行选数据寄存器R2中。通过R3寄存器判断是否一个字符是否全部显示完毕,如果没有完毕则回到SHOW1模块,送出下面四个列选数据;否则转到下一个模块。 
  NUMBER:将当前的段内偏移加上段地址作为新的段地址,这个新的段地址存放在DATA1数据寄存器中。判断是否所有字符都已经显示完毕。如果没有则转移到SHOW6模块准备显示下一个字符;如果所有字符都已经显示完毕,则回到主模块MAIN,循环显示四个字符。 
  DELAY:延迟模块。因为每次LED上只有一行是显示出来的,所以快速的刷新会在人的视觉系统中造成视觉暂留,人眼看到的就会是一幅完成的画面。延迟程序时间的长短应使人肉眼看到的画面连贯,无强烈闪烁。 

下一篇: PLC、DCS、FCS三大控

上一篇: 索尔维全系列Solef?PV

推荐产品

更多