单片机控制的循环彩灯控制系统的设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
表1.1拨动开关与对应的花型
K1
K2
花型
0
0
花型1
0
1
花型2
1
0
花型3
1
1
花型4
表1.2拨动开关功能表
K3
功能
K4
功能
K5
功能
0
加速无效
0
减速无效
0
暂停
1
加速
1
减速
1
启动
(3)8051通过8155对LED显示器控制显示相应的花型编号。
(4)利用软件子程序或单片机内部的定时/计数器实现定时功能,以模拟循环速度的基准值。
(4)使彩灯从两边到中间顺序点亮,直至全部点亮;再将彩灯从中间到两边熄灭,直至全部熄灭。
2)循环彩灯的循环速度可调。
按键要求:
(1)启动/暂停。按动一次启动,再按一次暂停。是一个双态转换键。
(2)花型变化。按一次,立即停止当前花型的显示,转换为下一种花型。4种花型可以循环切换。
(3)速度+。按键一次,速度略加快一点。
SUBBA,R6
LCALLXX
DJNZR6,L8
RET
XX: MOVCA,@A+DPTR ;查表
MOVP1,A
LCALL DEL1S ;调用延时程序
RET
DEL1S: JNB P3.4,$;判断是否需要暂停
MOV A,P3
ANL A,#03H
CJNE A,19H,PP ;判断花形是否改变
MOVR2,20H ;延时程序
DB 0AAH,55H;花形2字码
DB7FH,3FH,1FH,0FH,07H,03H,01H,00H,0FFH,00H ;花形3字码
DB7EH,3CH,18H,00H,18H,3CH,7EH,0FFH ;花形4字码
DB 00H
END
七、进行软、硬件的调试过程
将程序装载进MD51,调试检查有没有错误,生成HEX文件,装载进8031内,装载成功后,输入G=0000按回车运行,看LED数码显示器显示花形号,二极管按花型的设计亮起。没有装载成功按复位键重装。
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
LCALL DISP
MOV DPTR,#TABLE
MOVR4,#09
L6:MOVA,#09
SUBBA,R4
LCALLXX
DJNZR4,L6
RET
LP1: MOV2பைடு நூலகம்H,#02H ;花形2
LCALL DISP
MOV DPTR,#TABLE
MOVA,#09H
LCALLXX
MOVA,#10
LCALLXX
RET
LP2:MOV27H,#03H ;花形3
LCALL DISP
MOV DPTR,#TABLE
MOVR5,#11
L7: MOVA,#22
SUBBA,R5
LCALLXX
DJNZR5,L7
RET
LP3:MOV27H,#04H ;花形4
LCALL DISP
MOV DPTR,#TABLE
MOVR6,#09
L8:MOVA,#30
八、实验总结
通过这几天的实训,我对单片机有了更深的体会。了解和掌握了一些编程思想和对I/O口得使用。本次做的控制循环彩灯控制系统的设计是以单片机8051为核心,结合相关的元器件(共阴极LED数码显示器、通用I/O接口芯片8155等),再配以相应的软件,达到实现LED二极管的发光功能,也具有改变彩灯的花样、彩灯的暂停、彩灯的加减速功能。在软件调试的过程中,遇到很多困难,第一次实现了彩灯的花样变化,未能进行加减速的调整,后来经过调试后基本达到要求,但当减速见到一定程度后就不明显了,花形3全亮后左右最边亮灯没有灭,花形2时LED数码显示器上显示的不是“2”字,字码表上明明是“5BH”(共阴极)但是显示的“2”字多了一点。尽管这次的单片机课程设计还存在一些瑕疵但经过自己的努力制作出了彩灯的循环控制,也让自己对单片机有了更大的兴趣。
二、实习内容
利用TDN86/51二合一微机实验教学系统设计一个用8051单片机控制的循环彩灯控制系统。
三、实习器材
TDN86/51二合一微机实验教学系统1台,配套计算机一台,连接导线若干。
四、系统仿真图
五、软件流程图
Ni d
选择花型
调速
否否
是否

是否是否
00 01 10 11
六、程序设计
1、程序是按照模块化设计的,一共分为四大模块
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
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
单片机控制的循环彩灯控制系统的设计
一、实习目的
《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
通过这次的设计使我认识到我对单片机方面的知识学习得不够透彻,对书本上的很多知识还不能灵活的运用,有很多我们需要掌握的知识在等着我去学习,在以后的学习生活中弥补所缺失的知识。这次实训使我对于软件的设计运用有了一定的了解,从程序设计到调试,再到装载到硬件电路中运行。
最重要的一点是自己的动手能力的提高。作为一个高职学生动手能力差是不行的,相比本科理论知识有所欠缺,这样就不利于我们以后到社会中的工作。提高动手能力,毕业后能够更快的适应工作。
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
1)基本程序模块
延时程序、设置按键处理程序、主程序初始化及初值设定
2)LED控制程序
3)取消按键抖动程序
4)控制程序
2、设计要求
能输出4种花型,并能由人工进行花型的切换。可以使用按键,也可以使用波动1)开关来实现切换,方法不限。
参考花型:
(1)使彩灯从右到左逐一循环点亮。
(2)使彩灯交替闪烁。
(3)使彩灯从左到右逐一点亮,当全部点亮后同时闪烁一次。
(4)速度-。按键一次,速度略减慢一点。
3)在LED显示器上显示相应的花型号。
3、系统总体设计
充分利用TDN86/51二合一微机实验教学系统的硬件资源来实现循环灯的功能,因此:
(1)利用8051的P1端口接发光二极管,以模拟彩灯控制。
(2)利用8051的P3端口接拨动开关;利用拨动开关提供逻辑0和逻辑1,模拟按键操作,以实现4种花型之间的切换、加快循环速度、减慢循环速度以及暂停循环灯循环等操作,具体定义如表1.1和表1.2所示。
D1:MOVR3,#30
D2:MOV R1,#120
DJNZ R1,$
DJNZ R3,D2
DJNZ R2,D1
RET
PP:LJMPLOOP
SEGTAB: DB 3FH,06H,5BH,4FH,66H
TABLE:
DB 0FFH
DB0FEH ,0FDH ,0FBH ,0F7H ,0EFH ,0DFH ,0BFH ,07FH;花形1字码
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
相关文档
最新文档