桂林电子科技大学 电子工程与自动化学院 单片机原理与接口技术 实 验 报 告
辅导员意见:
实验名称: 流水彩灯设计
专业: 测控技术与仪器
学 号: 1600810530
姓名: 姚鸿林
实验日期: 2018.11.7
成绩
辅导员签名:
一、 实验目的
1、了解 CPU 对 I/O 口的操作方法。
2、学会使用 51 系列单片机 I/O 口的基本输入、输出功能。 3、了解 51 单片机的内部结构、引脚、寄存器的组成。
二、 实验原理
本实验将 P3 口作输入口,接两个拨动开关。P1 口作输出口,接8只发光二极管。当 P1 口、P3 口用作输入时,必经先对它置“1”。编写程序实验不同形式的流水功能。
三、 实验内容
DELAY:
MOV R1 , #20 ; LOOP:
MOV R2 , #250 ;
DJNZ R2 , $ ; DJNZ R1 , LOOP ; RET ;
1us
2us 2us 1us
1us
延时时间计算: 因为本实验系统的晶振频率为12MHz,即一个机器同期时间为12/12MHz即1us,所以该 段程序的执行时间为:
1us+(1us+2us×250+2us)×20+1us=10.062ms 根据以上程序,设置0.5s延迟程序
DELAY: MOV R7,#250 DELAY1: MOV R6,#100
DELAY2: MOV R5,#10 DJNZ R5,$ DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET 2*10*100*250=500000us=0.5s 灯的数据表格如下: P1.7 LED8 0 0 0 0 0 0 0 1 P1.6 LED7 0 0 0 0 0 0 1 0 P1.5 LED6 0 0 0 0 0 1 0 0 P1.4 LED5 0 0 0 0 1 0 0 0 P1.3 LED4 0 0 0 1 0 0 0 0 P1.2 LED3 0 0 1 0 0 0 0 0 P1.1 LED2 0 1 0 0 0 0 0 0 P1.0 LED1 1 0 0 0 0 0 0 0 状态 LED1亮 LED2亮 LED3亮 LED4亮 LED5亮 LED6亮 LED7亮 LED8亮 根据表格数据,换算为十六进制得: 01H
02H
04H
08H
10H
20H
40H
80H
方式 1:
8 个发光二极管从左到右依次亮灭,之后从右到左依次亮灭,每个灯依次点亮 0.5s,循环往复。 80H 01H
8 个发光二极管从左到右依次逐个点亮,全部点亮后全灭,点亮间隔 0.5s, 循环往复。
同样根据方式1中的方法,得到十六进制如下: 80H
方式 3:8 个发光二极管同时点亮 1s,之后同时灭 1s,循环往复。 0FFH -> 00H
0FFH 00H 0FFH 00H
方式 4:自定义发光二极管的工作方式。 03H 06H
0CH
18H
30H
60H
0CH
81H
0FFH 00H
0FFH 00H
40H
20H
10H
08H
04H
02H
01H
40H 02H
20H 04H
10H 08H
08H 10H
04H 20H
02H 40H
01H 80H
方式 2:
K1开关 0 0 1 1
K2开关 0 1 0 1 状态 方式1 方式2 方式3 方式4 四、 实验程序
ORG 0000H
MOV P3,#0FFH 初始P3.2=1 P3.3=1 START: JB P3.2,LOOP10B 若P3.2=1,跳转到LOOP10B状态,否则往下执行 JB P3.3,LOOP01B 若P3.3=1,跳转到LOOP01B状态 MOV DPTR,#TAB1 P3.2=0 P3.3=0 方式1 LCALL FLASH8 MOV DPTR,#TAB2 LCALL FLASH8 SJMP START
LOOP01B: P3.2=0,P3.3=1,此时状态2 MOV DPTR,#TAB2 LCALL FLASH8 SJMP START
LOOP10B: P3.2=1,P3.3=0,此时状态3 JB P3.3,LOOP11B MOV DPTR,#TAB3 LCALL FLASH8 SJMP START
LOOP11B: P3.2=1,P3.3=1,此时状态4 MOV DPTR,#TAB4 LCALL FLASH8 SJMP START
FLASH8:
MOV R0,#0 MOV R1,#08H
LOOP:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A LCALL DELAY INC R0
DJNZ R1,FLASH8 RET
DELAY: MOV R7,#250 延时子程序 DELAY1: MOV R6,#100 DELAY2: MOV R5,#10 DJNZ R5,$
DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET
TAB1: 四种方式查表 DB 01H,02H,04H,08H,10H,20H,40H,80H
TAB2:
DB 80H,40H,20H,10H,08H,04H,02H,01H TAB3:
DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H TAB4:
DB 03H,06H,0CH,18H,30H,60H,0CH,81H END
因篇幅问题不能全部显示,请点此查看更多更全内容