我是单片机初学者,我做了一个AD转换程序,串口我不会,想转换到结果传到PC机上,怎么编!教教我!急用

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar a,b,c,d;
sbit START=P2^3;
sbit CLK=P2^4;
sbit EOC=P2^5;
sbit OE=P2^6;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
void AD();
void display();
void delayms(uchar m);

void main()
{
P0=0x80;
P1=0XFF;

while(1)
{
AD();
display();

}
}
void AD()
{
START=1;
_nop_();
_nop_();
START=0;

delayms(2);
d=P1;

a=d/51;
b=d%51;
c=d%51/5;

}
void display()
{
P21=0;
P0=TAB[a];
delayms(1);

P21=1;
P22=0;
P0=TAB[c];
delayms(1);
P22=1;
P21=0;
P0=0x80;
delayms(1);
P21=1;
}
void delayms(uchar no)
{uchar i,j;
for(i=0;i<no;i++)
{for(j=0;j<164;j++);
for(j=0;j<164;j++);
}
}

可以发送16进制数或ASCII码格式的数据
发送16进制的数据,例如:

SBUF=ADC1;//ADC1是AD转换的结果,16进制数据

发送ASC码的格式数据,例如:

SBUF=0X30+ADC1/100; //发送百位数字
SBUF=0X30+(ADC1%100)/10;//发送十位数字
SBUF=0X30+(ADC1%100)%10;//发送个位数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-24
有很多那个串口检测软件,随便拿一个来,单片机上编程,即可实现,
当然单片机还得和电脑连接起来,这就需要串口线,单片机上还得有MAX232用来转换电平的
基本就可以了
第2个回答  2009-12-24
要用RS232,(或者USB,网线)连至PC上,而且 PC上要有上位机程序来接收发过来的数据,就可以了。
相似回答