/*** 用 T1 编程实现 从 P1.1 输出周期为 1ms 的方波 **/
#include <reg51.h>
sbit P1_1=P1 ^ 1;
main()
{
//设置定时/记数器 T1的工作方式1 :(使用16位 定时/记数器 T1)
TMOD=0x01;
//设置记数初值65536-500=0xFE0C
TH1=0xFE;
TL1=0x0C;
//开放中断
EA=1;
ET1=1;
//启动T1
TR1=1;
//保持在工作状态
while(1)
;
}
//中断处理程序
void time1_int(void) interrupt 3 //定时/记数器 T1
{
//暂时关闭T1中断,避免干扰
ET1=0;
P1_1= ! P1_1;//取反
//重新设置记数初值65536-500=0xFE0C
TH1=0xFE;
TL1=0x0C;
//开T1中断
ET1=1;
}
评论0