




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于STM32的語音電子秤的設(shè)計學生專業(yè):測控技術(shù)與儀器學生姓名:張城照導(dǎo)師姓名:張福才專心-專注-專業(yè)摘 要質(zhì)量是測量領(lǐng)域中的一個非常有意義的被測參數(shù),稱重技術(shù)的發(fā)展從古至今被人們所重視,稱重在日常生活中隨處可見,如首飾店測量貴金屬重量,工廠原料定量配比,市場上稱菜,貨車過地磅等。秤是最普通、最普及的計量設(shè)備。傳統(tǒng)的機械秤體積龐大,結(jié)構(gòu)繁瑣,易受外界擠壓、碰撞變形,在長期使用中由于金屬腐蝕,機械磨損會給機械秤帶來不可逆的損害直接導(dǎo)致機械秤精度下降。電子秤相比機械秤擁有諸多優(yōu)點,例如成本低、響應(yīng)快、穩(wěn)定、高智能等。隨著社會的迅猛發(fā)展,人們的需求日益多元化,多元化的電子
2、秤將具有極其廣闊的市場前景。本設(shè)計采用STM32F103作為主控芯片,外接電橋式稱重傳感器和24位高精度A/D轉(zhuǎn)換芯片來完成稱重,以TFT液晶屏和觸控芯片實現(xiàn)人機交互,獨特的語音播報功能給本設(shè)計增添了個性特點,實時溫度和實時時鐘方便了使用者的日常生活。關(guān)鍵詞 質(zhì)量 電子秤 STM32F103 語音AbstractQuality is an important parameter to measured in the field of measurement, weighing technology is paid great attention by people since ancient
3、times, weighing can be seen everywhere in our daily life, such as jewelry shop measuring weight of precious metals, quantitative ratio of raw materials, weighing food on the market, trucks pass loadometer, etc. Balance is the most common, the most popular measuring equipment. The traditional mechani
4、cal scale is large, the structure is complicated, vulnerable to external extrusion, collision deformation, due to the metal corrosion in the long-term use, mechanical wear will bring irreversible damage to mechanical scale directly led to the decrease of the precision of mechanical scale.Electronic
5、scale mechanical scale compared with many advantages, such as low cost, fast response, stability, high intelligence, etc. With the rapid development of society, the demand of people increasingly diversified, diversified electronic scale will be extremely broad market prospect.This design uses STM32F
6、103 as the master control chip, external bridge type weighing sensors and 24 bit high precision A/D transformation chip to complete the weighing, TFT LCD screen and touch chip to realize human-machine interaction, unique speech function add individuality to the design characteristics of real-time te
7、mperature and real time clock is convenient for user's daily life.Key wordsQuality Electronic scale STM32F103 Speech不要刪除行尾的分節(jié)符,此行不會被打印目 錄行后加一空行CONTENTS行后加一空行第1章 緒 論1.1 課題來源及研究的目的和意義電子稱重技術(shù)是測控工程的重要技術(shù)之一。自60年代初期出現(xiàn)的機電結(jié)合式電子秤以來,經(jīng)過幾十年的不斷改進與完善,電子秤從最初的全機械式到機電結(jié)合式再發(fā)展到現(xiàn)在的全電子式和數(shù)字化智能式。由于數(shù)字智能化式的電子秤具有稱量準確、快速、讀數(shù)方
8、便、環(huán)境適應(yīng)性強、便于與計算機結(jié)合而實現(xiàn)過程控制自動化等特點,在工商貿(mào)易、冶金礦山、能源交通、醫(yī)藥衛(wèi)生、航空航天、輕工食品等部門得到廣泛的應(yīng)用12。最近幾年來,伴隨著稱重傳感器技術(shù)和計算機技術(shù)的迅猛發(fā)展,以及現(xiàn)代科學技術(shù)間的相互滲透,電子稱重技術(shù)有了新發(fā)展。稱重計量方法從模擬測量向數(shù)字發(fā)展;稱重技術(shù)從靜態(tài)稱重向動態(tài)發(fā)展;測量特點從單參數(shù)測量向多參數(shù)發(fā)展??焖俜Q重和動態(tài)稱重的研究與應(yīng)用,已成為世界各國所關(guān)注的焦點之一。電子稱重技術(shù)水平的高低已成為衡量一個國家測量控制技術(shù)水平的標志之一。電子稱重技術(shù)是集電子、材料、傳感器、管理為一體的綜合技術(shù),發(fā)達國家一直以來都很重視電子稱重技術(shù)的研究,它們研究開
9、發(fā)的重點不再是單純的稱重,而是自動控制領(lǐng)域和生產(chǎn)過程的稱重系統(tǒng),這使得稱重計量的內(nèi)涵被不斷擴展,由狹義到廣義,單項到系統(tǒng),新型的現(xiàn)代稱重一躍成為當代世界矚目的技術(shù)與行業(yè)。電子秤的發(fā)展過程經(jīng)歷了從粗糙到精密、從單純機械結(jié)構(gòu)到機電結(jié)合再到全電子化、從功能單一到多功能化的過程。尤其是最近20年以來,各個生產(chǎn)工藝流程中配料的稱重、藥物定量、飼料配比、以及產(chǎn)品質(zhì)量的監(jiān)督把關(guān)等,都離不開能輸出電信號的電子秤。電子稱重信號的輸出方便了自動化控制,能作為系統(tǒng)中的一個重要參數(shù)承擔著自動控制和檢驗的功能,從而有力地推進貿(mào)易交往合理化、生產(chǎn)工藝標準化、材料配比科學化和工業(yè)生產(chǎn)自動化。從80年代至今,我國測控行業(yè)已經(jīng)
10、走上了按專業(yè)和產(chǎn)品歸類的行業(yè)管理化軌道中,且已經(jīng)開創(chuàng)了由機械向數(shù)字電子過渡的全新局面,但與發(fā)達工業(yè)國家相比,我國的電子稱重技術(shù)的研究與應(yīng)用仍然出于較低水平,有很大的進步空間,電子稱重行業(yè)的總體水平還跟不上國內(nèi)需求的發(fā)展步伐。1.2 本論文的技術(shù)要求和主要工作本論文設(shè)計的電子秤是以STM32單片機為主要部件,使用C語言進行軟件設(shè)計,硬件則以全橋應(yīng)變片電阻傳感器、WT588D語音模塊和觸控液晶屏模塊為主。量程為010kg,最小分度值為1g,誤差達到±2g,具有超上限值報警的功能。本設(shè)計完成的電子秤的主要優(yōu)點是:1. 人性化的人機交互界面;2. 具有超量程報警功能;3. 測量精度高;4.
11、實時顯示環(huán)境溫度和實時時鐘;5. 具有語音播報重量、價格、報警等功能。主要工作如下:1. 大量收集和查閱國內(nèi)外關(guān)于電子秤設(shè)計的資料,最好開發(fā)前的準備;2. 電子秤主板硬件系統(tǒng)設(shè)計;3. 電子秤的軟件系統(tǒng)設(shè)計;4. 通過標準質(zhì)量的砝碼校準電子秤;5. 整機測試。第2章 電子秤的總體設(shè)計方案2.1 電子秤稱重系統(tǒng)的整體設(shè)計方案本設(shè)計采用STM32F103RBT6作為主控芯片,通過TFT液晶屏幕顯示數(shù)據(jù),以觸控方式操作電子秤,DS18B20作為溫度傳感器采集實時溫度,播報重量、價格、商品名等語音信息使用Flash芯片存儲配合語音芯片WT588D發(fā)音,采用電阻應(yīng)變片橋式連接的稱重傳感器采集重量,以24
12、位的HX711作為A/D轉(zhuǎn)換芯片67。系統(tǒng)結(jié)構(gòu)框圖如圖2-1。圖21系統(tǒng)整體框架圖架構(gòu)為Cortex-M3的STM32F103RBT6工作頻率為72MHz,16位并行連接TFT液晶屏,能實現(xiàn)快速刷屏,顯示效果良好,通過SPI通訊方式連接觸控芯片XPT2046,以觸控方式操作電子秤,以單總線方式連接DS18B20采集實時溫度,主控芯片以一線串口模式控制語音芯片WT588D播報重量、價格、商品名等信息,以上模塊對速度都有苛刻的要求,普通的51單片機達不到要求,所以采用了工作頻率為72MHz的STM32F103RBT6,它內(nèi)部的單周期乘法和硬件除法方便了價格計算和累計,采用型號為YZC-1B的電阻應(yīng)
13、變片式電橋結(jié)構(gòu)的稱重傳感器,以24位的電子秤專用A/D芯片HX711作為A/D轉(zhuǎn)換芯片12。2.2 系統(tǒng)基本功能及其性能指標本論文設(shè)計的電子秤測量系統(tǒng)包括重量測量、液晶屏顯示、觸摸控制、語音播報、實時時鐘、實時溫度、單價存儲、自動計價、價格累計、去皮、超重報警等功能,主要技術(shù)指標如表2-1。表21測量裝置的主要技術(shù)指標基本功能測量范圍分度值誤差測重010kg1g±2g實時時鐘1970.1.12099.12.311秒±3秒/年實時溫度-551250.1±0.5計價0999.99元0.01元02.3 稱重傳感器要求及選擇稱重傳感器是將非電量(質(zhì)量或重量)轉(zhuǎn)換成電量的轉(zhuǎn)
14、換元件,它把重量變換成電信號或其它形式適合計量的信號以方便數(shù)字處理器處理。稱重傳感器一般由敏感元件、轉(zhuǎn)換元件以及后續(xù)處理部分組成。按照稱重傳感器的結(jié)構(gòu)形式不同,可分為應(yīng)變式傳感器(電阻應(yīng)變式、聲表面諧振式)和直接位移式傳感器(電位計式、電容式、電感式、空腔諧振器式、振弦式等)或是利用壓電、壓阻和磁彈性等物理特性的傳感器??紤]到本設(shè)計的產(chǎn)品應(yīng)用在市場、工廠和戶外等環(huán)境比較惡劣潮濕的場合,使用直接位移傳感器和物理效應(yīng)的傳感器容易受到外界干擾,綜合各方面因素選擇電阻應(yīng)變式傳感器。本設(shè)計對稱重傳感器的要求主要有:輸入的重量與輸出的電量應(yīng)該保持一一對應(yīng),即具有良好的線性關(guān)系;具有較高的靈敏度;能在惡劣的
15、條件下工作;對被稱物體的狀態(tài)的影響要??;具有較好的頻率響應(yīng)特性;具有重現(xiàn)性;穩(wěn)定可靠。就以上要求本設(shè)計所使用的稱重傳感器為YZC-1B型傳感器,該傳感器是10kg量程的電阻應(yīng)變片式傳感器,在激勵電壓為5V的條件下輸出,滿量程時輸出為10mV,該稱重傳感器的實物如圖2-2。圖22稱重傳感器實物圖其結(jié)構(gòu)為由電阻應(yīng)變片搭接的惠更斯全臂電橋貼于鋁塊載體上。應(yīng)變片是鎳鉻絲或康銅絲繞成柵狀(或使用薄金屬箔腐蝕成柵狀)夾在兩層絕緣的薄片中制成。YZC-1B稱重傳感器上表面鑲嵌兩片應(yīng)變片,同時下表面也有兩個同樣的應(yīng)變片,上下連接形成全臂電橋,當應(yīng)變片不受外力時,輸出的電壓為零,當受外力作用時,上表面的應(yīng)變片電
16、阻變大,下表面的應(yīng)變片電阻變小,使電橋不平衡,由于相同的電阻絲其電阻的變化量相同,所以輸出的電壓與電阻的變化量成線性關(guān)系,再經(jīng)相應(yīng)的測量電路把這一電阻變化轉(zhuǎn)換為電壓信號,此過程完成了將外力轉(zhuǎn)換為電信號的過程,這樣就測量出重量的大小。外接的5根線分別是一根屏蔽線,兩根輸出線,兩根供電線。當未載物時傳感器內(nèi)部電橋橋臂上的電阻滿足這樣的條件:R1*R3=R2*R4,電橋平衡,輸出的電壓為零;載物時鋁塊發(fā)生微小形變,致使貼在上面的電阻應(yīng)變片也發(fā)生形變,從而導(dǎo)致應(yīng)變片電阻發(fā)生變化,破壞電橋平衡,使電橋輸出微弱電壓,其輸出的電壓與電阻的變化量(外力變化量)成近似的線性變化,線性度小,這極大地方便了后續(xù)軟件
17、根據(jù)A/D值計算處理得到重量。2.4 質(zhì)量的計算由于本設(shè)計所選的YZC-1B型電阻應(yīng)變片式電橋結(jié)構(gòu)的稱重傳感器具有良好的線性度,所以為后續(xù)數(shù)據(jù)處理帶來了很大方便。本設(shè)計使用線性擬合軟件CurveExpert 1.3來擬合A/D值與實際重量之間的函數(shù)關(guān)系。主控芯片內(nèi)部的單周期乘法和硬件除法為重量的快速計算提供硬件支持。隨著質(zhì)量的增大,稱重傳感器的線性度下降,再配以人工補償,以保證精度。在校正精度時,選用了M1等級的高精度不銹鋼砝碼以確保電子秤的精度。第3章 電子秤硬件電路設(shè)計3.1 A/D采集的電路設(shè)計對于電子秤的設(shè)計,核心問題是A/D轉(zhuǎn)換。只有正確的選擇A/D轉(zhuǎn)換芯片的類型才能才能做出高精度的
18、電子秤。本論文設(shè)計的電子秤使用一款24位的-(SigmaDelta)型A/D轉(zhuǎn)換芯片HX711。在電子秤的實際使用中,由于人們對重量測量速度的要求不高,所以使用這款高分辨率的慢速A/D轉(zhuǎn)換芯片。-型的A/D芯片是由1位A/D轉(zhuǎn)換器、數(shù)字濾波器、積分器和比較器等組成8。在原理上近似于積分型A/D,將輸入電壓量變換成脈沖寬度(即時間信號)信號,經(jīng)過數(shù)字濾波器的處理之后得到數(shù)字量9。電路的數(shù)字部分容易做到單片化,因此極易做到高分辨率。由于輸出的數(shù)字量與模擬輸入量之間有較長的延時,所以這類A/D芯片適用于那些模擬信號近似直流或變化很慢的應(yīng)用場合,如溫度測量、流量測量和壓力測量等。HX711
19、與同類型其它A/D芯片相比,其內(nèi)部集成其它同類型芯片所需要的外圍電路,如內(nèi)部時鐘振蕩器和穩(wěn)壓電源等,具有集成度高、抗干擾性強、響應(yīng)速度較快等優(yōu)點,使用該芯片設(shè)計的電子秤既能降低了整機成本又提高了電子秤的可靠性和抗干擾性。該芯片與主控芯片的連接電路非常簡單,只有DATA和SCLK兩條線連接與主控芯片連接,兩個控制信號由管腳驅(qū)動,且無需對芯片內(nèi)部的寄存器編程。在輸入指定的脈沖數(shù)可任意選取通道A或通道B以及增益,通道A的可編程增益為128和64,對應(yīng)滿額度的差分輸入信號幅值分別為±40mV和±20mV,通道B則為固定為64增益。芯片內(nèi)部的穩(wěn)壓電源可以直接向外部傳感器供電,系統(tǒng)板上
20、無需另外提供電源,可以保證傳感器的準確度。HX711的工作溫度范圍為-20 +85,工作電壓范圍為2.65.5V,可同步抑制50Hz和60Hz的電源干擾,典型工作電流:<1.7mA(含穩(wěn)壓電源電路),斷電電流:<1µA,可見該芯片是功耗極低的,適合運用于充電的便攜式設(shè)備中,較大的工作溫度范圍和寬電壓決定了該芯片能應(yīng)用在較惡劣的場合。HX711的硬件電路如圖3-1。圖31HX711的硬件電路圖中E+和E-分別連接5V和地線,為芯片供電,S+和S-連接稱重傳感器的輸出端。本設(shè)計使用HX711內(nèi)部時鐘振蕩器(引腳XI接地),10Hz的輸出數(shù)據(jù)速率(引腳RATE接地)。芯片供電電
21、壓取用5V,片內(nèi)穩(wěn)壓電源電路通過片外三級管8550和滑動變阻器R11向傳感器提供穩(wěn)定的低噪聲模擬電源(圖中E+和E-)。在程序設(shè)計中選用通道A,所以INNA和INPA與傳感器相連,通道B接地。3.2 單片機外擴電路設(shè)計3.2.1 STM32F103RBT6的最小系統(tǒng)硬件設(shè)計本設(shè)計采用STM32F103RBT6作為主控芯片。該芯片使用Cortex-M3架構(gòu),支持Thumb-2指令集,最高支持72MHz工作頻率,在存儲器的0等待周期訪問時可達1.25DMips/MHz,而且具備單周期乘法和硬件除法。在存儲器方面,該片有128K字節(jié)的閃存程序存儲器和高達20K字節(jié)的SRAM。片內(nèi)的帶校準功能的32k
22、Hz RTC振蕩器和后備供電VBAT,可為實時時鐘提供精確的定時和掉電不掉時提供支持12。2.03.6V的供電電壓和睡眠、停機和待機模式可為電子秤的低功耗提供硬件支持。該芯片還擁有多達51個快速I/O端口,并且所有I/O口可以映像到16個外部中斷,幾乎所有端口均可容忍5V信號,即兼容5V數(shù)字電平12。STM32F103RBT6的引腳圖如圖3-2。圖32STM32F103RBT6引腳圖主控芯片外接8MHz和32.768kHz的石英晶振,最高工作頻率達72MHz,其中,32.768kHz的晶振作為RTC的輸入頻率,為實時時鐘提供精確的頻率14。外接晶振的硬件電路如圖3-3。圖33外接晶振電路圖圖3
23、-3為主控芯片的復(fù)位電路和后備電源電路。當系統(tǒng)上電時,電容C1充電,此時RESET為0電位,芯片復(fù)位,C1充滿電后,電路相當于斷路,RESET為高電平,進入工作狀態(tài)。當按鍵KP1按下時,RESET接地,使RESET為0電位,產(chǎn)生復(fù)位,一般低電平持續(xù)20us之后,可實現(xiàn)有效復(fù)位15。后備電池BAT1通過二極管D2連接到主控芯片的VBAT腳,實現(xiàn)系統(tǒng)“掉電不掉時”的功能,如圖3-4。圖34復(fù)位電路和后備電源電路3.2.2 TFT液晶屏的硬件電路設(shè)計TFT-LCD(Thin Film Transistor-Liquid Crystal Display)即薄膜晶體管液晶顯示器。TFT-LCD與無源TN
24、-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設(shè)置有一個薄膜晶體管(TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。實物如圖3-5。圖35TFT觸控液晶模塊本設(shè)計使用的TFT-LCD液晶屏使用的控制芯片為ILI9320,屏幕尺寸為2.8寸,320*250像素,26萬真彩,通過16位并行方式連接主控芯片。該液晶刷頻速度快,顯示效果能滿足實際需求。該液晶模塊中還整合了觸控芯片XPT2046,通過SPI通訊和主控芯片連接,以實現(xiàn)快速觸摸識別10。該液晶模塊和主控芯片的硬件連接圖3-6。圖36TFT觸控液晶模塊連接電路3.2.
25、3 WT588D語音模塊的硬件電路設(shè)計本設(shè)計的語音功能采用WT588D語音模塊來實現(xiàn)。這是帶32Mbit的SPI-Flash存儲器、內(nèi)嵌DSP高速音頻處理器、13Bit的DA轉(zhuǎn)換器和12Bit的PWM輸出的DIP28封裝的語音模塊。DSP高速音頻處理器讓該模塊有較快的音頻處理速度,12Bit的PWM輸出讓該快具有良好的音質(zhì),可直接驅(qū)動0.5W/8揚聲器,推挽電流充沛。該模塊可以通過專業(yè)的上位機軟件VoiceChip V-B建立語音工程,可隨意組合語音塊、插入10ms25min的靜音,插入的靜音不占用內(nèi)存的容量,一個已加載語音可重復(fù)調(diào)用到多個地址,語音工程編譯之后用USB下載方式下載到模塊中,支
26、持在線下載和脫機下載,在WT588D語音芯片通電的情況下,也一樣可以正常下載數(shù)據(jù)到模塊中。語音塊支持WAV格式的6K22KHz采樣率的音頻。該模塊的BUSY引腳能輸出語音播放狀態(tài)信號,為編程提供方便。該模塊的工作電壓為直流2.8V5.5V,在語音播放停止時會馬上進入休眠模式,芯片轉(zhuǎn)為完全停止狀態(tài),靜態(tài)休眠電流小于10uA,這些都決定了該模塊是一個低功耗的模塊。WT588D語音模塊的結(jié)構(gòu)如圖3-7。圖37WT588D語音模塊結(jié)構(gòu)圖WT588D與主控芯片的硬件連接如圖3-8。圖38WT588D與主控芯片的硬件連接圖圖中P2為0.5W/8的揚聲器,與模塊的正負PWM輸出連接,該模塊的復(fù)位引腳連接主控
27、芯片的IO口PA3,由于該模塊與主控芯片為一線串口通訊模式,所以只需使用模塊的P03引腳即可,這里我們連接主控芯片的PA2口。該模塊的VDD供電為DC2.85.5V,VCC為DC2.83.6V。采用DC3.3V供電時,可以直接短接VDD跟VCC,但考慮到使用環(huán)境聲音嘈雜,故VDD供5V以提供較大的音量。BUSY連接發(fā)光二級管指示模塊的工作狀態(tài),當模塊發(fā)音時二極管亮,不發(fā)音時不亮。3.2.4 電源模塊的硬件電路設(shè)計本設(shè)計的主控芯片和TFT觸控液晶模塊需要3.3V電壓,WT588D語音模塊、HX711芯片和蜂鳴器需要5V電壓。考慮到本設(shè)計產(chǎn)品的功耗較低和方便攜帶的問題,使用9V層積電池作為主電源供
28、電,具體電路如圖3-9。39系統(tǒng)電源電路圖如圖使用9V層積電池為主電源,通過穩(wěn)壓芯片AMS1117-3.3得到3.3V的電壓,供主控芯片和TFT觸控液晶模塊使用,通過穩(wěn)壓芯片LM7805得到5V的電壓,供WT588D語音模塊、HX711芯片和蜂鳴器使用3。第4章 測量裝置的軟件設(shè)計及其優(yōu)化對于一個測量系統(tǒng)來說,功能的實現(xiàn)除了硬件電路之外,軟件處理是必不可少的。硬件是系統(tǒng)的肉體,軟件是系統(tǒng)的靈魂,軟件決定了產(chǎn)品的思想,對一個產(chǎn)品至關(guān)重要。4.1 單片機軟件設(shè)計流程本設(shè)計的軟件部分大致流程如圖4-1。圖41軟件流程圖系統(tǒng)上電后首先執(zhí)行各個功能模塊的初始化,初始化包括功能模塊內(nèi)部功能的設(shè)置和與主控芯
29、片連接的IO口模式的設(shè)置,初始化完后該系統(tǒng)會讀取A/D值然后作為零重量的A/D值(取零點),在取完零點后顯示該系統(tǒng)固定不變的內(nèi)容,如鍵盤,顯示項目等。在做完所有準備工作之后系統(tǒng)進入程序死循環(huán),在死循環(huán)中主要完成A/D值的采集,數(shù)據(jù)處理和數(shù)據(jù)顯示刷新。觸摸程序的處理是在中斷程序中執(zhí)行的4.2 各個模塊的程序設(shè)計思路及部分代碼4.2.1 TFT觸控液晶模塊部分本設(shè)計選用的TFT觸控液晶模塊的顯示部分程序流程如圖4-2。圖42TFT觸控液晶模塊程序流程圖TFT觸控液晶屏的初始化包括主控芯片與模塊相連IO口工作模式的設(shè)置和顯示驅(qū)動芯片ILI9320的初始化,其具體設(shè)置如下:IO口PB015作為液晶顯示
30、的數(shù)據(jù)口,采用16位并行方式連接。當主控芯片從模塊讀數(shù)據(jù)時設(shè)置為上拉輸入模式,寫數(shù)據(jù)時設(shè)置為上拉輸出模式。其余引腳如8080并口的信號線CS、WR、RD和RS都設(shè)為推挽輸出模式11。對于顯示驅(qū)動芯片ILI9320的初始化,首先讀取TFTLCD的控制芯片的型號,然后再根據(jù)具體型號向芯片寫入一系列的特定命令,例如開啟振蕩器、設(shè)置縱向26萬色顯示、設(shè)置縱向更新GRAM等,然后啟動TFTLCD的顯示,整屏填充白色13。在程序工程中初始化函數(shù)為:void LCD_Init(void)。通過函數(shù)將字符和數(shù)字顯示到TFTLCD模塊上。本設(shè)計編寫的各個功能函如下:顯示數(shù)字的函數(shù):void LCD_ShowNu
31、m(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode);顯示一個字符串的函數(shù):void LCD_ShowString(u16 x,u16 y,const u8 *p);顯示漢字的函數(shù):void Show_Str(u16 x, u16 y, u8 *str, u8 mode);繪制矩形的函數(shù):void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);系統(tǒng)顯示界面如圖4-3。圖43開機前的初始化界面圖44使用時的主界面TFT觸控液晶屏的觸控部分程序流程如圖4-5。圖45觸控部分程序流程圖在初始化程序中主要執(zhí)行T
32、FT觸控液晶模塊和主控芯片連接的IO配置和中斷初始化,觸控芯片XPT2046與主控芯片采用模擬SPI通訊,接口MOSI、SCK、CS都設(shè)為推挽輸出模式,SPI的MISO和觸控標志PEN設(shè)置為上拉輸入模式。此外還初始化了外部中斷,當有觸控動作時,觸控動作產(chǎn)生的下降沿會觸發(fā)中斷,進而執(zhí)行中斷服務(wù)函數(shù)11。中斷服務(wù)函數(shù)中包括了鍵值掃描(根據(jù)觸摸位置返回不同鍵值)和一些設(shè)置界面的標志位處理。在初始化完后還要進行觸控點和液晶顯示位置的匹配。每觸摸一次屏幕,觸控芯片XPT2046都會得出一個觸控點坐標,液晶屏自身有像素坐標,這兩個坐標之間的關(guān)系是線性的,因此計算公式如下:XLCD=Xfac*Px+xoff
33、;YLCD=Yfac*Py+yoff。式中的XLCD和YLCD是液晶屏上的像素坐標;Xfac和Yfac是觸摸屏上讀出的觸控點坐標;Px和Py分別為兩坐標的比例系數(shù);xoff和yoff是橫向和縱向的偏移量。在程序工程中關(guān)于觸控的主要功能函數(shù)如下:觸控初始化函數(shù):void Touch_Init(void);觸控點校準程序:void Convert_Pos(void);觸控鍵值掃描函數(shù):u8 touch_scan(void)。4.2.2 WT588D語音模塊部分在使用WT588D語音模塊前需要將語音塊下載到模塊中,然后再通過主控芯片向WT588D芯片發(fā)送命令,WT588D調(diào)用flash的語音進而發(fā)音
34、。本設(shè)計中使用語音合成軟件合成09、十、百、千和各個商品等的讀音,然后通過VoiceChip V-B編譯軟件來建立語音工程,將各個語音塊對應(yīng)到flash的固定地址,然后編譯下載到WT588D語音模塊中。VoiceChip V-B的語音工程如圖4-6。圖46VoiceChip V-B建立的語音工程WT588D語音模塊與主控芯片之間采用一線串口通訊模式,主控芯片通過模塊的DATA腳發(fā)送指令,從而控制WT588D芯片調(diào)用flash發(fā)某個音。一線串口通訊模式時序如圖4-7。圖47WT588D時序圖一線串口是只通過一條數(shù)據(jù)通信線控制時序,根據(jù)時序電平的占空比不同來代表0或1。先拉低RESET復(fù)位信號5m
35、s,然后置高電平等待大于17ms的時間,再將數(shù)據(jù)信號拉低5ms,最后發(fā)送數(shù)據(jù)。若高電平與低電平的時間比為1:3則代表數(shù)據(jù)位0,3:1則代表數(shù)據(jù)位1,且高電平在前,低電平在后,先發(fā)數(shù)據(jù)的低位再發(fā)高位。圖4-7中D0D7表示一個地址或者命令數(shù)據(jù),數(shù)據(jù)中的00HDBH是地址指令,F(xiàn)2H是循環(huán)播放命令,F(xiàn)EH是停止播放命令,E0HE7H是音量調(diào)節(jié)命令。本設(shè)計的程序工程中WT588D模塊的程序流程圖如圖4-8。圖48WT588D的程序流程圖在初始化部分中設(shè)置主控芯片與WT588D模塊相連接的IO口。WT588D模塊的SDA、REST設(shè)置為上拉推挽輸出模式,BUSY設(shè)置為上拉輸入模式。當WT588D接收到
36、指令后調(diào)用flash內(nèi)的語音進行發(fā)音。程序中利用模塊的BUSY信號來判斷是否完成發(fā)音。根據(jù)WT588D模塊的時序圖編寫寫數(shù)據(jù)函數(shù)void send_dat(u8 addr)(由于該模塊與主控芯片的連接為單向,所以無需編寫讀數(shù)據(jù)函數(shù)),具體代碼如下:void send_dat(u8 addr)u8 i;rst=0;delay_ms(5);/復(fù)位信號保持低電平5msrst=1;delay_ms(17);/復(fù)位信號保持低電平17mssda=0;delay_ms(5);/數(shù)據(jù)信號置于低電平5msfor(i=0;i<8;i+)sda=1;/無論是1還是0 sda都是先高電平if(addr &
37、; 1)delay_us(600);/高電平比低電平為600us:200us,表示發(fā)送數(shù)據(jù)1sda=0;delay_us(200);elsedelay_us(200);/高電平比低電平為200us:600us,表示發(fā)送數(shù)據(jù)0sda=0;delay_us(600);addr>>=1;sda=1;將語音合成軟件合成的語音碎片通過程序組織起來,形成語音。各函數(shù)功能如下:播報09999任意整數(shù)函數(shù):void pronounce_num(u16 t);播報小數(shù)點后三位數(shù)函數(shù):void pronounce_point3num(u16 t);播報小數(shù)點后兩位數(shù)函數(shù):void pronounce_
38、point2num(u8 t)。4.2.3 HX711芯片部分HX711是一個可編程多通道可選增益的A/D轉(zhuǎn)換芯片。通過PD_SCK的脈沖個數(shù)來選擇轉(zhuǎn)換通道和增益,其時序如圖4-9。圖49HX711設(shè)置時序圖其中T1為DOUT下降沿到PD_SCK脈沖上升沿的時間,最小值為0.1us;T2為PD_SCK脈沖上升沿到DOUT數(shù)據(jù)有效的時間,最大不能超過0.1us;T3為PD_SCK正脈沖電平時間,最小為0.2us;T4為PD_SCK負脈沖電平時間,最小為0.2us。HX711程序流程如圖4-10。圖410HX711程序流程圖在初始化程序中完成主控芯片與HX711芯片連接的IO口配置。HX711芯片
39、的PD_SCK設(shè)置為推挽輸入,DOUT設(shè)置為上拉輸入。程序工程中HX711的初始化函數(shù)為void HX711_int(void)。根據(jù)HX711芯片的時序圖編寫寫數(shù)據(jù)函數(shù)u32 Read_HX711(void)(由于該芯片只需發(fā)數(shù)據(jù)給主控芯片,所以無需編寫寫入數(shù)據(jù)的函數(shù))具體函數(shù)代碼如下:u32 Read_HX711(void)u32 count=0;u8 i;AD_sck=0;while(AD_dout);/AD_dout為1時表明A/D轉(zhuǎn)換器還未準備好for(i=0;i<24;i+)AD_sck=1;/上升沿count=count<<1;AD_sck=0;if(AD_do
40、ut)count+;AD_sck=1;count=count0x;AD_sck=0;return count;4.2.4 DS18B20芯片部分DS18B20通過單總線和主控芯片連接,時序比較復(fù)雜。DS18B20部分的程序流程如圖4-11。圖411DS18B20程序流程圖在初始化中主要完成主控芯片與DS18B20相連的數(shù)據(jù)引腳的時鐘的開啟和復(fù)位DS18B20。在初始化完后檢測DS18B20是否正常,檢測DS18B20是否存在的時序如圖4-12。圖412DS18B20檢測時序首先由主控芯片拉低總線480us960us,然后等待15us60us,之后芯片自己會拉低總線,主控芯片通過檢測是否有低電平
41、來判斷DS18B20是否存在,具體代碼如下3:u8 DS18B20_Check(void)u8 retry=0;DS18B20_IO_IN();/SET PA0 INPUTwhile (DS18B20_DQ_IN&&retry<200)retry+;delay_us(1);if(retry>=200)return 1;else retry=0;while (!DS18B20_DQ_IN&&retry<240)retry+;delay_us(1);if(retry>=240)return 1;elsereturn 0;該函數(shù)返回1則總線上沒
42、有DS18B20,返回0則有。DS18B20的寫時序如圖4-13。圖413DS18B20寫時序如果要寫“0”則主控芯片拉低總線60us120us,在開始拉低總線15us后DS18B20會開始檢測總線狀態(tài),此時會檢測到低電平3。如果要寫“1”則至少拉低總線1us后釋放總線即可,之后DS18B20會檢測總線狀態(tài)。寫兩位數(shù)據(jù)的間隔要大于1us。DS18B20的寫函數(shù)void DS18B20_Write_Byte(u8 dat)具體代碼如下:void DS18B20_Write_Byte(u8 dat)u8 j;u8 testb;DS18B20_IO_OUT();/SET PA0 OUTPUT;for
43、 (j=1;j<=8;j+)testb=dat&0x01;dat=dat>>1;if (testb)DS18B20_DQ_OUT=0;/ Write 1delay_us(2);DS18B20_DQ_OUT=1;delay_us(60);elseDS18B20_DQ_OUT=0;/ Write 0delay_us(60);DS18B20_DQ_OUT=1;delay_us(2);DS18B20的讀時序如下圖4-14。圖414DS18B20讀時序首先主控芯片先拉低總線至少1us,然后釋放總線并檢測總線狀態(tài),如果是低電平則讀到的是“0”,高電平則讀到的是“1”,讀兩個值之間
44、間隔至少1us17。本例中讀函數(shù)u8 DS18B20_Read_Bit(void)和u8 DS18B20_Read_Byte(void)代碼如下:u8 DS18B20_Read_Bit(void)/ read one bitu8 data;DS18B20_IO_OUT();/SET PA0 OUTPUTDS18B20_DQ_OUT=0; delay_us(2);DS18B20_DQ_OUT=1; DS18B20_IO_IN();/SET PA0 INPUTdelay_us(12);if(DS18B20_DQ_IN) data=1;else data=0; delay_us(50);return
45、 data;u8 DS18B20_Read_Byte(void)/ read one byteu8 i,j,dat;dat=0;for (i=1;i<=8;i+)j=DS18B20_Read_Bit();dat=(j<<7)|(dat>>1);return dat;5174.2.5 實時時鐘部分本設(shè)計的實時時鐘顯示功能通過使用STM32F103RBT6內(nèi)部的RTC模塊來實現(xiàn)。主控芯片內(nèi)部的實時時鐘是一個獨立的定時器,位于后備區(qū)域,所以在系統(tǒng)復(fù)位后或者待機喚醒后都不會影響時間。在硬件方面還添加了3V的紐扣電池作為后備電源,所以即使掉電后該定時器仍能運行,且不“掉時”
46、。實時時鐘的程序設(shè)計流程圖如圖4-15。圖415實時時鐘的程序流程圖在初始化中主要完成開啟電源時鐘和備份區(qū)域時鐘,然后取消備份區(qū)的寫保護,以便后續(xù)向備份區(qū)寫數(shù)據(jù),最后向備份區(qū)寫數(shù)據(jù),設(shè)置寄存器,開啟RTC。然后通過代碼:const u8 *COMPILED_DATE=_DATE_;/獲得編譯日期const u8 *COMPILED_TIME=_TIME_;/獲得編譯時間獲得編譯時間,后檢測RTC的時間是否已經(jīng)設(shè)置,如果未設(shè)置則將編譯時間設(shè)置為當前時間,若已經(jīng)設(shè)置則直接退出RTC程序。RTC的一些主要函數(shù)如下:RTC的初始化函數(shù):u8 RTC_Init(void);RTC的時間設(shè)置函數(shù):u8 R
47、TC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec);獲得RTC當前時間函數(shù):u8 RTC_Get(void);4.2.6 數(shù)據(jù)計算部分稱重傳感器有良好的線性度,本設(shè)計使用線性擬合軟件CurveExpert 1.3來擬合A/D值與實際重量之間的線性函數(shù)18。CurveExpert 1.3擬合后繪制的函數(shù)關(guān)系圖如圖4-15,計算結(jié)果如圖4-16。圖416A/D值與實際重量之間的函數(shù)關(guān)系圖圖417擬合計算后的結(jié)果擬合函數(shù)為y=a+bx,其中a=17668.847,b=-0.,Y是實際重量,X是當前重量的A/D19。我們只需將采集的A/D值代
48、入函數(shù)中運算即可求出相對應(yīng)重量,相應(yīng)函數(shù)代碼如下:u32 Weight_Get(s16 zero_point, u32 AD_val)u32 weight;AD_val = AD_val/100;/AD_val舍棄最后兩位weight = (u32) (-0.*(AD_val + zero_point) +17668.847);/經(jīng)擬合的函數(shù)return weight;5通過函數(shù)u32 Weight_Get(s16 zero_point, u32 AD_val)計算后所得的重量與實際重量還是有所差距,差距表現(xiàn)為:隨著實際重量的增加,越來越大,且均偏小。針對此微小的非線性問題,本設(shè)計采用分段補償
49、的方法,即以500克為單位,每增加500克補償1克。4.3 提高測量精度的數(shù)字濾波軟件設(shè)計對于測量系統(tǒng)來說,精度是一個重要的性能指標,在本課題設(shè)計的測量系統(tǒng)中,除了硬件中的濾波設(shè)計,還通過軟件設(shè)計數(shù)字濾波器的方法提高測量精度。本設(shè)計使用的是中位值平均濾波法(亦稱防脈沖干擾平均濾波法),這種方法相當于“中位值濾波法”和“算術(shù)平均濾波法”的結(jié)合,即連續(xù)采樣N個數(shù)據(jù),去掉X個最大值和最小值,然后計算N-2X個數(shù)據(jù)的平均值。這種濾波方法融合了中位值濾波法和算術(shù)平均濾波法的優(yōu)點,能有效地消除脈沖干擾所引起的采樣值偏差。由于本設(shè)計所使用的單片機主頻較高,且電子秤的重量顯示速度要求不高,所以連續(xù)采集12個數(shù)
50、據(jù),去掉1個最大值和1個最小值取平均數(shù)。濾波程序如下:u32 HX711_val_filtered(void)u32 Sam12,tmpmax,tmpmin,sum=0,Average;u8 i;for(i=0;i<12;i+)Sami=Read_HX711();if(i=0)tmpmax=Sam0;tmpmin=Sam0;if(i>0)if(Sami>tmpmax) tmpmax=Sami;if(Sami<tmpmin) tmpmin=Sami;for(i=0;i<12;i+)if(!(Sami=tmpmax|Sami=tmpmin)sum=sum+Sami;A
51、verage=sum/(12-2);return Average;5結(jié) 論經(jīng)過反復(fù)測試和與標準值的對比,本設(shè)計成品語音電子秤完成了所有預(yù)期功能,誤差在±2g范圍內(nèi),分度值達到1g,量程為010kg;在使用語音功能時能準確播報重量、商品名、單價、總額等,在超重情況下能發(fā)出語音警報;實時時鐘運行準確,掉電后再上電能保存時間,無需設(shè)置時間。在所有預(yù)期功能完成的基礎(chǔ)上,還增加了保存10種商品單價的功能,并且能隨意調(diào)用;增加了計算出的價格能累加求出此次購物的總額;增加了去皮等功能。在實測中,A/D芯片采集的數(shù)據(jù)較穩(wěn)定,波動小,這都歸功于數(shù)字濾波算法和硬件濾波電路。對于電子秤來說A/D轉(zhuǎn)換是核心
52、,如果沒有穩(wěn)定可靠的數(shù)據(jù)絕對不能得到準確的重量。TFT液晶屏的穩(wěn)定實時,沒有絲毫卡頓現(xiàn)象,良好的顯示歸功于STM32F103芯片72MHz的工作頻率和16位并口連接方式,得以實現(xiàn)快速刷屏。在觸屏控制中,觸點與液晶像素對應(yīng)準確,觸控操作時響應(yīng)迅速,十分“跟手”,沒有延遲卡頓顯現(xiàn)象。在語音方面,由于使用語音塊拼接的方式組合發(fā)音語句,且語音塊由軟件合成(非真人發(fā)音),這些都導(dǎo)致了語音功能不夠理想,語音無感情,在語音塊的銜接方面還做得不夠理想,語音不夠自然。本設(shè)計使用9V層積電池為整個系統(tǒng)供電,所以電池續(xù)航時間短,不夠理想。在此后產(chǎn)品升級中應(yīng)加強對系統(tǒng)供電器件容量方面的考慮,以增加系統(tǒng)工作時間,提高系
53、統(tǒng)的實用性。致 謝經(jīng)過這學期的奮戰(zhàn),我終于完成了電子秤論文的設(shè)計,在此我衷心地感謝我的指導(dǎo)老師張福才,在他的精心指導(dǎo)下我才能完成這個畢業(yè)設(shè)計。此論文的撰寫經(jīng)歷了選題、搜集資料、擬寫開題報告、任務(wù)書、確定框架、中期答辯到反復(fù)修改,期間有喜有悲,但喜大于悲,因為每次遇到問題后在張老師的引導(dǎo)下都能迎刃而解?,F(xiàn)在這篇畢業(yè)論文的最終定稿了,再回望以前遇到的問題,我的成就感油然而生。在此要感謝的人實在太多,首先我要感謝的是指導(dǎo)老師張福才,因為論文是在張老師的悉心引導(dǎo)和耐心幫助下完成的。張老師平時總是一副快樂微笑的表情,給人一種平易近人,樸實無華的感覺,幽默的張老師對待生活總是持樂觀的態(tài)度。生活中的張老師給人以喜感,但在學習交流中,張老師是另一幅面孔,對待問題嚴謹,對學術(shù)苛求極致,對學生要求極其嚴格,他最討厭學生弄虛作假。學識淵博的張老師善于引導(dǎo)學生自己解決問題,以創(chuàng)新的思路開發(fā),嚴謹?shù)淖黠L感染了我,這必定會在我未來的工作生活中產(chǎn)生深遠的影響。時光飛逝,歲月如梭,和張老師的交流合作我感覺很短暫,但對我的影響是深遠的,他永遠是我的恩師。在最后我祝愿張福才老師身體健康、桃李滿天下。參考文獻1 張洋.原子教你玩STM32(庫函數(shù)版)M. 北京航空航天大學出版社. 第一版2013(4):20-34+42-512 劉軍
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年冷鏈物流溫控技術(shù)在冷鏈物流企業(yè)可持續(xù)發(fā)展中的應(yīng)用報告
- 互聯(lián)網(wǎng)金融平臺合規(guī)監(jiān)管政策對行業(yè)風險防范能力影響報告
- 醫(yī)療健康類出版物的數(shù)字化與紙質(zhì)版的共存策略
- 探索數(shù)字媒體藝術(shù)在文化傳承中的價值
- 2025年教育行業(yè)數(shù)字化營銷與招生策略的電子郵件營銷研究報告
- 小學數(shù)學教育與醫(yī)療科技的跨界融合
- 主題樂園項目景觀設(shè)計與游樂設(shè)施規(guī)劃
- 老舊小區(qū)排污與垃圾處理系統(tǒng)優(yōu)化方案
- 從數(shù)字化到智能化企業(yè)工作流的未來展望
- 基于科技的兒童近視預(yù)防干預(yù)措施研究
- 部編版三年級語文下冊口語交際:勸告 課件
- 《藥物分析與檢驗技術(shù)》課件-異煙肼中游離肼的檢查方法
- 手術(shù)室的健康教育
- 海水的淡化技術(shù)及應(yīng)用
- 食堂餐飲服務(wù)方案
- 中職學校設(shè)計說明
- 醫(yī)保政策下物價培訓課件
- 加油站安全風險分級管控和隱患排查治理雙重預(yù)防機制運行手冊
- 攻博計劃書模版
- 2024年《大學語文》期末考試復(fù)習題庫(含答案)
- 早產(chǎn)的護理查房課件
評論
0/150
提交評論