关于鲁迅的名人故事:我的中断程序哪里出错了?跪求!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/23 20:14:02
#include<reg51.h>
sbit P1_0=P1^0;
sbit P1_1=P1^1;
int count1=0,count2=0,i,j,internal1,internal2,qn,tn,m=101,n=31;
void timer0(void)interrupt 1 using 1
{
count1++;
TH0=(65536-307)/256;
TL0=(65536-307)%256;

for(i=6;i<m;i++)
{
if(count1==i)
{
P1_0=!P1_0;
}
}
if(count1==m)
{
count1=1;
P1_0=1;
}
}

void timer1(void)interrupt 3 using 2
{
count2++;
TH1=(65536-2048)/256;
TL1=(65536-2048)%256;

for(j=4;j<n;j++)
{
if(count2==j)
{
P1_1=!P1_1;
}
}
if(count2==n)
{
count2=1;
P1_1=1;
}
}

main()
{
int qn,tn,speed;
speed=3000;
qn=50;
tn=15;
internal1=(int)(18432*60000/speed/2/qn/12);
internal2=(int)(18432*60000/speed/tn/12);

TMOD=0x11;
TH0=(65536-internal1)/256;
TL0=(65536-internal1)%256;
TH1=(65536-internal2)/256;
TL1=(65536-internal2)%256;
IP=0x0A;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
do{}
while(1);
} 为什么把上面的304,2048分别用internal1,internal2来表示后输出结果就不一样呢?注304=internal1,2048=internal2.internal的计算公式程序中有。
急等!!!有哪个好心人赶紧帮帮我,我不是编程出身的,但是毕设得题目是编程,我实在是不知道我的程序中的一个小问题怎么解决。

果然不是编程出身,能不能再把程序里面的常数用变量代替,也让我们知道这程序是干什么用的,算法不小的,听难找错误的,分频再求寄存器的值?!
internal1是307不是304啊?!