请教个很菜的问题:
51 控制器中如果使用定时器零,实现3ms左右一次的数码管扫描中断程序,如何用C语言实现呢?
11M晶振12分频
我的例子:
main(){
TMOD=0x11;
TH0 = (65536-3000)/256;
TL0 = (65536-3000)%256;
TR0=1;
TR2 = 0;
TR1 = 0;
IP = 0x01; //优先级设置
IE=0x82; // 1 nil nil 0 0 0 0 1 只使用T0定时器
while(1){
FUNCTIONXXXXX(); //跑主程序
}
}
void timer0() interrupt 1 {
FUNCTIONYYY(); // 执行一个扫描数码管的程序
TH0 = (65536-3000)/256;
TL0=(65536-3000)%256;
}
问题如下:
1.寄存器这样设置可以吗?
2.关于定时计数溢出后执行的子程序:
Void timer0() interupt 1 { } 这个函数是Keil3 使用的中断格式吗?还需要在使用前声明吗?
3.希望各位大侠能贴个自己的例子
多谢帮忙! |