亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 609|回復: 2
打印 上一主題 下一主題
收起左側

在12位ADC 計算公式是除4096還是除4095是選擇題而不是對錯題

[復制鏈接]
跳轉到指定樓層
樓主
ADC變換在單片機控制甚至在整個自動化控制領域都占有重要的一席之地,ADC變換也是一切數字探測器的基礎。
對于在ADC轉換公式ADCn通道的輸入電壓  = (轉換結果 /4096)  * ADC_VRef+中的除法分母究竟應該是“除4096還是除4095”的問題一直是一個存在爭議的問題。在網絡上,在AI問答中,實際應用中、在教科書中,在各種手冊中,選哪一個的都有。
本文介紹了筆者用STC的打狗棒核心板實際做ADC轉換實驗的結果,通過實際實驗結果想說明:
究竟是“除4096還是除4095”不是一道“誰對誰錯”的對錯題,而是一道“選誰或者不選誰”的選擇題。
1)將P01管腳直接連接到VCC上,對應ADC09測量通道。
P02管腳直接連接到GND上,對應ADC10測量通道。

2)直接使用打狗棒的STC官方例程中的“05-16ADC轉換-串口2返回結果”。
3)將例程中的串口2程序修改為串口1輸入輸出,運行程序得到以下的結果:
                    
[10:59:22.975]接收←ADC00=2760
[10:59:23.179]接收←ADC01=2783
[10:59:23.379]接收←ADC02=0613
[10:59:23.583]接收←ADC03=2803
[10:59:23.787]接收←ADC04=2768
[10:59:23.991]接收←ADC05=2771
[10:59:24.195]接收←ADC06=2767
[10:59:24.395]接收←ADC07=2746
                    
[10:59:24.599]接收←ADC08=2773
[10:59:24.803]接收←ADC09=4092  
[10:59:25.007]接收←ADC10=0000  
[10:59:25.208]接收←ADC11=2772
[10:59:25.410]接收←ADC12=2777
[10:59:25.614]接收←ADC13=2764
[10:59:25.818]接收←ADC14=2766
[10:59:26.022]接收←Bandgap=1100
從中可以看到在這輪采樣中,12ADC輸入端的測量值連接VCC的為ADC09=4092,連接GND的為ADC10=0000
4)修改范例程序,假定VCC=5.0000V,也就是假定在ADC轉換公式ADCn通道的輸入電壓  = (轉換結果 /4096)  * ADC_VRef+中的ADC_VRef+等于“VCC=5.0000V”,然后編程分別輸出除以40954096的結果。
程序修改分兩個地方,一個地方是只輸出91015通道:

另一個地方是分別輸出不同除數計算得到電壓值:

1)修改了第143行,不進行16次采樣平均,因為采樣平均值很難到達4095.
2)增加了第164行和165行程序,分別計算了用40954096作為除數得到的電壓結果。
3)修改第166行程序輸出計算出來的結果。
5)下面是計算VCC5V電壓的輸出結果,由于有噪聲,對VCC的采樣結果不是每次都得到同樣的值:
    ADC09=4095  4095->5.000000  4096->4.998779
      ADC10=0000  4095->0.000000  4096->0.000000
      Bandgap=1138  
     ------------
   ADC09=4095  4095->5.000000  4096->4.998779
      ADC10=0000  4095->0.000000  4096->0.000000
      Bandgap=1127  
      ------------
      ADC09=4093  4095->4.997558  4096->4.996338
      ADC10=0000  4095->0.000000  4096->0.000000
      Bandgap=1139  
      ------------
     ADC09=4095 4095->5.000000  4096->4.998779
      ADC10=0000  4095->0.000000  4096->0.000000
      Bandgap=1135  
6)從上面可以看到,如果是除以“4095”,則可以顯示對VCC的采樣的計算值是“5.000000”,而如果是除以“4096”,則可以顯示對VCC的采樣的計算值是“4.998779”。
7)假如一個工廠需要生產一款“數字電壓表”,那么具體承擔編寫程序的工程師就需要做出一個具體的選擇“是除4096還是除4095”,所以這實際上是一道選擇題而不是對錯題
8)既然是選擇題,那么選什么答案就會依選擇者的身份或者立場不同而不同:1)比如作為用戶,我認為他肯定選擇除“4095的那一款,原因是他明明已經知道被測電壓是VCC,他明明已經知道VCC的電壓值是VCC=5.0000V,他為什么不選擇測量顯示值已經等于“5.000000”的產品,非要選擇一個測量顯示值不等于5.000000”而是等于4.998779”的產品。
2)比如作為賣產品的售貨員,我認為她肯定選擇除“4095的那一款。畢竟向顧客解釋清楚“4.998779”就等于“5.000000”是只差一個LSB的正常現象是一個高超難度的困難,這個難度不亞于向顧客推銷一款新年鐘聲響起時卻只顯示時間“23:59:00”的電子鐘的難度,那也是只差一個LSB
3)比如作為生產產品的老板,我認為他肯定選擇除“4095”,因為電壓表不過是一個日常工具,為什么要故意選擇顯示4.998779”人用戶懷疑產品的質量呢?
4)比如作為上大學生“ADC原理”課的老師,我認為他肯定選擇除“4096”,因為他當初學的書本上就那么寫的。
5)比如作為上“ADC原理”課的大學生,我認為他肯定選擇除“4096”,畢竟誰一定要跟考試成績過不去呢?
9)既然是選擇題,如果你是具體編寫程序的程序員,或者你是一名研究生,我認為你應該像我一樣,具體編寫實驗程序,同時給出兩種選擇的效果,然后交給你的老板或者老師,請他做出選擇。
附件1_05-16路ADC轉換-串口2返回結果.rar (23.59 KB, 下載次數: 0)
附件2_ADC轉換測試-串口1返回結果.rar (53.91 KB, 下載次數: 0)
附件3_ADC轉換測試-5V_計算.rar (58.06 KB, 下載次數: 0)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1073939 發表于 2026-4-24 16:17 | 只看該作者
明顯4096比 4095 更合乎邏輯。
以 4 位 ADC 舉例便能看清本質,總量化區間是 16 份而非 15 份,刻度嚴格線性。
選用 15 只是強行讓最大值對應滿電壓,反而破壞了 ADC 原生的量化規則。
回復

使用道具 舉報

板凳
ID:514317 發表于 2026-6-14 14:48 | 只看該作者
12位的精度就是4096個數    我們習慣是以0開始的   所以就造成了最高位是4095     實際計算時按照4096計算
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表