本帖最后由 quzhanguang 于 2013-4-17 01:09 编辑
读取的全局变量总是错的
后来老师往 int i 前面加了data就好了额。不知什么原理求解
#include "reg51.h"
data int i=0;
void delay()
{int i,j;
for(i=100;i>0;i--)
{for(j=10;j>0;j--)
{
}
}
}
void timer_int()
{
TMOD=0x01;
TH0=0xf8;
TL0=0x8c;
EA=1;
ET0=1;
TR0=1;
}
main()
{
P1=0x00;
timer_int();
for(;;)
{
if(P2==0xfe)
{i=1;}
else if(P2==0xfd)
{i=2;}
else if(P2==0xfb)
{i=3;}
else{i=0;}
delay();
}
}
void TIMER() interrupt 1 using 2
{
if(i==0){ P1=0xff;}
else{
if(i==1){
TH0=0xff;
TL0=0x09;}
else if(i==2){
TH0=0xfc;
TL0=0x44;}
else if(i==3){
TH0=0xfc;
TL0=0xac;}
P1=~P1;
}
}
|