熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-7-16 12:00
正文摘要:12864為串行接法。AD0~AD4接的5V電源。 AD5~AD7接的GND。 STC15W408AS 自帶8路10位AD 程序只使用了高八位。量程為255. 程序里面含10位AD采集。1024。 代碼已注釋。 新手上路。有錯(cuò)誤還請(qǐng)斧正。 ... |
10位 ADC 采集部分程序有問題 做如下修改編譯就可以通過, 這樣修改可以嗎? /**************** *以下關(guān)于ADC *****************/ void ADC_init() //adc初始化 { P1ASF=0XFF; //設(shè)置P1為ADC采集 ADC_RES=0; //清除高八位結(jié)果寄存器 ADC_CONTR=0XE0; //ADC上電 A/D轉(zhuǎn)換周期90個(gè)時(shí)鐘周期 delay(5); } uchar ADC_P(unsigned char ch) //ADC處理函數(shù) { ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標(biāo)志 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; //關(guān)閉標(biāo)志位 ADC_CONTR=0X80|0X00|0X08|ch; _nop_();_nop_();_nop_();_nop_(); */ /* ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標(biāo)志 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轉(zhuǎn)換完成 return ADC_RES; //返回ADC結(jié)果 8位AD } |
不錯(cuò)的資料,正是我想找了東西。 |
good,程序?qū)W習(xí)下,請(qǐng)問有沒有具體電路連接呢 |
uchar ADC_P(unsigned char ch) //ADC處理函數(shù) { ADC_CONTR&=~ADC_FLAG; //關(guān)閉標(biāo)志位 ADC_CONTR=0X80|0X00|0X08|ch; _nop_();_nop_();_nop_();_nop_(); while(!(ADC_CONTR&0x10));//等待ADC轉(zhuǎn)換完成 return ADC_RES; //返回ADC結(jié)果 8位AD /* ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標(biāo)志 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,不應(yīng)該是 /* ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標(biāo)志 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 */ ,詳情請(qǐng)看圖片 |
51hei截圖_20201116155222.png (38.13 KB, 下載次數(shù): 116)
參與人數(shù) 1 | 黑幣 +60 | 收起 理由 |
---|---|---|
![]() | + 60 | 回帖助人的獎(jiǎng)勵(lì)! |
有沒有proteus仿真電路鴨? |
Powered by 單片機(jī)教程網(wǎng)