📄 5_3_4.c
字号:
//定时器中断的实例。
//使用AT89C2051单片机,晶振频率为4MHz,用定时器0定时,
//使P1.0端口线上输出周期为2秒的方波脉冲,驱动接在该引脚上的发光二极管重复地亮一秒钟,停一秒钟。
#include <AT892051.h>
unsigned char data counter; //计数5毫秒的个数
main()
{
TMOD=0x00; //定时器0为方式0
IP=0x02; //定时器中断0为高优先级
TH0=0xCB;TL0=0x1D; //定时器0的时间常数(5ms,4MHZ)
counter=0; //计数5毫秒的个数
TR0=1; //启动定时器0
IE=0x82; //允许定时器0中断
while(1);
}
void time0_int(void) interrupt 1 //中断服务函数,每五毫秒中断一次
{
TH0=0xCB;TL0=0x1D; //重装定时器0的时间常数(5ms,4MHZ)
counter++;
if (counter==200) //一秒时间到
{
counter=0; //重新计数5毫秒的个数
P1_0=~P1_0; //P1.1引脚输出电平反相,使灯光闪烁
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -