欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC15W408AS單片機測內部基準電壓匯編語言的問題 [打印本頁]

作者: 新鄉家電維修    時間: 2021-11-5 08:17
標題: STC15W408AS單片機測內部基準電壓匯編語言的問題
在測試STC15W408AS內部基準電壓時,讀出的兩字節是108H。高位ADC_RES=1,低位ADC_RESL=08。108h=264D
程序運行時會有1mv--2mv的電壓變化,這都正常
編程時顯示內部基準是1244mv,現在讀出是264(十進制)
反推單片機供電電源公式:(1244*1024)/264=4825mv
就是4.825mv,我用數字表測得供電是4.84V,
看來還是很準確的,下面程序讀出的

供大家討論,給個意見
  ADC_CONTR    EQU 0BCH;ADC控制寄存器
                ;B7,ADC_POWER;ADC電源控制位
               ;B6,A/D轉換需要時間11=90  10=180
               ;B5,A/D轉換需要時間01=360 00=540
               ;B4,ADC_FLAG;模數轉換完成標志位。=1轉換完成,一定要由軟件清0
               ;B3,ADC_START;啟動轉換位,=1開始轉換,轉換完成為0。
               ;B2,模擬輸入通道選擇000=1.0 001=1.1 010=1.2
               ;B1,模擬輸入通道選擇011=1.3 100=1.4 101=1.5
               ;B0,模擬輸入通道選擇110=1.6 111=1.7
  ADC_RES        EQU 0BDH        ;高8位
  ADC_RESL        EQU 0BEH        ;低2位
  P1ASF                EQU 09DH        ;P1口功能控制

        M_CS  BIT P1.0        ;LOAD和CS一樣
        M_DIN BIT P3.3
        M_CLK BIT P1.1




        ORG 00H
        LJMP MAIN
        ORG 100H
;=======================
MAIN:
        MOV SP,#70H
        LCALL M_CSHCX ;初始化MAX7219顯示
        LCALL INIT_ADC        ;初始化ADC
        MOV ADC_CONTR,#10001000B;開始轉換ADC
        NOP
        NOP
        NOP
        NOP
WAIT:
        MOV A,ADC_CONTR
        JNB ACC.4,WAIT        ;等待轉換完成
        MOV ADC_CONTR,#10000000B;清除標志
        LCALL JISUAN        ;拆分字節
;        MOV ADC_CONTR,#00000000B;關閉ADC電源
        LCALL DISP
        LCALL DELAY10ms
        JMP MAIN


;======================================
;------------初始化MAX7219----------------
M_CSHCX:
        MOV A,#0BH;掃描位數寄存器
        MOV R2,#07;
        LCALL YYY
        MOV A,#0AH;亮度控制寄存器
        MOV R2,#00H;
        LCALL YYY
        MOV A,#09H;譯碼方式寄存器
        MOV R2,#0FFH;
        LCALL YYY
        MOV A,#0CH;停機寄存器
        MOV R2,#01H;
        LCALL YYY
        RET
;-----------初始化ADC-------------
INIT_ADC:
        MOV P1ASF,#0        ;0是測試內部電壓
        MOV CLK_DIV,#20H;高2位存儲在ADC_RES,低8位在ADC_RESL
        MOV ADC_RES,#0        ;清除寄存器
        MOV ADC_RESL,#0        ;清除寄存器
        MOV ADC_CONTR,#10000000B;開啟ADC電源
        LCALL DELAY1S        ;延時程序讓ADC供電穩定
        RET
;-----------MAX7219顯示程序--------------------
DISP:
        MOV R2,37H           
        MOV A,#01H
        LCALL YYY
        MOV R2,36H
        MOV A,#02H
        LCALL YYY
           MOV R2,35H
        MOV A,#03H
        LCALL YYY
        MOV R2,34H           
        MOV A,#04H
        LCALL YYY

        MOV R2,33H           
        MOV A,#05H
        LCALL YYY
        MOV R2,32H                    
        MOV A,#06H
        LCALL YYY
        MOV R2,31H               
        MOV A,#07H
        LCALL YYY
        MOV R2,30H
        MOV A,#08H
        LCALL YYY
        RET
