搜索
您的当前位置:首页正文

单片机实验

来源:好走旅游网
批次序号: 8

桂林电子科技大学 电子工程与自动化学院 单片机原理与接口技术 实 验 报 告

辅导员意见:

实验名称: 流水彩灯设计

专业: 测控技术与仪器

学 号: 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

因篇幅问题不能全部显示,请点此查看更多更全内容

Top