1、 1 1 任务及要求 1.1 设计任务 44LED 点阵彩灯(蓝、绿、红、黄)控制器的 PROTEUS仿真及汇编程序设计。 1.2 设计要求 利用 AT89C51 单片机的 P0 端口的 P0.4P0.7 连接到 44LED 点阵的行处,P1 端口的 P0.4P0.7 连接到 44LED 点阵的列处, P3.2、P3.3 接两个开关。启动时,4 4LED 点阵彩灯(蓝、绿、红、黄)闪烁,当按下 P3.2 开关时,44LED 点阵彩灯 从上至下按每行点亮,间隔 1S,再跳到全部闪烁;当按下 P3.3 开关时,44LED 点 阵彩灯从左至右按每列点亮,间隔 1S,再跳到全部闪烁。通过按键实现彩灯模
2、式之 间的转换。 2 设计思想 2.1 硬件设计思想 LED 彩灯系统包括,即 LED 彩灯控制器(8051 主控模块)LED 彩灯管在 8051 外部接一个震荡时钟频率。用 8051 的控制模块,具有按键等功能,并利用 8051 的 P0,P1 口输出控制信号,44LED 点阵 LED 彩灯,使得彩灯在软件的控制下工作。 2.2 软件设计思想 采用汇编语言编写程序,程序由一个主函数,两个中断程序和一个延时子程序 构成。 由主函数实现 44LED 点阵 LED 彩灯的闪烁。 两个中断程序分别实现 44LED 点阵 LED 彩灯的从上至下、从左至右的点亮。 3 电路原理与电路图 3.1 电路原理
3、 单片机最小系统。一个 AT89C51 单片机做为控制电路,运用其 P0、P1 口来控制 44LED 点阵 LED 彩灯,通过 P0、P1 给 44LED 点阵 LED 彩灯输入不同的电平信 号,来实现对 44LED 点阵 LED 彩灯点亮模式。P3 口接中断按钮。 2 3.2 电路原理图 D1 LED-BLUE D2 LED-BLUE D3 LED-BLUE D4 LED-BLUE D5 LED-GREEN D6 LED-GREEN D7 LED-GREEN D8 LED-GREEN D9 LED-RED D10 LED-RED D11 LED-RED D12 LED-RED D13 LED
4、-YELLOW D14 LED-YELLOW D15 LED-YELLOW D16 LED-YELLOW XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13
5、P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 X1 CRYSTAL C1 1nF C2 1nF R1 10k C3 1uF VCC 4 流程图与算法描述 4.1 流程图 系统初始化 P0=00H P0=0FFH 开始 P1=0FFH 3 P1=0FFH P0=00H P0=0EFH P1=10H 延时 延时 P0=0DFH P1=20H 延时 延
6、时 延时 P0=07FH 延时 RETI 延时 P1=80H 延时 RETI P0=0BFH P1=40H 4 4.2 算法描述 1、设计一个延时子程序,延时 1S。延时程序的代码段如下: del: mov r7,#100 d1: mov r6,#248 d2: mov r5,#20 djnz r5,$ djnz r6,d2 djnz r7,d1 ret 2、从上至下点亮中断函数。代码段如下: int0s: mov P1,#0ffh mov P0,#0efh lcall del mov P0,#0dfh lcall del mov P0,#0bfh lcall del mov P0,#07fh lcall del reti 3、从左至右点亮中断函数。代码段如下: int1s: mov P0,#00h mov P1,#10h lcall del mov P1,#20h lcall del mov P1,#40h lcall del mov P1,#80h lcall del reti 4、主函数,实现系统初始化和彩灯闪烁。代码段如下: start: 5