谘詢電話

ENGLISH0755-88840386
K8凯发大酒店天生赢家專題

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

基於AT89S52單片機的精密稱重係統設計

發布時間:2021-12-07 14:01:56 |來源:網絡轉載

本文介紹了利用AT89S52單片機和傳感器設計的稱重係統實現對重量的高精度測量,提高了生產的自動化程度,成本低廉,應用十分廣泛。
1,稱重係統組成
係統由單片機係統、稱重傳感器、A/D轉換、通信接口和語音提示模塊組成。
1.1,單片機係統
係統采用AT89S52單片機作為控製核心,配備鍵盤、液晶顯示電路和揚聲器。
AT89S52是Atmel公司新推出的一種低功耗、高性能CMOS8位微控製器,它具有以下標準功能:8k字節Flash,256字節RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鍾電路。其性能完全可以滿足係統的要求。
液晶顯示采用OCMJ4X8A液晶顯示屏,它內帶漢字字庫,可以方便地顯示漢字及圖形;可以同時顯示4行8列個單元,可以一次顯示係統所有狀態信息;顯示的內容不需要刷新,節省了單片機的資源;電路結構簡單,便於控製,功耗低。鍵盤用於輸入預置信息,揚聲器用於發出語音提示和超重報警。
1.2,稱重傳感器
係統采用懸臂梁式稱重傳感器。該傳感器量程30kg;彈性體為彎曲懸臂梁結構,外形高度低,結構強度高;用於拉伸力或壓縮力測量,抗偏、抗側向力強;防塵密封,精度高,性能穩定可靠,安裝使用方便。
此傳感器為電阻應變式稱重傳感器,它的主要組成部分有電阻應變片、彈性體和檢測電路。工作原理:彈性體在外力作用下產生彈性變形,使粘貼在其表麵的電阻應變片也隨之產生變形,電阻應變片變形後,它的阻值將發生變化,再經相應的測量電路把這一電阻變化轉換為電壓,從而完成將外力變換為電信號的過程。其中,電阻應變片是把一根電阻絲機械地分布在一塊有機材料製成的基底上,即成為一片應變片;彈性體是一個有特殊形狀的結構件,它的功能有兩個:首先是它承受稱重傳感器所受的外力,對外力產生反作用力,達到相對靜平衡;其次,它要產生一個高品質的應變場,使粘貼在此區的電阻應變片比較理想地完成應變電信號的轉換任務;檢測電路采用全橋式等臂電橋把電阻應變片的電阻變化轉變為電壓輸出。
1.3,高精度A/D轉換
稱重傳感器的輸出為mV級的微弱信號,傳統的測量方法是在A/D轉換之前加一級高精度的稱重變送器,電路複雜。AD7714是美國AnalogDevices(AD)公司推出的24-位ADC家族AD771X係列中的新品,適用於低頻、高精度工業級轉換。該器件具有完整的模擬前端,可以直接測量傳感器輸出的直流微弱信號,轉換精度達到24位無誤碼。采用三線串行口與微控製器連接,通過稱重軟件編程可以對增益、信號極性、輸入通道作出設置。該芯片具有自校準、係統校準和背景校準功能,可以消除零點誤差、滿量程誤差及溫度漂移的影響。
1.4,通信接口
將單片機采集的重量數據傳輸到上位機,利用單片機的RXD,TXD接口連接到RS232串行口接收或發送數據和指令,但是單片機的TTL電平和RS232不兼容,因此使用了MAX232進行電平轉換。
1.5 語音提示模塊
語音提示由ISD1400芯片控製,它有20秒的錄放時間。預先將0~9、點、十、百、千克、克的語音存入ISD1400,單片機將實際測量的重量值通過該語音芯片經由揚聲器發出。
2 稱重係統軟件設計
2.1 單片機軟件編程
對於51係列單片機,目前常用的語言有匯編和單片機C語言。本係統下位機軟件采用Keil C51程序編寫。主要由主程序、讀取重量子程序、鍵盤掃描和液晶顯示子程序、語音提示子程序、串口發送和接收子程序等部分組成。
讀取重力量程序功能。啟動A/D轉換,將重量傳感器測量的重量值轉換成數字信號並讀取到單片機內部。
串口發送和接收子程序功能。完成下位機和上位機的通信。單片機讀取的溫度和濕度值通過發送子程序發送給上位機並等待命令,收到命令後再繼續進行測量。接收子程序通過接收上位機傳輸的命令進行係統自檢、參數修正等。上位機的命令發送采用間隔10ms反複發送的方式,直到單片機將接收到的命令返回為止。如在 1s內單片機沒有響應,則設置超時,係統複位單片機。
2.2 上位機軟件編程
本係統采用MSComm控件實現VB與單片機之間的數據交換,具有程序實現簡便,程序模塊化,工作可靠等優點,並能滿足多數情況下的工控要求。使用MSComm控件主要是通過事件來處理串行口的交互。控件的OnComm事件負責捕獲或處理這些通訊事件和通訊錯誤。
2.2.1,MSCOMM屬性設置
MSComml.CommPort=1 '設置端口1
MSComml.Settings="2400,N,8,1" '2400 b/s,無校驗,8位數據位,1位停止位
MSComml.InputLen=1 '一次從緩衝區中接收一個字節
MSComml.InBufferSize=1024 '接口收緩衝區大小
MSComml.PortOpen=Ture '打開端口
MSComml.Rthreshold=1 '接收一個字節觸發一次ONCOMM事件
2.2.2,ONCOMM事件響應程序
Private Sub MSComml_OnComm()
Dim buffer As Variant '由緩衝區接收到的數據用Variant格式接收
Dim arr()As Byte '定義二進製數組
Dim i As Integer
Dim receivester As string '定義輸出到接收文本框中的字符變量
'下段程序是comEvReceive事件觸發後,將數據存入相應的數組,並在接收文本框中顯示
Select Case MSComml.CommEvent CasecomEvReceive buffer=MSComml.Inpute
arr=buffer接收緩衝區內數據variant變量內
arr=buffer '轉換為二進製數並送入相應數組
For i=1to8
receivester arr(i)
Text1.Text=Text1.Text&receiverstr&"."
'在接收框中顯示文本
Next i
End Select
End Sub
3 ,結束語
本重量測量係統,充分發揮了AT89S52單片機強大的控製能力和計算機的數據處理能力,通過稱重傳感器和24位分辨率的A/D轉換器實現了對重量的高精度測量。係統在電子秤的實際應用中收到了滿意的效果。
隨著科學技術的進步,單片機及相關電子技術飛速發展,應用領域不斷拓展。

 

本文源於網絡轉載,如有侵權,請聯係刪除

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8