找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
12
返回列表 發(fā)新帖
樓主: 暖西夏
打印 上一主題 下一主題
收起左側(cè)

STC8G1K08單片機(jī)adc采集問(wèn)題

  [復(fù)制鏈接]
41#
ID:998702 發(fā)表于 2021-12-30 20:41 來(lái)自觸屏版 | 只看該作者
wjw7680 發(fā)表于 2021-9-11 13:29
鄭重道歉,由于建立STC工程的時(shí)失誤沒(méi)有添加啟動(dòng)文件“STARTUP.A51”文件,導(dǎo)致硬件仿真時(shí)候出現(xiàn)如下問(wèn)題。 ...

還是不行啊,我這有這個(gè)starup.a51的文件啊。還是提示連接不到設(shè)備
回復(fù)

使用道具 舉報(bào)

42#
ID:1011407 發(fā)表于 2022-3-18 21:07 | 只看該作者
xmsj 發(fā)表于 2021-12-30 20:41
還是不行啊,我這有這個(gè)starup.a51的文件啊。還是提示連接不到設(shè)備

請(qǐng)問(wèn)解決了嗎,我的也是加了startup.a51文件也還是不行,本來(lái)是可以了的,結(jié)果發(fā)現(xiàn)是軟件仿真,到后面切換成硬件仿真還是不行
回復(fù)

使用道具 舉報(bào)

43#
ID:975054 發(fā)表于 2022-3-27 23:48 | 只看該作者
近期用到了二路ADC電壓檢測(cè),很正常穩(wěn)定,沒(méi)有什么問(wèn)題的,設(shè)置要正確.
精簡(jiǎn)代碼如下:
ADCCFG = 0x2f;                    //設(shè)置ADC時(shí)鐘為系統(tǒng)時(shí)鐘/2/16 ,右對(duì)齊;
    P_SW2 |= 0x80;                          //訪問(wèn)擴(kuò)展RAM區(qū)域寄存器(ADCTIM),需先將P_SW2的BIT7設(shè)置為1,才可正常讀寫(xiě); 手冊(cè)后面P_SW2 &= 0x7f釋放P_SW2非必要已刪除沒(méi)問(wèn)題!
    ADCTIM = 0x30;                    //設(shè)置ADC時(shí)序控制2A~3F,采樣時(shí)間:0A~1F,ok; 用復(fù)位默認(rèn)值0X2A(0010,1010)可省2句(已驗(yàn)證可以但暫未采用),注意低5位SMPDUTY一定不能設(shè)置小于A(01010B);
                                              //2、P32ADC10:測(cè)VTP1(BAT1一半分壓值);  3句合并ok!20220305;                             
    ADC_CONTR = 0xCA;                 //BAT1:復(fù)位值000x,0000;打開(kāi)ADC電源(B7:1)、啟動(dòng)AD轉(zhuǎn)換(B6:1)、選通道A(P32);
    delay_ms(1);                                  //ADC模塊電源打開(kāi)后需等待約1ms等ADC電源穩(wěn)定后再讓ADC工作?? 20220327增加;
    _nop_(),_nop_();                          //參考手冊(cè)空操作2次; ADC模塊電源打開(kāi)后需等待約1ms等ADC電源穩(wěn)定后再讓ADC工作??
    while (!(ADC_CONTR & 0x20));      //查詢ADC完成標(biāo)志;  手冊(cè):檢測(cè)工作約耗時(shí)1mS;
    ADC_CONTR &= ~0x20;               //清完成標(biāo)志;
    ADC_CONTR &= 0x7F;                          //ADC轉(zhuǎn)換完即斷電更省電;            之前放PD改放這里測(cè)完即關(guān)省時(shí)即省電20220305;ok
    res = (ADC_RES << 8) | ADC_RESL;  //讀取ADC結(jié)果(右對(duì)齊:高2位低8位,前面自動(dòng)補(bǔ)0);
    BAT1 = (int)(3300L*res/1024L+17L);//計(jì)算監(jiān)測(cè)電壓mV;特別注意數(shù)據(jù)類型后面帶L(因I易混淆)!及VDD3.3V參考電壓穩(wěn)定性;修正值:+29L;OK20220309;+17L;OK20220327;
回復(fù)

使用道具 舉報(bào)

44#
ID:975054 發(fā)表于 2022-4-22 23:50 | 只看該作者
wulin 發(fā)表于 2021-6-1 20:26
這是STC8頭文件里的相關(guān)部分,你重復(fù)定義并且是錯(cuò)的。
//ADC 特殊功能寄存器
sfr ADC_CONTR   =   0xbc ...

就是就是!重復(fù)定義!搞復(fù)雜了還不行的。
回復(fù)

使用道具 舉報(bào)

45#
ID:688692 發(fā)表于 2022-4-23 00:26 來(lái)自觸屏版 | 只看該作者
if((ADC_CONTR & 0x20) == 1)PC_OFF = 1;        //點(diǎn)亮一個(gè)LED
回復(fù)

