有没有大神帮我看一下下面程序哪地方出错了?
就是将外界电压经过adc0808转换后,通过蓝牙发送出去
#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define AD_XBYTE [0x7FF8];
//sbit clock=p3^5;
sbit ad_busy=P3^2; //检测eoc信号,转换是否完成
unsigned char ad_data;
bit bk=1;
/********************************************************************
* 名称 : Com_Init()
* 功能 : 初始化串口程序,晶振11.0592, 波特率9600 * 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Init(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/*ADC0809初始化函数*/
void ad_Init(void)
{
EA=1;
EX0=1;
ad_data=0;
ad_busy=0;
if(bk)
{
AD_XBYTE=0;
}
}
/*ADC0809模数转换函数*/
void ad0809(void) interrupt 0
{
EA=0;
EX0=0;
ad_data=AD_XBYTE;
EA=1;
EX0=0;
}
/*蓝牙数据发送函数*/
void blue_send(void)
{
uchar i = 0;
uchar *p;
p= ad_data[1]; //Buffer;
while(1)
{
SBUF = *p;
while(!TI)
{ //如果发送完毕,硬件会置位TI
_nop_;
}
TI = 0; //TI清零
p++;
if(*p == '\0')
break; //在每个字符串的最后,会有一个'\0'
}
}
/*主程序*/
void Main(void)
{
Com_Init;
ad_Init;
blue_send;
while(1);
}
|