定时器、外部中断实验,采用汇编和C51语言编程,用查询和中断两种方法实现

外部中断通过P3.3输入,要求输入一个负跳变,在P1.0引脚输出周期为2ms的连续方波。要求画出仿真电路图,采用汇编和C51语言编程,用查询和中断两种方法实现。

第1个回答  2014-04-19
中断
#include <REGX52.H>
sbit PWM=P2^0;
void InitTimer1(void)
{
TMOD = 0x10;
TH1 = 0x0FC;
TL1 = 0x18;
EA = 1;
ET1 = 1;
TR1 = 0;
EX1=1;
IT1=1;
}
void main(void)
{
InitTimer1();
while(1);
}
void Timer1Key(void) interrupt 2
{
TR1=~TR1;
}
void Timer1Interrupt(void) interrupt 3
{
TH1 = 0x0FC;
TL1 = 0x18;
PWM=~PWM;
}

查询
#include <REGX52.H>
sbit PWM=P2^0;
sbit key=P3^3;
void InitTimer1(void)
{
TMOD = 0x10;
TH1 = 0x0FC;
TL1 = 0x18;
EA = 1;
ET1 = 1;
TR1 = 0;
}
void main(void)
{
InitTimer1();
while(1)
if(key==0)TR1 = 1;
}
void Timer1Interrupt(void) interrupt 3
{
TH1 = 0x0FC;
TL1 = 0x18;
PWM=~PWM;
}本回答被提问者采纳