熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2021-10-6 19:37
正文摘要:本程序用STC15W201S單片機(jī)。16引腳共14IO, 共連接 一個(gè) 3位 8段共陰數(shù)碼管,兩個(gè)按鍵,以及680K+10K電阻分壓連接比較器測量外部電壓。 其中,P10~P15 + P36,P37 分別通過1K電阻連接數(shù)碼管 段選 ,P31~P3 ... |
| 分享電路圖就更好 |
| 看似簡單,其實(shí)很復(fù)雜! |
MCU的工作頻率為22.1184MHz. 使用MCU自帶的比較器進(jìn)行ADC轉(zhuǎn)換, 并通過串口輸出結(jié)果. 用定時(shí)器0產(chǎn)生10us中斷查詢比較器的狀態(tài). 使用比較器做ADC, 原理圖如下. 做ADC的原理是基于電荷平衡的計(jì)數(shù)式ADC. 電壓從Vin輸入, 通過100K+104濾波, 進(jìn)入比較器的P5.5正輸入端, 經(jīng)過比較器的比較, 將結(jié)果輸出到P1.5再通過100K+104濾波后送比較器P5.4負(fù)輸入端,跟輸入電壓平衡. 設(shè)置兩個(gè)變量: 計(jì)數(shù)周期(量程)adc_duty 和 比較結(jié)果高電平的計(jì)數(shù)值 adc, adc嚴(yán)格比例于輸入電壓. ADC的基準(zhǔn)就是P1.5的高電平. 如果高電平準(zhǔn)確,比較器的放大倍數(shù)足夠大,則ADC結(jié)果會(huì)很準(zhǔn)確. 當(dāng)比較結(jié)果為高電平,則P1.5輸出1, 并且adc+1. 當(dāng)比較結(jié)果為低電平,則P1.5輸出0. 每一次比較都判斷計(jì)數(shù)周期是否完成,完成則adc里的值就是ADC結(jié)果. 電荷平衡計(jì)數(shù)式ADC的性能類似數(shù)字萬用表用的雙積分ADC, 當(dāng)計(jì)數(shù)周期為20ms的倍數(shù)時(shí),具有很強(qiáng)的抗工頻干擾能力,很好的線性和精度. 原理可以參考ADD3501(3 1/2位數(shù)字萬用表)或ADD3701(3 3/4位數(shù)字萬用表), 也可以參考AD7740 VFC電路. 例: 比較一次的時(shí)間間隔為10us, 量程為10000, 則做1次ADC的時(shí)間為100ms. 比較器的響應(yīng)時(shí)間越短, 則完成ADC就越快. 由于要求每次比較時(shí)間間隔都要相等,所以用C編程最好在定時(shí)器中斷里進(jìn)行, 定時(shí)器設(shè)置為自動(dòng)重裝, 高優(yōu)先級中斷, 其它中斷均低優(yōu)先級. 用匯編的話, 保證比較輸出電平處理的時(shí)間要相等. |
STC15W201S系列單片機(jī)引腳圖:
|
| 大佬牛逼,能寫這么多代碼,學(xué)習(xí)學(xué)習(xí) |
Powered by 單片機(jī)教程網(wǎng)