使用道具 舉報(bào)

46#
ID:688692 發(fā)表于 2022-4-23 00:28 來(lái)自觸屏版 | 只看該作者
顯然是被編譯器優(yōu)化掉了。一個(gè)8位的寄存器,跟常數(shù)0x20運(yùn)算,結(jié)果還是8位,而且結(jié)果不可能等于1,壞就壞在這個(gè)等于1了,你寫(xiě)不等于0就好了。if((ADC_CONTR & 0x20) == 1)PC_OFF = 1;        //點(diǎn)亮一個(gè)LED
回復(fù)

使用道具 舉報(bào)

47#
ID:373562 發(fā)表于 2022-5-31 01:18 | 只看該作者
帖子很有用,正好遇到8G1K的ADC問(wèn)題了,標(biāo)記一下
回復(fù)

使用道具 舉報(bào)

48#
ID:824490 發(fā)表于 2022-5-31 09:25 | 只看該作者
Y_G_G 發(fā)表于 2021-9-8 09:07
仿真?我現(xiàn)在都還不會(huì)用那個(gè)軟件,倒是Multisim用得多,也就這玩意仿真是最接近實(shí)際結(jié)果的
就單片機(jī)而言,沒(méi) ...

某原子的那款迷你型的可以考慮一下,日常的開(kāi)發(fā)DIY是夠用了。不貴,也一次燒烤5人份的費(fèi)用。
回復(fù)

使用道具 舉報(bào)

49#
ID:614527 發(fā)表于 2023-5-17 23:02 | 只看該作者
wwh2382 發(fā)表于 2021-9-4 21:53
STC8G1K08沒(méi)有adc,有adc的是STC8G1K08a,型號(hào)后面帶a

STC8G1K08  20腳的親測(cè)有ADC,不過(guò)目前讀取到的只有8位ADC數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

50#
ID:975054 發(fā)表于 2023-5-24 18:43 | 只看該作者
18701931930 發(fā)表于 2021-6-1 13:25
沒(méi)有遇到你說(shuō)的情況,參考下我的:

//P3.5電壓采集

nop_();
  _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_(); //ADC啟動(dòng)后,必須要延時(shí) 33.1776MHZ 10個(gè)nop大約是337.7ns

究竟幾個(gè)nop()? 我一個(gè)都沒(méi)有也基本正常,手冊(cè)范例是2個(gè),又說(shuō)整個(gè)轉(zhuǎn)換過(guò)程約1ms......我醉了,呵呵一起喝醉
回復(fù)

使用道具 舉報(bào)

51#
ID:975054 發(fā)表于 2023-5-24 18:47 | 只看該作者
188610329 發(fā)表于 2021-9-6 15:08
ADC_CONTR = 0x82;  //打開(kāi)AD轉(zhuǎn)換電源,選擇AD的第二通道
ADC_CONTR |= 0x40;  //啟動(dòng)AD轉(zhuǎn)換

我一直STC8G1K08(20腳或帶A8腳)也是打開(kāi)電源,選擇通道,啟動(dòng)轉(zhuǎn)換三合一了:  ADC_CONTR  = 0xC2;  
回復(fù)

使用道具 舉報(bào)

52#
ID:975054 發(fā)表于 2023-5-24 19:10 | 只看該作者
Y_G_G 發(fā)表于 2021-9-6 22:45
P_SW2|=0x7f;??這是干嘛使的?
不應(yīng)該是P_SW2&=0x7f;的嗎?
P3M1=0x00;

P_SW2 &=0x7f;??這是干嘛使的?  不應(yīng)該是P_SW2&=0x7f;的嗎?
禁止訪問(wèn)XSRF用的:一般無(wú)需禁止! BIT7=0禁止,所以確實(shí)應(yīng)該用&=;
P_SW2 |= 0x80;   //XSRF!訪問(wèn)XSRF先BIT7=1; 統(tǒng)一放前無(wú)需歸零(有外擴(kuò)64K擴(kuò)展RAM時(shí)才需要); 目標(biāo)設(shè)置PDATA,新手冊(cè)建議全用XDATA快!待研究?

   
P3M1=0x00;
P3M0=0x00;??這又是干嘛?傳統(tǒng)端口不一定能點(diǎn)亮LED的,運(yùn)氣好的會(huì)亮,運(yùn)氣不好就不亮,除非你有上拉電阻
現(xiàn)在的超亮小LED串大電阻一般用于小東西指示一下也夠了,不過(guò)一般都上拉用灌電流大.
回復(fù)

使用道具 舉報(bào)

53#
ID:583286 發(fā)表于 2024-8-12 14:55 | 只看該作者
wjw7680 發(fā)表于 2021-9-10 13:31
使用一般外購(gòu)的下載器(CH340或者PL2303)在KEIL中按下“CTRL+F5”后都會(huì)出現(xiàn)如下提示"Connection to targe ...

感謝感謝
回復(fù)

使用道具 舉報(bào)

12
返回列表 發(fā)新帖

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表