什么是定时器,什么是中止,这些简略的概念,在此就不多说了,百度一下就有许多材料了。
下面是个人运用定时器与中止来完成 点亮二极管的
#include
sbit LED=P2^0; //点亮一个二极管
unsigned char i=0;
void main()
{
TMOD=0x01; // TMOD寄存器高4位设置T1,低4位设置T0。设置T0定时器作业形式
EA=1; // 答应翻开大局中止变量EA
ET0=1; //答应翻开定时器T0中止
TR0=1; //设置TCON寄存器: 发动定时器T0
TH0=(65536-50000)/256; //50ms毫秒产生一次中止溢出,初始化TH0
TL0=(65536-50000)%256;
LED=0; //点亮二极管
while(1)
{
if(i==20) //20次50ms 等于1秒钟 即 1秒钟二极管就点亮或平息
{
LED=~LED; //二极管状况取反
i=0;
}
}
}
void TimerLED() interrupt 1 using 1 // 中止源T0定时器,运用第1组寄存器作业组存储中止程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
i=i+1;
}
只需了解原理,就十分简略了。 记住:学习单片机,便是为了今后学习ARM更简单,更快速的学习。