定时器的应用,查询方式。让8个LED灯,左右各4个来回亮
代码:
/**********************
查询方式是主程序不断的查询是否中断,而不需要准备子程序
***********************/
#include<reg51.h>
#define LED P1
#define COUNT 50000 // 50000 * 1us = 0.05s 50000计数次
#define TH_M1 (65536-COUNT)%256 //MODE 1 余数赋值给高4位
#deefine TL_M2 (65536-COUNT)/256 //MODE 1 商赋值给低4位
main()
{
int i;
TMOD =0x01; //方式1 启动 T0中断
LED=0xf0; // 1111,0000 右边4个灯亮 共阳极
while(1)
{
for(i=0;i<5;i++) //定时中断5次
{
TH0 = TH_M1; //溢出后重新赋初值
TL0 = TH_M1;
TR0 = 1; //启动T0
while(TF0==0) // time flag 定时标志 TF==0说明溢出,等待溢出
TF0 = 0; //清除TF0 ,关闭T0
}
LED =~LED; //LED反相
}
}