本帖最后由 月光下你的面庞 于 2017-4-17 13:47 编辑
中断程序中要重新赋值th0 tl0,但是今天做了个实验发现没重装也可以。是程序错了吗?请教后来调试了一下,果然th0tl0到那个地方重装了,搞得我很蒙圈了。
这是代码
#include
#include
***it wela=P2^7;
***it dula=P2^6;
#define uint unsigned int
#define uchar unsigned char
uint num,tt;
uchar aa;
//void delayms(uint xms);
void main()
{
tt=0;
wela=1;
P0=0xea;
wela=0;
dula=1;
P0=0x3f;
dula=0; //这是不用管
TMOD=0x01; //set the timer0 as the work-way1
TH0=(65536-50000)/256; //senior 8bit setting
TL0=(65536-50000)%256; //junior 8bit setting
EA=1; // superior inter on
ET0=1; //interrupt timer0 on
TR0=1; //timer0 start up
aa=0xfe;
while(1)
{
if(tt==10)
{
tt=0;
P1=aa;
aa=_crol_(aa,1);
}
}
}
void exter0() interrupt 1 //timer inter 0
{
//TH0=(65536-50000)/256;
//TL0=(65536-50000)%256; //(为什么我没有重装,实验效果相同?)
tt++;
}
/*void delayms(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
*/