51单片机定时中断C语言的写法步骤,可追加分数

注明语句含义,越简洁,越简单越好

程序说明:51单片机定时器0工作于方式一,定时50ms中断一次
晶振为12M
#include<reg52.h>
void main
{
TOMD = 0X01; //配置定时器0工作于方式一
TH1 = (65536-50000)/256; //高八位装入初值
TL1 = (65536-50000)%256; //低八位装入初值
ET0 = 1; //开定时器0中断
EA = 1; //开总中断
TR0 = 1; //启动定时器0
while(1)
{

}
}

void Timer0_int() interrupt 1
{ //重新装初值
TH1 = (65536-50000)/256; //高八位装入初值
TL1 = (65536-50000)%256; //低八位装入初值
}
/***************************************************************************************************************/
上面是比较好理解的。如果实在要求简洁的话,看下面的,跟上面功能一样
#include<reg52.h>

void main
{
TOMD = 0X01; //配置定时器0工作于方式一
TH1 = 0x3c; //高八位装入初值
TL1 = 0xb0; //低八位装入初值
IE = 0x82;//开总中断并开定时器0中断
TR0 = 1; //启动定时器0
while(1)
{

}
}

void Timer0_int() interrupt 1
{ //重新装初值
TH1 = 0x3c; //高八位装入初值
TL1 = 0xb0; //低八位装入初值}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-28
//按键中断程序
#include<reg52.h>

main()
{
P1=0x55;//P1口初始值
EA=1;//全局中断开
EX0=1;//外部中断0开
IT0=1;//边沿触发
while(1)
{

}
}

void ISR_Key(void) interrupt 0 using 1
{
P1=~P1;//s3按下触发一次,P1取反一次
}
第2个回答  2011-08-28
使用定时器中断之前要初始化定时器
TMOD=0x11;
TH0=??
TL0=??
TR0=1;
ET0=1;
EA=1;

void timer0Serv(void) interrupt 1 //interrup后面的数字是向量码,1代表定时器0 3 代表定时器1
{
TH0=?? 此处TH0和TL0用来给定时器设置初值,从而决定定时器中断频率
TL0=??
//下面就放你要处理的代码
}
定时器2使用方法相同