No.10631 作者:huangxi205 邮件:huangxi205@163.com ID:5494 登陆:13次 QQ:46509028 文章数:114篇 最后登陆IP:218.19.137.159 最后登陆:2005/6/6 23:37:26 注册:2001/8/21 10:57:00 财富:520 发帖时间:2002/9/4 12:37:00 发贴者IP:218.20.2.134 标题:huangxi205:初学者:救救我啊,谁来帮我看看我的程序有什么问题,怎么得不到正确结果? 摘要:No.10631初学者:救救我啊,谁来帮我看看我的程序有什么问题,怎么得不到正确结果? 先多谢你的帮助,我是从串口发过去这样的代码(hex):0a 31 0d,我希望单片机能返回 来A/D检测的值,但结果是无论我怎么改变A/D端口的输入电压返回来的值都无法改变,我 怀疑是A/D转换根本没有修改数据寄存器的值,但我检查了程序,发现不了问题出在那里 啊,我的程序如下,麻烦各位帮帮忙,多谢!!! /********************************************* Chip type : AT90S8535 Clock frequency : 11.059200 MHz Memory model : Small Internal SRAM size : 512 External SRAM size : 0 Data Stack size : 128 *********************************************/ #include<90s8535.h> #include<delay.h> #define UDRE USR.5 #define ADSC ADCSR.6 typedef unsigned char uchar; typedef unsigned int uint; uchar K,adc_h,adc_l; bit FirstRceFlag,FinishRceFlag; #define ADC_VREF_TYPE 0x00 // ADC interrupt service routine #pragma savereg- interrupt [ADC_INT] void adc_isr(void) { adc_l=ADCL; adc_h=ADCH; } #pragma savereg+ // Read the ADC conversion result // with noise canceling void UART_send(uchar d) { UDR=d; while(UDRE==0); } interrupt [UART_RXC] void UART_receive(void) { uchar j; K=UDR; if(K==0x0a) { FirstRceFlag=1; } else if(K==0x0d) { FirstRceFlag=0; FinishRceFlag=1; } else if(FirstRceFlag==1) { switch(K) { case 0x30:j=0;break; case 0x31:j=1;break; case 0x32:j=2;break; case 0x33:j=3;break; case 0x34:j=4;break; c ......
>>返回讨论的主题
|