单片机实验之外部中断应用实验

发布时间:2018-07-01 03:41:56

一、实验目的

1、掌握中断系统外部中断源的使用方法。

2、掌握延时程序的编程及使用方法。

3、掌握Proteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求

1、用Proteus软件画出电路原理图,在单片机的P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形,在单片机的 P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。

2、在单片机的P1.2口线上产生周期50mS的连续方波,在P1.2口线上接示波器观察波形。

三、电路原理图

6、实验总结

通过本实验能够准确安排各种类型的中断服务程序入口,中断源提出中断申请后,却执行到相应的中断服务程序。弄清楚了中断服务程序与子程序的共同点和不同点。

七、思考题

1、在P1.2口线上产生周期为100mS,占空比为25的连续矩形波,要求只采用按键K0来控制其开启和关闭。

答:程序见程序清单。

4、实验程序流程框图和程序清单。

1、在单片机的P1.2口线上产生周期50mS的连续方波。P1.0口线上接按键K0 ,作为外部中断源0使用,用于开启波形, P1.1口线上接按键K1,作为外部中断源1使用,用于关闭波形。

汇编程序:

ORG 0000H

START: LJMP MAIN

ORG 0003H

LJMP EXT0

ORG 000BH

LJMP TTCO

ORG 0013H

LJMP EXT1

ORG 0100H

MAIN: MOV TMOD, #01H

MOV TCON, #01H

MOV IE, #87H

MOV TH0, #9EH

MOV TL0, #58H

SETB PX1

HERE: LJMP HERE

EXT0: SETB TR0

RETI

EXT1: CLR TR0

RETI

TTCO: CPL P1.2

MOV TH0, #9EH

MOV TL0, #58H

RETI

END

C语言程序:

#include

sbit P12=P1^2;

main()

{

TMOD=0X01;

EA=1;

EX0=1;

EX1=1;

ET0=1;

PX1=1;

TCON=0X01;

TH0=0X9E;

TL0=0X58;

while(1);

}

void EXT0() interrupt 0

{ TR0=1;

}

void EXT1() interrupt 2

{ TR0=0;

}

void TTC0() interrupt 1

{ P12=!P12;

TH0=0X9E;

TL0=0X58;

}

2、在P1.2口线上产生周期为100mS,占空比为25的连续矩形波,要求只采用按键K0来控制其开启和关闭。

汇编程序:

ORG 0000H

START: LJMP MAIN

ORG 0003H

LJMP EXT0

ORG 0100H

MAIN: MOV TMOD, #11H

MOV TCON, #01H

SETB EA

SETB EX0

CLR C

LOOP1: JNB TF0, LOOP1

MOV TH0, #63H

MOV TL0, #0C0H

CLR TF0

CLR TR0

CPL P1.2

SETB TR1

LOOP2: JNB TF1, LOOP2

MOV TH1, #15H

MOV TL1, #0A0H

CLR TF1

CLR TR1

CPL P1.2

SETB TR0

LJMP LOOP1

ORG 0200H

EXT0: JC STOP

SETB C

MOV TH0, #63H

MOV TL0, #0C0H

MOV TH1, #15H

MOV TL1, #0A0H

SETB TR0

RETI

STOP: CLR TR0

CLR TR1

CLR C

END

C语言程序:

#include"REG52.H"

sbit P12 = P1^2;

void main()

{

EA=1;

EX0=1;

TMOD=0X11;

TCON=0X01;

CY=0;

while(1)

{while(TF0)

{

P12=!P12;

TF0=0;

TR0=0;

TH1=0X15;

TL1=0XA0;

TR1=1;

}

while(TF1)

{

P12=!P12;

TF1=0;

TR1=0;

TH0=0X63;

TL0=0XC0;

TR0=1;

}

}

}

void EXT0() interrupt 0

{if(!CY)

{CY=1;

TH0=0X63;

TL0=0XC0;

TR0=1;

}

else

{ CY=0;

TR0=0;

TR1=0;

}

}

5、实验结果(波形图)

单片机实验之外部中断应用实验

相关推荐