C51 中断服务程序的写法
扫描二维码
随时随地手机看文章
格式:void 函数名()interrupt 中断号 using 工作组
{
中断服务程序内容
}
注意:中断不能返回任何值,所以前面是 void 后面是函数名,名字可以自己起,但不要与c语言的关键字相同;中断函数不带任何参数,所以 函数名后面的() 内是 空的,中断号是指单片机的几个中断源的序号。这个序号是单片机识别不同中断的唯一标志。所以一定要写正确。
后面的using 工作组 是指这个这个中断使用单片机内存中 4 个工作寄存器的哪一组,c51 编译后会自动分配工作组,因此最后这句话我们通常省略不写。 c51 中断写法实例
void T1-time() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
}
上面的意思是定时器1 的中断服务程序,定时器1的中断服务序号是3 ,因此我们要写成 interrupt 3 ,服务程序的内容是给 两个初值寄存器装入新值。。
写中断前的准备
1TMOD 赋值确定工作方式。T0还是T1的工作方式。
2计算初值装入 TH0 TL0 或者TH1 TL1
3中断方式时 ,对 IE 赋值,开放中断。
4使 TR0 和 TR1 置位,启动定时器/计数器定时/计数。