基于51單片機壓力檢測系統(tǒng)設(shè)計.doc
《基于51單片機壓力檢測系統(tǒng)設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機壓力檢測系統(tǒng)設(shè)計.doc(66頁珍藏版)》請在裝配圖網(wǎng)上搜索。
學(xué)號: xxxxxxx xx 大 學(xué) 畢業(yè)設(shè)計(論文) (xxxx屆) 題 目 基于51單片機的壓力檢測系統(tǒng)設(shè)計 學(xué) 生 xxxx 學(xué) 院 xxxxxxxxxxxxxxxx 專業(yè)班級 xxxxxxxx 校內(nèi)指導(dǎo)教師 xxxx 專業(yè)技術(shù)職務(wù) xxxxxx 校外指導(dǎo)老師 專業(yè)技術(shù)職務(wù) 二〇xxx年六月 基于51單片機的壓力檢測系統(tǒng)設(shè)計 摘 要:本設(shè)計借助壓力傳感器將壓力信號轉(zhuǎn)換成電信號,經(jīng)過信號放大,使用高精度A/D轉(zhuǎn)換器件,將模擬信號轉(zhuǎn)換成數(shù)字信號,再經(jīng)單片機運算處理轉(zhuǎn)換成LCD液晶可以識別的信息,最后顯示輸出。初始化后可以重設(shè)閾值,系統(tǒng)能夠?qū)崿F(xiàn)手動存儲八個以內(nèi)的數(shù)據(jù),并可以查詢歷史記錄,對存儲的數(shù)據(jù)進行統(tǒng)計分析,并且在實時壓力檢測的過程中,預(yù)警電路一直監(jiān)視系統(tǒng)的運行。 本設(shè)計根據(jù)壓力傳感器零點補償與非線性補償原理,設(shè)計出了測量壓力傳感器的硬件電路。采用單片機設(shè)計實現(xiàn),具有精度高、功能強等特點。但是由于自身的穩(wěn)定性其測量結(jié)果仍存在誤差。本課題設(shè)計的壓力檢測系統(tǒng)具有壓力測量、超重報警、壓力存儲及歷史數(shù)據(jù)查閱和壓力值數(shù)據(jù)的統(tǒng)計分析。該系統(tǒng)的壓力檢測范圍為0-10Kg,測量精度可以達到10g,具有高精度,低成本,易攜帶的特點。采用LCD12864液晶顯示測量結(jié)果,比傳統(tǒng)壓力檢測系統(tǒng)的精確度更高和直觀性更好。另外,該系統(tǒng)電路簡單,成本低,使用壽命長,應(yīng)用范圍廣等優(yōu)點。 關(guān)鍵詞:壓力傳感器;A/D轉(zhuǎn)換器;LCD12864 Design of pressure detection system based on MCU 51 Abstract:Using pressure sensor converts the pressure signal into electrical signal, after amplification, using high precision A/D conversion device that converts analog signals into digital signals in this design, then through single chip microcomputer processing into the information that LCD can identify, at last displaying and outputting information. After initialization the system can reset the threshold, achieve storing within eight data manually, and can query the history records, the statistic analysis the stored data and in the process of real-time pressure detection, early warning circuit has been monitoring the operation of the system. This paper according to the principle of zero compensation and nonlinear compensation for pressure sensor, designing measuring pressure sensor hardware. Single-chip implementation has the characteristics of high precision, strong function. Because of its stability errors still exist in the measurement. The topic functions for pressure detection system are overweight alarm, storage, statistical analysis of historical data access and pressure value. The measurement range of the system is from 0 to 10 kg, measurement accuracy can reach to 10 g. It has the advantage of high precision, low cost, easy to carry. Measurement results display with LCD 12864 , Contrast to the traditional pressure test system, it has higher accuracy and intuitive. In addition, the system circuit is simple, low cost, long service life and wide scope of application. Key words:Pressure sensor; A/D converter; LCD12864 目 錄 摘 要 I Abstract II 目 錄 III 1 引言 1 1.1 研究背景及意義 1 1.2 壓力檢測系統(tǒng)的研究現(xiàn)狀 1 1.3 課題任務(wù) 2 2 系統(tǒng)分析與總體方案設(shè)計 3 2.1 壓力檢測系統(tǒng)的整體設(shè)計 3 2.2 壓力檢測系統(tǒng)的設(shè)計方案 3 2.2.1 實時壓力測量顯示方案 4 2.2.2 實時壓力監(jiān)控預(yù)警方案 4 3 系統(tǒng)硬件電路設(shè)計 5 3.1 單片機系統(tǒng) 5 3.1.1 單片機選型 5 3.1.2 單片機晶振電路和復(fù)位電路 7 3.2 數(shù)據(jù)采集模塊 8 3.2.1 壓力傳感器 9 3.2.2 信號放大電路 10 3.2.3 A/D模數(shù)轉(zhuǎn)換 11 3.3 人機交互模塊 15 3.3.1 液晶顯示單元 15 3.3.2 矩陣鍵盤單元 17 3.4 聲光報警模塊 18 3.5 電源供電模塊 18 4 軟件程序設(shè)計 20 4.1 軟件開發(fā)環(huán)境 20 4.2 I/O端口分配 21 4.3 軟件主程序構(gòu)架 22 4.4 主要功能子程序的設(shè)計 23 4.4.1 A/D子程序設(shè)計 24 4.4.2 中斷子程序設(shè)計 25 4.4.3 查詢歷史數(shù)據(jù)子程序設(shè)計 25 4.4.4 數(shù)據(jù)統(tǒng)計分析子程序設(shè)計 26 4.4.5 閾值重設(shè)子程序設(shè)計 27 4.4.6 人機交互子程序設(shè)計 28 5 系統(tǒng)調(diào)試 33 5.1 數(shù)據(jù)采集調(diào)試 33 5.2 數(shù)據(jù)統(tǒng)計分析調(diào)試 33 5.3 聲光報警調(diào)試 34 5.4 軟件調(diào)試 34 5.5 實物展示 34 6 結(jié)束語 39 參 考 文 獻 40 致 謝 41 附 錄 A 42 附 錄 B 44 III xx本科生畢業(yè)設(shè)計(論文) 1 引言 1.1 研究背景及意義 近年來,微型計算機越來越普遍地應(yīng)用于人們的日常工作、生活中。計算機的使用在工業(yè)過程控制生產(chǎn)中是一個重要環(huán)節(jié)。人們越來越關(guān)注由單片機構(gòu)成的嵌入式系統(tǒng)??梢院敛豢鋸埖恼f,高端先進儀器是其構(gòu)造中含有微型計算機系統(tǒng),微型計算機控制系統(tǒng)的產(chǎn)生促使現(xiàn)代控制系統(tǒng)時代的到來。 在這信息高速發(fā)展的時代,傳感器檢測系統(tǒng)的發(fā)展有兩個及其重要的方向,分別為智能化與集成化。而傳感器檢測系統(tǒng)智能化和集成化的程度主要取決于系統(tǒng)內(nèi)部微處理器的性能[1]。當(dāng)前國內(nèi)外開發(fā)和研究的熱點是具有數(shù)據(jù)處理能力,能夠進行自動檢測、自動校準、自動誤差補償、自動抽樣、以及標度變換功能的智能壓力傳感器檢測系統(tǒng)。傳感器技術(shù)是現(xiàn)代測量和自動化技術(shù)的重要技術(shù)之一。 壓力測量在工業(yè)安全生產(chǎn)的實時監(jiān)測中具有重要的意義。為了確保工業(yè)制造過程中的高效與安全,必須精確地控制生產(chǎn)過程中的一些諸如壓力、流量、溫度等主要參數(shù)。其中良好的控制壓力,可以保障生產(chǎn)過程中的安全,因此準確地測量壓力顯得尤為重要。壓力是生產(chǎn)過程中四大重要參數(shù)之一,實時檢測壓力可以判斷生產(chǎn)過程中機器是否安全可靠的運行[2]。如:確保密閉容器內(nèi)的壓力在安全指標范圍以內(nèi),確保易燃易爆介質(zhì)的壓力不超標。 壓力的檢測在其他工業(yè)生產(chǎn)環(huán)節(jié)中對于控制生產(chǎn)的正常運行也非常重要。在一些工業(yè)裝置上都時??梢砸姷接袎毫Ρ恚瑢崟r的監(jiān)測壓力大小,如若失常則報警,很好的保證了生產(chǎn)的安全運作。通過測取壓力的大小也可以知曉液面的高度。 總而言之,為了保證生產(chǎn)的正常運行,必須按照工藝要求保持穩(wěn)定的壓力,所以準確測量壓力在實際過程是非常重要的。 1.2 壓力檢測系統(tǒng)的研究現(xiàn)狀 壓力檢測系統(tǒng)靠的就是壓力傳感器去采集壓力信號。傳感器從探索宇宙到海洋的開發(fā),從生產(chǎn)過程的控制到現(xiàn)代科技文明中都有使用,使用面幾乎涵蓋了任何一項現(xiàn)代科技產(chǎn)物。世界上很多國家十分重視發(fā)展傳感器技術(shù),傳感器技術(shù)可以應(yīng)用在工業(yè)、農(nóng)業(yè)、國防、科技等各個領(lǐng)域,有著極其廣闊的前景。例如,在日本傳感器技術(shù)被列為六大核心技術(shù)之一,其他五項核心技術(shù)為通信、激光、半導(dǎo)體、超導(dǎo)和計算機。并且日本還將傳感器列為六大技術(shù)之首;美國將上世紀90年代看作是傳感器時代,將傳感器技術(shù)列為90年代22項關(guān)鍵技術(shù)之一。我國在傳感器的研究上也已經(jīng)有二十多年的歷史并取得了很大的成就。21世紀提出了科學(xué)技術(shù)就是第一生產(chǎn)力的口號,各項科學(xué)技術(shù)在這一浪潮下取得了突飛猛進的發(fā)展和進步,傳感器技術(shù)也越來越受到各方面的重視,雖然在某些領(lǐng)域我國已趕上或者接近世界先進水平。但是從總體來看,我國在傳感器技術(shù)的研究和生產(chǎn)還落后于國外傳感器技術(shù),如今正處于方興未艾的階段。由于智能傳感器系統(tǒng)的研究起步較晚,各方面理論缺乏和實踐不夠,離實際應(yīng)用需求還有很大差距,尤其是用于壓力測量的壓力傳感器。如何生產(chǎn)高性能、小體積、低成本的智能壓力傳感器系統(tǒng)還需進一步開發(fā)和研究。因此,研究開發(fā)高性能的智能壓力傳感器系統(tǒng)有利于促進信息技術(shù)及自動化技術(shù)的發(fā)展,對提高設(shè)備性能及自動化水平具有重要意義。 壓力的實時檢測和控制能夠保證生產(chǎn)設(shè)備的安全運行。壓力傳感器是工業(yè)儀器、儀表控制中最為常用的一種傳感器,廣泛地應(yīng)用在各種工業(yè)生產(chǎn)環(huán)境中,涉及眾多行業(yè)。通過壓力傳感器將被測物體的壓力信號轉(zhuǎn)化為電信號,再經(jīng)過放大器進行信號放大,送至24位A/D轉(zhuǎn)換器,然后將模擬信號轉(zhuǎn)換成單片機可以識別的數(shù)字信號,再經(jīng)單片機轉(zhuǎn)換成LCD顯示器可以識別的信息,最后顯示輸出。 1.3 課題任務(wù) 該設(shè)計能夠?qū)崿F(xiàn)壓力檢測系統(tǒng)的智能檢測,如實時壓力測量、手動存儲壓力值、壓力預(yù)警、數(shù)據(jù)統(tǒng)計分析等。該課題以STC89C51RC單片機為控制核心,配合電阻應(yīng)變式壓力傳感器、A/D模數(shù)轉(zhuǎn)換芯片HX711、12864液晶顯示等外圍器件,對壓力檢測系統(tǒng)進行控制與數(shù)據(jù)采集。LCD液晶設(shè)備顯示壓力值的測量結(jié)果及數(shù)據(jù)統(tǒng)計分析結(jié)果等,配合蜂鳴器和LED二極管進行聲光報警。壓力傳感器采集被測物體的壓力信號,傳輸給單片機進行分析處理。另外系統(tǒng)配有鍵盤,可以實現(xiàn)手動存儲、預(yù)警值設(shè)定、系統(tǒng)復(fù)位,數(shù)據(jù)統(tǒng)計分析的有關(guān)功能。 2 系統(tǒng)分析與總體方案設(shè)計 2.1 壓力檢測系統(tǒng)的整體設(shè)計 壓力檢測系統(tǒng)裝置主要由五個模塊組成: 1、數(shù)據(jù)采集模塊。該模塊的作用是將檢測到的模擬信號轉(zhuǎn)換成為數(shù)字信號,經(jīng)電平保護后輸出到數(shù)據(jù)處理部分。 2、信號處理模塊。用單片機作為信息處理單元,實現(xiàn)對數(shù)據(jù)的采樣及數(shù)據(jù)分析運 算,并發(fā)出控制指令。 3、人機交互模塊。由4*3矩陣鍵盤及液晶顯示單元組成。通過4*3矩陣鍵盤對單片機下達指令實現(xiàn)對系統(tǒng)的控制;顯示采用12864液晶模塊,可以提供豐富、直觀、友好的信息界面。 4、聲光報警模塊。當(dāng)報警程序啟動時,蜂鳴器發(fā)出聲音、發(fā)光二極管點亮。 5、電源供電模塊。系統(tǒng)通過USB電源供電,單片機程序也可通過USB線串行下載。借助按鍵開關(guān)操作可控制電源的通斷,實現(xiàn)系統(tǒng)的良性運作。通電后電源指示燈點亮。 壓力檢測系統(tǒng)框圖如圖2.1所示: 圖2.1 壓力檢測系統(tǒng)框圖 2.2 壓力檢測系統(tǒng)的設(shè)計方案 實時壓力測量和實時壓力監(jiān)控預(yù)警是壓力檢測系統(tǒng)裝置的最重要兩個部分,它是實現(xiàn)其他功能的基本條件,這兩部分性能的好壞將關(guān)系到整個系統(tǒng)的性能,所以設(shè)計一個成本低、可靠性高、測量精度高、安裝調(diào)試方便的壓力檢測系統(tǒng)是該設(shè)計的關(guān)鍵。 2.2.1 實時壓力測量顯示方案 本裝置中系統(tǒng)壓力的檢測,采用量程為10kg的高精度電阻應(yīng)變式壓力傳感器,將壓力信號轉(zhuǎn)換為模擬信號,再傳送給A/D模數(shù)轉(zhuǎn)換芯片HX711。輸出數(shù)字信號給單片機進行處理分析。壓力傳感器在每次單片機復(fù)位后自動校準歸零。再放上物體進行壓力測量,顯示器可以實時顯示當(dāng)前所測物體的質(zhì)量,并且用戶可以根據(jù)需要將壓力值進行手動存儲,然后通過按鍵查詢所存儲的歷史數(shù)據(jù)。 2.2.2 實時壓力監(jiān)控預(yù)警方案 為了實時監(jiān)控壓力大小,預(yù)先在程序中設(shè)定閾值為9.999kg,系統(tǒng)開啟后默認的閾值即為9.999kg。用戶可以根據(jù)需要通過按鍵操作,在0.000~9.999kg區(qū)間內(nèi)修改閾值大小。然后按確認鍵即可完成閾值重設(shè)的操作。放置被測物體在壓力托盤上,當(dāng)壓力超過所設(shè)定的壓力值時,系統(tǒng)報警,LED燈點亮,蜂鳴器發(fā)出聲音。被測物體的壓力,經(jīng)過傳感器變?yōu)槟M信號,再經(jīng)模數(shù)轉(zhuǎn)換芯片HX711轉(zhuǎn)換為數(shù)字信號。輸出給單片機,然后運算處理,判斷檢測到的壓力和閾值,如若該壓力大于閾值,則系統(tǒng)將顯示出此時壓力值,并發(fā)出報警提示;小于則在液晶上正常顯示當(dāng)前壓力值。 3 系統(tǒng)硬件電路設(shè)計 3.1 單片機系統(tǒng) 單片機是集成在一塊芯片上的完整計算機系統(tǒng)。單片機很多功能集成在一塊小芯片上,它具有一個完整計算機所需要的大部分組件:外部總線系統(tǒng)、內(nèi)存和CPU同時集成實時時鐘通訊接口、定時器和實時時鐘等外圍設(shè)備。單片機也稱作單片微電腦或單片微型計算機,它是把中央處理器(CPU)、隨機存取存儲器(RAM)、只讀存儲器(ROM)、輸入/輸出端口(I/O)等主要計算機功能部件集成在一塊集成電路芯片上的微型計算機。 3.1.1 單片機選型 世界上各大芯片制造公司都推出了自己的單片機,從8位到16位再到32位,數(shù)不勝數(shù),應(yīng)有盡有,有很多與主流C51系列兼容的,也有不兼容的,但它們各具特色,相輔相成,為單片機的應(yīng)用提供廣闊的天地。 自從上世紀80年代初Intel公司推出MCS-51系列單片機以后,全球諸多著名的半導(dǎo)體廠商相繼生產(chǎn)與51系列兼容的單片機,使得單片機型號不斷增加,功能不斷增強,品種不斷豐富[3]。本系統(tǒng)采用STC89C51RC作為核心單片機系統(tǒng),STC89C51RC是一種高性能、低功耗8位微控制器。引腳圖如下圖3.1所示。 圖3.1 單片機引腳圖 單片機各引腳介紹: l I/O口引腳P0(第32腳~39腳):雙向8位三態(tài)I/O口。當(dāng)接外部存儲器時,總線復(fù)用,不僅可以作為數(shù)據(jù)總線,也可作為地址總線的低8位。 l I/O口引腳P1(第1腳~8腳):8位準雙向I/O口。由于此端口沒有高阻態(tài),所以無法輸入進行鎖存,所以并不是真正意義上的雙向I/O。 l I/O口引腳P2(第21腳~28腳):8位準雙向I/O口。當(dāng)使用外部存儲器時,總線復(fù)用,不僅可以作為數(shù)據(jù)總線,也可作為地址總線的高8位。 l I/O口引腳P3(第10腳~17腳):8位準雙向I/O口。P3口不僅可以作為一般的數(shù)據(jù)總線使用,這8個引腳還有各自的特殊功能,屬于復(fù)用雙功能口。作為第二功能使用時,各引腳的定義如表3.1所示,值得強調(diào)的是,P3口每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。 表3.1 P3口第二功能表 引腳 特殊功能 P3.0 RXD(串行輸入端) P3.1 TXD(并行輸入端) P3.2 INT0(外部中斷0) P3.3 INT1(外部中斷1) P3.4 T0(定時器/計數(shù)器0輸入端) P3.5 T1(定時器/計數(shù)器1輸入端) P3.6 WR(外部數(shù)據(jù)存儲器寫選通信號輸出端) P3.7 RD(外部數(shù)據(jù)存儲器讀選通信號輸出端) l 電源引腳Vcc(第40腳):接+5V電壓。 l 電源引腳Vss(第20腳):接地。 l 外部晶振引腳XTAL1與XTAL2(第19腳,18腳):接外部晶振時,將振蕩信號輸入給單片機內(nèi)部的時鐘發(fā)生器。 l EA(第31腳):當(dāng)EA為低電平時,不管內(nèi)部是否有程序存儲器(8031型號單片機沒有內(nèi)部存儲器),單片機只訪問外部程序存儲器。當(dāng)EA為高電平時,先訪問內(nèi)部程序存儲器,當(dāng)尋址地址超過容量時,自動訪問外部程序存儲器。 l PSEN(第29腳):當(dāng)從外部程序存儲器讀取指令時,每個機器周期內(nèi)PSEN兩次有效,時外部程序存儲器的讀選通信號。 l ALE(第30腳):當(dāng)不訪問外部存儲器時,ALE引腳周期性的輸入正脈沖信號,可以作為對外輸出的時鐘,頻率為振蕩器頻率的1/6。當(dāng)訪問外部存儲器時,ALE用于地址低位字節(jié)的鎖存。 l RST(第9腳):當(dāng)RST上出項兩個機器周期以上的高電平時,單片機將復(fù)位。 單片機STC89C51RC內(nèi)部ROM空間大小為4K,地址范圍從0000H到0FFFH。RAM空間大小為128字節(jié),地址范圍從00H到FFH。地址80H到FFH為特殊功能寄存器區(qū),用于計數(shù)器/定時器,串行通信,累加器以及一些特殊的控制寄存器。 3.1.2 單片機晶振電路和復(fù)位電路 (1)晶振電路 晶振是晶體振蕩器的簡稱在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò)。晶振用一種能把電能和機械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,給單片機提供工作所需要的時鐘信號[4]。理論上來說,振蕩頻率越高表示單片機運行速度越快,但同時對存儲器的速度和印刷電路板的要求也就越高。如同木桶原理。同時單片機性能的好壞,不僅與CPU運算速度有關(guān),而且與存儲器的速度、外設(shè)速度等都有很大關(guān)系。因此一般選用6~12MHZ。并聯(lián)諧振電路對電容的值沒有嚴格要求,但會影響振蕩器的穩(wěn)定、振蕩器頻率高低、起振快速性等。陶瓷封裝電容可以進一步提高溫度穩(wěn)定性STC89C51RC內(nèi)部有一個高增益反相放大器用于構(gòu)成振蕩器。 晶振有一個重要的參數(shù),那就是負載電容值選擇與負載電容值相等的并聯(lián)電容就可以得到晶振標稱的諧振頻率。一般的晶振振蕩電路都是在一個反相放大器的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另一端再接到地。這兩個電容串聯(lián)的容量值就應(yīng)該等于負載電容。 一般的晶振的負載電容為15pF或12.5pF, 如果再考慮元件引腳的等效輸入電容,則兩個22pF的電容構(gòu)成晶振的振蕩電路就是比較好的選擇。 晶振與單片機的腳XTAL0和腳XTAL1構(gòu)成的振蕩電路中會產(chǎn)生偕波。這個波對電路的影響不大,但會降低電路的時鐘振蕩器的穩(wěn)定性,為了電路的穩(wěn)定性起見。 ATMEL公司只是建議在晶振的兩引腳處接入兩個10pf-50pf的瓷片電容接地來削減偕波對電路的穩(wěn)定性的影響,所以晶振所配的電容在10pf-50pf之間都可以的。本系統(tǒng)采用了12 MHZ的晶振。 圖3.2 單片機時鐘原理圖 (2)復(fù)位電路 單片機的復(fù)位電路有兩種,上電自動復(fù)位方式以及手動復(fù)位方式。本系統(tǒng)已具備電源開關(guān)鍵,可以使用上電自動復(fù)位方式。復(fù)位是單片機的初始化操作。其主要功能使單片機從0000H單元開始執(zhí)行程序。51單片機是高電平復(fù)位,給單片機加5V電源(上電)啟動時的情況:這時電容充電相當(dāng)于短路(電容特性:通交流,隔直流,上電瞬間相當(dāng)于交流),可以認為RST上的電壓就是VCC,這是單片機就是復(fù)位狀態(tài)。隨著時間推移電容兩端電壓升高,即造成RST上的電壓降低,當(dāng)?shù)椭灵撝惦妷簳r,即完成復(fù)位過程。外部復(fù)位電路是為提供兩個機器周期以上的高電平而設(shè)計的。RST腳上只要保持10ms以上高電平,系統(tǒng)就會有效復(fù)位。電容C1可取10~33μF,R取10kΩ,充電時間常數(shù)為1010-610103=100ms。其電路如圖3.3所示: 圖3.3 單片機復(fù)位原理圖 電容的作用就是緩沖使RST端保持高電平一段時間,以達到有效復(fù)位,電容越大,保持的時間就越久。單片機的復(fù)位需要至少持續(xù)兩個機器周期以上的高電平的時間,所以在剛開始上電的時候圖3.3中的電容C1 充電,所以在單片機的復(fù)位引腳RST上會出現(xiàn)大于2個機器周期的高電平,使單片機復(fù)位。 3.2 數(shù)據(jù)采集模塊 使用型號為CZL-A、量程為10kg的電阻應(yīng)變式壓力傳感器,對被測物體進行壓力采集并將其轉(zhuǎn)換成電壓信號,輸出電壓信號通常很小,此時需要利用HX711轉(zhuǎn)換模塊中的可編程放大器進行放大。放大后的模擬電壓信號經(jīng)24位A/D轉(zhuǎn)換芯片HX711電路轉(zhuǎn)換成數(shù)字量,通過2線串行方式與單片機通信,即可完成數(shù)據(jù)的采集工作。數(shù)字采集模塊原理圖如圖3.4所示。 圖3.4數(shù)據(jù)采集模塊圖 3.2.1 壓力傳感器 (1)壓力傳感器的選擇 在本設(shè)計中,我們需要使用壓力傳感器來對物品重量進行測量。壓力傳感器在壓力檢測系統(tǒng)中是一個重要的元件,因此,在選擇壓力傳感器時需要考慮其量程和參數(shù),還要考慮它的性價比和兼容性等等。由壓力傳感器將所測壓力信號轉(zhuǎn)換成容易測量的電信號輸出,經(jīng)過A/D轉(zhuǎn)換及單片機處理后傳送給液晶顯示壓力值,或供報警使用。壓力傳感器的種類有很多,比如應(yīng)變式傳感器,電容式壓力傳感器、壓電傳感器,諧振式壓力傳感器直接位移式傳感器或是利用磁彈性、壓阻等物理效應(yīng)的傳感器。 壓電傳感器是利用某些電介質(zhì)受力后產(chǎn)生的壓電效應(yīng)制成的傳感器[5]。但壓電傳感器只能用于動態(tài)測量。由于外力作用在壓電元件上產(chǎn)生的電荷只有在無泄漏的情況下才能保存,即需要測量回路具有無限大的輸入阻抗,這實際上是不可能的,因此壓電式傳感器不能用于靜態(tài)測量。壓電傳感器主要應(yīng)用在加速度、壓力和力等的測量中。 電阻應(yīng)變式傳感器具有悠久的歷史。電阻應(yīng)變式傳感器具有金屬的應(yīng)變效應(yīng),即如果有外力存在,那么金屬會發(fā)生微弱的形變,從而改變其電阻值。它具有結(jié)構(gòu)簡單,精度高,易于實現(xiàn)小型化等特點,因此是目前應(yīng)用最廣泛的傳感器之一。對于大應(yīng)變有較大的非線性的輸出信號較弱,但可以通過一些措施來補償。 電阻應(yīng)變片把機械應(yīng)變信號轉(zhuǎn)換為△R/R后,因為壓力傳感器在工作時應(yīng)變片的形變量很小,導(dǎo)致電阻變化很微弱,測量得到的結(jié)果未必準確,并且由于結(jié)果數(shù)值很小,導(dǎo)致我們處理起來將會十分困難。因此,我們可以把測量結(jié)果經(jīng)過某些電路將電阻變化或形變量轉(zhuǎn)化為電信號,以此來提高測量效率和精確度[6]。此處通常選用測量電橋作為轉(zhuǎn)換電路。 此處的測量電橋選用直流電橋,因為直流電橋抗干擾能力強,但是輸出信號小,所以需要對轉(zhuǎn)換的電信號通過高效的放大電路進行放大。R1、R2、R3和R4組成惠更斯電橋,將兩對電阻應(yīng)變片的阻值變化轉(zhuǎn)變成輸出電壓,其工作原理如圖3.5所示。 圖3.5 測量電橋原理圖 (2) 電阻應(yīng)變式傳感器測量原理 電阻應(yīng)變式壓力傳感器主要由彈性元件、電阻應(yīng)變片等組成。傳感器內(nèi)部線路采用惠更斯電橋,當(dāng)彈性體承受載荷產(chǎn)生變形時,轉(zhuǎn)換元件電阻應(yīng)變片也會受到拉伸或變形,它的阻值將發(fā)生變化,從而使電橋失去平衡,產(chǎn)生相應(yīng)的差動信號,供后續(xù)電路測量和處理。電阻應(yīng)變式傳感器測量原理圖如圖3.6所示。 圖3.6 電阻應(yīng)變式傳感器測量結(jié)構(gòu)圖 當(dāng)外界施加一個垂直正壓力P作用于金屬橫梁上時,橫梁產(chǎn)生形變,電阻應(yīng)變片R1、R3受壓彎拉伸,阻值增加;R2、R4受壓縮,阻值減小。電橋失去平衡,產(chǎn)生不平衡電壓,不平衡電壓與作用在傳感器上的載菏P成正比,從而將非電量轉(zhuǎn)化成電量輸出[7]。 (3) 電阻應(yīng)變片的基本結(jié)構(gòu) 電阻應(yīng)變式壓力傳感器是將所測物體壓力的變化轉(zhuǎn)換成電阻值的變化來進行測量的。應(yīng)變片即是該型傳感器的核心,它是由金屬導(dǎo)體或半導(dǎo)體制成的電阻體,是一種將被測件上的應(yīng)變的變化轉(zhuǎn)換成為一種電信號的敏感器件。通常是將應(yīng)變片通過特殊的方式使其緊密的粘合在應(yīng)變基體上,當(dāng)基體受力發(fā)生應(yīng)力變化時,電阻應(yīng)變片也跟著產(chǎn)生形變,應(yīng)變片的阻值也改變,從而使加在電阻上的電壓發(fā)生變化[7]。 電阻應(yīng)變片主要由四部分組成。基本結(jié)構(gòu)如圖3.7所示,電阻絲是應(yīng)變片敏感元件;基片、覆蓋片起定位和保護電阻絲的作用,并使電阻絲和被測試件之間絕緣,引出線用以連接測量導(dǎo)線。 圖 3.7電阻應(yīng)變片的基本結(jié)構(gòu) 3.2.2 信號放大電路 壓力傳感器的輸出電壓范圍為0~20mV,而A/D轉(zhuǎn)換的輸入電壓需要為0~2V,因此放大環(huán)節(jié)要有100倍左右的增益。對放大環(huán)節(jié)的要求是增益可調(diào)的(70~150倍),根據(jù)本設(shè)計的實際情況增益設(shè)為100倍即可。 由壓力傳感器的測量原理可知,電阻應(yīng)變片組成的傳感器是把機械應(yīng)變轉(zhuǎn)換成電阻的相對變化率ΔR/R,而應(yīng)變電阻的變化一般都很微小,例如傳感器的應(yīng)變片電阻值200Ω,靈敏系數(shù) K為3,彈性體在額定載荷作用下產(chǎn)生的應(yīng)變?yōu)?000ε,則應(yīng)變電阻相對變化率為: ΔR/R = Kε= 3100010-6 =0.003 (3-1) 由式3-1可以看出電阻變化ΔR只有0.6Ω,其電阻變化率只有0.3%。這么小的電阻變化既難以直接準確地測量,又不便直接處理。所以必須采用轉(zhuǎn)換電路,把應(yīng)變片的ΔR/R變化轉(zhuǎn)換成電壓或電流變化,但是這個電壓或電流信號很小,需要增加增益放大電路來把這個電壓或電流信號轉(zhuǎn)換成可以被A/D轉(zhuǎn)換芯片接收的信號。我們采用結(jié)合HX711芯片的放大電路,圖3.8如下所示: 圖3.8 HX711芯片放大電路 3.2.3 A/D模數(shù)轉(zhuǎn)換 模擬量輸入通道的任務(wù)是將模擬量轉(zhuǎn)換成數(shù)字量。能夠完成這一任務(wù)的器件稱之為模數(shù)轉(zhuǎn)換器,簡稱A/D轉(zhuǎn)換器。本次設(shè)計中A/D轉(zhuǎn)換器的任務(wù)是將放大器輸出的模擬信號轉(zhuǎn)換位數(shù)字量進行輸出。 (1)A/D轉(zhuǎn)換模塊器件選擇 目前許多類型的單片機內(nèi)部已帶有A/D轉(zhuǎn)換電路,但此類單片機會比無A/D轉(zhuǎn)換功能的單片機在價格上高出一些,為了節(jié)約成本,我們采用一個51單片機加上一個A/D轉(zhuǎn)換器,實現(xiàn)模數(shù)轉(zhuǎn)換的功能,A/D轉(zhuǎn)換部分是整個設(shè)計的關(guān)鍵,這一部分處理不好,會使得整個設(shè)計毫無意義。目前,世界上有多種類型的A/D轉(zhuǎn)換芯片,有傳統(tǒng)的并行、串行、逐次逼近型、積分型ADC,也有近年來新發(fā)展起來的∑-Δ型和流水線型ADC,多種類型的ADC各有其優(yōu)缺點并能滿足不同的應(yīng)用要求。 這里A/D轉(zhuǎn)換芯片可選ADC0832、ADC0809、HX711等;A/D轉(zhuǎn)換芯片種類很多,最常見的屬于串行和并行接口模式,接口模式是選擇器件的一項重要指標。在同樣的轉(zhuǎn)換分辨率和轉(zhuǎn)換速度的下,不同的接口方式會對電路結(jié)構(gòu)及采用周期產(chǎn)生影響。本次設(shè)計并沒有選擇常見的并行接口A/D轉(zhuǎn)換器ADC0809或者串行接口A/D轉(zhuǎn)換器ADC0832。根據(jù)系統(tǒng)的精度要求以及綜合的分析比較,本設(shè)計采用了24位A/D轉(zhuǎn)換器HX711,芯片封裝如下圖3.9所示。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾能力強等優(yōu)點。降低了系統(tǒng)的整機成本,提高了整機的性能和可靠性。 圖3.9 HX711封裝圖 (2)A/D轉(zhuǎn)換芯片HX711的簡介 HX711芯片采用了海芯科技集成電路專利技術(shù),是一款專為高精度壓力測量而設(shè)計的24 位A/D 轉(zhuǎn)換器芯片。該芯片與單片機的接口電路設(shè)計和程序編寫非常簡單,所有控制信號由管腳驅(qū)動,無需對芯片內(nèi)部的寄存器編程。輸入選擇開關(guān)可任意選取通道A 或通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A 的可編程增益為128 或64,對應(yīng)的滿額度差分輸入信號電壓值分別為20mV或40mV。通道B 則為固定的32 增益,用于系統(tǒng)參數(shù)檢測。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D 轉(zhuǎn)換器提供電源,系統(tǒng)板上無需另外的模擬電源[8]。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。上電自動復(fù)位功能簡化了開機的初始化過程。有關(guān)引腳說明如下表3.2所示: 表3.2 HX711引腳說明 管腳號 名稱 性能 描述 1 VSUP 電源 穩(wěn)壓電路供電電源:2.6V~5.5V 2 BASE 模擬輸出 穩(wěn)壓電路控制輸出(不用穩(wěn)壓電路時為無連接) 3 AVDD 電源 模擬電源:2.6V~5.5V 4 VFB 模擬輸入 穩(wěn)壓電路控制輸入(不用穩(wěn)壓電路時為應(yīng)接地) 5 AGND 地 模擬地 6 VBG 模擬輸出 參考電源輸出 7 INA- 模擬輸入 通道A負輸入端 8 INA+ 模擬輸入 通道A正輸入端 9 INB- 模擬輸入 通道B負輸入端 10 INB+ 模擬輸入 通道B正輸入端 11 PD_SCK 數(shù)字輸入 斷電控制(高電平有效)和串口時鐘輸入 12 DOUT 數(shù)字輸出 串口數(shù)據(jù)輸出 13 XO 數(shù)字輸入輸出 晶振輸入(不用晶振時無連接) 14 XI 數(shù)字輸入 外部時鐘或晶振輸入,0:使用片內(nèi)振蕩器 15 RATE 數(shù)字輸入 輸出數(shù)據(jù)速率控制,0:10HZ;1:80HZ 16 DVDD 電源 數(shù)字電源:2.6V~5.5V 正常情況下HX711與單片機的接口應(yīng)為2條數(shù)據(jù)線,分別是PD_SCK、DOUT。它的結(jié)構(gòu)示意圖如圖3.10所示。 圖3.10 HX711內(nèi)部方框圖 芯片的串口通訊線由PD_SCK 和DOUT 兩端口構(gòu)成,用來輸出數(shù)據(jù),選擇輸入通道和增益。當(dāng)數(shù)據(jù)輸出管腳DOUT 為高電平時,表明A/D 轉(zhuǎn)換器還未準備好輸出數(shù)據(jù),此時串口時鐘輸入信號PD_SCK 應(yīng)為低電平。當(dāng)DOUT 從高電平變低電平后,PD_SCK 應(yīng)輸入25 至27 個不等的時鐘脈沖(圖二)。其中第一個時鐘脈沖的上升沿將讀出輸出24 位數(shù)據(jù)的最高位(MSB),直至第24 個時鐘脈沖完成,24 位輸出數(shù)據(jù)從最高位至最低位逐位輸出完成。第25至27 個時鐘脈沖用來選擇下一次A/D 轉(zhuǎn)換的輸入通道和增益,參見下表3.3 表3.3 輸入通道和增益選擇 PD_SCK脈沖數(shù) 輸入通道 增益 25 A 128 26 B 32 27 A 64 PD_SCK 的輸入時鐘脈沖數(shù)不應(yīng)少于25 或多于27,否則會造成串口通訊錯誤。當(dāng)A/D 轉(zhuǎn)換器的輸入通道或增益改變時,A/D 轉(zhuǎn)換器需要4 個數(shù)據(jù)輸出周期才能穩(wěn)定。DOUT 在4 個數(shù)據(jù)輸出周期后才會從高電平變低電平,輸出有效數(shù)據(jù)。 (4) HX711的數(shù)據(jù)輸出,輸入通道和增益選擇時序圖如下圖3.11所示。 T3:PD_SCK正脈沖電平時間 T4:PD_SCK正脈沖電平時間 T1:DOUT下降沿到PD_SCK脈沖上升沿 T2:PD_SCK脈沖上升沿到DOUT數(shù)據(jù)有效 圖3.11 數(shù)據(jù)輸出,輸入通道和增益選擇時序圖 當(dāng)芯片上電時,芯片內(nèi)的上電自動復(fù)位電路會使芯片自動復(fù)位。管腳PD_SCK 用來控制HX711 的斷電。當(dāng)PD_SCK 為低電平時,芯片處于正常工作狀態(tài)。斷電控制圖如下圖3.12所示。 圖3.12 斷電控制 芯片從復(fù)位或斷電狀態(tài)進入正常工作狀態(tài)后,A/D 轉(zhuǎn)換器需要4 個數(shù)據(jù)輸出周期才能穩(wěn)定。DOUT 在4 個數(shù)據(jù)輸出周期后才會從高電平變低電平,輸出有效數(shù)據(jù)。 3.3 人機交互模塊 矩陣鍵盤和液晶顯示電路是壓力檢測系統(tǒng)與用戶交互的接口,用戶通過顯示來觀察壓力大小及經(jīng)過數(shù)據(jù)統(tǒng)計分析處理后的系統(tǒng)狀態(tài)參數(shù),再根據(jù)觀察到的值,通過鍵盤對單片機進行控制。本節(jié)設(shè)計了較為合理的鍵盤和顯示電路完成這些功能。 3.3.1 液晶顯示單元 LCD12864用來顯示實時壓力值,液晶屏電路如圖3.13所示。LCD_CS、LCD_RES、LCD_RS、LCD_SDA、LCD_SCK為液晶模塊與單片機接口的控制線。CS_ZK、SCK_ZK、SO_ZK和SI_ZK為字庫和單片機接口的控制線。 圖3.13 12864液晶 該LCD液晶為晶聯(lián)訊公司的生產(chǎn)的128*64漢字屏JLX12864G-086-PC顯示模塊。該顯示模塊既可以當(dāng)成普通的圖像型液晶顯示模塊使用,又含有JLX-GB2312 字庫IC,可以從字庫IC 中讀取內(nèi)置的字庫的點陣數(shù)據(jù)寫入到LCD 驅(qū)動IC 中,以達到顯示漢字的目的。 JLX12864G-086可以顯示128列*64行點陣單色圖片,或顯示8個/行*4行16*16點陣的漢字,或顯示16個/行*8行8*8點陣的英文、數(shù)字、符號。采用點陣型液晶顯示器(LCD),可顯示128*64點陣或8個4行漢字,點尺寸為 0.48*0.48(WXH)mm,內(nèi)置ST7920接口型液晶顯示控制器,內(nèi)帶GB2312碼簡體中文字庫(16*16點陣),可與MCU單片機直接連接,具有8位并行及串行的連接方式,廣泛應(yīng)用于各類儀器儀表及電子設(shè)備。晶聯(lián)訊電子所生產(chǎn)JLX12864G-086型液晶模塊由于使用方便、顯示清晰,廣泛應(yīng)用于各種人機交流面板。其接口引腳功能介紹如表3.4所示。 主要技術(shù)參數(shù)與顯示特性: l 電源:VDD 3.3V~+5V(內(nèi)置升壓電路,無需負壓); l 顯示內(nèi)容:128列64行; l LCD類型:STN; l 多種功能:光標顯示、畫面移位、睡眠模式等。 表3.4 LCD12864的引腳說明 管腳號 管腳符號 名稱 管腳功能描述 1 ROM-IN 字庫IC接口 串行數(shù)據(jù)輸出 2 ROM-OUT 字庫IC接口 串行數(shù)據(jù)輸入 3 ROM-SCK 字庫IC接口 串行時鐘輸入 4 ROM-CS 字庫IC接口 片選輸入 5 LEDA 背光電源 背光電源正極,同VDD電壓(5V或3.3V) 6 VSS 接地 0V 7 VDD 電路電源 5V或3.3V可選 8 SCK I/O 串行時鐘 9 SDA I/O 串行數(shù)據(jù) 10 RS 寄存器選擇信號 H:數(shù)據(jù)寄存器0:指令寄存器 11 RST 復(fù)位 低電平復(fù)位,復(fù)位后,回到高電平,液晶工作 12 CS 片選 低電平片選 點陣LCD的顯示原理 在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將ASCII表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,若要在屏幕上顯示,就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的A在字模的記載方式如圖3.14所示: 圖3.14 “A”字模圖 而中文的“你”在字模中的記載卻如圖3.15所示: 圖3.15 “你”字模圖 3.3.2 矩陣鍵盤單元 下圖3.16所示的4*3矩陣鍵盤包含有上、下、左、右四個方向選擇鍵,加、減鍵和六個功能鍵?!按鎯Α辨I用來手動存儲有用的壓力值;“清空”鍵用來清空存儲的歷史數(shù)據(jù),則相應(yīng)的數(shù)據(jù)統(tǒng)計得到的值均為0;“調(diào)零”鍵用來將壓力傳感器調(diào)零,讓當(dāng)前壓力值顯示為0.000kg;“修改閾值”鍵用來修改系統(tǒng)預(yù)設(shè)的閾值9.999kg,可以任意在0~9.999kg之內(nèi)設(shè)計閾值;“返回”鍵可以使當(dāng)前操作返回到上一級;“確認”鍵用來將所中的功能確定,傳送給系統(tǒng),執(zhí)行相應(yīng)程序。矩陣鍵盤行掃描信號為ROW1~ROW3,列掃描信號為COL1~COL4。行信號為輸入信號,低電平有效;列信號為輸出信號。當(dāng)沒有鍵按下時,即使行掃描輸入低電平信號,列信號仍為高電平;當(dāng)行掃描為低電平并且有鍵按下時,則對應(yīng)的列輸出低電平。該低電平信號可以定位至按下鍵的位置。 圖3.16 4*3矩陣鍵盤電路 3.4 聲光報警模塊 報警電路選用8550 PNP型三極管,基極為低電平時導(dǎo)通,當(dāng)測量重量超過量程時,beep和alert給出低電平信號,驅(qū)動蜂鳴器鳴響,報警燈亮。如圖3.17所示: 圖3.17 聲光報警電路圖 3.5 電源供電模塊 系統(tǒng)通過USB電源供電,電源電壓為5V。單片機程序也可通過USB線串行下載。借助按鍵開關(guān)操作可控制電源的通斷,實現(xiàn)系統(tǒng)的良性運作。通電后電源指示燈點亮,系統(tǒng)開始工作;斷電后電源指示燈熄滅,系統(tǒng)停止運行。電源供電開關(guān)模塊如下圖3.18所示。 圖3.18 電源供電模塊電路 4 軟件程序設(shè)計 根據(jù)設(shè)計要求,本次軟件設(shè)計是由主程序和一個個子程序模塊組成,這樣方便編寫和運行整理。軟件的主要部分由主程序、A/D轉(zhuǎn)換數(shù)據(jù)子程序、LCD顯示子程序、歷史查詢子程序、數(shù)據(jù)統(tǒng)計分析子程序、中斷和延時子程序等組成。系統(tǒng)工作時,單片機對各路電壓、電流采樣及數(shù)據(jù)的統(tǒng)計與分析,并實時顯示。同時,在測試過程中,監(jiān)控壓力值大小,達到預(yù)警作用。 4.1 軟件開發(fā)環(huán)境 本系統(tǒng)使用的單片機開發(fā)環(huán)境是Keil μVision4。Keil μVision4是德國Keil Software公司出品的51系列C語言軟件開發(fā)系統(tǒng),使用傳統(tǒng)C語言的語法來開發(fā),C語言在可維護性、結(jié)構(gòu)性以及可讀性有著明顯的優(yōu)勢,可以大大的提高工作效率和項目開發(fā)周期,Keil C51為8051單片機的軟件開發(fā)提供了C語言環(huán)境,同時還有著匯編代碼高效和快速的特點。C51編譯器可以更加貼近CPU本身。C51已被完全集成到uVision4的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含:實時操作系統(tǒng),編譯器以及調(diào)試器等等。uVision4 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。 Keil μVision4 IDE開發(fā)界面圖如圖4.1所示。 圖4.1 Keil μVision4 開發(fā)界面 Keil C51軟件提供豐富的庫函數(shù)。C51工具包可以完成編輯、編譯、連接、調(diào)試等整個流程。程序員可用IDE或其它編輯器編輯C文件。 編寫單片機程序有三種常見的方式,C語言編程、匯編語言編程及混合編程。就前兩種編程方式相比,C語言更加通俗易懂,容易上手,C語言屬于高級語言,并且有著編譯器的強大支持與自動優(yōu)化,使得編程者在軟件設(shè)計的時候不用花費太多時間去研究單片機底層硬件資源。當(dāng)然,對于匯編語言在某些方面仍然有著不小的優(yōu)勢,最為突出的一點就是效率優(yōu)化的可操作性。由于C語言在編譯器的支持下編譯鏈接生成匯編文件,所以在性能優(yōu)化方面完全受制于編譯器,從C語言層面上幾乎無法做任何優(yōu)化。而直接使用匯編語言編寫程序,在匯編級別上,具體執(zhí)行哪條匯編指令,具體使用哪個寄存器完全是透明的,所以在性能要求特別高的場合下,如果有豐富的匯編經(jīng)驗,一般都是使用匯編語言編寫單片機程序。 為了克服C語言編程及匯編語言編程各自的缺點,混合編程方式完美的結(jié)合了兩者的優(yōu)點,做到了優(yōu)勢互補。通常單片機很合編程技術(shù)是,程序的框架或主體部分用C語言編寫,對于那些使用頻率高、要求執(zhí)行效率高、延時精確的部分用匯編語言編寫[9],這樣既保證了整個程序的可讀性,又保證了單片機應(yīng)用系統(tǒng)的性能。 由于本系統(tǒng)對于性能的要求一般,所以采用C語言方式編寫單片機程序。通過對編譯選項的設(shè)置,Keil軟件可以在編譯鏈接后自動生成HEX16進制文件,方便單片機程序的直接燒寫。 4.2 I/O端口分配 STC89C51RC共有40只引腳,P0~P3四個引腳組各有8只引腳。對于本系統(tǒng)而言,引腳數(shù)量還是夠用的[10]。引腳功能分配如下: l P20~P27和P16、P17接于LCD中液晶與單片機的控制端口和字庫與單片機的控制端口。 l P34~P37和P13是用于4*3矩陣鍵盤按鍵。包括功能選擇按鍵,參數(shù)設(shè)置按鍵和工作啟停等功能控制。 l P14,P15 用于接A/D轉(zhuǎn)換芯片HX711數(shù)據(jù)采集端口,是串行工作方式,所以節(jié)省了很多的IO口的使用。 還有一些單獨的接口,比如振蕩電路接口,聲光報警電路接口和單片機自帶的燒錄程序串口通訊接口TXD、RXD等。 程序中所有端口定義及功能如下: sbit A/DDO = P1^5; //串行數(shù)據(jù)輸出端口 sbit A/DSK = P1^4; //斷電控制(高電平有效)和串口時鐘輸入端口 sbit lcd_sclk=P2^3; //LCD的sclk接口 sbit lcd_sid=P2^4; //LCD的sid接口 sbit lcd_rs=P2^5; //LCD的rs接口 sbit lcd_reset=P2^ //LCD的reset接口 sbit lcd_cs1=P2^ ; //LCD的cs1接口 sbit Rom_IN=P1^7; //字庫IC的SI接口 sbit Rom_OUT=P1^6; //字庫IC的SO接口 sbit Rom_SCK=P2^0; //字庫IC的SCK接口 sbit Rom_CS=P2^1; /字庫IC的CS接口 sbit LedA = P2^2; //LCD液晶背光電源接口 sbit beep = P1^0; //報警電路蜂鳴器接口 sbit alert = P1^1; //LED發(fā)光二極管接口 sbit ROW1=P3^3; //矩陣鍵盤第一行接口 sbit ROW2=P3^2; //矩陣鍵盤第二行接口 sbit ROW3=P1^3; //矩陣鍵盤第三行接口 sbit COL1=P3^4; //矩陣鍵盤第一列接口 sbit COL2=P3^5; //矩陣鍵盤第二列接口 sbit COL3=P3^6; //矩陣鍵盤第三列接口 sbit COL4=P3^7; //矩陣鍵盤第四列接口 4.3 軟件主程序構(gòu)架 本系統(tǒng)的設(shè)計主要由五大模塊構(gòu)成,軟件程序主要是實現(xiàn)對這些功能模塊的控制,以及最終對數(shù)據(jù)進行分析計算得出性能測量結(jié)果。程序執(zhí)行時,首先對整個系統(tǒng)進行初始化,這部分包括參數(shù)初始化、IO初始化和器件初始化三個操作。參數(shù)初始化時對一些全局系統(tǒng)參數(shù)進行初始化,保證程序執(zhí)行的可靠性;IO初始化是將所有IO的電平和功能設(shè)置為關(guān)閉狀態(tài),防止發(fā)生誤操作;器件初始化是對外圍的A/D芯片、模擬開關(guān)、LCD進行初始化,保證器件能夠正常運行。如果在此過程中發(fā)生錯誤,即調(diào)用報警電路進行報警。程序流程圖如圖4.2所示。 圖4.2 系統(tǒng)主程序構(gòu)架框圖 初始化完畢后,延時等待所有模塊準備好,向液晶顯示器發(fā)送數(shù)據(jù),顯示初始的人機界面。此時,整個系統(tǒng)可以開始進行數(shù)據(jù)采集工作,但參數(shù)均處于默認狀態(tài),如果需要調(diào)整,則可以實時通過鍵盤控制,系統(tǒng)根據(jù)讀取的鍵盤鍵值執(zhí)行相應(yīng)的操作,分別是執(zhí)行修改閾值參數(shù)、讀取A/D采樣值、壓力測量、手動存儲、超重預(yù)警、發(fā)出報警信號、查閱歷史,數(shù)據(jù)統(tǒng)計分析等。 等待這部分操作完成后,系統(tǒng)屏幕根據(jù)需要實時刷新顯示一些數(shù)據(jù)和狀態(tài),顯示新的參數(shù)或采樣信息。 4.4 主要功能子程序的設(shè)計 先進行系統(tǒng)的初始化,初始化模塊主要對單片機的堆棧指針,中斷寄存器,全局變量定義,賦初值和定時器的初始化。定時器主要作為A/D轉(zhuǎn)換時間的設(shè)定。然后進行模數(shù)轉(zhuǎn)換,判斷是否超過設(shè)定閾值,轉(zhuǎn)換壓力字符通過液晶顯示。參數(shù)設(shè)定完畢,系統(tǒng)啟動數(shù)據(jù)采集和控制程序,實現(xiàn)壓力的實時檢測。 4.4.1 A/D子程序設(shè)計 通過壓力傳感器輸出后的數(shù)據(jù)經(jīng)過信號放大器的處理后,由A/D轉(zhuǎn)換芯片轉(zhuǎn)換為數(shù)字信號。其中模擬信號的放大倍數(shù)由放大電路控制。在軟件方面,單片機通過發(fā)送時序命令的方式對A/D芯片進行控制,由于選型的A/D芯片不需要啟動命令,即可自動轉(zhuǎn)換。所以在每次采集之前,程序通過延時等待轉(zhuǎn)換完成,然后發(fā)送低電平片選信號,將數(shù)據(jù)讀取功能使能,在數(shù)據(jù)讀取的整個過程中保持不變。然后再發(fā)送一個時鐘讀取采樣值,并將數(shù)據(jù)保存到存儲器的設(shè)定空間,再將存儲空間的指針移位。此時,將片選信號置高,等待讀取下一組數(shù)據(jù),完成其他程序功能。A/D采集部分流程圖如圖4.3所示: 圖4.3 A/D轉(zhuǎn)換流程圖 4.4.2 中斷子程序設(shè)計 系統(tǒng)的稱重間隔為0.5S,每0.5S置標志位,累加器計數(shù)滿400次則延時時間為0.5S,置稱重標志位。中斷子程序流程圖如下圖4.4所示。 圖4.4 中斷流程圖 4.4.3 查詢歷史數(shù)據(jù)子程序設(shè)計 預(yù)先手動存儲八個以內(nèi)的壓力值(超過閾值亦可),當(dāng)存儲第九個數(shù)據(jù)時,存儲的歷史數(shù)據(jù)會自動將第一位存儲的數(shù)據(jù)擠掉,后面存儲的數(shù)據(jù)均依次向前移一位。按上下鍵進行選擇,光標停在查詢歷史數(shù)據(jù)功能菜單之前,按確認鍵確定。調(diào)用該子程序,判斷是否為0,若不是顯示“無歷史”;若是則讀取顯示存儲的壓力值,并按順序依次為NO.1~8顯示輸出。查詢歷史數(shù)據(jù)流程圖如下圖4.5所示。 圖4.5 查詢歷史數(shù)據(jù)流程圖 4.4.4 數(shù)據(jù)統(tǒng)計分析子程序設(shè)計 預(yù)先手動存儲八個以內(nèi)的壓力值(超過閾值亦可),當(dāng)存儲第九個數(shù)據(jù)時,存儲的歷史數(shù)據(jù)會自動將第一位存儲的數(shù)據(jù)擠掉,后面存儲的數(shù)據(jù)均依次向前移一位。按上下鍵選擇“數(shù)據(jù)統(tǒng)計分析”,則系統(tǒng)會將這些壓力值進行數(shù)據(jù)分析處理(求均值、最值、排序求中位數(shù)、判斷有無眾數(shù)),然后依次顯示輸出均值大小、最大值、最小值、中位數(shù)、若有眾數(shù),則顯示出現(xiàn)幾次,并且顯示該眾數(shù);在四種情況下,比如abcdefgh型、aabbccdd型、aaaaaaaa型、aaaabbbb型則顯示無眾數(shù)。如下圖4.6所示。 圖4.6 數(shù)據(jù)統(tǒng)計分析流程圖 4.4.5 閾值重設(shè)子程序設(shè)計 系統(tǒng)開啟后,系統(tǒng)會默認顯示程序中預(yù)先設(shè)定的閾值9.999kg,按閾值重設(shè)鍵,鍵盤程序讀取鍵碼,調(diào)用該子程序,界面跳到修改閾值的界面,有個光標在第一個9的下面,可以通過按左右選擇鍵,將光標左右移動,該光標停在任意數(shù)下面,就可以通過加減鍵對該數(shù)字進行修改,從而完成閾值的修改,最后按確認鍵即可跳轉(zhuǎn)到主菜單。如下圖4.7所示。 圖4.7 閾值重設(shè)功能流程圖 4.4.6 人機交互子程序設(shè)計 人機交互單元包括鍵盤處理和12864顯示模塊兩部分。人機交互是設(shè)計人性化、便捷操作的必要操作,除了硬件上的- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 51 單片機 壓力 檢測 系統(tǒng) 設(shè)計
鏈接地址:http://appdesigncorp.com/p-6677359.html