日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

单路电压表c语言编程,用AT89C51单片机制作的数字电压表

發(fā)布時(shí)間:2023/12/1 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单路电压表c语言编程,用AT89C51单片机制作的数字电压表 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

此數(shù)字電壓表,利用A/D轉(zhuǎn)換原理將被測(cè)模擬量轉(zhuǎn)換成數(shù)字量,并通過(guò)控制系統(tǒng)用數(shù)字方式顯示測(cè)量結(jié)果。本設(shè)計(jì)采用AT89C51單片機(jī),ADC0809進(jìn)行模/數(shù)轉(zhuǎn)換,能夠測(cè)量8路0~5V的輸入電壓值,可用四位LED數(shù)碼管輪流或單路顯示測(cè)量結(jié)果。其最小分辨率約為0.019V,測(cè)量誤差小于0.02V。

一、系統(tǒng)簡(jiǎn)介

本系統(tǒng)分為主控電路、顯示電路、A/D轉(zhuǎn)換電路、鍵盤(pán)控制電路、電源電路及復(fù)位電路等,系統(tǒng)框圖如右圖所示。

二、硬件電路設(shè)計(jì)

本系統(tǒng)采用AT89C51單片機(jī)作為控制核心,對(duì)8路模擬電壓信號(hào)經(jīng)8位A/D轉(zhuǎn)換芯片ADC0809轉(zhuǎn)換成數(shù)字信號(hào)后,送單片機(jī)進(jìn)行處理,然后通過(guò)數(shù)碼管顯示其電壓值。電路原理見(jiàn)上圖。

ADC0809有8路模擬輸入口IN0~IN7,通過(guò)地址線(23)~(25)腳選擇其中一路進(jìn)行A/D轉(zhuǎn)換。

(22)腳為地址鎖存控制,高電平有效。⑥腳為測(cè)試控制,當(dāng)輸入一個(gè)2μs正脈沖時(shí),啟動(dòng)A/D轉(zhuǎn)換。⑦腳為A/D轉(zhuǎn)換結(jié)束標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),⑦腳輸出高電平。⑨腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制端,當(dāng)⑨腳為高電平時(shí),A/D轉(zhuǎn)換數(shù)據(jù)從MSB2-1~MSB2-8輸出。⑩腳為時(shí)鐘輸入端,利用單片機(jī)ALE腳的六分頻再通過(guò)74LS74構(gòu)成的四分頻得到500kHz時(shí)鐘。

AT89C51的P2、P0.4~P0.7口作為數(shù)碼管顯示控制,采用動(dòng)態(tài)顯示方式顯示測(cè)量的數(shù)字電壓值和通道號(hào)。P0.0口用作單路顯示/循環(huán)顯示轉(zhuǎn)換按鈕,P0.1口用作單路顯示時(shí)通道選擇按鈕。

P1口作A/D轉(zhuǎn)換數(shù)據(jù)輸入,P3.0-P3.6口用作ADC0809的控制。

三、系統(tǒng)軟件設(shè)計(jì)

本系統(tǒng)軟件由顯示控制子程序、顯示數(shù)據(jù)處理子程序、8路電壓采集子程序、鍵盤(pán)處理子程序等組成,采用匯編語(yǔ)言編程。

1.主程序流程如左圖所示。

2.顯示控制子程序

測(cè)量的A/D轉(zhuǎn)換數(shù)據(jù)放在RAM70H~77H中,測(cè)量數(shù)據(jù)轉(zhuǎn)換成的BCD碼放在7AH~7DH中。

20H.0為顯示方式標(biāo)志位,21H存放通道標(biāo)志數(shù)。R4用作8路循環(huán)控制,R0用作顯示通道原始數(shù)據(jù)地址指針,R1為處理后的四位顯示數(shù)據(jù)地址指針。程序通過(guò)測(cè)試20H.0來(lái)確定采用8路循環(huán)顯示還是單通道顯示。循環(huán)顯示時(shí)每通道顯示約2s。數(shù)字電壓值是通過(guò)查表方式采用動(dòng)態(tài)掃描法實(shí)現(xiàn)的。其程序流程如中圖所示。

3.鍵盤(pán)處理子程序

本設(shè)計(jì)采用2個(gè)功能鍵和1個(gè)硬復(fù)位鍵。2個(gè)功能鍵接在P0.0與P0.1口上。對(duì)功能鍵的處理采用測(cè)試端口并設(shè)置標(biāo)志的方法,使用了延時(shí)去抖處理。鍵盤(pán)按下時(shí),還可以顯示通道號(hào)碼,松開(kāi)后才顯示測(cè)量電壓值。循環(huán)顯示時(shí),通道號(hào)顯示為“0”;單通道顯示號(hào)碼為0~8。

4.八路電壓采集子程序

單片機(jī)為ADC0809提供所需的控制時(shí)序,采集到的八路電壓數(shù)據(jù)分別存放在單片機(jī)RAM70H~77H中。程序流程如下圖。

5.顯示數(shù)據(jù)處理子程序

放在AT89C5170H~77H中的對(duì)應(yīng)電壓值數(shù)據(jù)必須轉(zhuǎn)換成相應(yīng)的BCD碼后才能送數(shù)碼管顯示。由于本系統(tǒng)中ADC0809的參考電壓VREF=VCC,所以最大測(cè)量電壓5V所對(duì)應(yīng)的二進(jìn)制數(shù)就是FFH,而每伏電壓對(duì)應(yīng)的二進(jìn)制數(shù)為33H。其處理方法是,用轉(zhuǎn)換后的數(shù)據(jù)除以33H,得到的商即為電壓值的個(gè)位數(shù)。余數(shù)×5后再除以33H得到的商×2即為電壓值的十分位數(shù)。所余之?dāng)?shù)×2后再進(jìn)行一次×5÷33H得到的商×2即為電壓值的百分位數(shù)。同理可得到千分位數(shù)。最后進(jìn)行四舍五入處理,若千分位處理后的余數(shù)大于19H即千分位加1。四舍五入處理后需要對(duì)各位進(jìn)行進(jìn)位調(diào)整。調(diào)整后的個(gè)位、十分位、百分位、千分位分別存入7AH~7DH中。

總結(jié)

以上是生活随笔為你收集整理的单路电压表c语言编程,用AT89C51单片机制作的数字电压表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。