1主要器件介绍1.1 ps1016单片机 ps1016单片机引脚排列如图1所示,其特点如下: 1.固化在芯片内部的picbasic解释程序,提供32条语句; 2.20mhz的系统时钟,16位双向的位可独立编程为输入/输出(i/o)口,支持多种i/o操作; 3.picbasic源程序存放在外扩的24lc16be2prom中。e2prom的容量为2k字节,约可存放600~800条语句。 |
1.2 8位led控制驱动器ps7219
ps7219引脚排列如图2所示。ps7219是一种高性能,低价格的多位led显示驱动器。它在性能上完全兼容max7219,并增添了位闪等功能。其接口采用流行的同步串行外设接口(spi),可与任何一种单片机方便接口,并可同时提供64路输出或驱动64只独立led。ps7219内部具有15×8ram功能控制寄存器,可方便寻址,对每位数字可单独控制、刷新,不需重写整个显示器。显示的亮度可数字控制,每位都具有闪烁使能控制位,引脚con置高电平,可禁止所有显示,达到降低功耗的效果,并不影响对控制寄存器的修改。ps7219还有一个掉电模式,一个允许用户从1位数显示到8位数显示选择的扫描界限寄存器和一个强迫所有led接通的测试模式。n个ps7219级联,可实现n×8位led的显示。
2 硬件设计 硬件组成框图如图3所示。 |
整个系统以单片机ps1016为核心,它控制整个系统的输入输出。其控制可分为编程和运行两个状态,在编程状态ps1016接受小键盘的输入并把数据处理后存储到1m位cmos串行e2prom24lc256中。运行时从24lc256中顺序取出数据并按编程设计要求发送到各个ps7219中,点亮端口,整个程序循环运行。每增加一个分机便增加64路输出。
3 软件设计
整个程序也分为编程和运行两个部分,程序总框图如图4所示。 图4程序流程框图 本程序关键在于数据的输入、读取和写入。对24lc256的读写及对ps7219的写入格式程序的编写可参考力源的有关手册。存储在24lc256中的数据结构和标志位可以根据需要自己决定,这样可以方便将来用微机通过rs232口下传控制代码。ps1016单片机的程序在微机上编好后,通过开发器下传至单片机。
ps1016利用sda和scl两根引脚形成一个i2c总线接口,数据传送速率为60khz,使ps1016能扩展i2c器件。
i2c数据传送格式如图5所示:
其中s为启动信号,a为应答信号,r/w为读/写位,p为停止信号。
s | 器件 类型 | 器件 选择 | r/w | a | 数据1 | a | 数据2 | a | 数据3 | … | a | p |
图5i2c数据传送格式
24lc256工作于单字节读写或页读写模式,利用数据1,数据2来形成高低位地址。以下是ps1016读写24lc256程序,实现单字节数据写入和读出。
###写24lc256### |
w10键盘输入的要点亮的端口号 |
高位为b21低位为b20 |
w1116位地址计数器高位为b23低位为b22 |
iicout$0a,$02,b23,b22,b21写入高位数据 |
w11=w11+1 |
iicout$0a,$02,b23,b22,b20写入低位数据 |
w11=w11+1 |
goto keyboard input到键盘输入子程序 |
… |
###读24lc256### |
w11=0地址计数器清零 |
iicin$0a,$02,b23,b22,b21读入高位数据 |
w11=w11+1 |
iicout$0a,$02,b23,b22,b20读入低位数据 |
if w11=$ffffthen start结束标志,重新开始 |
w11=w11+1 |
…发送w10数据到ps7219子程序 |
goto loop |
本设计已制作成功,在淮阴市商场的霓虹灯(共237路)广告中使用,性能良好,使用灵活,价格低廉。受到用户肯定。
以上的程序设计,如果略加修改,便可用于可控大型焰火的燃放等其它领域。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』