为啥串口输出的是乱码 icr调的24mhz。。。 搞不懂。。。
单片机源程序如下:
- #include <stc8.h>
- #include <intrins.h>
- #include "uart.h"
- #include "adc.h"
- void delay(void)
- {
- unsigned int i = 0;
- for(i=60000;i>0;i--)
- {
- _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- }
- }
- void main(void)
- {
- uint16_t AD_Result;
- uint16_t AD_Result_mV;
- uint8_t AD_String[5];
- UART_Init(9600);
- ADC_Init(ADC_CH0);
-
- while(1)
- {
- AD_Result=ADC_Polling(0);
-
- AD_Result_mV=((uint32_t)AD_Result*5000)>>12;
- AD_String[0]= AD_Result_mV/1000 + '0';
- AD_Result_mV %= 1000;
- AD_String[1]= AD_Result_mV/100 + '0';
- AD_Result_mV %= 100;
- AD_String[2]= AD_Result_mV/10 + '0';
- AD_String[3]= AD_Result_mV%10 + '0';
- AD_String[4]='\n';
- UART_Write(AD_String,5);
- delay();
- }
- }
复制代码
所有资料51hei提供下载:
模数.zip
(72.26 KB, 下载次数: 6)
|