C51编程:我的程序如下:
我的程序是这样:void time1(void) interrupt 3 /*中断时间约<1毫秒*/
{
TH1=0xfe;
TL1=0x0c;
TR1=0;
key=0x00;
dog(); /*喂狗脉冲*/
an++;
P2=0xff;
switch(an)
{
case 1:
P21=led2;
P20=led6;
P27=0;
if(~P23) key=0x06;
if(~P22) key=0x02;
break;
case 2:
P21=led3;
P20=led7;
P26=0;
if(~P23) key=0x07;
if(~P22) key=0x03;
break;
case 3:
P21=led4;
P20=led1;
P25=0;
if(~P23) key=0x08;
if(~P22) key=0x04;
break;
case 4:
P21=led5;
P24=0;
if(~P23) key=0x01;
if(~P22) key=0x05;
break;
default:
an=0;
break;
} /*end_switch*/
TR1=1;
}
an,key是字节,led1,led2....led7是位(bit),P20,P21...P27是 P2口的口线
我编译全通过,问题是:
用switch选折数据时出错,在CPU窗口中看到汇编程序是这样的:
先an+1,an送A,A+#0FEH,JZ 转为1时的代码段,A-1,JZ转为2时的代码段....
是否是在JZ是出错?
在仿真器设置中,关于连接的文件是否会出错?谢谢你! ^_^
发表时间:2003年1月13日10:01:00