单片机实验总结

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

单片机实验程序小结

实验二中断实验

1.将P1口驱动的8个LED发光二极管做左移循环闪烁(7灭1亮),当有中

断请求时(连接在0

INT引脚上的按键来模拟)使8个LED发光二极管闪烁6次。

a)程序:

ORG 0000H

LJMP START

ORG 0003H

LJMP EXT1

ORG 0100H

START: SETB EA

SETB EX0

SETB IT0

MOV SP,#60H

MOV A,#01H

L1: MOV P1,A

ACALL DELAY

RL A

JMP L1

DELAY: MOV R1,#50

J1: MOV R2,#20

J2: MOV R3,#248

DJNZ R3,$

DJNZ R2,J2

DJNZ R1,J1

RET

EXT1: PUSH ACC

PUSH PSW

CLR RS1

SETB RS0

MOV A,#00H

MOV R7,#12

S1: MOV P1,A

ACALL DELAY

CPL A

DJNZ R7,S1

POP PSW

POP ACC

RETI

END

2.0

INT接实验箱上的负脉冲按钮,来模拟中断源。当有“中断请求”(该铵钮按下并松开)时,使连接在P1口上的4个发光二极管的状态反映(记录)“中断请求”次数(初使状态时,该4个发光二极管全灭)。

a)程序:

ORG 0000H

LJMP START

ORG 0003H

LJMP EXT1

ORG 0100H

START: SETB EA

SETB EX0

SETB IT0

MOV SP,#60H

MOV A,#00H

MOV P1,A

JMP $

EXT1: PUSH PSW

RL A

ADD A,#1H

MOV P1,A

POP PSW

RETI

END

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INT_0

ORG 0100H

MAIN: SETB EA

SETB EX0

SETB IT0

INT_0:

RETI

实验三定时器和计数器实验

1.利用8031定时器的中断方式产生400Hz的音频信号(方波),通过P1.0驱动

蜂鸣器。

a)程序

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0INT

ORG 0100H

MAIN: SETB EA

SETB ET0

MOV TMOD,#01H

MOV TL0,#3CH

MOV TH0,#0F6H

SETB TR0

SJMP $

T0INT: CPL P1.0

MOV TL0,#3CH

MOV TH0,#0F6H

RETI

2.在上面的实验基础上添加一个按键K1(接P3.3),实现以下功能: K1按下时,通过定时器1的中断方式,通过P1.0驱动蜂鸣器; K1键松开时,使蜂鸣器不响。

a)程序:

ORG 0000H

LJMP MAIN

ORG 001BH

LJMP T1INT

ORG 0100H

MAIN: SETB EA

SETB ET1

MOV TMOD,#90H

MOV TL1,#3CH

MOV TH1,#0F6H

SETB TR1

AJMP $

T1INT: CPL P1.0

MOV TL1,#3CH

MOV TH1,#0F6H

RETI

3.8031内部定时/计数器T0,按计数器模式下的方式1工作,对P3.4引脚的脉冲个数(接至实验箱上的负脉冲按钮)进行计数。将其数值按二进制数通过P1口驱动的4个发光二极管的状态反映(记录)(初始状态时,该4个发光二极管全灭)。

a) 程序:

ORG 0100H

MOV TMOD,#06H

MOV TL0,#00H

MOV TH0,#00H

SETB TR0

S0: MOV P1,TL0

JNB TF0,S1

CLR TF0

S1: SJMP S0

定时器小结:

1.设置计数器/定时器工作模式,MOV TMOD,#**H

2.计算计数初值,并送到计数器,MOV TH0,#**H

MOV TL0,#**H

3.设置中断:SETB EA

SETB ET1

4.开计数器/定时器:SETB TR0

5.编写中断子程序。

常用格式:ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0INT

ORG 0100H

MAIN: MOV TMOD,#**H

MOV TH0,#**H

MOV TL0,#**H

SETB EA

SETB ET0

SETB TR0

主程序(略)

T0INT: 中断程序

MOV TH0,#**H

MOV TL0,#**H

RETI

相关文档
最新文档