C51单片机定时器的使用出错。

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:28:42
我在用C51单片机写程序时遇到了这么一个问题。如图,
在运行的时候就不能跳进定时中断程序去执行定时器中的程序。应该怎么来修改。
#include <reg51.h>
sbit p10=P1^0;
sbit p15=P1^5;
sbit p36=P3^6;
sbit p37=P3^7;
//sbit p36=P3^6;
//int tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int tab1[]={0x3f,0x06,0x5B,0x4F,0x66,0x7D,0x07,0x7F,0x6F};
void timer0_init(void)
{
EA=1;
ET0=1;
TMOD=0X01;
TH0= 0X3C;
TL0= 0XB0;
TR0=1;
}
main (void)
{
timer0_init();
while (1)
{
;
}
}
void timer0(void)
{
int i ;
TH0=0X3C;
TL0=0XB0;
p37=0;
for (i=0;i<10;i++)
{
P2=tab1[i];
}
}

贴上程序看看再说。

你的timer0是什么程序?是定时器0初始化吗?没有调用啊。可肯定没中断。
其次你的timer0中断开了没?得允许timer0中断溢出才行。
你的错误提示只是说你的timer0函数没调用而已。自己再仔细看看,应该没问题。

你贴的图说明你的TIMER0这个函数没有调用,你的中断函数后面加interrupt
没有~~把中断的函数贴出来看看~

定时器设为高优先级试试看