|
#include
#define uchar unsigned char
#define uint unsigned int
//sfr P1M0 = 0X91;
//sfr P1M1 = 0X92;
//sfr ADC_CONTR = 0XC5;
//sfr ADC_DATA = 0XC6;
delay(uint t);
//---------------------------------------------------------------------
void init_RS232 (void) // 串口初始化
{
ES = 0; // 禁止串口中断
TMOD = 0x20; // 设置 T1 为波特率发生器
SCON = 0x50; // 0101,0000 8位数据位, 无奇偶校验
TH1 = 0xFD; // 18.432MHz 晶振, 波特率 = 9600
TL1 = 0xFD;
RI = 0;
TR1 = 1;
ES = 1; // 允许串口中断
}
//---------------------------------------------------------------------
void Send_Byte(unsigned char one_byte) // 发送一个字节
{
TI = 0; // 清零串口发送中断标志
SBUF = one_byte;
while (!TI);
TI = 0;
}
main()
{
unsigned char AD_finished=0;
init_RS232();
P1M0 = 0X01;
P1M1 = 0X00;
//P1=0X00;
while(1)
{
ADC_CONTR=ADC_CONTR|0X80; //打开AD电源,设置转换速度最快
ADC_CONTR=ADC_CONTR|0X08; //设置转换标志为1,开始转换
delay(2000); //延时
while(!AD_finished)
AD_finished=(ADC_CONTR&0x10);
Send_Byte(ADC_DATA);
ADC_CONTR &= 0XF7;
ADC_DATA=0X00;
}
}
delay(uint t)
{
while(t--);
}
贴出程序,这个程序我调试的时候,在串口里面发现发送的数据很乱,也不像实际传送的电压值.希望达人能指点一二 |
|