实习报告单片机.docx
《实习报告单片机.docx》由会员分享,可在线阅读,更多相关《实习报告单片机.docx(11页珍藏版)》请在冰豆网上搜索。
![实习报告单片机.docx](https://file1.bdocx.com/fileroot1/2023-1/31/6c396cf1-da12-4b2a-9248-012b18e1d9f4/6c396cf1-da12-4b2a-9248-012b18e1d9f41.gif)
实习报告单片机
单片机控制的循环彩灯控制系统的设计
一、实习目的
《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。
其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
二、实习内容
利用TDN86/51二合一微机实验教学系统设计一个用8051单片机控制的循环彩灯控制系统。
三、实习器材
TDN86/51二合一微机实验教学系统1台,配套计算机一台,连接导线若干。
四、系统仿真图
五、软件流程图
字型码赋值
赋值给RR
8155初始化
字位码初始值
总控制开关
字位码→C口
花型控制开关
显示数据
查表字形码→C口
花型
显示
显示字形
选择花型
调速
否 否
加速
是 否
是
减速
是 否 是 否
00 01 10 11
花型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、实验程序如下:
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
MOV A,#10
LCALL XX
RET
LP2:
MOV 27H,#03H ;花形3
LCALL DISP
MOV DPTR, #TABLE
MOV R5,#11
L7:
MOV A,#22
SUBB A,R5
LCALL XX
DJNZ R5,L7
RET
LP3:
MOV 27H,#04H ;花形4
LCALL DISP
MOV DPTR,#TABLE
MOV R6,#09
L8:
MOV A,#30
SUBB A,R6
LCALL XX
DJNZ R6,L8
RET
XX:
MOVC A,@A+DPTR ;查表
MOV P1,A
LCALL DEL1S ;调用延时程序
RET
DEL1S:
JNB P3.4,$ ;判断是否需要暂停
MOV A,P3
ANL A,#03H