为什么编译时总提示特殊寄存器变量没定义呢?
大虾帮忙看一下下面的程序为什么编译时总提示特殊寄存器变量没定义呢?
#include <reg51.h>
#define uchar unsigned char
uchar j=0;
uchar i;
uchar idata ad_buf[6];/*ad输入缓冲区*/
uchar tlc2543(uchar ch);/*tlc2543子程序*/
uchar send(void);/*串行发送程序*/
main()
{
uchar k;
uchar channel;
scon=ox40;pcon=ox00;/*波特率9600*/
tmod=ox20;
tl1=oxfd;
th1=oxfd;
tlc2543(channel);/*ad预备*/
j=0;
while(1)
{
channel=0;/*00、01、02三个通道轮流采样*/
for(k=0;k <3;k++)
{
tlc2543(channel);
channel++;
}
send();
}
}
uchar tlc2543(uchar ch)/*tlc2543子程序,ch是通道号,数据格式:12位、高位先输出*/
{
uchar adh;
uchar adl;
sbit clock=p1^4;
sbit cs0=p1^7;
sbit datain=p1^5;
sbit dataout=p1^6;
clock=0;
cs0=1;
cs0=0;
ch < <4;
for(i=0;i <4;i++)
{
datain=(bit)(ch&126);
if(dataout)adh|=1;
ch < <1;
adh < <1;
clock=1;
clock=0;
}
datain=0;
for(i=0;i <8;i++)
{
if(dataout)adl|=1;
adl < <1;
clock=1;
clock=0;
}
cs0=1;
ad_buf[j]=adh;
ad_buf[j]=adl;
j++;
}
uchar send(void)/*发送6个8位数据*/
{
tr1=1;
i=0;
while(i <6)
{
sbuf=ad_buf[i];
while(ti==0);
ti=0;
i++;
}
rt1=0;
}
发表时间:2004年9月14日19:22:28