练习使用定时/计数器
#include <STC15F2K60S2.h>
#include <intrins.h>
unsigned char i=0;
unsigned long j=0;
//1、初始化系统
void system_init()
{
P2=0XA0;
P0=0X00;
P2=0X80;
P0=0XFF;
P2=0X00;
}
//2、led显示函数
void led_display(unsigned char i)
{
P2=0X80;
P0=~i;
P2=0X00;
}
//3、定时器初始化函数
void Timer1Init(void) //1毫秒@12.000MHz
{
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TL1 = 0x18; //设置定时初始值
TH1 = 0xFC; //设置定时初始值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
ET1=1;
EA=1;
}
//4、主函数
void main()
{
system_init();
Timer1Init();
while(1)
{
}
}
//5、定时器中断服务函数
void timer1_service() interrupt 3
{
j++;//毫秒数
if(!(j%1000))//如果能被1000整除为真,即每1000毫秒进行下面操作
{
i++;
led_display(i);
}
}