单片机控制的循环彩灯控制系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机控制的循环彩灯控制系统的设计
一、实习目的
《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
二、实习内容
利用TDN86/51二合一微机实验教学系统设计一个用8051单片机控制的循环彩灯控制系统。
三、实习器材
TDN86/51二合一微机实验教学系统1台,配套计算机一台,连接导线若干。
四、系统仿真图
五、软件流程图
选择花型
六、程序设计
1、程序是按照模块化设计的,一共分为四大模块
1) 基本程序模块
延时程序、设置按键处理程序、主程序初始化及初值设定
2)LED控制程序
3)取消按键抖动程序
4)控制程序
2、设计要求
能输出4种花型,并能由人工进行花型的切换。可以使用按键,也可以使用波动1)开关来实现切换,方法不限。
参考花型:
(1)使彩灯从右到左逐一循环点亮。
(2)使彩灯交替闪烁。
(3)使彩灯从左到右逐一点亮,当全部点亮后同时闪烁一次。
(4)使彩灯从两边到中间顺序点亮,直至全部点亮;再将彩灯从中间到两边熄灭,直至全部熄灭。
2)循环彩灯的循环速度可调。
按键要求:
(1)启动/暂停。按动一次启动,再按一次暂停。是一个双态转换键。
(2)花型变化。按一次,立即停止当前花型的显示,转换为下一种花型。4种花型可以循环切换。
(3)速度+。按键一次,速度略加快一点。
(4)速度-。按键一次,速度略减慢一点。
3)在LED显示器上显示相应的花型号。
3、系统总体设计
充分利用TDN86/51二合一微机实验教学系统的硬件资源来实现循环灯的功能,因此:
(1)利用8051的P1端口接发光二极管,以模拟彩灯控制。
(2)利用8051的P3端口接拨动开关;利用拨动开关提供逻辑0和逻辑1,模拟按键操作,以实现4种花型之间的切换、加快循环速度、减慢循环速度以及暂停循环灯循环等操作,具体定义如表1.1和表1.2所示。
表1.1拨动开关与对应的花型
表1.2拨动开关功能表
(3)8051通过8155对LED显示器控制显示相应的花型编号。
(4)利用软件子程序或单片机内部的定时/计数器实现定时功能,以模拟循环速度的基准值。
4、实验程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP JIAN
ORG 0013H
LJMP JIA
ORG 1000H
MAIN: MOV SP, #60H
MOV 20H,#8 ;初始化20H
MOV P1,#0FFH ;初始化P0口
SETB ET0 ;开INT0中断
SETB EX0
SETB ET1 ;开INT1中断
SETB EX1
SETB EA
LOOP:LCALL KEY ;调用按键程序
LJMP LOOP
JIAN:JNB P3.2,$ ;取消按键抖动,等待释放
INC 20H ;延时单元加2
INC 20H
MOV A,20H
CJNE A,#14,YY ;判断延时单元是否等于14
MOV A,#14
YY: MOV 20H,A
RETI
JIA: JNB P3.3,$ ;取消按键抖动,等待释放
DEC 20H ;延时单元减2
DEC 20H
MOV A,20H
JNZ YY ;判断延时单元是否等于0 MOV A,#02
MOV 20H,A
RETI
KEY:MOV A,P3 ;按键程序
ANL A,#03H
MOV 19H,A ;初始化19H
CJNE A,#00H,L1
LJMP LP0 ;选择花形1
L1: CJNE A,#01H,L2
LJMP LP1 ;选择花形2
L2: CJNE A,#02H,L3
LJMP LP2 ;选择花形3
L3: LJMP LP3 ;选择花形4 DISP: MOV A,#03H ;显示程序MOV DPTR,#8000H
MOVX @DPTR,A
MOV R0,#4FH
MOV A,27H
ACALL PUTT
MOV R0,#4FH
MOV R2,#0FEH
DISP1: MOV DPTR,#8002H
MOV A,#00H
MOVX @DPTR,A
MOV A,@R0
MOV DPTR, #SEGTAB
MOVC A, @A+DPTR
MOV DPTR, #8002H
MOVX @DPTR, A
MOV A, R2
MOV DPTR, #8001H
MOVX @DPTR, A
MOV R3, #00H
DISP3: DJNZ R3, DISP3
INC R0
RR A
MOV R2, A
JB ACC.7, DISP1
RET
PUTT: MOV R1,A
ANL A, #0FH
MOV @R0, A
RET
LP0: MOV 27H, #01H ;花形1
LCALL DISP
MOV DPTR, #TABLE
MOV R4, #09
L6:MOV A, #09
SUBB A, R4
LCALL XX
DJNZ R4, L6
RET
LP1: MOV 27H, #02H ;花形2 LCALL DISP
MOV DPTR, #TABLE
MOV A, #09H
LCALL XX