基于51單片機(jī)壓力檢測系統(tǒng)設(shè)計(jì).doc
《基于51單片機(jī)壓力檢測系統(tǒng)設(shè)計(jì).doc》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)壓力檢測系統(tǒng)設(shè)計(jì).doc(66頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
學(xué)號: xxxxxxx xx 大 學(xué) 畢業(yè)設(shè)計(jì)(論文)(xxxx屆)題 目 基于51單片機(jī)的壓力檢測系統(tǒng)設(shè)計(jì) 學(xué) 生 xxxx 學(xué) 院 xxxxxxxxxxxxxxxx 專業(yè)班級 xxxxxxxx 校內(nèi)指導(dǎo)教師 xxxx 專業(yè)技術(shù)職務(wù) xxxxxx 校外指導(dǎo)老師 專業(yè)技術(shù)職務(wù) 二xxx年六月基于51單片機(jī)的壓力檢測系統(tǒng)設(shè)計(jì)摘 要:本設(shè)計(jì)借助壓力傳感器將壓力信號轉(zhuǎn)換成電信號,經(jīng)過信號放大,使用高精度A/D轉(zhuǎn)換器件,將模擬信號轉(zhuǎn)換成數(shù)字信號,再經(jīng)單片機(jī)運(yùn)算處理轉(zhuǎn)換成LCD液晶可以識別的信息,最后顯示輸出。初始化后可以重設(shè)閾值,系統(tǒng)能夠?qū)崿F(xiàn)手動存儲八個以內(nèi)的數(shù)據(jù),并可以查詢歷史記錄,對存儲的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,并且在實(shí)時壓力檢測的過程中,預(yù)警電路一直監(jiān)視系統(tǒng)的運(yùn)行。本設(shè)計(jì)根據(jù)壓力傳感器零點(diǎn)補(bǔ)償與非線性補(bǔ)償原理,設(shè)計(jì)出了測量壓力傳感器的硬件電路。采用單片機(jī)設(shè)計(jì)實(shí)現(xiàn),具有精度高、功能強(qiáng)等特點(diǎn)。但是由于自身的穩(wěn)定性其測量結(jié)果仍存在誤差。本課題設(shè)計(jì)的壓力檢測系統(tǒng)具有壓力測量、超重報(bào)警、壓力存儲及歷史數(shù)據(jù)查閱和壓力值數(shù)據(jù)的統(tǒng)計(jì)分析。該系統(tǒng)的壓力檢測范圍為0-10Kg,測量精度可以達(dá)到10g,具有高精度,低成本,易攜帶的特點(diǎn)。采用LCD12864液晶顯示測量結(jié)果,比傳統(tǒng)壓力檢測系統(tǒng)的精確度更高和直觀性更好。另外,該系統(tǒng)電路簡單,成本低,使用壽命長,應(yīng)用范圍廣等優(yōu)點(diǎn)。關(guān)鍵詞:壓力傳感器;A/D轉(zhuǎn)換器;LCD12864Design of pressure detection system based on MCU 51Abstract: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 目 錄摘 要IAbstractII目 錄III1 引言11.1 研究背景及意義11.2 壓力檢測系統(tǒng)的研究現(xiàn)狀11.3 課題任務(wù)22 系統(tǒng)分析與總體方案設(shè)計(jì)32.1 壓力檢測系統(tǒng)的整體設(shè)計(jì)32.2 壓力檢測系統(tǒng)的設(shè)計(jì)方案32.2.1 實(shí)時壓力測量顯示方案42.2.2 實(shí)時壓力監(jiān)控預(yù)警方案43 系統(tǒng)硬件電路設(shè)計(jì)53.1 單片機(jī)系統(tǒng)53.1.1 單片機(jī)選型53.1.2 單片機(jī)晶振電路和復(fù)位電路73.2 數(shù)據(jù)采集模塊83.2.1 壓力傳感器93.2.2 信號放大電路103.2.3 A/D模數(shù)轉(zhuǎn)換113.3 人機(jī)交互模塊153.3.1 液晶顯示單元153.3.2 矩陣鍵盤單元173.4 聲光報(bào)警模塊183.5 電源供電模塊184 軟件程序設(shè)計(jì)204.1 軟件開發(fā)環(huán)境204.2 I/O端口分配214.3 軟件主程序構(gòu)架224.4 主要功能子程序的設(shè)計(jì)234.4.1 A/D子程序設(shè)計(jì)244.4.2 中斷子程序設(shè)計(jì)254.4.3 查詢歷史數(shù)據(jù)子程序設(shè)計(jì)254.4.4 數(shù)據(jù)統(tǒng)計(jì)分析子程序設(shè)計(jì)264.4.5 閾值重設(shè)子程序設(shè)計(jì)274.4.6 人機(jī)交互子程序設(shè)計(jì)285 系統(tǒng)調(diào)試335.1 數(shù)據(jù)采集調(diào)試335.2 數(shù)據(jù)統(tǒng)計(jì)分析調(diào)試335.3 聲光報(bào)警調(diào)試345.4 軟件調(diào)試345.5 實(shí)物展示346 結(jié)束語39參 考 文 獻(xiàn)40致 謝41附 錄 A42附 錄 B44IIIxx本科生畢業(yè)設(shè)計(jì)(論文)1 引言1.1 研究背景及意義近年來,微型計(jì)算機(jī)越來越普遍地應(yīng)用于人們的日常工作、生活中。計(jì)算機(jī)的使用在工業(yè)過程控制生產(chǎn)中是一個重要環(huán)節(jié)。人們越來越關(guān)注由單片機(jī)構(gòu)成的嵌入式系統(tǒng)??梢院敛豢鋸埖恼f,高端先進(jìn)儀器是其構(gòu)造中含有微型計(jì)算機(jī)系統(tǒng),微型計(jì)算機(jī)控制系統(tǒng)的產(chǎn)生促使現(xiàn)代控制系統(tǒng)時代的到來。在這信息高速發(fā)展的時代,傳感器檢測系統(tǒng)的發(fā)展有兩個及其重要的方向,分別為智能化與集成化。而傳感器檢測系統(tǒng)智能化和集成化的程度主要取決于系統(tǒng)內(nèi)部微處理器的性能1。當(dāng)前國內(nèi)外開發(fā)和研究的熱點(diǎn)是具有數(shù)據(jù)處理能力,能夠進(jìn)行自動檢測、自動校準(zhǔn)、自動誤差補(bǔ)償、自動抽樣、以及標(biāo)度變換功能的智能壓力傳感器檢測系統(tǒng)。傳感器技術(shù)是現(xiàn)代測量和自動化技術(shù)的重要技術(shù)之一。壓力測量在工業(yè)安全生產(chǎn)的實(shí)時監(jiān)測中具有重要的意義。為了確保工業(yè)制造過程中的高效與安全,必須精確地控制生產(chǎn)過程中的一些諸如壓力、流量、溫度等主要參數(shù)。其中良好的控制壓力,可以保障生產(chǎn)過程中的安全,因此準(zhǔn)確地測量壓力顯得尤為重要。壓力是生產(chǎn)過程中四大重要參數(shù)之一,實(shí)時檢測壓力可以判斷生產(chǎn)過程中機(jī)器是否安全可靠的運(yùn)行2。如:確保密閉容器內(nèi)的壓力在安全指標(biāo)范圍以內(nèi),確保易燃易爆介質(zhì)的壓力不超標(biāo)。壓力的檢測在其他工業(yè)生產(chǎn)環(huán)節(jié)中對于控制生產(chǎn)的正常運(yùn)行也非常重要。在一些工業(yè)裝置上都時??梢砸姷接袎毫Ρ恚瑢?shí)時的監(jiān)測壓力大小,如若失常則報(bào)警,很好的保證了生產(chǎn)的安全運(yùn)作。通過測取壓力的大小也可以知曉液面的高度。總而言之,為了保證生產(chǎn)的正常運(yùn)行,必須按照工藝要求保持穩(wěn)定的壓力,所以準(zhǔn)確測量壓力在實(shí)際過程是非常重要的。1.2 壓力檢測系統(tǒng)的研究現(xiàn)狀壓力檢測系統(tǒng)靠的就是壓力傳感器去采集壓力信號。傳感器從探索宇宙到海洋的開發(fā),從生產(chǎn)過程的控制到現(xiàn)代科技文明中都有使用,使用面幾乎涵蓋了任何一項(xiàng)現(xiàn)代科技產(chǎn)物。世界上很多國家十分重視發(fā)展傳感器技術(shù),傳感器技術(shù)可以應(yīng)用在工業(yè)、農(nóng)業(yè)、國防、科技等各個領(lǐng)域,有著極其廣闊的前景。例如,在日本傳感器技術(shù)被列為六大核心技術(shù)之一,其他五項(xiàng)核心技術(shù)為通信、激光、半導(dǎo)體、超導(dǎo)和計(jì)算機(jī)。并且日本還將傳感器列為六大技術(shù)之首;美國將上世紀(jì)90年代看作是傳感器時代,將傳感器技術(shù)列為90年代22項(xiàng)關(guān)鍵技術(shù)之一。我國在傳感器的研究上也已經(jīng)有二十多年的歷史并取得了很大的成就。21世紀(jì)提出了科學(xué)技術(shù)就是第一生產(chǎn)力的口號,各項(xiàng)科學(xué)技術(shù)在這一浪潮下取得了突飛猛進(jìn)的發(fā)展和進(jìn)步,傳感器技術(shù)也越來越受到各方面的重視,雖然在某些領(lǐng)域我國已趕上或者接近世界先進(jìn)水平。但是從總體來看,我國在傳感器技術(shù)的研究和生產(chǎn)還落后于國外傳感器技術(shù),如今正處于方興未艾的階段。由于智能傳感器系統(tǒng)的研究起步較晚,各方面理論缺乏和實(shí)踐不夠,離實(shí)際應(yīng)用需求還有很大差距,尤其是用于壓力測量的壓力傳感器。如何生產(chǎn)高性能、小體積、低成本的智能壓力傳感器系統(tǒng)還需進(jìn)一步開發(fā)和研究。因此,研究開發(fā)高性能的智能壓力傳感器系統(tǒng)有利于促進(jìn)信息技術(shù)及自動化技術(shù)的發(fā)展,對提高設(shè)備性能及自動化水平具有重要意義。壓力的實(shí)時檢測和控制能夠保證生產(chǎn)設(shè)備的安全運(yùn)行。壓力傳感器是工業(yè)儀器、儀表控制中最為常用的一種傳感器,廣泛地應(yīng)用在各種工業(yè)生產(chǎn)環(huán)境中,涉及眾多行業(yè)。通過壓力傳感器將被測物體的壓力信號轉(zhuǎn)化為電信號,再經(jīng)過放大器進(jìn)行信號放大,送至24位A/D轉(zhuǎn)換器,然后將模擬信號轉(zhuǎn)換成單片機(jī)可以識別的數(shù)字信號,再經(jīng)單片機(jī)轉(zhuǎn)換成LCD顯示器可以識別的信息,最后顯示輸出。1.3 課題任務(wù)該設(shè)計(jì)能夠?qū)崿F(xiàn)壓力檢測系統(tǒng)的智能檢測,如實(shí)時壓力測量、手動存儲壓力值、壓力預(yù)警、數(shù)據(jù)統(tǒng)計(jì)分析等。該課題以STC89C51RC單片機(jī)為控制核心,配合電阻應(yīng)變式壓力傳感器、A/D模數(shù)轉(zhuǎn)換芯片HX711、12864液晶顯示等外圍器件,對壓力檢測系統(tǒng)進(jìn)行控制與數(shù)據(jù)采集。LCD液晶設(shè)備顯示壓力值的測量結(jié)果及數(shù)據(jù)統(tǒng)計(jì)分析結(jié)果等,配合蜂鳴器和LED二極管進(jìn)行聲光報(bào)警。壓力傳感器采集被測物體的壓力信號,傳輸給單片機(jī)進(jìn)行分析處理。另外系統(tǒng)配有鍵盤,可以實(shí)現(xiàn)手動存儲、預(yù)警值設(shè)定、系統(tǒng)復(fù)位,數(shù)據(jù)統(tǒng)計(jì)分析的有關(guān)功能。2 系統(tǒng)分析與總體方案設(shè)計(jì)2.1 壓力檢測系統(tǒng)的整體設(shè)計(jì) 壓力檢測系統(tǒng)裝置主要由五個模塊組成: 1、數(shù)據(jù)采集模塊。該模塊的作用是將檢測到的模擬信號轉(zhuǎn)換成為數(shù)字信號,經(jīng)電平保護(hù)后輸出到數(shù)據(jù)處理部分。 2、信號處理模塊。用單片機(jī)作為信息處理單元,實(shí)現(xiàn)對數(shù)據(jù)的采樣及數(shù)據(jù)分析運(yùn)算,并發(fā)出控制指令。3、人機(jī)交互模塊。由4*3矩陣鍵盤及液晶顯示單元組成。通過4*3矩陣鍵盤對單片機(jī)下達(dá)指令實(shí)現(xiàn)對系統(tǒng)的控制;顯示采用12864液晶模塊,可以提供豐富、直觀、友好的信息界面。4、聲光報(bào)警模塊。當(dāng)報(bào)警程序啟動時,蜂鳴器發(fā)出聲音、發(fā)光二極管點(diǎn)亮。5、電源供電模塊。系統(tǒng)通過USB電源供電,單片機(jī)程序也可通過USB線串行下載。借助按鍵開關(guān)操作可控制電源的通斷,實(shí)現(xiàn)系統(tǒng)的良性運(yùn)作。通電后電源指示燈點(diǎn)亮。 壓力檢測系統(tǒng)框圖如圖2.1所示:圖2.1 壓力檢測系統(tǒng)框圖2.2 壓力檢測系統(tǒng)的設(shè)計(jì)方案實(shí)時壓力測量和實(shí)時壓力監(jiān)控預(yù)警是壓力檢測系統(tǒng)裝置的最重要兩個部分,它是實(shí)現(xiàn)其他功能的基本條件,這兩部分性能的好壞將關(guān)系到整個系統(tǒng)的性能,所以設(shè)計(jì)一個成本低、可靠性高、測量精度高、安裝調(diào)試方便的壓力檢測系統(tǒng)是該設(shè)計(jì)的關(guān)鍵。2.2.1 實(shí)時壓力測量顯示方案本裝置中系統(tǒng)壓力的檢測,采用量程為10kg的高精度電阻應(yīng)變式壓力傳感器,將壓力信號轉(zhuǎn)換為模擬信號,再傳送給A/D模數(shù)轉(zhuǎn)換芯片HX711。輸出數(shù)字信號給單片機(jī)進(jìn)行處理分析。壓力傳感器在每次單片機(jī)復(fù)位后自動校準(zhǔn)歸零。再放上物體進(jìn)行壓力測量,顯示器可以實(shí)時顯示當(dāng)前所測物體的質(zhì)量,并且用戶可以根據(jù)需要將壓力值進(jìn)行手動存儲,然后通過按鍵查詢所存儲的歷史數(shù)據(jù)。2.2.2 實(shí)時壓力監(jiān)控預(yù)警方案為了實(shí)時監(jiān)控壓力大小,預(yù)先在程序中設(shè)定閾值為9.999kg,系統(tǒng)開啟后默認(rèn)的閾值即為9.999kg。用戶可以根據(jù)需要通過按鍵操作,在0.0009.999kg區(qū)間內(nèi)修改閾值大小。然后按確認(rèn)鍵即可完成閾值重設(shè)的操作。放置被測物體在壓力托盤上,當(dāng)壓力超過所設(shè)定的壓力值時,系統(tǒng)報(bào)警,LED燈點(diǎn)亮,蜂鳴器發(fā)出聲音。被測物體的壓力,經(jīng)過傳感器變?yōu)槟M信號,再經(jīng)模數(shù)轉(zhuǎn)換芯片HX711轉(zhuǎn)換為數(shù)字信號。輸出給單片機(jī),然后運(yùn)算處理,判斷檢測到的壓力和閾值,如若該壓力大于閾值,則系統(tǒng)將顯示出此時壓力值,并發(fā)出報(bào)警提示;小于則在液晶上正常顯示當(dāng)前壓力值。3 系統(tǒng)硬件電路設(shè)計(jì)3.1 單片機(jī)系統(tǒng)單片機(jī)是集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。單片機(jī)很多功能集成在一塊小芯片上,它具有一個完整計(jì)算機(jī)所需要的大部分組件:外部總線系統(tǒng)、內(nèi)存和CPU同時集成實(shí)時時鐘通訊接口、定時器和實(shí)時時鐘等外圍設(shè)備。單片機(jī)也稱作單片微電腦或單片微型計(jì)算機(jī),它是把中央處理器(CPU)、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、輸入/輸出端口(I/O)等主要計(jì)算機(jī)功能部件集成在一塊集成電路芯片上的微型計(jì)算機(jī)。3.1.1 單片機(jī)選型世界上各大芯片制造公司都推出了自己的單片機(jī),從8位到16位再到32位,數(shù)不勝數(shù),應(yīng)有盡有,有很多與主流C51系列兼容的,也有不兼容的,但它們各具特色,相輔相成,為單片機(jī)的應(yīng)用提供廣闊的天地。自從上世紀(jì)80年代初Intel公司推出MCS-51系列單片機(jī)以后,全球諸多著名的半導(dǎo)體廠商相繼生產(chǎn)與51系列兼容的單片機(jī),使得單片機(jī)型號不斷增加,功能不斷增強(qiáng),品種不斷豐富3。本系統(tǒng)采用STC89C51RC作為核心單片機(jī)系統(tǒng),STC89C51RC是一種高性能、低功耗8位微控制器。引腳圖如下圖3.1所示。圖3.1 單片機(jī)引腳圖 單片機(jī)各引腳介紹:l I/O口引腳P0(第32腳39腳):雙向8位三態(tài)I/O口。當(dāng)接外部存儲器時,總線復(fù)用,不僅可以作為數(shù)據(jù)總線,也可作為地址總線的低8位。l I/O口引腳P1(第1腳8腳):8位準(zhǔn)雙向I/O口。由于此端口沒有高阻態(tài),所以無法輸入進(jìn)行鎖存,所以并不是真正意義上的雙向I/O。l I/O口引腳P2(第21腳28腳):8位準(zhǔn)雙向I/O口。當(dāng)使用外部存儲器時,總線復(fù)用,不僅可以作為數(shù)據(jù)總線,也可作為地址總線的高8位。l I/O口引腳P3(第10腳17腳):8位準(zhǔn)雙向I/O口。P3口不僅可以作為一般的數(shù)據(jù)總線使用,這8個引腳還有各自的特殊功能,屬于復(fù)用雙功能口。作為第二功能使用時,各引腳的定義如表3.1所示,值得強(qiáng)調(diào)的是,P3口每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二功能。表3.1 P3口第二功能表引腳特殊功能P3.0RXD(串行輸入端)P3.1TXD(并行輸入端)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時器/計(jì)數(shù)器0輸入端)P3.5T1(定時器/計(jì)數(shù)器1輸入端)P3.6WR(外部數(shù)據(jù)存儲器寫選通信號輸出端)P3.7RD(外部數(shù)據(jù)存儲器讀選通信號輸出端)l 電源引腳Vcc(第40腳):接+5V電壓。l 電源引腳Vss(第20腳):接地。l 外部晶振引腳XTAL1與XTAL2(第19腳,18腳):接外部晶振時,將振蕩信號輸入給單片機(jī)內(nèi)部的時鐘發(fā)生器。l EA(第31腳):當(dāng)EA為低電平時,不管內(nèi)部是否有程序存儲器(8031型號單片機(jī)沒有內(nèi)部存儲器),單片機(jī)只訪問外部程序存儲器。當(dāng)EA為高電平時,先訪問內(nèi)部程序存儲器,當(dāng)尋址地址超過容量時,自動訪問外部程序存儲器。l PSEN(第29腳):當(dāng)從外部程序存儲器讀取指令時,每個機(jī)器周期內(nèi)PSEN兩次有效,時外部程序存儲器的讀選通信號。l ALE(第30腳):當(dāng)不訪問外部存儲器時,ALE引腳周期性的輸入正脈沖信號,可以作為對外輸出的時鐘,頻率為振蕩器頻率的1/6。當(dāng)訪問外部存儲器時,ALE用于地址低位字節(jié)的鎖存。l RST(第9腳):當(dāng)RST上出項(xiàng)兩個機(jī)器周期以上的高電平時,單片機(jī)將復(fù)位。單片機(jī)STC89C51RC內(nèi)部ROM空間大小為4K,地址范圍從0000H到0FFFH。RAM空間大小為128字節(jié),地址范圍從00H到FFH。地址80H到FFH為特殊功能寄存器區(qū),用于計(jì)數(shù)器/定時器,串行通信,累加器以及一些特殊的控制寄存器。 3.1.2 單片機(jī)晶振電路和復(fù)位電路(1)晶振電路晶振是晶體振蕩器的簡稱在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò)。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,給單片機(jī)提供工作所需要的時鐘信號4。理論上來說,振蕩頻率越高表示單片機(jī)運(yùn)行速度越快,但同時對存儲器的速度和印刷電路板的要求也就越高。如同木桶原理。同時單片機(jī)性能的好壞,不僅與CPU運(yùn)算速度有關(guān),而且與存儲器的速度、外設(shè)速度等都有很大關(guān)系。因此一般選用612MHZ。并聯(lián)諧振電路對電容的值沒有嚴(yán)格要求,但會影響振蕩器的穩(wěn)定、振蕩器頻率高低、起振快速性等。陶瓷封裝電容可以進(jìn)一步提高溫度穩(wěn)定性STC89C51RC內(nèi)部有一個高增益反相放大器用于構(gòu)成振蕩器。 晶振有一個重要的參數(shù),那就是負(fù)載電容值選擇與負(fù)載電容值相等的并聯(lián)電容就可以得到晶振標(biāo)稱的諧振頻率。一般的晶振振蕩電路都是在一個反相放大器的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另一端再接到地。這兩個電容串聯(lián)的容量值就應(yīng)該等于負(fù)載電容。一般的晶振的負(fù)載電容為15pF或12.5pF, 如果再考慮元件引腳的等效輸入電容,則兩個22pF的電容構(gòu)成晶振的振蕩電路就是比較好的選擇。晶振與單片機(jī)的腳XTAL0和腳XTAL1構(gòu)成的振蕩電路中會產(chǎn)生偕波。這個波對電路的影響不大,但會降低電路的時鐘振蕩器的穩(wěn)定性,為了電路的穩(wěn)定性起見。 ATMEL公司只是建議在晶振的兩引腳處接入兩個10pf-50pf的瓷片電容接地來削減偕波對電路的穩(wěn)定性的影響,所以晶振所配的電容在10pf-50pf之間都可以的。本系統(tǒng)采用了12 MHZ的晶振。圖3.2 單片機(jī)時鐘原理圖(2)復(fù)位電路單片機(jī)的復(fù)位電路有兩種,上電自動復(fù)位方式以及手動復(fù)位方式。本系統(tǒng)已具備電源開關(guān)鍵,可以使用上電自動復(fù)位方式。復(fù)位是單片機(jī)的初始化操作。其主要功能使單片機(jī)從0000H單元開始執(zhí)行程序。51單片機(jī)是高電平復(fù)位,給單片機(jī)加5V電源(上電)啟動時的情況:這時電容充電相當(dāng)于短路(電容特性:通交流,隔直流,上電瞬間相當(dāng)于交流),可以認(rèn)為RST上的電壓就是VCC,這是單片機(jī)就是復(fù)位狀態(tài)。隨著時間推移電容兩端電壓升高,即造成RST上的電壓降低,當(dāng)?shù)椭灵撝惦妷簳r,即完成復(fù)位過程。外部復(fù)位電路是為提供兩個機(jī)器周期以上的高電平而設(shè)計(jì)的。RST腳上只要保持10ms以上高電平,系統(tǒng)就會有效復(fù)位。電容C1可取1033F,R取10k,充電時間常數(shù)為1010-610103=100ms。其電路如圖3.3所示:圖3.3 單片機(jī)復(fù)位原理圖電容的作用就是緩沖使RST端保持高電平一段時間,以達(dá)到有效復(fù)位,電容越大,保持的時間就越久。單片機(jī)的復(fù)位需要至少持續(xù)兩個機(jī)器周期以上的高電平的時間,所以在剛開始上電的時候圖3.3中的電容C1 充電,所以在單片機(jī)的復(fù)位引腳RST上會出現(xiàn)大于2個機(jī)器周期的高電平,使單片機(jī)復(fù)位。3.2 數(shù)據(jù)采集模塊使用型號為CZL-A、量程為10kg的電阻應(yīng)變式壓力傳感器,對被測物體進(jìn)行壓力采集并將其轉(zhuǎn)換成電壓信號,輸出電壓信號通常很小,此時需要利用HX711轉(zhuǎn)換模塊中的可編程放大器進(jìn)行放大。放大后的模擬電壓信號經(jīng)24位A/D轉(zhuǎn)換芯片HX711電路轉(zhuǎn)換成數(shù)字量,通過2線串行方式與單片機(jī)通信,即可完成數(shù)據(jù)的采集工作。數(shù)字采集模塊原理圖如圖3.4所示。圖3.4數(shù)據(jù)采集模塊圖3.2.1 壓力傳感器(1)壓力傳感器的選擇在本設(shè)計(jì)中,我們需要使用壓力傳感器來對物品重量進(jìn)行測量。壓力傳感器在壓力檢測系統(tǒng)中是一個重要的元件,因此,在選擇壓力傳感器時需要考慮其量程和參數(shù),還要考慮它的性價(jià)比和兼容性等等。由壓力傳感器將所測壓力信號轉(zhuǎn)換成容易測量的電信號輸出,經(jīng)過A/D轉(zhuǎn)換及單片機(jī)處理后傳送給液晶顯示壓力值,或供報(bào)警使用。壓力傳感器的種類有很多,比如應(yīng)變式傳感器,電容式壓力傳感器、壓電傳感器,諧振式壓力傳感器直接位移式傳感器或是利用磁彈性、壓阻等物理效應(yīng)的傳感器。壓電傳感器是利用某些電介質(zhì)受力后產(chǎn)生的壓電效應(yīng)制成的傳感器5。但壓電傳感器只能用于動態(tài)測量。由于外力作用在壓電元件上產(chǎn)生的電荷只有在無泄漏的情況下才能保存,即需要測量回路具有無限大的輸入阻抗,這實(shí)際上是不可能的,因此壓電式傳感器不能用于靜態(tài)測量。壓電傳感器主要應(yīng)用在加速度、壓力和力等的測量中。電阻應(yīng)變式傳感器具有悠久的歷史。電阻應(yīng)變式傳感器具有金屬的應(yīng)變效應(yīng),即如果有外力存在,那么金屬會發(fā)生微弱的形變,從而改變其電阻值。它具有結(jié)構(gòu)簡單,精度高,易于實(shí)現(xiàn)小型化等特點(diǎn),因此是目前應(yīng)用最廣泛的傳感器之一。對于大應(yīng)變有較大的非線性的輸出信號較弱,但可以通過一些措施來補(bǔ)償。電阻應(yīng)變片把機(jī)械應(yīng)變信號轉(zhuǎn)換為R/R后,因?yàn)閴毫鞲衅髟诠ぷ鲿r應(yīng)變片的形變量很小,導(dǎo)致電阻變化很微弱,測量得到的結(jié)果未必準(zhǔn)確,并且由于結(jié)果數(shù)值很小,導(dǎo)致我們處理起來將會十分困難。因此,我們可以把測量結(jié)果經(jīng)過某些電路將電阻變化或形變量轉(zhuǎn)化為電信號,以此來提高測量效率和精確度6。此處通常選用測量電橋作為轉(zhuǎn)換電路。此處的測量電橋選用直流電橋,因?yàn)橹绷麟姌蚩垢蓴_能力強(qiáng),但是輸出信號小,所以需要對轉(zhuǎn)換的電信號通過高效的放大電路進(jì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)換成電阻值的變化來進(jì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)變片敏感元件;基片、覆蓋片起定位和保護(hù)電阻絲的作用,并使電阻絲和被測試件之間絕緣,引出線用以連接測量導(dǎo)線。圖 3.7電阻應(yīng)變片的基本結(jié)構(gòu)3.2.2 信號放大電路壓力傳感器的輸出電壓范圍為020mV,而A/D轉(zhuǎn)換的輸入電壓需要為02V,因此放大環(huán)節(jié)要有100倍左右的增益。對放大環(huán)節(jié)的要求是增益可調(diào)的(70150倍),根據(jù)本設(shè)計(jì)的實(shí)際情況增益設(shè)為100倍即可。由壓力傳感器的測量原理可知,電阻應(yīng)變片組成的傳感器是把機(jī)械應(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= 31000106 =0.003 (3-1)由式3-1可以看出電阻變化R只有0.6,其電阻變化率只有0.3%。這么小的電阻變化既難以直接準(zhǔn)確地測量,又不便直接處理。所以必須采用轉(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è)計(jì)中A/D轉(zhuǎn)換器的任務(wù)是將放大器輸出的模擬信號轉(zhuǎn)換位數(shù)字量進(jìn)行輸出。(1)A/D轉(zhuǎn)換模塊器件選擇目前許多類型的單片機(jī)內(nèi)部已帶有A/D轉(zhuǎn)換電路,但此類單片機(jī)會比無A/D轉(zhuǎn)換功能的單片機(jī)在價(jià)格上高出一些,為了節(jié)約成本,我們采用一個51單片機(jī)加上一個A/D轉(zhuǎn)換器,實(shí)現(xiàn)模數(shù)轉(zhuǎn)換的功能,A/D轉(zhuǎn)換部分是整個設(shè)計(jì)的關(guān)鍵,這一部分處理不好,會使得整個設(shè)計(jì)毫無意義。目前,世界上有多種類型的A/D轉(zhuǎn)換芯片,有傳統(tǒng)的并行、串行、逐次逼近型、積分型ADC,也有近年來新發(fā)展起來的-型和流水線型ADC,多種類型的ADC各有其優(yōu)缺點(diǎn)并能滿足不同的應(yīng)用要求。這里A/D轉(zhuǎn)換芯片可選ADC0832、ADC0809、HX711等;A/D轉(zhuǎn)換芯片種類很多,最常見的屬于串行和并行接口模式,接口模式是選擇器件的一項(xiàng)重要指標(biāo)。在同樣的轉(zhuǎn)換分辨率和轉(zhuǎn)換速度的下,不同的接口方式會對電路結(jié)構(gòu)及采用周期產(chǎn)生影響。本次設(shè)計(jì)并沒有選擇常見的并行接口A/D轉(zhuǎn)換器ADC0809或者串行接口A/D轉(zhuǎn)換器ADC0832。根據(jù)系統(tǒng)的精度要求以及綜合的分析比較,本設(shè)計(jì)采用了24位A/D轉(zhuǎn)換器HX711,芯片封裝如下圖3.9所示。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。降低了系統(tǒng)的整機(jī)成本,提高了整機(jī)的性能和可靠性。圖3.9 HX711封裝圖(2)A/D轉(zhuǎn)換芯片HX711的簡介HX711芯片采用了海芯科技集成電路專利技術(shù),是一款專為高精度壓力測量而設(shè)計(jì)的24 位A/D 轉(zhuǎn)換器芯片。該芯片與單片機(jī)的接口電路設(shè)計(jì)和程序編寫非常簡單,所有控制信號由管腳驅(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ù)位功能簡化了開機(jī)的初始化過程。有關(guān)引腳說明如下表3.2所示:表3.2 HX711引腳說明管腳號名稱性能描述1VSUP電源穩(wěn)壓電路供電電源:2.6V5.5V2BASE模擬輸出穩(wěn)壓電路控制輸出(不用穩(wěn)壓電路時為無連接)3AVDD電源模擬電源:2.6V5.5V4VFB模擬輸入穩(wěn)壓電路控制輸入(不用穩(wěn)壓電路時為應(yīng)接地)5AGND地模擬地6VBG模擬輸出參考電源輸出7INA-模擬輸入通道A負(fù)輸入端8INA+模擬輸入通道A正輸入端9INB-模擬輸入通道B負(fù)輸入端10INB+模擬輸入通道B正輸入端11PD_SCK數(shù)字輸入斷電控制(高電平有效)和串口時鐘輸入12DOUT數(shù)字輸出串口數(shù)據(jù)輸出13XO數(shù)字輸入輸出晶振輸入(不用晶振時無連接)14XI數(shù)字輸入外部時鐘或晶振輸入,0:使用片內(nèi)振蕩器15RATE數(shù)字輸入輸出數(shù)據(jù)速率控制,0:10HZ;1:80HZ16DVDD電源數(shù)字電源:2.6V5.5V正常情況下HX711與單片機(jī)的接口應(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)換器還未準(zhǔ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ù)輸入通道增益25A12826B3227A64PD_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)進(jìn)入正常工作狀態(tài)后,A/D 轉(zhuǎn)換器需要4 個數(shù)據(jù)輸出周期才能穩(wěn)定。DOUT 在4 個數(shù)據(jù)輸出周期后才會從高電平變低電平,輸出有效數(shù)據(jù)。3.3 人機(jī)交互模塊矩陣鍵盤和液晶顯示電路是壓力檢測系統(tǒng)與用戶交互的接口,用戶通過顯示來觀察壓力大小及經(jīng)過數(shù)據(jù)統(tǒng)計(jì)分析處理后的系統(tǒng)狀態(tài)參數(shù),再根據(jù)觀察到的值,通過鍵盤對單片機(jī)進(jìn)行控制。本節(jié)設(shè)計(jì)了較為合理的鍵盤和顯示電路完成這些功能。3.3.1 液晶顯示單元LCD12864用來顯示實(shí)時壓力值,液晶屏電路如圖3.13所示。LCD_CS、LCD_RES、LCD_RS、LCD_SDA、LCD_SCK為液晶模塊與單片機(jī)接口的控制線。CS_ZK、SCK_ZK、SO_ZK和SI_ZK為字庫和單片機(jī)接口的控制線。圖3.13 12864液晶該LCD液晶為晶聯(lián)訊公司的生產(chǎn)的128*64漢字屏JLX12864G-086-PC顯示模塊。該顯示模塊既可以當(dāng)成普通的圖像型液晶顯示模塊使用,又含有JLX-GB2312 字庫IC,可以從字庫IC 中讀取內(nèi)置的字庫的點(diǎn)陣數(shù)據(jù)寫入到LCD 驅(qū)動IC 中,以達(dá)到顯示漢字的目的。 JLX12864G-086可以顯示128列*64行點(diǎn)陣單色圖片,或顯示8個/行*4行16*16點(diǎn)陣的漢字,或顯示16個/行*8行8*8點(diǎn)陣的英文、數(shù)字、符號。采用點(diǎn)陣型液晶顯示器(LCD),可顯示128*64點(diǎn)陣或8個4行漢字,點(diǎn)尺寸為 0.48*0.48(WXH)mm,內(nèi)置ST7920接口型液晶顯示控制器,內(nèi)帶GB2312碼簡體中文字庫(16*16點(diǎn)陣),可與MCU單片機(jī)直接連接,具有8位并行及串行的連接方式,廣泛應(yīng)用于各類儀器儀表及電子設(shè)備。晶聯(lián)訊電子所生產(chǎn)JLX12864G-086型液晶模塊由于使用方便、顯示清晰,廣泛應(yīng)用于各種人機(jī)交流面板。其接口引腳功能介紹如表3.4所示。主要技術(shù)參數(shù)與顯示特性:l 電源:VDD 3.3V+5V(內(nèi)置升壓電路,無需負(fù)壓);l 顯示內(nèi)容:128列64行;l LCD類型:STN;l 多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。表3.4 LCD12864的引腳說明管腳號管腳符號名稱管腳功能描述1ROM-IN字庫IC接口串行數(shù)據(jù)輸出2ROM-OUT字庫IC接口串行數(shù)據(jù)輸入3ROM-SCK字庫IC接口串行時鐘輸入4ROM-CS字庫IC接口片選輸入5LEDA背光電源背光電源正極,同VDD電壓(5V或3.3V)6VSS接地0V7VDD電路電源5V或3.3V可選8SCKI/O串行時鐘9SDAI/O串行數(shù)據(jù)10RS寄存器選擇信號H:數(shù)據(jù)寄存器0:指令寄存器11RST復(fù)位低電平復(fù)位,復(fù)位后,回到高電平,液晶工作12CS片選低電平片選點(diǎn)陣LCD的顯示原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進(jìn)行不同的數(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)計(jì)得到的值均為0;“調(diào)零”鍵用來將壓力傳感器調(diào)零,讓當(dāng)前壓力值顯示為0.000kg;“修改閾值”鍵用來修改系統(tǒng)預(yù)設(shè)的閾值9.999kg,可以任意在09.999kg之內(nèi)設(shè)計(jì)閾值;“返回”鍵可以使當(dāng)前操作返回到上一級;“確認(rèn)”鍵用來將所中的功能確定,傳送給系統(tǒng),執(zhí)行相應(yīng)程序。矩陣鍵盤行掃描信號為ROW1ROW3,列掃描信號為COL1COL4。行信號為輸入信號,低電平有效;列信號為輸出信號。當(dāng)沒有鍵按下時,即使行掃描輸入低電平信號,列信號仍為高電平;當(dāng)行掃描為低電平并且有鍵按下時,則對應(yīng)的列輸出低電平。該低電平信號可以定位至按下鍵的位置。圖3.16 4*3矩陣鍵盤電路3.4 聲光報(bào)警模塊報(bào)警電路選用8550 PNP型三極管,基極為低電平時導(dǎo)通,當(dāng)測量重量超過量程時,beep和alert給出低電平信號,驅(qū)動蜂鳴器鳴響,報(bào)警燈亮。如圖3.17所示: 圖3.17 聲光報(bào)警電路圖3.5 電源供電模塊系統(tǒng)通過USB電源供電,電源電壓為5V。單片機(jī)程序也可通過USB線串行下載。借助按鍵開關(guān)操作可控制電源的通斷,實(shí)現(xiàn)系統(tǒng)的良性運(yùn)作。通電后電源指示燈點(diǎn)亮,系統(tǒng)開始工作;斷電后電源指示燈熄滅,系統(tǒng)停止運(yùn)行。電源供電開關(guān)模塊如下圖3.18所示。圖3.18 電源供電模塊電路4 軟件程序設(shè)計(jì)根據(jù)設(shè)計(jì)要求,本次軟件設(shè)計(jì)是由主程序和一個個子程序模塊組成,這樣方便編寫和運(yùn)行整理。軟件的主要部分由主程序、A/D轉(zhuǎn)換數(shù)據(jù)子程序、LCD顯示子程序、歷史查詢子程序、數(shù)據(jù)統(tǒng)計(jì)分析子程序、中斷和延時子程序等組成。系統(tǒng)工作時,單片機(jī)對各路電壓、電流采樣及數(shù)據(jù)的統(tǒng)計(jì)與分析,并實(shí)時顯示。同時,在測試過程中,監(jiān)控壓力值大小,達(dá)到預(yù)警作用。4.1 軟件開發(fā)環(huán)境本系統(tǒng)使用的單片機(jī)開發(fā)環(huán)境是Keil Vision4。Keil Vision4是德國Keil Software公司出品的51系列C語言軟件開發(fā)系統(tǒng),使用傳統(tǒng)C語言的語法來開發(fā),C語言在可維護(hù)性、結(jié)構(gòu)性以及可讀性有著明顯的優(yōu)勢,可以大大的提高工作效率和項(xiàng)目開發(fā)周期,Keil C51為8051單片機(jī)的軟件開發(fā)提供了C語言環(huán)境,同時還有著匯編代碼高效和快速的特點(diǎn)。C51編譯器可以更加貼近CPU本身。C51已被完全集成到uVision4的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含:實(shí)時操作系統(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文件。編寫單片機(jī)程序有三種常見的方式,C語言編程、匯編語言編程及混合編程。就前兩種編程方式相比,C語言更加通俗易懂,容易上手,C語言屬于高級語言,并且有著編譯器的強(qiáng)大支持與自動優(yōu)化,使得編程者在軟件設(shè)計(jì)的時候不用花費(fèi)太多時間去研究單片機(jī)底層硬件資源。當(dāng)然,對于匯編語言在某些方面仍然有著不小的優(yōu)勢,最為突出的一點(diǎn)就是效率優(yōu)化的可操作性。由于C語言在編譯器的支持下編譯鏈接生成匯編文件,所以在性能優(yōu)化方面完全受制于編譯器,從C語言層面上幾乎無法做任何優(yōu)化。而直接使用匯編語言編寫程序,在匯編級別上,具體執(zhí)行哪條匯編指令,具體使用哪個寄存器完全是透明的,所以在性能要求特別高的場合下,如果有豐富的匯編經(jīng)驗(yàn),一般都是使用匯編語言編寫單片機(jī)程序。為了克服C語言編程及匯編語言編程各自的缺點(diǎn),混合編程方式完美的結(jié)合了兩者的優(yōu)點(diǎn),做到了優(yōu)勢互補(bǔ)。通常單片機(jī)很合編程技術(shù)是,程序的框架或主體部分用C語言編寫,對于那些使用頻率高、要求執(zhí)行效率高、延時精確的部分用匯編語言編寫9,這樣既保證了整個程序的可讀性,又保證了單片機(jī)應(yīng)用系統(tǒng)的性能。由于本系統(tǒng)對于性能的要求一般,所以采用C語言方式編寫單片機(jī)程序。通過對編譯選項(xiàng)的設(shè)置,Keil軟件可以在編譯鏈接后自動生成HEX16進(jìn)制文件,方便單片機(jī)程序的直接燒寫。4.2 I/O端口分配STC89C51RC共有40只引腳,P0P3四個引腳組各有8只引腳。對于本系統(tǒng)而言,引腳數(shù)量還是夠用的10。引腳功能分配如下:l P20P27和P16、P17接于LCD中液晶與單片機(jī)的控制端口和字庫與單片機(jī)的控制端口。l P34P37和P13是用于4*3矩陣鍵盤按鍵。包括功能選擇按鍵,參數(shù)設(shè)置按鍵和工作啟停等功能控制。l P14,P15 用于接A/D轉(zhuǎn)換芯片HX711數(shù)據(jù)采集端口,是串行工作方式,所以節(jié)省了很多的IO口的使用。還有一些單獨(dú)的接口,比如振蕩電路接口,聲光報(bào)警電路接口和單片機(jī)自帶的燒錄程序串口通訊接口TXD、RXD等。程序中所有端口定義及功能如下:sbit A/DDO = P15; /串行數(shù)據(jù)輸出端口sbit A/DSK = P14; /斷電控制(高電平有效)和串口時鐘輸入端口sbit lcd_sclk=P23; /LCD的sclk接口sbit lcd_sid=P24; /LCD的sid接口sbit lcd_rs=P25; /LCD的rs接口sbit lcd_reset=P2 /LCD的reset接口sbit lcd_cs1=P2 ; /LCD的cs1接口sbit Rom_IN=P17; /字庫IC的SI接口sbit Rom_OUT=P16; /字庫IC的SO接口sbit Rom_SCK=P20; /字庫IC的SCK接口sbit Rom_CS=P21; /字庫IC的CS接口sbit LedA = P22; /LCD液晶背光電源接口sbit beep = P10; /報(bào)警電路蜂鳴器接口sbit alert = P11; /LED發(fā)光二極管接口sbit ROW1=P33; /矩陣鍵盤第一行接口sbit ROW2=P32; /矩陣鍵盤第二行接口sbit ROW3=P13; /矩陣鍵盤第三行接口sbit COL1=P34; /矩陣鍵盤第一列接口sbit COL2=P35; /矩陣鍵盤第二列接口sbit COL3=P36; /矩陣鍵盤第三列接口sbit COL4=P37; /矩陣鍵盤第四列接口4.3 軟件主程序構(gòu)架本系統(tǒng)的設(shè)計(jì)主要由五大模塊構(gòu)成,軟件程序主要是實(shí)現(xiàn)對這些功能模塊的控制,以及最終對數(shù)據(jù)進(jìn)行分析計(jì)算得出性能測量結(jié)果。程序執(zhí)行時,首先對整個系統(tǒng)進(jìn)行初始化,這部分包括參數(shù)初始化、IO初始化和器件初始化三個操作。參數(shù)初始化時對一些全局系統(tǒng)參數(shù)進(jìn)行初始化,保證程序執(zhí)行的可靠性;IO初始化是將所有IO的電平和功能設(shè)置為關(guān)閉狀態(tài),防止發(fā)生誤操作;器件初始化是對外圍的A/D芯片、模擬開關(guān)、LCD進(jìn)行初始化,保證器件能夠正常運(yùn)行。如果在此過程中發(fā)生錯誤,即調(diào)用報(bào)警電路進(jìn)行報(bào)警。程序流程圖如圖4.2所示。圖4.2 系統(tǒng)主程序構(gòu)架框圖初始化完畢后,延時等待所有模塊準(zhǔn)備好,向液晶顯示器發(fā)送數(shù)據(jù),顯示初始的人機(jī)界面。此時,整個系統(tǒng)可以開始進(jìn)行數(shù)據(jù)采集工作,但參數(shù)均處于默認(rèn)狀態(tài),如果需要調(diào)整,則可以實(shí)時通過鍵盤控制,系統(tǒng)根據(jù)讀取的鍵盤鍵值執(zhí)行相應(yīng)的操作,分別是執(zhí)行修改閾值參數(shù)、讀取A/D采樣值、壓力測量、手動存儲、超重預(yù)警、發(fā)出報(bào)警信號、查閱歷史,數(shù)據(jù)統(tǒng)計(jì)分析等。等待這部分操作完成后,系統(tǒng)屏幕根據(jù)需要實(shí)時刷新顯示一些數(shù)據(jù)和狀態(tài),顯示新的參數(shù)或采樣信息。4.4 主要功能子程序的設(shè)計(jì)先進(jìn)行系統(tǒng)的初始化,初始化模塊主要對單片機(jī)的堆棧指針,中斷寄存器,全局變量定義,賦初值和定時器的初始化。定時器主要作為A/D轉(zhuǎn)換時間的設(shè)定。然后進(jìn)行模數(shù)轉(zhuǎn)換,判斷是否超過設(shè)定閾值,轉(zhuǎn)換壓力字符通過液晶顯示。參數(shù)設(shè)定完畢,系統(tǒng)啟動數(shù)據(jù)采集和控制程序,實(shí)現(xiàn)壓力的實(shí)時檢測。4.4.1 A/D子程序設(shè)計(jì)通過壓力傳感器輸出后的數(shù)據(jù)經(jīng)過信號放大器的處理后,由A/D轉(zhuǎn)換芯片轉(zhuǎn)換為數(shù)字信號。其中模擬信號的放大倍數(shù)由放大電路控制。在軟件方面,單片機(jī)通過發(fā)送時序命令的方式對A/D芯片進(jìn)行控制,由于選型的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è)計(jì)系統(tǒng)的稱重間隔為0.5S,每0.5S置標(biāo)志位,累加器計(jì)數(shù)滿400次則延時時間為0.5S,置稱重標(biāo)志位。中斷子程序流程圖如下圖4.4所示。圖4.4 中斷流程圖4.4.3 查詢歷史數(shù)據(jù)子程序設(shè)計(jì)預(yù)先手動存儲八個以內(nèi)的壓力值(超過閾值亦可),當(dāng)存儲第九個數(shù)據(jù)時,存儲的歷史數(shù)據(jù)會自動將第一位存儲的數(shù)據(jù)擠掉,后面存儲的數(shù)據(jù)均依次向前移一位。按上下鍵進(jìn)行選擇,光標(biāo)停在查詢歷史數(shù)據(jù)功能菜單之前,按確認(rèn)鍵確定。調(diào)用該子程序,判斷是否為0,若不是顯示“無歷史”;若是則讀取顯示存儲的壓力值,并按順序依次為NO.18顯示輸出。查詢歷史數(shù)據(jù)流程圖如下圖4.5所示。圖4.5 查詢歷史數(shù)據(jù)流程圖4.4.4 數(shù)據(jù)統(tǒng)計(jì)分析子程序設(shè)計(jì)預(yù)先手動存儲八個以內(nèi)的壓力值(超過閾值亦可),當(dāng)存儲第九個數(shù)據(jù)時,存儲的歷史數(shù)據(jù)會自動將第一位存儲的數(shù)據(jù)擠掉,后面存儲的數(shù)據(jù)均依次向前移一位。按上下鍵選擇“數(shù)據(jù)統(tǒng)計(jì)分析”,則系統(tǒng)會將這些壓力值進(jìn)行數(shù)據(jù)分析處理(求均值、最值、排序求中位數(shù)、判斷有無眾數(shù)),然后依次顯示輸出均值大小、最大值、最小值、中位數(shù)、若有眾數(shù),則顯示出現(xiàn)幾次,并且顯示該眾數(shù);在四種情況下,比如abcdefgh型、aabbccdd型、aaaaaaaa型、aaaabbbb型則顯示無眾數(shù)。如下圖4.6所示。圖4.6 數(shù)據(jù)統(tǒng)計(jì)分析流程圖4.4.5 閾值重設(shè)子程序設(shè)計(jì)系統(tǒng)開啟后,系統(tǒng)會默認(rèn)顯示程序中預(yù)先設(shè)定的閾值9.999kg,按閾值重設(shè)鍵,鍵盤程序讀取鍵碼,調(diào)用該子程序,界面跳到修改閾值的界面,有個光標(biāo)在第一個9的下面,可以通過按左右選擇鍵,將光標(biāo)左右移動,該光標(biāo)停在任意數(shù)下面,就可以通過加減鍵對該數(shù)字進(jìn)行修改,從而完成閾值的修改,最后按確認(rèn)鍵即可跳轉(zhuǎn)到主菜單。如下圖4.7所示。圖4.7 閾值重設(shè)功能流程圖4.4.6 人機(jī)交互子程序設(shè)計(jì)人機(jī)交互單元包括鍵盤處理和12864顯示模塊兩部分。人機(jī)交互是設(shè)計(jì)人性化、便捷操作的必要操作,除了硬件上的- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 51 單片機(jī) 壓力 檢測 系統(tǒng) 設(shè)計(jì)
鏈接地址:http://italysoccerbets.com/p-6677359.html