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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

一、系統簡介

本系統分為主控電路、顯示電路、A/D轉換電路、鍵盤控制電路、電源電路及復位電路等,系統框圖如右圖所示。

二、硬件電路設計

本系統采用AT89C51單片機作為控制核心,對8路模擬電壓信號經8位A/D轉換芯片ADC0809轉換成數字信號后,送單片機進行處理,然后通過數碼管顯示其電壓值。電路原理見上圖。

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

(22)腳為地址鎖存控制,高電平有效。⑥腳為測試控制,當輸入一個2μs正脈沖時,啟動A/D轉換。⑦腳為A/D轉換結束標志,當A/D轉換結束時,⑦腳輸出高電平。⑨腳為A/D轉換數據輸出允許控制端,當⑨腳為高電平時,A/D轉換數據從MSB2-1~MSB2-8輸出。⑩腳為時鐘輸入端,利用單片機ALE腳的六分頻再通過74LS74構成的四分頻得到500kHz時鐘。

AT89C51的P2、P0.4~P0.7口作為數碼管顯示控制,采用動態顯示方式顯示測量的數字電壓值和通道號。P0.0口用作單路顯示/循環顯示轉換按鈕,P0.1口用作單路顯示時通道選擇按鈕。

P1口作A/D轉換數據輸入,P3.0-P3.6口用作ADC0809的控制。

三、系統軟件設計

本系統軟件由顯示控制子程序、顯示數據處理子程序、8路電壓采集子程序、鍵盤處理子程序等組成,采用匯編語言編程。

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

2.顯示控制子程序

測量的A/D轉換數據放在RAM70H~77H中,測量數據轉換成的BCD碼放在7AH~7DH中。

20H.0為顯示方式標志位,21H存放通道標志數。R4用作8路循環控制,R0用作顯示通道原始數據地址指針,R1為處理后的四位顯示數據地址指針。程序通過測試20H.0來確定采用8路循環顯示還是單通道顯示。循環顯示時每通道顯示約2s。數字電壓值是通過查表方式采用動態掃描法實現的。其程序流程如中圖所示。

3.鍵盤處理子程序

本設計采用2個功能鍵和1個硬復位鍵。2個功能鍵接在P0.0與P0.1口上。對功能鍵的處理采用測試端口并設置標志的方法,使用了延時去抖處理。鍵盤按下時,還可以顯示通道號碼,松開后才顯示測量電壓值。循環顯示時,通道號顯示為“0”;單通道顯示號碼為0~8。

4.八路電壓采集子程序

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

5.顯示數據處理子程序

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。