单片机跑马灯实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一、输入输出实验

实验目的:

1、体验单片机的程序编写和运行过程

2、掌握汇编语言的设计编译和运行

实验内容:

用P0端口作输入,P1端口做输出。程序循环从P0端口读入数据,从P1端口输出。输出用LED灯显示。

实验步骤和方法:

1、搭电路。输入端口的6个口接开关接口,输出6个接口接LED灯。

2、编写程序

3、调试程序

实验要求:

1、先用proteus软件搭建电路,编写程序作仿真。

2、在软件里验证好程序再上实验平台验证

I/O实验程序:

ORG 0000H MAIN: MOV P0,#0FFH LOOP: MOV A,P0

MOV P1,A

LJMP LOOP END

实验二、跑马灯实验目的:

1、掌握单片机的输出

2、掌握子程序的调用方法

3、掌握定时的设置方法

实验内容:

8个LED灯轮流点亮,点亮间隔为1秒。

定时方法采用子程序调用,延时子程序已经编写好。实验步骤和方法:

1、搭电路。P1作输出端口,接LED灯。

2、编写程序

3、调试程序

实验要求:

1、先用proteus软件搭建电路,编写程序作仿真。

2、在软件里验证好程序再上实验平台验证。

附:延时子程序

DELAY: M OV R3,#20 ;延时0.2s

D1: MOV R4,#20

D2: MOV R5,#248

DJNZ R5,$

DJNZ R4,D2

DJNZ R3,D1

RET

跑马灯延时子程序

ORG 00H

JMP MAIN

ORG 30H

MAIN:

MOV A,#0FFH

CLR C

MOV R2,#08H ;循环八次LOOP:

RLC A ;带进位左移

MOV P2,A

MOV R7,#05H

LOOP1:

CALL DELAY

DJNZ R7,LOOP1

DJNZ R2,LOOP ;反复循环

JMP MAIN

DELAY: ;延时0.2s子程序MOV R3,#20

D1: MOV R4,#20

D2: MOV R5,#248

DJNZ R5,$

DJNZ R4,D2

DJNZ R3,D1

RET

END

实验三、跑马灯

实验目的:

1、掌握单片机的输出

2、掌握定时器中断和查询的使用方法

实验内容:

8个LED灯轮流点亮,点亮间隔为1秒。

定时方法采用8051定时器,分别使用查询和中断编写两个程序。实验步骤和方法:

1、搭电路。P1作输出端口,接LED灯。

2、编写程序

3、调试程序

实验要求:

1、先用proteus软件搭建电路,编写程序作仿真。

2、在软件里验证好程序再上实验平台验证。

下面的亮灯顺序1,2 ……7,8,1,2 ……

跑马灯中断程序

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0_INT

ORG 0050H

MAIN:

MOV TMOD, #01 ;令T0定时方式1

MOV TH0, #3CH

MOV TL0, #0B0H ;50ms@12MHz

SETB TR0 ;启动T0

MOV IE, #82H ;允许中断

MOV R7, #20

MOV A, #7FH

MOV P2, A

M_LOOP: ;主程序,空循环

SJMP M_LOOP

T0_INT: ;50ms执行一次

MOV TL0, #0B0H

MOV TH0, #3CH

DJNZ R7, T0_END ;中断20次?

MOV R7, #20 ;才到1s

RR A

MOV P2, A

T0_END:

RETI

END

跑马灯查询程序

ORG 0000H

LJMP MAIN

ORG 0050H

MAIN:

MOV TMOD, #01 ;令T0定时方式1

MOV TH0, #3CH

MOV TL0, #0B0H ;50ms@12MHz

SETB TR0 ;启动T0

MOV R7, #20

MOV A, #7FH

MOV P2, A

M_LOOP:

JNB TF0, M_LOOP ;T0没有溢出,就在此循环不止

CLR TF0

MOV TL0, #0B0H

MOV TH0, #3CH

DJNZ R7, M_LOOP ;溢出20次?

MOV R7, #20 ;才到1s

RR A

MOV P2, A

SJMP M_LOOP

END

下面的亮灯顺序1,2 ……7,8,7 ……2,1,2 ……

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0_INT

ORG 0050H MAIN:

MOV TMOD, #01

MOV TH0, #3CH

MOV TL0, #0B0H

SETB TR0

MOV IE, #82H

MOV R7, #20

MOV R2, #07H

MOV R0, #00H

MOV A, #0FEH

MOV P2, A

SJMP $

T0_INT:

MOV TL0, #0B0H

MOV TH0, #3CH

DJNZ R7, T0_END

MOV R7, #20

CJNE R0, #0, LOOP

RL A

MOV P2, A

DJNZ R2, T0_END

MOV R2, #07H

MOV R0, #01H

AJMP T0_END LOOP:

RR A

MOV P2, A

DJNZ R2, T0_END

MOV R2, #07H

MOV R0, #00H

T0_END:

RETI

END

ORG 0000H

LJMP MAIN

ORG 0050H

相关文档
最新文档