![]() |
發布時間: 2019-7-16 12:00
正文摘要:12864為串行接法。AD0~AD4接的5V電源。 AD5~AD7接的GND。 STC15W408AS 自帶8路10位AD 程序只使用了高八位。量程為255. 程序里面含10位AD采集。1024。 代碼已注釋。 新手上路。有錯誤還請斧正。 ... |
10位 ADC 采集部分程序有問題 做如下修改編譯就可以通過, 這樣修改可以嗎? /**************** *以下關于ADC *****************/ void ADC_init() //adc初始化 { P1ASF=0XFF; //設置P1為ADC采集 ADC_RES=0; //清除高八位結果寄存器 ADC_CONTR=0XE0; //ADC上電 A/D轉換周期90個時鐘周期 delay(5); } uchar ADC_P(unsigned char ch) //ADC處理函數 { ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標志 delay(30); ADC_CONTR=0x80|0x00|0x08|ch; a1=ADC_RES; //高8位 b1=ADC_RESL; //低8位 delay(60); ADC_data=(a1<<2)|(b1>>6); //10AD */ /* ADC_CONTR&=~ADC_FLAG; //關閉標志位 ADC_CONTR=0X80|0X00|0X08|ch; _nop_();_nop_();_nop_();_nop_(); */ /* ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標志 delay(30); ADC_CONTR=0x80|0x00|0x08|0x00; a1=ADC_RES; //高8位 b1=ADC_RESL; //低8位 delay(60); // ADC_data=(a1<<2)|(b1>>6); //10AD */ while(!(ADC_CONTR&0x10));//等待ADC轉換完成 return ADC_RES; //返回ADC結果 8位AD } |
不錯的資料,正是我想找了東西。 |
good,程序學習下,請問有沒有具體電路連接呢 |
uchar ADC_P(unsigned char ch) //ADC處理函數 { ADC_CONTR&=~ADC_FLAG; //關閉標志位 ADC_CONTR=0X80|0X00|0X08|ch; _nop_();_nop_();_nop_();_nop_(); while(!(ADC_CONTR&0x10));//等待ADC轉換完成 return ADC_RES; //返回ADC結果 8位AD /* ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標志 delay(30); ADC_CONTR=0x80|0x00|0x08|0x00; a1=ADC_RES; //高8位 b1=ADC_RESL; //低8位 delay(60); // ADC_data=(a1<<2)|(b1>>6); //10AD */ }如果使用10位ad,不應該是 /* ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標志 delay(30); ADC_CONTR=0x80|0x00|0x08|0x00; a1=ADC_RES; //高8位 b1=ADC_RESL; //低8位 delay(60); // ADC_data=(b1<<2)|(a1>>6); //10AD */ ,詳情請看圖片 |
51hei截圖_20201116155222.png (38.13 KB, 下載次數: 116)
有沒有proteus仿真電路鴨? |