|
这个程序写完发现串口接受的数据都是混乱的,还请大神指教啊?我都郁闷一天了。
主程序
#include"stc12c5a60s2.h"
#include"ADC.h"
#include"UART.h"
unsigned char channel; //如果我在此处将Channel改成Channel=0串口接受不到数据?不知道什么问题
void main()
{
UART_init();
ADC_init();
while(1);
}
void adc_isr() interrupt 5 using 1
{
ADC_CONTR&=!ADC_FLAG;
UART_Sent(channel);
UART_Sent(ADC_RES);
UART_Sent(ADC_RESL);
if(++channel>7) channel=0;
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|channel;
}
ADC程序
#include"stc12c5a60s2.h"
#include"ADC.h"
#include"Delay.h"
void ADC_init() //ADC?????????
{
P1ASF=0xff;
ADC_RES=0;
ADC_RESL=0;
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|0; //?????????
delay(3);
EA=1;
EADC=1;
串口程序
#include"stc12c5a60s2.h"
#include"UART.h"
void UART_init()
{
SCON=0x5a;
S2CON= 0x5a;
PCON|=0x80;
AUXR|=0x19;
AUXR1 |=0x10;
BRT=0xfa;
IE2|=0x01;
ES=0;
EA=1;
TI=0;
RI=0;
}
void UART_Sent(uchar fdata
{
SBUF=fdata;
while(TI==0);
TI=0;
}
}
|
|