循环彩灯8对带数码管.docx
- 文档编号:10315569
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:13
- 大小:193.71KB
循环彩灯8对带数码管.docx
《循环彩灯8对带数码管.docx》由会员分享,可在线阅读,更多相关《循环彩灯8对带数码管.docx(13页珍藏版)》请在冰豆网上搜索。
循环彩灯8对带数码管
单片机控制的循环彩灯控制系统的设计
一、实习目的
《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。
其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
二、实习内容
利用TDN86/51二合一微机实验教学系统设计一个用8051单片机控制的循环彩灯控制系统。
三、实习器材
TDN86/51二合一微机实验教学系统1台,配套计算机一台,连接导线若干。
四、系统仿真图
五、软件流程图
字型码赋值
赋值给RR
Nid
8155初始化
字位码初始值
总控制开关
字位码C口
花型控制开关
显示数据
查表字形码C口
花型
显示
显示字形
选择花型
调速
否否
加速
是否
是
减速
是否是否
00011011
花型1
花型3
花型4
花型2
六、程序设计
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拨动开关与对应的花型
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、实验程序如下:
ORG0000H
LJMPMAIN
ORG0003H
LJMPJIAN
ORG0013H
LJMPJIA
ORG1000H
MAIN:
MOVSP,#60H
MOV20H,#8;初始化20H
MOVP1,#0FFH;初始化P0口
SETBET0;开INT0中断
SETBEX0
SETBET1;开INT1中断
SETBEX1
SETBEA
LOOP:
LCALLKEY;调用按键程序
LJMPLOOP
JIAN:
JNBP3.2,$;取消按键抖动,等待释放
INC20H;延时单元加2
INC20H
MOVA,20H
CJNEA,#14,YY;判断延时单元是否等于14
MOVA,#14
YY:
MOV20H,A
RETI
JIA:
JNBP3.3,$;取消按键抖动,等待释放
DEC20H;延时单元减2
DEC20H
MOVA,20H
JNZYY;判断延时单元是否等于0
MOVA,#02
MOV20H,A
RETI
KEY:
MOVA,P3;按键程序
ANLA,#03H
MOV19H,A;初始化19H
CJNEA,#00H,L1
LJMPLP0;选择花形1
L1:
CJNEA,#01H,L2
LJMPLP1;选择花形2
L2:
CJNEA,#02H,L3
LJMPLP2;选择花形3
L3:
LJMPLP3;选择花形4
DISP:
MOVA,#03H;显示程序
MOVDPTR,#8000H
MOVX@DPTR,A
MOVR0,#4FH
MOVA,27H
ACALLPUTT
MOVR0,#4FH
MOVR2,#0FEH
DISP1:
MOVDPTR,#8002H
MOVA,#00H
MOVX@DPTR,A
MOVA,@R0
MOVDPTR,#SEGTAB
MOVCA,@A+DPTR
MOVDPTR,#8002H
MOVX@DPTR,A
MOVA,R2
MOVDPTR,#8001H
MOVX@DPTR,A
MOVR3,#00H
DISP3:
DJNZR3,DISP3
INCR0
RRA
MOVR2,A
JBACC.7,DISP1
RET
PUTT:
MOVR1,A
ANLA,#0FH
MOV@R0,A
RET
LP0:
MOV27H,#01H;花形1
LCALLDISP
MOVDPTR,#TABLE
MOVR4,#09
L6:
MOVA,#09
SUBBA,R4
LCALLXX
DJNZR4,L6
RET
LP1:
MOV27H,#02H;花形2
LCALLDISP
MOVDPTR,#TABLE
MOVA,#09H
LCALLXX
MOVA,#10
LCALLXX
RET
LP2:
MOV27H,#03H;花形3
LCALLDISP
MOVDPTR,#TABLE
MOVR5,#11
L7:
MOVA,#22
SUBBA,R5
LCALLXX
DJNZR5,L7
RET
LP3:
MOV27H,#04H;花形4
LCALLDISP
MOVDPTR,#TABLE
MOVR6,#09
L8:
MOVA,#30
SUBBA,R6
LCALLXX
DJNZR6,L8
RET
XX:
MOVCA,@A+DPTR;查表
MOVP1,A
LCALLDEL1S;调用延时程序
RET
DEL1S:
JNBP3.4,$;判断是否需要暂停
MOVA,P3
ANLA,#03H
CJNEA,19H,PP;判断花形是否改变
MOVR2,20H;延时程序
D1:
MOVR3,#30
D2:
MOVR1,#120
DJNZR1,$
DJNZR3,D2
DJNZR2,D1
RET
PP:
LJMPLOOP
SEGTAB:
DB3FH,06H,5BH,4FH,66H
TABLE:
DB0FFH
DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH;花形1字码
DB0AAH,55H;花形2字码
DB7FH,3FH,1FH,0FH,07H,03H,01H,00H,0FFH,00H;花形3字码
DB7EH,3CH,18H,00H,18H,3CH,7EH,0FFH;花形4字码
DB00H
END
七、进行软、硬件的调试过程
将程序装载进MD51,调试检查有没有错误,生成HEX文件,装载进8031内,装载成功后,输入G=0000按回车运行,看LED数码显示器显示花形号,二极管按花型的设计亮起。
没有装载成功按复位键重装。
八、实验总结
通过这几天的实训,我对单片机有了更深的体会。
了解和掌握了一些编程思想和对I/O口得使用。
本次做的控制循环彩灯控制系统的设计是以单片机8051为核心,结合相关的元器件(共阴极LED数码显示器、通用I/O接口芯片8155等),再配以相应的软件,达到实现LED二极管的发光功能,也具有改变彩灯的花样、彩灯的暂停、彩灯的加减速功能。
在软件调试的过程中,遇到很多困难,第一次实现了彩灯的花样变化,未能进行加减速的调整,后来经过调试后基本达到要求,但当减速见到一定程度后就不明显了,花形3全亮后左右最边亮灯没有灭,花形2时LED数码显示器上显示的不是“2”字,字码表上明明是“5BH”(共阴极)但是显示的“2”字多了一点。
尽管这次的单片机课程设计还存在一些瑕疵但经过自己的努力制作出了彩灯的循环控制,也让自己对单片机有了更大的兴趣。
通过这次的设计使我认识到我对单片机方面的知识学习得不够透彻,对书本上的很多知识还不能灵活的运用,有很多我们需要掌握的知识在等着我去学习,在以后的学习生活中弥补所缺失的知识。
这次实训使我对于软件的设计运用有了一定的了解,从程序设计到调试,再到装载到硬件电路中运行。
最重要的一点是自己的动手能力的提高。
作为一个高职学生动手能力差是不行的,相比本科理论知识有所欠缺,这样就不利于我们以后到社会中的工作。
提高动手能力,毕业后能够更快的适应工作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 彩灯 数码管