版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要電子秤是一種我們?nèi)粘I钪薪?jīng)常使用的稱重工具,相較于傳統(tǒng)的桿秤來說,同時也是一種集聚了多種現(xiàn)代高科技技術(shù)于一體的現(xiàn)代新型稱重儀器。電子秤主要以單片機作為控制中心,通過稱重傳感器采集數(shù)據(jù),然后使用A/D轉(zhuǎn)換器進行數(shù)據(jù)轉(zhuǎn)換,輔以鍵盤,顯示器,再配合相應(yīng)的軟件來實現(xiàn)的。電子稱使用起來方便快捷,測量準(zhǔn)確,精度高,穩(wěn)定性強,更重要的是能夠?qū)崿F(xiàn)自動稱重、重量實現(xiàn)數(shù)字化顯示,極大地便利了人們的生活,滿足了人們對于稱重的需求,所以越來越受到人們的歡送。經(jīng)過仔細研究,本系統(tǒng)設(shè)計最終決定選用新一代STC89C52RC單片機來制作完成課題所要求的電子秤,使其作為主控電路的核心,實現(xiàn)電子秤的所有功能。在設(shè)計過程中,系統(tǒng)增加了時鐘模塊的功能,系統(tǒng)由單片機控制核心,數(shù)據(jù)采集,人機交互,系統(tǒng)電源和時鐘五大局部組成。單片機主控電路局部由除了STC89C52R之外,還有報警器及其相關(guān)電路組成;電阻應(yīng)變式壓力傳感器,信號放大電路和A/D轉(zhuǎn)換器那么構(gòu)成了數(shù)據(jù)采集局部,其中信號放大電路和A/D轉(zhuǎn)換器局部那么選用內(nèi)部自帶放大器的專用型AD轉(zhuǎn)換芯片HX711實現(xiàn),它的特點是轉(zhuǎn)換精度很高,應(yīng)用起來簡單方便;人機交互局部那么選用矩陣鍵盤作為輸入設(shè)備,LCD1602液晶顯示器作為顯示設(shè)備;系統(tǒng)電源采用電腦USB接口供電,這樣電路簡單且電壓穩(wěn)定;時鐘局部選用DS1302時鐘芯片,再結(jié)合相關(guān)電路組成時鐘電路。軟件局部通過使用C語言編程實現(xiàn)了本課題要求的全部功能。該電子秤能夠滿足課題所要求的稱重功能的同時,并對時鐘功能進行了豐富,增加了鬧鐘功能,稱重范圍為0~5Kg;能夠顯示所稱物體重量、單價、總價。關(guān)鍵詞:電子秤;單片機;稱重傳感器;HX711。目錄TOC\o"1-3"\h\u第一章緒論11.1研究的背景和意義11.2研究現(xiàn)狀11.3主要研究內(nèi)容21.4本文的組織結(jié)構(gòu)2第二章系統(tǒng)方案的設(shè)計32.1電子秤的設(shè)計要求32.1.1根本要求32.1.2特色和創(chuàng)新32.2系統(tǒng)的設(shè)計思路及工作原理32.2.1工作原理32.2.2根本設(shè)計思路32.3系統(tǒng)元器件選型及參數(shù)介紹5單片機選型52.3.2數(shù)據(jù)采集局部6人機交互局部82.3.4電源局部92.3.5具體實施方案簡介9第三章系統(tǒng)的硬件設(shè)計113.1基于STC89C52的主控電路113.2數(shù)據(jù)采集系統(tǒng)123.2.1稱重傳感器123.2.2A/D轉(zhuǎn)換電路133.3顯示電路143.4時鐘電路153.5報警電路163.6鍵盤163.7系統(tǒng)硬件電路的繪制18軟件介紹18系統(tǒng)原理圖的繪制19第四章軟件設(shè)計204.1主程序流程圖20時鐘模塊程序20稱重模塊程序21重要的子程序224.2主要中斷程序流程圖254.3核心代碼26第五章系統(tǒng)的調(diào)試265.1調(diào)試過程中遇到的問題265.2誤差分析以及調(diào)試結(jié)果275.2.1誤差來源27調(diào)試結(jié)果275.2.3結(jié)果分析29結(jié)束語30致謝31參考文獻32附錄A33附錄B34附錄C35第一章緒論1.1研究的背景和意義電子秤是一種與人民現(xiàn)實生產(chǎn)生活息息相關(guān),被廣泛應(yīng)用于各個領(lǐng)域的電子衡器,諸如工業(yè)生產(chǎn),商業(yè)貿(mào)易,交通運輸,港口,機械制造,醫(yī)療保健,冶金,礦山和國防建設(shè)等各個方面。和傳統(tǒng)的桿秤進行比照,電子秤具備諸多優(yōu)點,例如:它的精度很高,結(jié)構(gòu)簡單,價格低,用途廣泛,便于攜帶,使用方便等優(yōu)點。電子稱的工作原理也不難理解,它通過壓力傳感器采集物體重量信息,將其轉(zhuǎn)換為電信號,進行適當(dāng)?shù)男盘柗糯筇幚?,再通過A/D轉(zhuǎn)換器將模擬電信號轉(zhuǎn)換為數(shù)字信號,最后經(jīng)過單片機的控制處理,送到液晶顯示器顯示出被測物體的重量信息。目前市場上使用的稱量工具,各個公司的產(chǎn)品質(zhì)量良莠不齊,有的質(zhì)量較高但價格太高,有的價格不高但質(zhì)量太差,容易損壞,精度不高,穩(wěn)定性差,運行不可靠。所以目前商用的電子秤市場上,商用電子秤的總體質(zhì)量不高,這種情況是由多種因素造成的,例如某些公司因為資金有限,造成科技人才儲藏缺乏,從而使其技術(shù)力量不夠強,科技研發(fā)能力缺乏,造成產(chǎn)品質(zhì)量不高。因此,開發(fā)出一種質(zhì)量較高但本錢不高,具有較高性價比且具有實際實用價值的電子秤,克服電子秤在實際使用中的諸多缺點,具有一定的現(xiàn)實意義。1.2研究現(xiàn)狀國內(nèi)有關(guān)電子秤技術(shù)的研究相比國外來說起步晚了很多,不過在國內(nèi)科學(xué)家的努力下,近些年我們奮起直追,技術(shù)水平有了極大提升,取得了很多成果。從上世紀(jì)六十年代第一臺電子秤的誕生,到如今的微機式產(chǎn)品,在某些技術(shù)領(lǐng)域甚至到達了國際領(lǐng)先水平。我們僅僅用了幾十年的時間就到達了興旺國家花費近一百年才能夠到達的技術(shù)水平。但是總體來說,目前國內(nèi)電子衡器的技術(shù)水平仍然不算太高,僅僅與興旺國家上世紀(jì)九十年代的水平相當(dāng)。與國外產(chǎn)品相比,我國商用產(chǎn)品在品種,功能,質(zhì)量,核心部件的穩(wěn)定性和可靠性方面還有不小的差距。經(jīng)過一百多年的開展,興旺國家已經(jīng)在電子秤有關(guān)的各個領(lǐng)域都到達了很高的水平,例如技術(shù)水平、產(chǎn)品種類等等,最重要的是他們產(chǎn)品的精確度,穩(wěn)定性,可靠性都相當(dāng)高。如他們商用秤的精度已經(jīng)到達OIML規(guī)定,有的產(chǎn)品甚至遠超此規(guī)定;另外它們的穩(wěn)定性也極強,在一年內(nèi)不允許有超差情況出現(xiàn);同時這些產(chǎn)品的使用壽命通常被要求能夠正常工作十幾年,由此可見其可靠性也很高。簡而言之,在電子秤技術(shù)領(lǐng)域,國內(nèi)企業(yè)還有很長的路要走?,F(xiàn)在電子秤技術(shù)的開展趨勢總的來說是朝著智能化的方向開展;電子秤的功能會越來越豐富;電子秤的速率會越來越高,準(zhǔn)確率和穩(wěn)定性會越來越高,可靠性也會越來越強[2];1.3主要研究內(nèi)容本課題主要完成稱重自動控制功能,本系統(tǒng)采用單片機STC89C52RC來制作完成課題所要求的電子秤,使其作為主控電路的核心,實現(xiàn)電子秤的所有功能,經(jīng)過設(shè)計,系統(tǒng)由單片機控制核心,數(shù)據(jù)采集,人機交互,系統(tǒng)電源和時鐘五大局部組成。由系統(tǒng)電源、壓力傳感器、A/D轉(zhuǎn)換器、51單片機、鍵盤、LCD液晶顯示器,時鐘芯片等器件共同構(gòu)成了系統(tǒng)硬件局部的五大模塊。使用單片機編程軟件運用C語言編程實現(xiàn)要求的功能,從而完成系統(tǒng)軟件局部的設(shè)計。需要到達以下的技術(shù)指標(biāo):稱量范圍0-5kg;電子秤稱重時能顯示物品重量,還能進行單價設(shè)定,并能自動算出總價并顯示出來,超重時還要能夠發(fā)出警報。假設(shè)不進行稱量操作,那么能夠顯示時間,且具有鬧鐘功能。1.4本文的組織結(jié)構(gòu)本文對電子秤的設(shè)計和具體實現(xiàn)方法作了具體的描述,對整個系統(tǒng)的各個組成局部及涉及的相關(guān)技術(shù)進行了介紹,例如壓力傳感器,A/D轉(zhuǎn)換器,51單片機,鍵盤輸入,電源局部,報警電路,時鐘芯片,顯示器等等??偣矂澐至宋逭聝?nèi)容,如下所示。第一章:簡要介紹了電子秤的概念,特點,技術(shù)現(xiàn)狀和研究內(nèi)容。第二章:論證了系統(tǒng)方案,介紹了相關(guān)的原理及相關(guān)器件,比照了各種方案的優(yōu)缺點。第三章:對相關(guān)芯片以及相應(yīng)模塊的功能作了細致的分析,給出了單片機控制方案。第四章:介紹了系統(tǒng)的軟件設(shè)計。第五章:對最終的成品設(shè)計作了相應(yīng)的調(diào)試,分析,給出了最終的結(jié)論。第二章系統(tǒng)方案的設(shè)計2.1電子秤的設(shè)計要求2.1.1根本要求〔1〕電子秤稱重范圍:0~5Kg;重量誤差不超過+0.003Kg。〔2〕LED顯示所稱物體重量、單價、總價?!?〕超量程報警功能?!?〕不稱重時,可以顯示時間。2.1.2功能擴展〔1〕液晶顯示所稱重物品的重量,同時還可以顯示物品的單價,總價。〔2〕能夠?qū)崿F(xiàn)去除皮重的功能?!?〕能夠顯示時間的同時,實現(xiàn)了鬧鐘功能。2.2系統(tǒng)的設(shè)計思路及工作原理2.2.1工作原理電子秤通過壓力傳感器采集物體重量信息,將其轉(zhuǎn)換為電信號,進行適當(dāng)?shù)男盘柗糯筇幚?,再通過A/D轉(zhuǎn)換器將模擬電信號轉(zhuǎn)換為數(shù)字信號,然后經(jīng)過單片機的處理,最后送到液晶顯示器顯示出被測物體的重量信息[4]。2.2.2根本設(shè)計思路 系統(tǒng)由單片機控制核心,數(shù)據(jù)采集,人機交互,系統(tǒng)電源和時鐘五大局部組成。單片機主控電路局部由除了STC89C52R之外,還有報警器及其相關(guān)電路組成;電阻應(yīng)變式壓力傳感器,信號放大電路和A/D轉(zhuǎn)換器那么構(gòu)成了數(shù)據(jù)采集局部,其中信號放大電路和A/D轉(zhuǎn)換器局部那么選用內(nèi)部自帶放大器的專用型AD轉(zhuǎn)換芯片HX711實現(xiàn),它的特點是轉(zhuǎn)換精度很高,應(yīng)用起來簡單方便;人機交互局部那么選用矩陣鍵盤作為輸入設(shè)備,LCD1602液晶顯示器作為顯示設(shè)備;系統(tǒng)電源采用電腦USB接口供電,這樣電路簡單且電壓穩(wěn)定;時鐘局部選用DS1302時鐘芯片,再結(jié)合相關(guān)電路組成時鐘電路。使用單片機編程軟件運用C語言編程實現(xiàn)要求的功能,并對時鐘功能進行豐富,增加了鬧鐘功能。2.3系統(tǒng)總體設(shè)計方案比擬與論證在設(shè)計本系統(tǒng)時,有以下幾種電子秤設(shè)計方案:方案一:數(shù)碼管方案結(jié)構(gòu)簡圖如圖2-1所示。圖2-1數(shù)碼管顯示方案這種設(shè)計方案雖然能夠滿足課題的根本要求,能夠完成物品稱重的同時,顯示重量、單價、總價等信息??墒沁@種方案也有其致命缺陷,如果數(shù)碼管較少,那么不能同時顯示重量、單價、總價等信息,這是因為數(shù)碼管本身的缺陷引起的。如果要同時顯示多個信息,就必須在電路中安裝大量數(shù)碼管,但是這樣會大幅增加硬件電路設(shè)計的難度。方案二:在模數(shù)轉(zhuǎn)換之前,加上放大器,用于準(zhǔn)確的線性放大輸出電壓信號。將數(shù)碼管換為具有更強大顯示能力的液晶顯示器。這種不僅加強了人機交互功能,滿足設(shè)計要求,而且可以同時顯示物體重量,單價,總價等信息,電路更加簡單,設(shè)計更加簡便。結(jié)構(gòu)簡圖如圖2-2所示。圖2-2LCD液晶顯示方案在整個硬件電路系統(tǒng)的設(shè)計過程中,綜合分析了各種有利因素和不利因素以后,最終完成了的電子稱設(shè)計方案。系統(tǒng)硬件設(shè)計框圖如圖2-3所示。數(shù)據(jù)采集數(shù)據(jù)采集AD轉(zhuǎn)換器單片機LCD顯示時鐘顯示報警電路鍵盤信號放大時鐘芯片圖2-3系統(tǒng)設(shè)計硬件框圖2.3系統(tǒng)元器件選型及參數(shù)介紹2.3.1單片機選型單片機作為系統(tǒng)主控電路的核心元件,是整個硬件電路系統(tǒng)的中樞所在,也就是心臟部位。所以其選型非常重要。根據(jù)本課題的需求,需要處理速度快,易用性強,價格廉價的單片機,最終決定選用STC89C52單片機。STC89C52單片機是一種新型的51單片機,集眾多優(yōu)點于一身,例如:功耗很低,性能足夠優(yōu)秀,處理速度很快等等。STC89C52使用了傳統(tǒng)的MCS-51內(nèi)核,同時也做了許多改良,使得芯片相較于傳統(tǒng)的51單片機功能更加豐富,性能也更加強勁[1],這讓它得到了廣泛的應(yīng)用。stc89c52芯片具有以下特性[5]:①指令集完全兼容傳統(tǒng)的8051;②內(nèi)部集成有8KB的存儲空間;③時鐘頻率為0~33MHz;=4\*GB3④32個可編程輸入/輸出引腳;=5\*GB3⑤2個16位定時/計數(shù)器;=6\*GB3⑥6個中斷源,2級優(yōu)先級;=7\*GB3⑦全雙工串行通信接口;⑧監(jiān)視定時器;⑨2個數(shù)據(jù)指針。STC89C52單片機引腳圖如圖2-4所示[5]。圖2-4STC89C52單片機引腳圖2.3.2數(shù)據(jù)采集局部2.3.2.1傳感器的選型方案一電容式壓力傳感器電容式壓力傳感器是一種比擬常見的壓力傳感器,平常使用的很多測量儀器都是以它為根底制成的,它是一種利用電容變化巧妙地把對壓力的測量轉(zhuǎn)換為電信號測量的儀器。它的應(yīng)用非常廣泛,有很多優(yōu)點:例如分辨率很高;能夠進行動態(tài)的檢測;結(jié)構(gòu)很簡單,并不復(fù)雜;尤為重要的是它的穩(wěn)定性很好,可以勝任各種環(huán)境下的測量工作;可以是非接觸測量的,很方便。方案二壓電式壓力傳感器這種傳感器的實際工作原理是通過電氣元件把對壓力的測量的轉(zhuǎn)變?yōu)閷﹄娦盘柕臏y量。它也有不少優(yōu)點,例如:重量輕、可靠性強、結(jié)構(gòu)簡單、穩(wěn)定性高、信噪比足夠高、靈敏度很高以及信頻寬等等。顯然它具有許多不完美之處,例如:內(nèi)阻高、輸出電流的相應(yīng)較差、局部電壓材料忌潮濕的環(huán)境。它的應(yīng)用領(lǐng)域非常寬廣,如在電聲學(xué)、生物醫(yī)學(xué)和工程力學(xué)中都有應(yīng)用,尤其是在宇航和航空領(lǐng)域應(yīng)用中占有特殊的地位。方案三電阻應(yīng)變式傳感器電阻應(yīng)變式傳感器是通過金屬電阻應(yīng)變片受到壓力的作用后,其電阻值也會隨之變化的原理工作的。金屬電阻應(yīng)變片有許多種類,不同的電阻應(yīng)變片有不同的優(yōu)缺點,適合不同場合。這種傳感器有很多優(yōu)點,例如:它的靈敏度和精度都足夠高,測量范圍非常廣,使用壽命很長,結(jié)構(gòu)很簡單,頻響特性也不錯,最重要的是在許多惡劣的環(huán)境下,依然有很高的穩(wěn)定性,能夠正常工作。經(jīng)過認真比照分析這三種方案的優(yōu)缺點,我選擇了第三種方案,這種方案更加符合本課題的要求。2.3.2.2放大器及模數(shù)轉(zhuǎn)換器選擇通常由于傳感器輸出的信號一般較弱,如果信號沒有經(jīng)過放大處理,就會因為信號輸出的電壓信號太低造成難以直接用來進行A/D轉(zhuǎn)換。為此,測量電路中經(jīng)常設(shè)置有信號放大處理電路模塊,用來放大處理信號。這一模塊由相應(yīng)的放大器構(gòu)成。模數(shù)轉(zhuǎn)換局部的設(shè)計在整個設(shè)計中占有非常重要的位置,所以模數(shù)轉(zhuǎn)換器的選擇就顯得尤為重要。目前,世界上存在的模數(shù)轉(zhuǎn)換器的種類多種多樣,有傳統(tǒng)的并行、積分型模數(shù)轉(zhuǎn)換器,也有專用型的模數(shù)轉(zhuǎn)換器。不同的模數(shù)轉(zhuǎn)換器有不同的優(yōu)缺點,具有各自的性能。目前,可供選擇的模數(shù)轉(zhuǎn)換器有以下幾種選擇:〔1〕并行比擬A/D轉(zhuǎn)換器:如ADC0808、ADC0809等。并行比擬ADC顯著的特點是轉(zhuǎn)換速度快,但是本錢高,功耗較大,且其分辨率一般不高,因此并行比擬式A/D適合于要求高速、低分辨率的儀器中。〔2〕積分型A/D轉(zhuǎn)換器:如:ICL7135、ICL7109等。它的根本原理比擬簡單,優(yōu)點是穩(wěn)定性相當(dāng)不錯,轉(zhuǎn)換精度高。缺點是轉(zhuǎn)換速度慢。適合對精度的需求較高,而且對轉(zhuǎn)換速度需求不高的儀器儀表中?!?〕專用型A/D轉(zhuǎn)換器:如HX711。它是專用型高精度的24位A/D轉(zhuǎn)換器芯片。它有很高的集成度,有很好的穩(wěn)定性。最重要的是其內(nèi)部集成有放大器,如果選用它來設(shè)計電子秤,就可無需額外選取放大器了。這樣就使電路設(shè)計的復(fù)雜度減小了,同時減小了制作本錢[10]。經(jīng)過綜合分析,最終決定選用專用型高精度的模數(shù)轉(zhuǎn)換芯片HX711。芯片引腳圖如圖2-6所示。圖2-6HX711引腳圖2.3.3人機交互局部2.3.3.1鍵盤輸入鍵盤作為人機交互模塊中非常重要的一環(huán),它是使用者向系統(tǒng)進行信息輸入的工具。鍵盤是由一個一個的獨立按鍵和相應(yīng)的電路構(gòu)成。鍵盤的種類有很多,但我們經(jīng)常使用到的只有幾種,例如通用鍵盤。鍵盤的選型要根據(jù)課題的要求和設(shè)計的需要而定目前有兩種方案可以選擇。方案一:Intel8279是一種大家經(jīng)常使用的可編程通用鍵盤/顯示器接口芯片,它既有鍵盤輸入功能,也有顯示器輸出功能。它有很多優(yōu)點,但是同時也有致命的缺點,就是它的使用會占用系統(tǒng)過多的資源,這會讓本就緊張的系統(tǒng)資源更加稀少。方案二:選用常用的矩陣鍵盤,它編程非常簡單,設(shè)計可靠,同時配合單片機可以很輕松的實現(xiàn)按鍵輸入。通過以上分析,最終選用矩陣鍵盤。2.3.3.2顯示電路顯示電路作為人機交互的重要組成局部,其中顯示器的選擇尤為重要,它直接關(guān)乎著使用者進行人機交互的體驗感受。有以下兩種方案。方案一:使用數(shù)碼管作為顯示器。這種設(shè)計方案能夠滿足課題的根本要求,完成物品稱重的同時,也能顯示重量、單價、總價等信息。其顯著的優(yōu)點是編程較為簡單,但缺點那么是不能同時顯示多個不同的信息,假設(shè)要同時顯示不同的信息,如同時顯示單價,總價等信息,那么需要同時安裝大量的數(shù)碼管。這樣那么增加了電路的復(fù)雜度,使設(shè)計硬件電路時的難度大大增加。同時軟件編寫的難度也加大了許多,再那么數(shù)碼管能夠顯示的字符十分有限,對許多字符不能很好的顯示。方案二:采用具有更強字符顯示功能的LCD液晶顯示器,可以設(shè)置顯示單價,總價,時間日期等信息,它的功耗很低、能夠顯示的內(nèi)容非常豐富,穩(wěn)定性也很好?,F(xiàn)在字符型液晶顯示器應(yīng)用也較為普遍,價格也不是很高。經(jīng)過仔細分析,最終選擇了方案二,使用液晶顯示器作為顯示電路的核心器件。2.3.4電源局部因為本設(shè)計中選用的單片機等器件的所需的電源電壓均為5V,而USB接口剛好為5V,所以本設(shè)計采用電腦USB接口直接供電,這樣設(shè)計電路也比擬簡單。同時,設(shè)計了相應(yīng)的USB下載電路,單片機可以通過USB接口直接下載程序。其電路原理如圖2-7所示。圖2-7供電及程序下載電路2.3.5具體實施方案簡介本系統(tǒng)設(shè)計最終決定選用新一代STC89C52RC單片機來制作完成課題所要求的電子秤,使其作為主控電路的核心,實現(xiàn)電子秤的所有功能。STC89C52單片機是一種具有低功耗,具有優(yōu)異性能的微處理器,它具有許多傳統(tǒng)51單片機不具備的功能,同時具備一定的存儲空間,由于編程所需要的軟件存儲空間不是太大,此單片機內(nèi)部存儲空間能夠滿足需求,這樣就無須再外接外部存儲器了,從而降低了系統(tǒng)設(shè)計的難度。硬件局部除了包括單片機控制核心模塊之外,還包括數(shù)據(jù)采集,人機交互,系統(tǒng)電源和時鐘電路等局部。數(shù)據(jù)采集局部由電阻式壓力傳感器和專用型24位模數(shù)轉(zhuǎn)換器組成。在選擇電阻式壓力傳感器時,要結(jié)合課題的要求,根據(jù)實際需求,選用有足夠精確度和穩(wěn)定性的傳感器,還要把其的稱重誤差控制在合理范圍內(nèi)。另外還要考慮秤臺自身的重量的影響,并且要防止物體超重時損壞稱重傳感器,所以最終選擇的電阻式壓力傳感器的稱重極限值,要大于課題所要求的最大值,準(zhǔn)確性也要到達課題的要求。人機交互局部的鍵盤,最終選用了編程較為簡單的矩陣鍵盤。液晶顯示器選用了lcd1602.時鐘模塊選用了時鐘芯片DS1302作為核心器件。系統(tǒng)硬件的結(jié)構(gòu)框圖如下列圖2-8所示。圖2-8系統(tǒng)硬件結(jié)構(gòu)框圖第三章系統(tǒng)的硬件設(shè)計本系統(tǒng)設(shè)計最終決定選用新一代STC89C52RC單片機來制作完成課題所要求的電子秤,使其作為主控電路的核心,實現(xiàn)電子秤的所有功能。硬件局部由單片機控制核心,數(shù)據(jù)采集,人機交互,系統(tǒng)電源和時鐘五大局部組成。3.1基于STC89C52的主控電路〔1)單片機STC89C52簡述STC89C52是一種性能十分出眾,功耗很低的單片機,作為一款改良型單片機,它使用了傳統(tǒng)的MCS-51內(nèi)核,由于做了許多改良,使得芯片相較于傳統(tǒng)的51單片機功能更加豐富,性能也更加強勁。另外由于沿用了傳統(tǒng)內(nèi)核,所以它的指令集也完全兼容傳統(tǒng)8051?!?〕單片機核心控制電路的中心為STC89C52單片機,其次是晶振電路。為了能夠?qū)崿F(xiàn)清零功能,還設(shè)計了復(fù)位電路,此電路是整個系統(tǒng)中最重要的局部,是實現(xiàn)所有功能的關(guān)鍵所在。本課題設(shè)計的單片機主控電路如圖3-1所示。圖3-1主控電路圖圖中DT和SCK外接模數(shù)轉(zhuǎn)換電路,負責(zé)單片機與模數(shù)轉(zhuǎn)換電路之間的信息交換。P1.6外接蜂鳴器,用來傳輸報警信號。晶振是晶片使用某些特殊材料封裝起來以后,又將IC添加在其封裝內(nèi)部組成振蕩電路的晶體元件。晶振在單片機中所起的作用非常巨大,它能夠為其提供需要的時鐘頻率,而且單片機的指令都必須在這個根底之上執(zhí)行。設(shè)計復(fù)位電路一方面為實現(xiàn)清零功能,另一方面是為了保證系統(tǒng)中的電路能夠穩(wěn)定可靠的工作,本設(shè)計復(fù)位電路采用兩種復(fù)位方式,按鍵復(fù)位和上電復(fù)位。構(gòu)成復(fù)位電路有兩種方案,一種是借助STC89C52內(nèi)部的反相放大器構(gòu)成振蕩器,但是要形成時鐘脈沖,需要在外部額外增加電路,這樣會增加電路的復(fù)雜度。所以最終選用另外一種方案,即利用內(nèi)部自帶時鐘,使用芯片內(nèi)部的振蕩器,完成復(fù)位電路設(shè)計。3.2數(shù)據(jù)采集及A/D轉(zhuǎn)換電路3.2.1數(shù)據(jù)采集電路〔1〕數(shù)據(jù)采集采用HL-8型稱重傳感器,其安裝方式如圖3-2所示。圖3-2HL-8型稱重傳感器安裝圖〔2〕HL-8型稱重傳感器的內(nèi)部原理圖如3-3所示。圖3-3HL-8型稱重傳感器內(nèi)部原理圖〔3〕HL-8型稱重傳感器的主要技術(shù)參數(shù)如表3-1所示。表3-1HL-8型稱重傳感器主要技術(shù)參數(shù)3.2.2A/D轉(zhuǎn)換電路采用高增益的24位HX711轉(zhuǎn)換器HX711是一款專用型高精度的24位模數(shù)轉(zhuǎn)換芯片。HX711管腳說明如表3-2所示。表3-2HX711管腳說明〔1〕模擬輸入〔2〕供電電源〔3〕時鐘選擇本課題設(shè)計的HX711電路如圖3-4所示。圖3-4HX711電路3.3顯示電路使用具有顯示內(nèi)容豐富的16*2行的LCD1602顯示器,它性能優(yōu)異,能夠同時顯示多種字符和數(shù)字,基控制器采用HD44780,非常符合本設(shè)計的要求。它功耗很小,體積小,顯示內(nèi)容豐富,編程較為簡單[8]。其與單片機的連接電路如圖3-5所示。圖3-5系統(tǒng)狀態(tài)顯示電路圖1腳為接地引腳;2腳為電源引腳;3腳為液晶1602的背光調(diào)節(jié)引腳,通過2K電位器接地;4腳是控制模塊內(nèi)部存放器選擇的引腳;5腳是控制讀/寫模塊操作的引腳;6腳為使能端;4、5、6引腳分別與單片機的P1.0、P1.1、P1.2端口相連;7-14腳與單片機的P0口相連,他們是8根數(shù)據(jù)通信線。通它們,單片機可以和液晶屏進行信息交換;15腳連接電源、16腳接地[8]。3.4時鐘電路DS1302是一種實時時鐘芯片,它的性能十分出眾,功耗很低,并且自帶RAM,使用它可以輕松編程實現(xiàn)電子日歷功能。工作電壓寬達2.5~5.5V。因為有諸多優(yōu)點,所以它在很多測量系統(tǒng)中被普遍使用[9]。DS1302管腳圖如圖3-6所示。圖3-6DS1302管腳定義DS1302各引腳的功能為:VCC1:備用電源;VCC2:主電源。當(dāng)VCC2>VCC1+0.2V時,由VCC2向DS1302供電,當(dāng)VCC2<VCC1時,由VCC1向DS1302供電。SCLK:串行時鐘,輸入;I/O:三線接口時的雙向數(shù)據(jù)線;CE:輸入信號,在讀、寫數(shù)據(jù)期間,必須為高。時鐘電路如圖3-7所示。圖3-7時鐘電路3.5報警電路本設(shè)計中的報警電路原理簡單,易于理解。當(dāng)物品重量超過最大量程時,蜂鳴器發(fā)出報警聲,進行報警。報警電路由三極管,電阻和蜂鳴器構(gòu)成。蜂鳴器通過三極管來驅(qū)動,單片機的引腳P1.6與三極管的基極相連,三極管通過單片機相應(yīng)接口輸出的上下電平來控制其導(dǎo)通與否。報警電路如圖3-8所示。圖3-8報警電路3.6鍵盤輸入鍵盤輸入電路作為人機交互局部中重要的組成局部,在電子稱工作的過程中,所有信息的輸入都由它來完成,例如單價值的輸入,時間的調(diào)整。經(jīng)過縝密思考,鍵盤最終選用了矩陣鍵盤,這是因為其結(jié)構(gòu)簡單,編程方便,便于進行相應(yīng)的軟件設(shè)計。其電路如圖3-9所示。圖3-9矩陣鍵盤作為電子秤時,其按鍵功能分配如下表所示。789刪除456去皮123清零10011顯示時間此電子秤每次開機自動進入稱重頁面,所有數(shù)據(jù)初始化清零。進行物品稱重前,要先按下去皮鍵,除去托盤重量,將其重量清零,實現(xiàn)去皮功能。在輸入了單價的過程中,可以使用刪除鍵或者清零鍵修改單價。單價設(shè)定完完成后,總價會自動生成,并被顯示出來。作為時鐘和鬧鐘的時候,鍵盤面板如下所示。選擇+-鬧鈴?fù)V鼓J竭x擇對應(yīng)矩陣鍵盤按鍵:1514131112由于此電子秤開機后默認進入稱重界面,所以進入時間顯示界面或者鬧鐘顯示界面需要通過模式選擇按鍵進行界面切換。進入時間顯示界面或者鬧鐘顯示界面以后,對各個時間參數(shù)的調(diào)節(jié)需要通過選擇按鍵來進行切換,使用加減鍵來調(diào)節(jié)其大小。3.7系統(tǒng)硬件電路的繪制和PCB制作3.7.1Protel99SE軟件介紹在進行電路的設(shè)計時,我將此軟件和AltiumDesigne軟件進行了比擬,經(jīng)過綜合考慮之后,我最終決定采用此軟件進行原理圖,PCB的繪制,該軟件一經(jīng)問世就備受歡送,后經(jīng)過版本的更迭開展成為如今的版本—Protel99SE。Protel99SE軟件是一款非常流行的EDA設(shè)計軟件,它除了能進行原理圖,PCB板的設(shè)計兩種常用的功能之外,還可以完成可編程器件設(shè)計和電路仿真。它由多種功能模塊組成,包括有原理圖設(shè)計系統(tǒng)、印刷電路板設(shè)計系統(tǒng)、自動布線系統(tǒng)、電路仿真系統(tǒng)、可編程器件設(shè)計系統(tǒng)、PCB信號完整性分析系統(tǒng)等等。因為它具有很強大的數(shù)據(jù)交換能力和開放性及3D模擬能力,所以該軟件自問世以來,一直以來都受到電子工程師和高校師生的竭力追捧,備受推崇,因此它成為一款非常流行的設(shè)計軟件。3.7.2系統(tǒng)原理圖和PCB的繪制3.7.2.1采用Protel99SE軟件繪制原理圖的步驟如下:〔1〕建立系統(tǒng)所需要的元件庫,如果所需的元器件,軟件自帶的元件庫中沒有,那么需自己制作沒有的原理圖符號;〔2〕把自己建立的元件庫都添加進入相應(yīng)的工程工程中;〔3〕進行元件整體布局將元器件放置于圖中合理的位置,這是最關(guān)鍵的一步;〔4〕對原理圖內(nèi)的元器件進行電氣連接;〔5〕放置注釋,這是為了增加電路圖的可讀性;3.7.2.2采用Protel99SE軟件繪制PCB的步驟如下:〔1〕繪制出正確的原理圖后生成網(wǎng)絡(luò)表;〔2〕在工程中建立PCB文件,導(dǎo)入生成的網(wǎng)絡(luò)表。在網(wǎng)絡(luò)表導(dǎo)入之前,要注意相關(guān)環(huán)境參數(shù)的設(shè)置和電路板的規(guī)劃;〔3〕進行PCB的繪制時,PCB的布線要盡可能美觀,完成繪制后,還要進行最終的設(shè)計規(guī)那么檢測。第四章軟件設(shè)計本課題設(shè)計的電子秤系統(tǒng)由硬件電路局部和軟件局部組成,硬件電路局部的完成只是整個系統(tǒng)的根底,它是為軟件的運行做準(zhǔn)備的,軟件局部才是整個系統(tǒng)的靈魂,兩者相輔相成,才能確保整個系統(tǒng)的成功運行。軟件局部必須能夠滿足課題對功能的所有要求,如自動稱重、價格計算、顯示功能、時鐘功能、鬧鐘功能、報警功能等等。軟件系統(tǒng)的主程序包括電子秤函數(shù)和時鐘函數(shù),此外還有一些重要的子函數(shù),如DS1302初始化程序、顯示函數(shù)、蜂鳴器報警函數(shù)等等。4.1主程序流程圖本本程序主要有兩個功能函數(shù)組成,一個為電子秤函數(shù),一個為時鐘函數(shù),這兩個函數(shù)是整個程序中最重要的組成局部。4.1.1時鐘模塊程序時鐘函數(shù)流程圖如圖4-1所示。圖4-1時鐘函數(shù)流程圖系統(tǒng)啟動后,首先調(diào)用時鐘芯片DS1302的初始化程序?qū)⑵涑跏蓟缓笤僬{(diào)用液晶顯示器LCD1602的初始化程序?qū)⑵涑跏蓟?。系統(tǒng)初始化完畢后,系統(tǒng)默認自動進入物品稱重界面,這時如果按下模式選擇鍵,系統(tǒng)就會進入時鐘界面,這時顯示函數(shù)運行,液晶屏開始顯示時間,與此同時按鍵掃描程序開始運行,循環(huán)檢測鍵盤中是否有按鍵按下,是否在進行各個時間參數(shù)的調(diào)節(jié)或者界面的切換。緊接著與預(yù)先設(shè)定的鬧鐘時間進行比擬,檢測是否與鬧鐘時間相一致,如果相同,那么定時器T0開始運行,蜂鳴器發(fā)出蜂鳴聲,提示鬧鐘時間到了。如果在鬧鐘發(fā)出鬧鈴聲的過程中關(guān)閉鬧鐘,可以按下鬧鈴解除按鍵,使鬧鐘停止。4.1.2稱重模塊程序電子秤函數(shù)流程圖如圖4-2所示。圖4-2電子秤函數(shù)流程圖在電子秤稱重界面工作時,系統(tǒng)啟動后會首先調(diào)用LCD1602初始化程序?qū)⒁壕脸跏蓟?,啟動A/D轉(zhuǎn)換函數(shù),對采集到的數(shù)據(jù)進行處理,與此同時運行單價函數(shù),按鍵掃描函數(shù)也會同時運行,檢測按鍵值的輸入,再通過設(shè)置函數(shù)進行單價的輸入和修改。自動計算出總價后,調(diào)用顯示函數(shù)將重量、單價、總價等信息顯示在液晶屏上。如果想要去除所有信息重新稱重,那么只需按下清零鍵即可,系統(tǒng)會重新初始化,所有數(shù)據(jù)歸零。4.1.3重要的子程序4.1.3.1DS1302模塊的子程序voidwrite_1302(ucharadd,uchardat){ rst=1; //把復(fù)位線拿高 for(i=0;i<8;i++) { //低位在前 clk=0; //時鐘線拿低開始寫數(shù)據(jù) io=add&0x01; add>>=1; //把地址右移一位 clk=1; //時鐘線拿高 } for(i=0;i<8;i++) { clk=0; //時鐘線拿低開始寫數(shù)據(jù) io=dat&0x01; dat>>=1; //把數(shù)據(jù)右移一位 clk=1; //時鐘線拿高 } rst=0; //復(fù)位線合低 clk=0; io=0;}此子程序的功能是往時鐘芯片DS1302中寫入一個數(shù)據(jù)。寫數(shù)據(jù)的過程就是先寫入存放器地址,再寫入數(shù)據(jù)。這些數(shù)據(jù)就是年月日時分秒這些時間參數(shù)。寫完數(shù)據(jù)以后,將RST置零。ucharread_1302(ucharadd){ ucharvalue,i; rst=1; //把復(fù)位線拿高 for(i=0;i<8;i++) { //低位在前 clk=0; //時鐘線拿低開始寫數(shù)據(jù) io=add&0x01; add>>=1; //把地址右移一位 clk=1; //時鐘線拿高 } for(i=0;i<8;i++) { clk=0; //時鐘線拿低開始讀數(shù)據(jù) value>>=1; if(io==1) value|=0x80; clk=1; //時鐘線拿高 } rst=0; //復(fù)位線合低 clk=0; io=0; returnvalue; //返回讀出來的數(shù)據(jù)}此子程序的功能是讀取DS1302中的數(shù)據(jù)即讀取時間,讀取年月日時分秒這些時間參數(shù)。讀取數(shù)據(jù)的過程和寫數(shù)據(jù)的過程很相似,也是先寫入存放器地址,再讀取數(shù)據(jù)。4.1.3.2LCD1602液晶顯示器子程序voidwrite_com(ucharcom){ e=0;//為了讓本次操作有效 rs=0;//表示寫指令存放器 rw=0;//表示對存放器寫操作 P0=com;//把要寫入液晶模塊的數(shù)據(jù)準(zhǔn)備好 delay_uint(3); e=1;//讓液晶模塊使能,以便讓我們對它的操作有效 delay_uint(25); e=0;//為了讓本次操作有效} 此子程序的功能是向CD1602指令存放器中寫入命令。voidwrite_data(uchardat){ e=0;//為了讓本次操作有效 rs=1;//表示寫數(shù)據(jù)存放器 rw=0;//表示對存放器寫操作 P0=dat;//把要寫入液晶模塊的數(shù)據(jù)準(zhǔn)備好 delay_uint(3); e=1;//讓液晶模塊使能,以便讓我們對它的操作有效 delay_uint(25); e=0; //為了讓本次操作有效}此子程序的功能是向LCD1602數(shù)據(jù)存放器中寫入數(shù)據(jù)信息,voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add);//在第一行指定位置顯示 else write_com(0x80+0x40+add);//在第二行指定位置顯示 while(1) { if(*p=='\0')break;//判斷字符串是否結(jié)束 write_data(*p);//將當(dāng)前的字符內(nèi)容發(fā)送到液晶屏上 p++;//指向下一個字符 } }此子程序的功能是在液晶顯示器的指定位置上顯示字符串。voidinit_1602() //lcd1602初始化設(shè)置{ write_com(0x38); //顯示模式設(shè)置,8位數(shù)據(jù)口 write_com(0x0c);//開啟顯示,光標(biāo)不顯示 write_com(0x06);//設(shè)置光標(biāo)移動方向為向右,顯示字符時字符不移動 delay_uint(1000);//延時,保證顯示更加穩(wěn)定}此子程序的功能是初始化LCD1602液晶顯示器。4.2主要中斷程序流程圖定時器T0中斷程序流程圖如圖4-3所示。圖4-3定時器T0中斷程序流程圖進入TO中斷程序后,系統(tǒng)會先將TO計數(shù)器初始化,然后判斷所稱物品重量是否超過電子秤最大量程5kg,如果超重,就會啟動蜂鳴器報警程序,蜂鳴器就會報警提示超重。否那么繼續(xù)與鬧鐘標(biāo)志比擬,判斷是否到達鬧鐘時間,如果到達,同樣會啟動蜂鳴器報警程序,使蜂鳴器報警。4.3核心代碼下面介紹主程序編寫,其他程序見附錄[7]?!?〕頭文件和一些宏定義#include<reg52.h> //調(diào)用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535#defineulongunsignedlong#include"ds1302.h"#include<intrins.h>〔2〕管腳,常量,變量定義ucharcodetable_num[]="0123456789abcdefg";sbitrs=P1^0; //存放器選擇信號H:數(shù)據(jù)存放器 L:指令存放器sbitrw=P1^1; //存放器選擇信號H:數(shù)據(jù)存放器 L:指令存放器sbite=P1^2; //片選信號下降沿觸發(fā)sbithx711_dout=P2^1;sbithx711_sck=P2^0;sbitACC0=ACC^0;sbitACC7=ACC^7;sbitclk=P1^3; //ds1302時鐘線定義sbitio=P1^4; //數(shù)據(jù)線sbitrst=P1^5; //復(fù)位線ucharmiao,fen,shi,ri,yue,week,nian,lshi,lfen;uchari;ucharopen1;sbitbeep=P1^6;//蜂鳴器ucharmenu_1,menu_2;longweight;unsignedlongHX711_Buffer=0;unsignedlongWeight_Maopi=0;unsignedcharflag=0;bitFlag_ERROR=0;uinttemp,qi_weight;bitchaozhong_flag;bitleiji_flag;ucharflag_200ms;ulongprice,z_price;//單價總價ucharflag_p;〔3〕各個子程序/*************初始化ds1302時間***************/voidinit_1302(){ uchari; rst=0; //第一次讀寫數(shù)據(jù)時要把IO品拿低 clk=0; io=0; i=read_ds1302ram(30); if(i!=8) { i=8; write_ds1302ram(30,i); //40504100 3080 write_1302(0x8e,0x00);//翻開寫保護 write_1302(0x90,0xaa);//定義充電 write_1302(0x80,0x53);//秒 write_1302(0x84,0x13);//分 write_1302(0x82,0x43);//時 write_1302(0x8c,0x12);//年 write_1302(0x88,0x06);//月 write_1302(0x86,0x03);//日 write_1302(0x8a,0x06);//星期 write_1302(0x8e,0x80); //把最高位值0允許ds1302工作 write_1302(0x8e,0x80); //關(guān)寫保護 } read_time(); //讀時間 if(miao>=0x60) { write_1302(0x8e,0x00); //翻開寫保護 write_1302(0x80,0x53); //把最高位值0允許ds1302工作 write_1302(0x8e,0x80); //關(guān)寫保護 }}/*********************************************************************名稱:write_sfm4_price(ucharhang,ucharadd,uchardate)*功能:顯示價格*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無********************************************************************/voidwrite_sfm4_price(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10);}voidwrite_sfm4_price1(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); if(date>=9999) { write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); } else { write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10); } }/****************開機液晶顯示函數(shù)初始化液晶的內(nèi)容*****************/voidinit_1602_dis_csf()//初始化液晶{ write_string(1,0,"W:0.000kg"); write_string(2,0,"P:00.00Z:00.00"); write_zifu(2,7,0x5c); //¥ // write_zifu(2,15,0x5c); //¥ }voidinit_1602_dis_sj()//初始化液晶{ write_string(1,0,"::W:"); write_string(2,0,"20--"); }voidinit_1602_dis_nz() //初始化鬧鐘界面{write_string(1,0,"setclock"); write_string(2,0,":");}/*******************壓力顯示程序***********************/voidwrite_1602_yl(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); if(date<2) date=0;// write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data('.'); write_data(0x30+date/100%10); write_data(0x30+date/10%10); write_data(0x30+date%10); }voidDelay__hx711_us(void){ _nop_(); _nop_();}unsignedlongHX711_Read(void) //增益128{ unsignedlongcount; unsignedchari; hx711_dout=1; Delay__hx711_us(); hx711_sck=0; count=0;// EA=1; while(hx711_dout);// EA=0; for(i=0;i<24;i++) { hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout) count++; } hx711_sck=1;count=count^0x800000;//第25個脈沖下降沿來時,轉(zhuǎn)換數(shù)據(jù) Delay__hx711_us(); hx711_sck=0; return(count);}voidget_pizhong() //獲取皮重,秤盤重量{ Weight_Maopi=HX711_Read(); }voidget_weight() //獲取被測物體重量{ weight=HX711_Read(); weight=weight-Weight_Maopi; //獲取凈重 if(weight>0) { weight=(unsignedint)((float)weight/GapValue); //計算實物的實際重量 } else { weight=0; }}/*****************主函數(shù)********************/voidmain(){ beep=0;//蜂鳴器叫一聲 delay_1ms(100); P0=P1=P2=P3=0xff; //單片機IO口初始化為1 init_1602(); //lcd1602初始化 init_1602_dis_csf();//lcd1602初始化顯示 init_ds1302(); //ds1302初始化 get_pizhong(); //獲取皮重,秤盤重量init_ds1302(); while(1) { key(); //獨立按鍵程序 if(key_can<20) { if(menu_1==0) key_with(); key_with_sj(); } flag_200ms++; if(flag_200ms>=200) { flag_200ms=0; if(weight>=5000)//超重報警 beep=~beep; else beep=1; if((menu_1==1)&&(menu_2==0)) { read_time(); //讀時間 init_1602_ds1302();//顯示時鐘 } if(menu_1==0) { get_weight(); //稱重 write_1602_yl(1,5,weight); //顯示壓力 z_price=weight*price/1000;//總價等于重量*單價 write_sfm4_price1(2,11,z_price); //顯示總價 } } laba(); //鬧鐘報警函數(shù) delay_1ms(1); }}第五章系統(tǒng)的調(diào)試,誤差分析和結(jié)果分析5.1調(diào)試過程中遇到的問題根本完成系統(tǒng)軟硬件的設(shè)計以后,就要開始調(diào)試分析了,為了能夠更好的到達預(yù)期的調(diào)試目標(biāo),我把調(diào)試方案認真的分解為一個一個小步驟,一步一步的調(diào)試,一點一點分析修改,期間我遇到很多問題,具體如下:〔1〕系統(tǒng)的硬件設(shè)計過程中,對系統(tǒng)穩(wěn)定性和可靠性可能造成影響的各種原因,沒有基于全面充分的考慮。比方對系統(tǒng)電源電壓的穩(wěn)定性是否足夠未予考慮,沒有設(shè)置相應(yīng)的穩(wěn)壓電路?!?〕沒有豐富更多的功能,造成電子秤功能比擬少,不夠豐富。例如可以參加溫度顯示功能等等。〔3〕軟件局部功能設(shè)計的不夠完善,界面不夠友好,同時受限于元器件功能,造成一些軟件功能無法實現(xiàn)。例如由于LCD1602能夠顯示的字符較少,造成在顯示物品單價,總價,重量的同時,不能同時顯示物品名稱,進而使軟件的顯示功能有所欠缺。5.2誤差分析以及調(diào)試結(jié)果5.2.1誤差來源電子秤的誤差分析對于一款電子稱來說非常重要,電子稱誤差的大小直接決定了它的精確度,電子稱的誤差是對被測物品稱量重量與真實重量之間差距的定量描述。在實際的生活場景中,實際使用它的時候,如果誤差太大,會直接降低用戶的應(yīng)用體驗。所以要對它的誤差進行研究,必須首先對它的誤差源頭進行研究,搞清楚其誤差原因才能進一步提高它的精確度。經(jīng)過研究發(fā)現(xiàn),它的誤差源頭主要因為以下幾種原因造成的[3]:〔1〕四角偏載誤差:偏載測試要求電子秤在進行物品稱重測量時,被測物品的重量不應(yīng)該因為其在秤臺上位置的變化而改變。所以電子秤的靈敏度才是產(chǎn)生這種誤差的主要原因。(2)稱量誤差:此種誤差的原因有許多種,主要的是以下三種原因:①傳感器稱量線性變化。=2\*GB3②零點漂移。=3\*GB3③擦靠。(3)鑒別力誤差:鑒別力表達了電子秤對負載細微變化的反響能力,這種誤差的主要原因是秤體連接過程中產(chǎn)生的摩擦力。(4)重復(fù)性誤差:在相同的場景下,連續(xù)屢次進行稱重測試后所得讀數(shù)間的差值。此種誤差屬于其側(cè)向壓力,多種因素共同作用造成的[3]。5.2.2調(diào)試結(jié)果經(jīng)過一步一步認真的調(diào)試、分析,不斷的修改和完善,認真的請教導(dǎo)師,查閱相關(guān)資料,最后成功完成了調(diào)試,到達了預(yù)期目標(biāo)。實物圖如圖5-1、圖5-2,圖5-2所示。圖5-1電子秤稱重界面顯示圖圖5-2電子秤時鐘界面顯示圖圖5-3電子秤鬧鐘界面顯示圖經(jīng)過精心調(diào)試,電子秤稱重時誤差不超過+0.003Kg。實際效果到達了課題要求。5.2.3結(jié)果分析為了滿足課題要求,本設(shè)計將此系統(tǒng)分為硬件局部和軟件局部,硬件局部由單片機核心控制,數(shù)據(jù)采集,人機交互,系統(tǒng)電源和時鐘五大局部組成。雖有瑕疵,但是經(jīng)過仔細認真的調(diào)試,實現(xiàn)了本課題所要求的全部功能。并在此根底上增加了鬧鐘功能,適度的擴展了課題深度,綜上所述,本系統(tǒng)成功實現(xiàn)了所有功能,滿足了課題要求。結(jié)束語〔1〕總結(jié)本課題以STC89C52單片機作為主控電路的控制核心,由此設(shè)計出的多功能電子秤完全到達了課題的要求,并且功能更加豐富。該電子秤有多個模塊組成,應(yīng)用了多種技術(shù),其反響靈敏、準(zhǔn)確度較高、使用方便??梢酝ㄟ^適當(dāng)?shù)母脑燔浻布?,就可以設(shè)計出性能更為優(yōu)越,功能更為豐富的能夠滿足各種用途的電子秤,具有一定的開發(fā)前景。在整個畢業(yè)設(shè)計過程中,我遇到了各種各樣的難題,首先在用protel99se繪制原理圖的過程中,各種元器件的鏈接,元件庫的設(shè)計,相關(guān)參數(shù)的設(shè)置,線路的搭建等等,這是一件相當(dāng)具有難度的事情。進行相關(guān)軟件編寫中,起初因為對相關(guān)編程軟件不夠了解,以前對此類軟件使用次數(shù)不多,對于各種器件的相關(guān)程序編寫更是缺乏認識,造成編寫過程異常艱難,進度緩慢。軟件調(diào)試過程中,BUG經(jīng)常出現(xiàn),非常多。最困難的是硬件焊接的時候,首先是焊接技術(shù),不能虛焊或者焊錫太多引起短路;另外由于元器件眾多,要特別注意排線問題,否那么容易造成線路短路或者會使電路板特別難看。由于是軟硬件結(jié)合的設(shè)計,所以必須時時刻刻不斷地調(diào)試才能確保硬件的成功實現(xiàn)。最終,經(jīng)過自己認真查閱資料,努力學(xué)習(xí)和導(dǎo)師的精心指導(dǎo)下,一步一步解決難題,最終成功完成了畢業(yè)設(shè)計?!?〕認識回憶自己整個大四下半學(xué)期的畢業(yè)設(shè)計過程中,從剛開始的自以為是,感覺電子秤工作原理很簡單,沒有什么難度,應(yīng)該很容易就能完成。到隨著課題逐步的深入,真正感受到這個課題的難度,然后開始改變自己的態(tài)度,認真查閱相關(guān)資料,準(zhǔn)備相關(guān)知識,咨詢導(dǎo)師,逐步解決相關(guān)問題,最終完成畢設(shè)。在此過程中,我受益匪淺,學(xué)到了很多有用的知識,特別是讓我對學(xué)習(xí)的態(tài)度有了很大改變。對我過去幾年所學(xué)的知識也做了一個全面的檢驗,加深了我對這些知識的理解,特別是讓我對單片機、傳感器、液晶顯示器及其相關(guān)知識有了更加深入的了解。我對單片機相關(guān)技術(shù)如硬件電路的設(shè)計更加熟練了,應(yīng)用起來得心應(yīng)手。也對電阻應(yīng)變式壓力傳感器的工作原理有了全新的認識,對相關(guān)器件軟件的設(shè)計也更加熟練,對C語言的應(yīng)用也更加熟練。通過這次畢業(yè)設(shè)計,我體會到了理論聯(lián)系實際的重要性,只有把學(xué)習(xí)的理論知識應(yīng)用實踐中,才能更加熟練地掌握知識,沉著的解決遇到的難題。致謝大學(xué)生活轉(zhuǎn)瞬即逝,回憶我的整個大學(xué)生涯,特別是在做畢業(yè)設(shè)計的過程中,我得到了許多同學(xué)和導(dǎo)師的幫助,他們的熱情友好,無私幫助讓我深受感動。尤其是我的導(dǎo)師—羅老師在此過程中給予了我極大地幫助和鼓勵,我被他的謙卑,和藹可親,認真負責(zé)的精神深深地感動了。我在選題及研究過程中,無論什么時候,遇到什么難題,羅杰老師都會及時給予我悉心的解答。在此期間,羅老師屢次詢問我的畢設(shè)進程,隨時準(zhǔn)備幫助我解答問題,經(jīng)常鼓勵我,讓我的信心增加了不少,為我后來成功完成畢業(yè)設(shè)計奠定了堅實的根底。羅杰老師嚴謹、認真負責(zé)的工作態(tài)度,求真務(wù)實的精神深深的感染了我,讓我學(xué)到了很多東西。通過完成這次畢業(yè)設(shè)計,讓我學(xué)到了好多知識,全面檢查了我大學(xué)四年學(xué)到的專業(yè)知識、專業(yè)技能,讓我得到了全面系統(tǒng)的鍛煉。特別是讓我對單片機、傳感器、液晶顯示器及其相關(guān)知識有了更加深入的了解。我對單片機相關(guān)技術(shù)如硬件電路的設(shè)計更加熟練了,應(yīng)用起來得心應(yīng)手。也對電阻應(yīng)變式壓力傳感器的工作原理有了全新的認識,對相關(guān)器件軟件的設(shè)計也更加熟練,對C語言的應(yīng)用也更加熟練在此,再次感謝羅杰老師的教誨。在此,我非常感謝在過去的四年里,一直陪伴在我身邊,陪我一起快樂的度過大學(xué)生活的自動化學(xué)院全體老師和同學(xué)們,這四年我過得很開心,收獲很多。最后,對于過去所有關(guān)心和幫助過我的老師、同學(xué)和朋友們,我再次表示由衷的感謝!董治洪2023年5月28日參考文獻[1]薛均義,張彥斌.《MCS-516系列單片微型計算機及應(yīng)用》[M].西安:西安交通大學(xué)出版社,1999.[2]趙廣平,孫雯萍,孫建軍.電子稱重技術(shù)現(xiàn)狀及開展趨勢[J].儀表技術(shù)傳感器,2007,〔07〕:76-77.[3]張芳.電子秤的誤差來源及示值誤差確實定[J].計量與測試技術(shù),2023,(40):76-77.[4]趙總社.關(guān)于電子秤的工作原理與應(yīng)用[J].科技信息,2007,〔01〕:70.[5]劉松.《AT89S52系列單片機結(jié)構(gòu)》[M].北京:機械工業(yè)出版社,2023.[6]付曉鴿.電阻應(yīng)變式傳感器的工作原理及其應(yīng)用[J].福建電腦,2023,〔01〕:159-160.[7]劉平.《深入淺出玩轉(zhuǎn)51單片機》[M].北京航空航天大學(xué)出版社,2023.[8]程國剛,陳躍琴,崔荔蒙.《51單片機典型模塊開發(fā)查詢手冊》[M].北京:電子工業(yè)出版社,2023.[9]李全利.《單片機原理及應(yīng)用》[M].北京:清華大學(xué)出版社,2023.[10]胡美嬌,高美春.基于24位A/D轉(zhuǎn)換的高精度電子秤設(shè)計[J].現(xiàn)代計算機〔專業(yè)版〕,2023,〔11〕:62.附錄A系統(tǒng)原理圖附錄B系統(tǒng)PCB圖附錄C全部代碼:#include<reg52.h> //調(diào)用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535#defineulongunsignedlong#include"ds1302.h"#include<intrins.h>ucharcodetable_num[]="0123456789abcdefg";sbitrs=P1^0; //存放器選擇信號H:數(shù)據(jù)存放器 L:指令存放器sbitrw=P1^1; //存放器選擇信號H:數(shù)據(jù)存放器 L:指令存放器sbite=P1^2; //片選信號下降沿觸發(fā)sbithx711_dout=P2^1;sbithx711_sck=P2^0;sbitbeep=P1^6;//蜂鳴器ucharmenu_1,menu_2;longweight;unsignedlongHX711_Buffer=0;unsignedlongWeight_Maopi=0;unsignedcharflag=0;bitFlag_ERROR=0;uinttemp,qi_weight;bitchaozhong_flag;bitleiji_flag;ucharflag_200ms;ulongprice,z_price;//單價總價ucharflag_p,open;/******1ms延時函數(shù)***12M晶振**************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/*********************************************************************名稱:delay_uint()*功能:小延時。*輸入:無*輸出:無***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************蜂鳴器函數(shù)************************************************/voiddidi(){ uchari;for(i=0;i<10;i++){beep=0; delay_1ms(1); beep=1; delay_1ms(1);}}/*********************************************************************名稱:write_com(ucharcom)*功能:1602命令函數(shù)*輸入:輸入的命令值*輸出:無********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0;}/*********************************************************************名稱:write_data(uchardat)*功能:1602寫數(shù)據(jù)函數(shù)*輸入:需要寫入1602的數(shù)據(jù)*輸出:無********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(3); e=1; delay_uint(25); e=0; }/*****************lcd1602上顯示這字符函數(shù)*******************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/***********************lcd1602初始化設(shè)置************************/voidinit_1602() //lcd1602初始化設(shè)置{ write_com(0x38); // write_com(0x0c); write_com(0x06); delay_uint(1000);}////////////////在指定位置顯示指定字符//////////voidwrite_zifu(ucharhang,ucharadd,uchardat){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(dat);}/*********************************************************************名稱:write_sfm4_price(ucharhang,ucharadd,uchardate)*功能:顯示價格*輸入:行,列,需要輸入1602的數(shù)據(jù)*輸出:無***********************************************************************/voidwrite_sfm4_price(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10);}voidwrite_sfm4_price1(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); if(date>=9999) { write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); } else { write_data(0x30+date/1000%10); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10); } }/****************開機液晶顯示函數(shù)初始化液晶的內(nèi)容********************************/voidinit_1602_dis_csf()//初始化液晶{ write_string(1,0,"W:0.000kg"); write_string(2,0,"P:00.00Z:00.00"); write_zifu(2,7,0x5c); //¥ // write_zifu(2,15,0x5c); //¥ }voidinit_1602_dis_sj()//初始化液晶{ write_string(1,0,"::W:"); write_string(2,0,"20--"); }voidinit_1602_dis_nz() //初始化鬧鐘界面{write_string(1,0,"setclock"); write_string(2,0,":");}/***********************lcd1602上顯示兩位十進制數(shù)************************/voidwrite_sfm1(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date%10); }/*******************lcd1602上顯示兩位十進制數(shù)**********************/voidwrite_sfm2_ds1302(ucharhang,ucharadd,uchardate){ ucharshi,ge; if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); shi=date/16; ge=date%16; write_data(table_num[shi]); write_data(table_num[ge]); }/*****************控制光標(biāo)函數(shù)********************/voidwrite_guanbiao(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); if(date==1) write_com(0x0f);//顯示光標(biāo)并且閃爍 else write_com(0x0c);//關(guān)閉光標(biāo)} /*******************壓力顯示程序***********************/voidwrite_1602_yl(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); if(date<2) date=0;// write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data('.'); write_data(0x30+date/100%10); write_data(0x30+date/10%10); write_data(0x30+date%10); }voidDelay__hx711_us(void){ _nop_(); _nop_();}unsignedlongHX711_Read(void) //增益128{ unsignedlongcount; unsignedchari; hx711_dout=1; Delay__hx711_us(); hx711_sck=0; count=0;// EA=1; while(hx711_dout);// EA=0; for(i=0;i<24;i++) { hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout) count++; } hx711_sck=1;count=count^0x800000;//第25個脈沖下降沿來時,轉(zhuǎn)換數(shù)據(jù) Delay__hx711_us(); hx711_sck=0; return(count);}voidget_pizhong() //獲取皮重,秤盤重量{ Weight_Maopi=HX711_Read(); }voidget_weight() //獲取被測物體重量{ weight=HX711_Read(); weight=weight-Weight_Maopi; //獲取凈重 if(weight>0) { weight=(unsignedint
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)術(shù)出版行業(yè)市場調(diào)研分析報告
- 大數(shù)據(jù)分析及應(yīng)用項目教程(Spark SQL)(微課版) 教案全套 許慧 單元1-6 大數(shù)據(jù)分析概述-Zepplin數(shù)據(jù)可視化
- 藥用薄荷市場分析及投資價值研究報告
- 自推進式掃路機細分市場深度研究報告
- 冷鏈果蔬物流行業(yè)市場調(diào)研分析報告
- 移動電話用屏幕保護膜市場發(fā)展前景分析及供需格局研究預(yù)測報告
- 電子貨幣收款機細分市場深度研究報告
- 電子閃光器開關(guān)市場分析及投資價值研究報告
- 襯衫袖扣市場分析及投資價值研究報告
- 繪畫便箋簿項目營銷計劃書
- 廢氣設(shè)施施工方案
- 液相色譜法和高效液相色譜法
- 消防安全評估投標(biāo)方案
- 灰壩施工組織設(shè)計
- 道法22.第10課第二框《履行遵紀(jì)守法義務(wù)》
- 安徽省蕪湖市部分學(xué)校2023-2024學(xué)年九年級上學(xué)期期中語文試題(含答案)
- 學(xué)校人事管理制度改革方案
- 韓國《寄生蟲》電影鑒賞解讀
- 三對三籃球賽記錄表
- 石油和天然氣輸送行業(yè)物聯(lián)網(wǎng)與智能化技術(shù)
- 高考英語高頻詞匯匯總
評論
0/150
提交評論