1、广告灯广告灯 一、一、问题问题的提出 用八个发光二极管代替广告灯,实现广告灯的循环以及花样变化!用八个发光二极管代替广告灯,实现广告灯的循环以及花样变化! 二、总体设计 1 1、分析问题的功能、分析问题的功能 将 P1 口的 8 个引脚分别接 8 位发光二极管 0,1,2,3,4,5,6,7。 通过控制 P1 口的输出,实现每隔 0.5s 接在 P1 口的 8 个发光二极管从右依 次点亮 0,1,2,3,4,5,6,7,然后从左依次熄灭 7,6,5,4,3,2,1, 0,然后 8 个发光二极管全部点亮,闪烁 3 次;接着,每隔 0.5s 接在 P1 口 的 8 个发光二极管从左依次点亮 7,6
2、,5,4,3,2,1,0,然后从右依次 熄灭 0,1,2,3,4,5,6,7,然后 8 个发光二极管全部点亮,闪烁 3 次; 接着 8 个二极管从左轮流点亮 0,1,2,3,4,5,6,7,然后 8 个二极管 从右轮流点亮 7,6,5,4,3,2,1,0,然后 8 个发光二极管全部点亮, 闪烁 5 次,之后全灭;如此反复循环。 循环过程中通过中断加入一些广告灯的花样变化。 2 2、系统总体结构设计、系统总体结构设计 1)硬件设计:8031 单片机,DP-51PROC 综合仿真实验仪,P1 口, 定时器 0,外部中断 1 等。 2)软件设计:各功能模块详见程序清单后注释。 三、详细设计: 1 1
3、、硬件详细设计:、硬件详细设计: 时间间隔可采用软件延时或定时器定时,软件延时:8031 时钟频率 11.0592MHz,延时 0.5S,P1 口输出。 采用定时器采用定时器 0 0 定时延时:定时延时: ORG 800BH LJMP TOS 定时器定时器 0 0 赋定时初值:赋定时初值: MOV TH0,#4CH MOV TL0,#00H 电路图:电路图: 定时定时中断子程序:中断子程序: TOS: MOV TH0,#4CH MOV TL0,#00H INC R0 CJNE R0,#10,LL MOV R0,#00H RETI 外部中断子程序:外部中断子程序: INT1S: PUSH ACC
4、 POP ACC RETI 2 2、软件详细设计:、软件详细设计: 软件延时:软件延时: DELAY: MOV 31H,#0 MOV 32H,#0 LOOP2: DJNZ 32H,$ DJNZ 32H,$ DJNZ 32H,$ DJNZ 32H,$ DJNZ 31H,LOOP2 RET 逐个点亮:逐个点亮: NEXT1:MOV P1,A CLR C RLC A INC R1 SJMP NEXT 逐个熄灭:逐个熄灭: NEXT3:MOV P1,A SETB C RRC A INC R2 SJMP NEXT 循环点亮:循环点亮: NEXT13:MOV P1,A RL A INC R7 SJMP NEXT 闪烁:闪烁: NEXT11:MOV P1,A CPL A INC R6 SJMP NEXT 花样变换花样变换: 见外部中断 1 子程序。 3 3、设计中的主要困难及解决方案、设计中的主要困难及解决方案 1) 通过一个定时器来定时延时,将多个循环过程串联起来,需要解决各 个循环之间的衔接问题。本实验中