熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
angmall 發(fā)表于 2020-8-25 20:35 您好!請(qǐng)問在ADC程序里,能解釋一下為什么是*500而不是1023呀? num=tp*1.0/255*500; |
angmall 發(fā)表于 2020-8-25 20:35 您好!請(qǐng)問在ADC程序里,能解釋一下第24為什么是*500而不是1023呀? num=tp*1.0/255*500; |
青桑葉 發(fā)表于 2020-8-25 13:03 使用兩路做ADC,ADC_CONTR是不是要重復(fù)寫兩次,還是能更簡(jiǎn)單點(diǎn)呢 ADC_CONTR=XXXX1101; ADC_CONTR=XXXX1110; |
YUANYUXING 發(fā)表于 2020-8-25 21:10 就是把 ADC_CONTR=0x80 改為 ADC_CONTR=0x8B就可以正常顯示電壓了嗎?我這幾天也在看這款單片機(jī)。片內(nèi)1.19V的LDO怎么用呢 |
青桑葉 發(fā)表于 2020-8-26 08:14 謝謝,已經(jīng)解決了,可以直接使用ADC_RES的數(shù)據(jù)的。STC8G的手冊(cè)上說的,這款是新上市的單片機(jī),和之前的有些區(qū)別。 |
dalaoshi 發(fā)表于 2020-8-25 21:48 謝謝,已經(jīng)解決了。 |
轉(zhuǎn)換出來的數(shù)據(jù)的對(duì)齊格式是:左對(duì)齊; 不能直接使用ADC_RES 的數(shù)據(jù)吧? |
STC8G與STC12的AD不同之處在于有一個(gè)叫ADCTIM的寄存器,放在很遠(yuǎn)的地址,需要用DPTR才能賦值。 INITADC: MOV P_SW2,#80H ;訪問X寄存器打開 MOV DPTR,#ADCTIM; ;設(shè)置 ADC 內(nèi)部時(shí)序 #0FEA8H 這是廠家的數(shù)值 MOV A,#3FH ;必須通過A才能送到 MOVX @DPTR,A MOV P_SW2,#00H ;訪問X寄存器關(guān)閉 MOV ADCCFG,#0FH ;設(shè)置 ADC 時(shí)鐘為系統(tǒng)時(shí)鐘/2/XXXX 16=慢,8=快 B6決定結(jié)果的格式 ;MOV ADC_CONTR,#10001111B ;使能 ADC 模塊, #1000 CCCC B 通道暫定16 為內(nèi)部參考電壓1.91V MOV ADC_CONTR,#10001101B ;使能 ADC 模塊, #1000 CCCC B 通道13 X ;MOV ADC_CONTR,#10001100B ;使能 ADC 模塊, #1000 CCCC B 通道12 Y ;MOV ADC_CONTR,#10001010B ;使能 ADC 模塊, #1000 CCCC B 通道10 MIC NOP NOP NOP RET |
angmall 發(fā)表于 2020-8-25 20:35 一切正常了,原來是ADC控制寄存器配置錯(cuò)了,ADC_CONTR=0x8B; //P3^3為ADC口 ADC_CONTR=1XXX1011 難怪我怎么改P3口的配置就是不行。謝謝老大! |
angmall 發(fā)表于 2020-8-25 20:35 一切正常了,原來是ADC控制寄存器配置錯(cuò)了, ADC_CONTR=0x8B; //P3^3為ADC口 ADC_CONTR=1XXX1011 難怪我怎么樣改P3口配置就是不行。謝謝老大! |
給你改了一下試試。 對(duì)比一下就知道哪里錯(cuò)了。
|
參與人數(shù) 1 | 黑幣 +12 | 收起 理由 |
---|---|---|
![]() | + 12 | 回帖助人的獎(jiǎng)勵(lì)! |
青桑葉 發(fā)表于 2020-8-25 13:03 我試一下,謝謝 |
angmall 發(fā)表于 2020-8-25 13:13 還是不行,P3^3口怎么修改都是顯示00.00,我是用P3^3口采集5V信號(hào)顯示在數(shù)碼管上的。單片機(jī)用的是STC8G1K08的TSSOP20封裝的,我把代碼傳上去,幫忙看一下是哪里出了問題。
|
xqleft 發(fā)表于 2020-8-25 12:12 感謝師傅賜教! |
我給你來個(gè)程序試試
|
包括這兩個(gè)設(shè)置 P3M0=00000000; P3M1=00001000(高阻);ADC_CONTR=XXXX1101; |
這個(gè)要初始化程序;首先 要把IO口最優(yōu)先級(jí)的設(shè)置為輸入,且不開上拉.其次,就是配置ADC寄存器.比如說通道,你的是通道幾就配置通道機(jī),還有就是采樣頻率,等這些寄存器一定要配置好,因?yàn)檫@個(gè)配置一旦配置好就不能改變.最后就是寫采集的程序了.程序的話就是采集中和采集后,初始化是采集前. 采集中就等待采集完成.采集完成以后把采集出來的值轉(zhuǎn)換成我們需要的10進(jìn)制,因?yàn)橐话闱闆r下采集出來的是2進(jìn)制的值. 再最后我們利用這個(gè)只來做比較,比如低電壓報(bào)警,或者利用這個(gè)值來調(diào)光,調(diào)速等一系列的. |
最近測(cè)試了一下stc8G的ADC功能,想單獨(dú)使用某一個(gè)口采集一路信號(hào),比如P3^3口,怎樣設(shè)置IO口? |
Powered by 單片機(jī)教程網(wǎng)