外部中断应用实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0003H
LJMP
K
ORG
000BH
LJMP
IPTO
MAIN: MOV
SP,
MOV
TMOD,
MOV
IE,
MOV
TH0,
MOV
TL0,
MOV
R1,
HERE:LJMP
HERE
DELAY:SETB
TR1
HEREY:JNB
TF1,
CLR TR1
CLR TF1
MOV MOV
TH1, TL1,
RET
K : JBC
IPTO 取反 P1.2 送定时初值
返回
EXINT0
调延时
EXINT1 调延时
N
KO 按
下?
Y
KO 松 开?
Y
开定时器 0
N N
K1 按 下?
Y
K1 松 N 开?
Y 关定时器 0
返回
返回
K0: SETB TR0
RETI
K1: CLR
Biblioteka BaiduTR0
RETI
END
思考题:
ORG
0000H
LJMP
MAIN
ORG
EX0
SETB
EX1
MOV
SP,
#2FH;
MOV
TMOD, #01H;
MOV
TH0, #9EH;
MOV
TL0, #58H;
LOOP1: JNB
TF0, LOOP1
CPL
P1.2;
程序框图:
CLR MOV MOV
TF0 TH0, #9EH; TL0, #58H;
开始 堆栈初始化 定时器、中断初始化
等待 结束
TF0,
LL
SETB
TF0
SETB
TR0
LJMP
HH
LL:CLR
TF0
CLR
TR0
HH: RETI
IPTO: DJNZ
R1,
CPL
P1.2
CPL
ACC.0
JNB
ACC.0,
MOV
R1,
LJMP
LOOP3
LOOP2: MOV
R1,
LOOP3: MOV
TH0,
MOV
TL0,
RETI
END
#60H #01H #83H #0B1H #0E0H #02H
for(b=38;b>0;b--) for(a=130;a>0;a--);
}
void main() { EA=1; IT0=1; IT1=1; EX0=1; EX1=1; PX0=1; TMOD=0X01; TH0=0X9E; TL0=0X58;
while(1) { while(!TF0);
P12=!P12; TF0=0; TH0=0X9E; TL0=0X58; } } void INTT0() interrupt 0 { TR0=1; } void INTT1() interrupt 2 {
五、实验结果:
程序框图:
开始 堆栈初始化 定时器、中断初始化
等待 结束
DELAY
开定时器 1 等待定时到 关定时器 1
清零溢出标志位 送定时初值 返回
EXINT0
调延时
K0按
N
下?
Y
K0松
开?
N
Y
取反 TR0
返回 IPTO
N
两次定 N 时到?
Acc.0= 1?
Y
五次定 时到? N
Y
取反 P1.2
送定时初值
返回
a=0; void main()
{ EA=1; IT0=1; EX0=1; PX0=1; TMOD=0X01; TH0=0X63; TL0=0XC0;
while(1) {
while(!TF0); P12=!P12; TF0=0; TH0=0X15; TL0=0XA0; while(!TF0); P12=!P12; TF0=0; TH0=0X63; TL0=0XC0; } } void INTT0() interrupt 0 { TR0=!TR0 }
外部中断应用实验 一、实验目的和要求
1、掌握中断系统外部中断源的使用方法 。 2、掌握延时程序的编程及使用方法 。 3、掌握 Proteus 软件与 Keil 软件的使用方法 。 4、掌握单片机系统的硬件和软件设计方法 。
二、设计要求
1、用 Proteus 软件画出电路原理图,在单片机的 P1.0 口线上接按键 K0 ,作为 外部中断源 0 使用,用于开启波形,在单片机的 P1.1 口线上接按键 K1 ,作为 外部中断源 1 使用,用于关闭波形。 2、在单片机的 P1.2 口线上产生周期 50mS 的连续方波,在 P 1.2 口线上接示波 器观察波形。
HEREY
#0D8H #0F0H
LOOP3
LOOP2 #03H #02H #0B1H #0E0H
开始 堆栈初始化 定时器、中断初始化
等待 结束
DELAY
开定时器 1 等待定时到 关定时器 1 清零溢出标志位 送定时初值
返回
EXINT0
调延时
K0按
N
下?
Y
K0松
开?
N
Y
取反 TR0
返回 IPTO
N
两次定 N 时到?
三、电路原理图
实验一电路原理图:
实验二电路原理图:
四、实验程序流程框图和程序清单
汇编程序清单: 实验一:
ORG
0000H
START: LJMP
MAIN
ORG
0100H
LJMP
LOOP1;
ORG
0003H
LJMP
K0
ORG
0013H
LJMP
K1
MAIN:
SETB
EA
SETB
IT0
SETB
IT1
SETB
Acc.0= 1?
Y
五次定 时到? N
Y
取反 P1.2
送定时初值
返回
C语言程序清单:
#define uchar unsigned char #define uint unsigned int #include <reg52.h> sbit P12=P1^2; void delay(void) {
unsigned char a,b,c; for(c=1;c>0;c--)
TR0=0; }
程序框图:
开始 堆栈初始化 定时器、中断初始化
等待 结束
EXINT0
调延时
IPTO 取反 P1.2 送定时初值
返回
EXINT1 调延时
N
KO 按
下?
Y
KO 松 开?
Y
开定时器 0
N N
K1 按 下?
Y
K1 松 N 开?
Y 关定时器 0
返回
返回
思考题程序清单:
#define uchar unsigned char #define uint unsigned int #include <reg52.h> sbit P12=P1^2;