YYY:
        CLR M_CS
        LCALL SEND
        MOV A,R2
        LCALL SEND
        SETB M_CS
        RET
;------------寫入數據-------------------
SEND:
        MOV R4,#08H
LOOP2:
        CLR M_CLK
        RLC A
        MOV M_DIN,C
        NOP
        NOP
        SETB M_CLK
        DJNZ R4,LOOP2
        ret
;-----------拆分字節顯示用-----------------
JISUAN:   
        
        MOV A,ADC_RESL
        ANL A,#0FH
        MOV 33H,A
        MOV A,ADC_RESL
        SWAP A
        ANL A,#0FH
        MOV 32H,A

        MOV A,ADC_RES
        ANL A,#0FH
        MOV 31H,A
        MOV A,ADC_RES
        SWAP A
        ANL A,#0FH
        MOV 30H,A
        RET

;==================延時程序==================
DELAY10MS:
        MOV  6CH,#50   ;10mS延時
D4:        MOV  6DH,#200
D3:        DJNZ 6DH,D3
        DJNZ 6CH,D4
        RET

DELAY1S:
          MOV  6DH, #100
DLY1: MOV  6EH, #100
DLY2: MOV  6FH, #100
      DJNZ 6FH, $
      DJNZ 6EH, DLY2
      DJNZ 6DH, DLY1
      RET

END

作者: Y_G_G    時間: 2021-11-5 08:17
你想過沒有?為什么數據手冊的10.7章節(898頁面)要強調這個?而如果你看STC8G系列就不會有這個EEPROM的操作那是因為STC15W系列的內部參考電壓雖然穩定,但每片之間的內部參考電壓是有差距的,很有可能是在這個單片機上是準確的,換一個單片機就不準確了
當然,也有可能你換了10片都是準確的,那就是你運氣很好
我之前用過10片來DIY手電,有5個是很準確的,另外5個不是高了就是低了,最大誤差0.25V,所以,現在一直在用STC8G系列的
8G系列要比15W系列好用很多,價錢也一樣......



作者: 新鄉家電維修    時間: 2021-11-5 20:23
利用內部基準電壓推算供電電壓還是很準的,測量低于基準的電壓就不行了,
這就需要另一個公式了,利用推算的VCC算:(VCC/1024)*adc值
作者: 188610329    時間: 2021-11-5 21:49
STC8手冊是這么寫的:



描述和STC15不同,但是一樣承認自己不準。
而STC8因為大多有Vref引腳,需要用到內部參考電壓的概率不大。雖然沒有強調要校正,但也提出校正建議。
最后提一下,我屯的60+片STC8G, 里面內部參考電壓最低的1.17多,最高的1.23多比手冊說的 正負1%的浮動要大。

總之,要用內部參考電壓,先用精準的外部電壓校正一下,總不會錯。

作者: Y_G_G    時間: 2021-11-5 22:17
188610329 發表于 2021-11-5 21:49
STC8手冊是這么寫的:

只要對于ADC的精度不超過1%的,根本就不需要校正
就算是有誤差,也不會超過數據手冊上的正負1%,雖說這STC算不上什么頂級芯片制造商,但這點精度也不是什么值得炫耀的參數
1.23對比于1.19這個誤差肯定是在數據手冊的范圍之內的
如果要搞清楚整個ADC精度,你還要看一下數據手冊的第558頁面的ADC電氣參數
作者: 新鄉家電維修    時間: 2021-11-6 19:05
你們說的很好,可以這樣:
1、跳過內部基準測量,設定1250mv存入eeprom,
2、帶入公式計算供電電源是否準確,用程序修改參考電壓。
達到修正的目的,




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1