下面代码完成的是:按一下button,产生一次外部中断0信号(P3.2),启动T1定时,使P1.0引脚输出周期为1ms的方波(系统时钟6MHz)。
#include<reg52.h>
sbit P10=P1^0;
sbit P32=P3^2;
int main() {
SP= 0x30; // 堆栈初始化为30H
TMOD=0x26; // 选择工作方式2
IT0=1; // 设置外部中断0触发方式为下降沿
TL1=0x06; // T1定时设定初值
TH1=0x06; // 高八位
while(1) {
if(P32) {TR1=1;P32=0;}
if(TF1) {P10=!P10;TL1=0x06;TH1=0x06;TF1=0;TR1=0;}
}
}
仿真如如下图所示: