版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上摘要 電子秤是一種我們?nèi)粘I钪薪?jīng)常使用的稱(chēng)重工具,相較于傳統(tǒng)的桿秤來(lái)說(shuō),同時(shí)也是一種集聚了多種現(xiàn)代高科技技術(shù)于一體的現(xiàn)代新型稱(chēng)重儀器。 電子秤主要以單片機(jī)作為控制中心,通過(guò)稱(chēng)重傳感器采集數(shù)據(jù),然后使用A/D轉(zhuǎn)換器進(jìn)行數(shù)據(jù)轉(zhuǎn)換,輔以鍵盤(pán),顯示器,再配合相應(yīng)的軟件來(lái)實(shí)現(xiàn)的。電子稱(chēng)使用起來(lái)方便快捷,測(cè)量準(zhǔn)確,精度高,穩(wěn)定性強(qiáng),更重要的是能夠?qū)崿F(xiàn)自動(dòng)稱(chēng)重、重量實(shí)現(xiàn)數(shù)字化顯示,極大地便利了人們的生活,滿(mǎn)足了人們對(duì)于稱(chēng)重的需求,所以越來(lái)越受到人們的歡迎。 經(jīng)過(guò)仔細(xì)研究,本系統(tǒng)設(shè)計(jì)最終決定選用新一代STC89C52RC單片機(jī)來(lái)制作完成課題所要求的電子秤,使其作為主控電路的核心,實(shí)
2、現(xiàn)電子秤的所有功能。在設(shè)計(jì)過(guò)程中,系統(tǒng)增加了時(shí)鐘模塊的功能,系統(tǒng)由單片機(jī)控制核心,數(shù)據(jù)采集,人機(jī)交互,系統(tǒng)電源和時(shí)鐘五大部分組成。單片機(jī)主控電路部分由除了STC89C52R之外,還有報(bào)警器及其相關(guān)電路組成;電阻應(yīng)變式壓力傳感器,信號(hào)放大電路和A/D轉(zhuǎn)換器則構(gòu)成了數(shù)據(jù)采集部分,其中信號(hào)放大電路和A/D轉(zhuǎn)換器部分則選用內(nèi)部自帶放大器的專(zhuān)用型AD轉(zhuǎn)換芯片HX711實(shí)現(xiàn),它的特點(diǎn)是轉(zhuǎn)換精度很高,應(yīng)用起來(lái)簡(jiǎn)單方便;人機(jī)交互部分則選用矩陣鍵盤(pán)作為輸入設(shè)備,LCD1602液晶顯示器作為顯示設(shè)備;系統(tǒng)電源采用電腦USB接口供電,這樣電路簡(jiǎn)單且電壓穩(wěn)定;時(shí)鐘部分選用DS1302時(shí)鐘芯片,再結(jié)合相關(guān)電路組成時(shí)鐘電
3、路。軟件部分通過(guò)使用C語(yǔ)言編程實(shí)現(xiàn)了本課題要求的全部功能。該電子秤能夠滿(mǎn)足課題所要求的稱(chēng)重功能的同時(shí),并對(duì)時(shí)鐘功能進(jìn)行了豐富,增加了鬧鐘功能,稱(chēng)重范圍為05Kg;能夠顯示所稱(chēng)物體重量、單價(jià)、總價(jià)。關(guān)鍵詞:電子秤;單片機(jī);稱(chēng)重傳感器;HX711。專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)目 錄第一章 緒論1.1 研究的背景和意義電子秤是一種與人民現(xiàn)實(shí)生產(chǎn)生活息息相關(guān),被廣泛應(yīng)用于各個(gè)領(lǐng)域的電子衡器,諸如工業(yè)生產(chǎn),商業(yè)貿(mào)易,交通運(yùn)輸,港口,機(jī)械制造,醫(yī)療保健,冶金,礦山和國(guó)防建設(shè)等各個(gè)方面。和傳統(tǒng)的桿秤進(jìn)行對(duì)比,電子秤具備諸多優(yōu)點(diǎn),例如:它的精度很高,結(jié)構(gòu)簡(jiǎn)單,價(jià)格低,用途廣泛,便于攜帶,使用方便等優(yōu)點(diǎn)。電子稱(chēng)的工作原理也
4、不難理解,它通過(guò)壓力傳感器采集物體重量信息,將其轉(zhuǎn)換為電信號(hào),進(jìn)行適當(dāng)?shù)男盘?hào)放大處理,再通過(guò)A/D轉(zhuǎn)換器將模擬電信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),最后經(jīng)過(guò)單片機(jī)的控制處理,送到液晶顯示器顯示出被測(cè)物體的重量信息。目前市場(chǎng)上使用的稱(chēng)量工具,各個(gè)公司的產(chǎn)品質(zhì)量良莠不齊,有的質(zhì)量較高但價(jià)格太高,有的價(jià)格不高但質(zhì)量太差,容易損壞,精度不高,穩(wěn)定性差,運(yùn)行不可靠。所以目前商用的電子秤市場(chǎng)上,商用電子秤的總體質(zhì)量不高,這種情況是由多種因素造成的,例如某些公司因?yàn)橘Y金有限,造成科技人才儲(chǔ)備不足,從而使其技術(shù)力量不夠強(qiáng),科技研發(fā)能力不足,造成產(chǎn)品質(zhì)量不高。因此,開(kāi)發(fā)出一種質(zhì)量較高但成本不高,具有較高性?xún)r(jià)比且具有實(shí)際實(shí)用價(jià)值
5、的電子秤,克服電子秤在實(shí)際使用中的諸多缺點(diǎn),具有一定的現(xiàn)實(shí)意義。1.2 研究現(xiàn)狀國(guó)內(nèi)有關(guān)電子秤技術(shù)的研究相比國(guó)外來(lái)說(shuō)起步晚了很多,不過(guò)在國(guó)內(nèi)科學(xué)家的努力下,近些年我們奮起直追,技術(shù)水平有了極大提升,取得了很多成果。從上世紀(jì)六十年代第一臺(tái)電子秤的誕生,到如今的微機(jī)式產(chǎn)品,在某些技術(shù)領(lǐng)域甚至達(dá)到了國(guó)際領(lǐng)先水平。我們僅僅用了幾十年的時(shí)間就達(dá)到了發(fā)達(dá)國(guó)家花費(fèi)近一百年才能夠達(dá)到的技術(shù)水平。但是總體來(lái)說(shuō),目前國(guó)內(nèi)電子衡器的技術(shù)水平仍然不算太高,僅僅與發(fā)達(dá)國(guó)家上世紀(jì)九十年代的水平相當(dāng)。與國(guó)外產(chǎn)品相比,我國(guó)商用產(chǎn)品在品種,功能,質(zhì)量,核心部件的穩(wěn)定性和可靠性方面還有不小的差距。經(jīng)過(guò)一百多年的發(fā)展,發(fā)達(dá)國(guó)家已經(jīng)
6、在電子秤有關(guān)的各個(gè)領(lǐng)域都達(dá)到了很高的水平,例如技術(shù)水平、產(chǎn)品種類(lèi)等等,最重要的是他們產(chǎn)品的精確度,穩(wěn)定性,可靠性都相當(dāng)高。如他們商用秤的精度已經(jīng)達(dá)到OIML規(guī)定,有的產(chǎn)品甚至遠(yuǎn)超此規(guī)定;另外它們的穩(wěn)定性也極強(qiáng),在一年內(nèi)不允許有超差情況出現(xiàn);同時(shí)這些產(chǎn)品的使用壽命通常被要求能夠正常工作十幾年,由此可見(jiàn)其可靠性也很高。簡(jiǎn)而言之,在電子秤技術(shù)領(lǐng)域,國(guó)內(nèi)企業(yè)還有很長(zhǎng)的路要走?,F(xiàn)在電子秤技術(shù)的發(fā)展趨勢(shì)總的來(lái)說(shuō)是朝著智能化的方向發(fā)展;電子秤的功能會(huì)越來(lái)越豐富;電子秤的速率會(huì)越來(lái)越高,準(zhǔn)確率和穩(wěn)定性會(huì)越來(lái)越高,可靠性也會(huì)越來(lái)越強(qiáng)2;1.3 主要研究?jī)?nèi)容 本課題主要完成稱(chēng)重自動(dòng)控制功能,本系統(tǒng)采用單片機(jī)STC
7、89C52RC來(lái)制作完成課題所要求的電子秤,使其作為主控電路的核心,實(shí)現(xiàn)電子秤的所有功能,經(jīng)過(guò)設(shè)計(jì),系統(tǒng)由單片機(jī)控制核心,數(shù)據(jù)采集,人機(jī)交互,系統(tǒng)電源和時(shí)鐘五大部分組成。 由系統(tǒng)電源、壓力傳感器、A/D轉(zhuǎn)換器、51單片機(jī)、鍵盤(pán)、LCD液晶顯示器,時(shí)鐘芯片等器件共同構(gòu)成了系統(tǒng)硬件部分的五大模塊。使用單片機(jī)編程軟件運(yùn)用C語(yǔ)言編程實(shí)現(xiàn)要求的功能,從而完成系統(tǒng)軟件部分的設(shè)計(jì)。需要達(dá)到以下的技術(shù)指標(biāo):稱(chēng)量范圍0-5kg;電子秤稱(chēng)重時(shí)能顯示物品重量,還能進(jìn)行單價(jià)設(shè)定,并能自動(dòng)算出總價(jià)并顯示出來(lái),超重時(shí)還要能夠發(fā)出警報(bào)。若不進(jìn)行稱(chēng)量操作,則能夠顯示時(shí)間,且具有鬧鐘功能。1.4 本文的組織結(jié)構(gòu)本文對(duì)
8、電子秤的設(shè)計(jì)和具體實(shí)現(xiàn)方法作了具體的描述,對(duì)整個(gè)系統(tǒng)的各個(gè)組成部分及涉及的相關(guān)技術(shù)進(jìn)行了介紹,例如壓力傳感器,A/D轉(zhuǎn)換器,51單片機(jī),鍵盤(pán)輸入,電源部分,報(bào)警電路,時(shí)鐘芯片,顯示器等等。總共劃分了五章內(nèi)容,如下所示。第一章:簡(jiǎn)要介紹了電子秤的概念,特點(diǎn),技術(shù)現(xiàn)狀和研究?jī)?nèi)容。第二章:論證了系統(tǒng)方案,介紹了相關(guān)的原理及相關(guān)器件,對(duì)比了各種方案的優(yōu)缺點(diǎn)。第三章:對(duì)相關(guān)芯片以及相應(yīng)模塊的功能作了細(xì)致的分析,給出了單片機(jī)控制方案。第四章:介紹了系統(tǒng)的軟件設(shè)計(jì)。第五章:對(duì)最終的成品設(shè)計(jì)作了相應(yīng)的調(diào)試,分析,給出了最終的結(jié)論。第二章 系統(tǒng)方案的設(shè)計(jì)2.1 電子秤的設(shè)計(jì)要求2.1.1 基本要求 (1)電子秤
9、稱(chēng)重范圍:05Kg;重量誤差不超過(guò)+0.003Kg。 (2)LED顯示所稱(chēng)物體重量、單價(jià)、總價(jià)。 (3)超量程報(bào)警功能。 (4)不稱(chēng)重時(shí),可以顯示時(shí)間。2.1.2 功能擴(kuò)展 (1)液晶顯示所稱(chēng)重物品的重量,同時(shí)還可以顯示物品的單價(jià),總價(jià)。 (2)能夠?qū)崿F(xiàn)去除皮重的功能。 (3)能夠顯示時(shí)間的同時(shí),實(shí)現(xiàn)了鬧鐘功能。2.2 系統(tǒng)的設(shè)計(jì)思路及工作原理2.2.1 工作原理電子秤通過(guò)壓力傳感器采集物體重量信息,將其轉(zhuǎn)換為電信號(hào),進(jìn)行適當(dāng)?shù)男盘?hào)放大處理,再通過(guò)A/D轉(zhuǎn)換器將模擬電信號(hào)轉(zhuǎn)換
10、為數(shù)字信號(hào),然后經(jīng)過(guò)單片機(jī)的處理,最后送到液晶顯示器顯示出被測(cè)物體的重量信息4。2.2.2 基本設(shè)計(jì)思路 系統(tǒng)由單片機(jī)控制核心,數(shù)據(jù)采集,人機(jī)交互,系統(tǒng)電源和時(shí)鐘五大部分組成。單片機(jī)主控電路部分由除了STC89C52R之外,還有報(bào)警器及其相關(guān)電路組成;電阻應(yīng)變式壓力傳感器,信號(hào)放大電路和A/D轉(zhuǎn)換器則構(gòu)成了數(shù)據(jù)采集部分,其中信號(hào)放大電路和A/D轉(zhuǎn)換器部分則選用內(nèi)部自帶放大器的專(zhuān)用型AD轉(zhuǎn)換芯片HX711實(shí)現(xiàn),它的特點(diǎn)是轉(zhuǎn)換精度很高,應(yīng)用起來(lái)簡(jiǎn)單方便;人機(jī)交互部分則選用矩陣鍵盤(pán)作為輸入設(shè)備,LCD1602液晶顯示器作為顯示設(shè)備;系統(tǒng)電源采用電腦USB接口供電,這樣電路簡(jiǎn)單且電壓穩(wěn)定;時(shí)鐘部分選用
11、DS1302時(shí)鐘芯片,再結(jié)合相關(guān)電路組成時(shí)鐘電路。使用單片機(jī)編程軟件運(yùn)用C語(yǔ)言編程實(shí)現(xiàn)要求的功能,并對(duì)時(shí)鐘功能進(jìn)行豐富,增加了鬧鐘功能。2.3 系統(tǒng)總體設(shè)計(jì)方案比較與論證在設(shè)計(jì)本系統(tǒng)時(shí),有以下幾種電子秤設(shè)計(jì)方案:方案一: 數(shù)碼管方案結(jié)構(gòu)簡(jiǎn)圖如圖2-1所示。圖2-1 數(shù)碼管顯示方案這種設(shè)計(jì)方案雖然能夠滿(mǎn)足課題的基本要求,能夠完成物品稱(chēng)重的同時(shí),顯示重量、單價(jià)、總價(jià)等信息??墒沁@種方案也有其致命缺陷,如果數(shù)碼管較少,則不能同時(shí)顯示重量、單價(jià)、總價(jià)等信息,這是因?yàn)閿?shù)碼管本身的缺陷引起的。如果要同時(shí)顯示多個(gè)信息,就必須在電路中安裝大量數(shù)碼管,但是這樣會(huì)大幅增加硬件電路設(shè)計(jì)的難度。方案二:在模數(shù)轉(zhuǎn)換之前
12、,加上放大器,用于準(zhǔn)確的線性放大輸出電壓信號(hào)。將數(shù)碼管換為具有更強(qiáng)大顯示能力的液晶顯示器。這種不僅加強(qiáng)了人機(jī)交互功能,滿(mǎn)足設(shè)計(jì)要求,而且可以同時(shí)顯示物體重量,單價(jià),總價(jià)等信息,電路更加簡(jiǎn)單,設(shè)計(jì)更加簡(jiǎn)便。結(jié)構(gòu)簡(jiǎn)圖如圖2-2所示。圖2-2 LCD液晶顯示方案在整個(gè)硬件電路系統(tǒng)的設(shè)計(jì)過(guò)程中,綜合分析了各種有利因素和不利因素以后,最終完成了的電子稱(chēng)設(shè)計(jì)方案。系統(tǒng)硬件設(shè)計(jì)框圖如圖2-3所示。數(shù)據(jù)采集AD轉(zhuǎn)換器單片機(jī)LCD顯示時(shí)鐘顯示報(bào)警電路鍵盤(pán)信號(hào)放大時(shí)鐘芯片圖2-3 系統(tǒng)設(shè)計(jì)硬件框圖2.3 系統(tǒng)元器件選型及參數(shù)介紹2.3.1 單片機(jī)選型單片機(jī)作為系統(tǒng)主控電路的核心元件,是整個(gè)硬件電路系統(tǒng)的中樞所在,
13、也就是心臟部位。所以其選型非常重要。根據(jù)本課題的需求,需要處理速度快,易用性強(qiáng),價(jià)格便宜的單片機(jī),最終決定選用STC89C52單片機(jī)。STC89C52單片機(jī)是一種新型的51單片機(jī),集眾多優(yōu)點(diǎn)于一身,例如:功耗很低,性能足夠優(yōu)秀,處理速度很快等等。STC89C52使用了傳統(tǒng)的MCS-51內(nèi)核,同時(shí)也做了許多改進(jìn),使得芯片相較于傳統(tǒng)的51單片機(jī)功能更加豐富,性能也更加強(qiáng)勁 1,這讓它得到了廣泛的應(yīng)用。stc89c52芯片具有以下特性5:指令集完全兼容傳統(tǒng)的8051;內(nèi)部集成有8KB的存儲(chǔ)空間;時(shí)鐘頻率為033MHz;32個(gè)可編程輸入/輸出引腳;2個(gè)16位定時(shí)/計(jì)數(shù)器;6個(gè)中斷源,2級(jí)優(yōu)先級(jí);全雙工
14、串行通信接口;監(jiān)視定時(shí)器;2個(gè)數(shù)據(jù)指針。STC89C52單片機(jī)引腳圖如圖2-4所示5。 圖2-4 STC89C52單片機(jī)引腳圖2.3.2 數(shù)據(jù)采集部分2.3.2.1 傳感器的選型 方案一 電容式壓力傳感器 電容式壓力傳感器是一種比較常見(jiàn)的壓力傳感器,平常使用的很多測(cè)量?jī)x器都是以它為基礎(chǔ)制成的,它是一種利用電容變化巧妙地把對(duì)壓力的測(cè)量轉(zhuǎn)換為電信號(hào)測(cè)量的儀器。 它的應(yīng)用非常廣泛,有很多優(yōu)點(diǎn):例如分辨率很高;能夠進(jìn)行動(dòng)態(tài)的檢測(cè);結(jié)構(gòu)很簡(jiǎn)單,并不復(fù)雜;尤為重要的是它的穩(wěn)定性很好,可以勝任各種環(huán)境下的測(cè)量工作;可以是非接觸測(cè)量的,很方便。 方案二 壓電式壓力傳感器這種傳感器的實(shí)際工作原理是通過(guò)電氣元件把
15、對(duì)壓力的測(cè)量的轉(zhuǎn)變?yōu)閷?duì)電信號(hào)的測(cè)量。它也有不少優(yōu)點(diǎn),例如:重量輕、可靠性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單、穩(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)變式傳感器是通過(guò)金屬電阻應(yīng)變片受到壓力的作用后,其電阻值也會(huì)隨之變化的原理工作的。金屬電阻應(yīng)變片有許多種類(lèi),不同的電阻應(yīng)變片有不同的優(yōu)缺點(diǎn),適合不同場(chǎng)合。這種傳感器有很多優(yōu)點(diǎn),例如:它的靈敏度和精度都足夠高,測(cè)量范圍非常廣,使用壽命很長(zhǎng)
16、,結(jié)構(gòu)很簡(jiǎn)單,頻響特性也不錯(cuò),最重要的是在許多惡劣的環(huán)境下,依然有很高的穩(wěn)定性,能夠正常工作。經(jīng)過(guò)認(rèn)真對(duì)比分析這三種方案的優(yōu)缺點(diǎn),我選擇了第三種方案,這種方案更加符合本課題的要求。 2.3.2.2 放大器及模數(shù)轉(zhuǎn)換器選擇通常由于傳感器輸出的信號(hào)一般較弱,如果信號(hào)沒(méi)有經(jīng)過(guò)放大處理,就會(huì)因?yàn)樾盘?hào)輸出的電壓信號(hào)太低造成難以直接用來(lái)進(jìn)行A/D轉(zhuǎn)換。為此,測(cè)量電路中經(jīng)常設(shè)置有信號(hào)放大處理電路模塊,用來(lái)放大處理信號(hào)。這一模塊由相應(yīng)的放大器構(gòu)成。 模數(shù)轉(zhuǎn)換部分的設(shè)計(jì)在整個(gè)設(shè)計(jì)中占有非常重要的位置,所以模數(shù)轉(zhuǎn)換器的選擇就顯得尤為重要。目前,世界上存在的模數(shù)轉(zhuǎn)換器的種類(lèi)多種多樣,有傳統(tǒng)的并
17、行、積分型模數(shù)轉(zhuǎn)換器,也有專(zhuān)用型的模數(shù)轉(zhuǎn)換器。不同的模數(shù)轉(zhuǎn)換器有不同的優(yōu)缺點(diǎn),具有各自的性能。目前,可供選擇的模數(shù)轉(zhuǎn)換器有以下幾種選擇:(1)并行比較A/D轉(zhuǎn)換器:如ADC0808、ADC0809等。并行比較ADC顯著的特點(diǎn)是轉(zhuǎn)換速度快,但是成本高,功耗較大,且其分辨率一般不高,因此并行比較式A/D適合于要求高速、低分辨率的儀器中。(2)積分型A/D轉(zhuǎn)換器:如:ICL7135、ICL7109等。它的基本原理比較簡(jiǎn)單,優(yōu)點(diǎn)是穩(wěn)定性相當(dāng)不錯(cuò),轉(zhuǎn)換精度高。缺點(diǎn)是轉(zhuǎn)換速度慢。適合對(duì)精度的需求較高,而且對(duì)轉(zhuǎn)換速度需求不高的儀器儀表中。(3)專(zhuān)用型A/D轉(zhuǎn)換器:如HX711。它是專(zhuān)用型高精度的24位A/D
18、轉(zhuǎn)換器芯片。它有很高的集成度,有很好的穩(wěn)定性。最重要的是其內(nèi)部集成有放大器,如果選用它來(lái)設(shè)計(jì)電子秤,就可無(wú)需額外選取放大器了。這樣就使電路設(shè)計(jì)的復(fù)雜度減小了,同時(shí)減小了制作成本10。經(jīng)過(guò)綜合分析,最終決定選用專(zhuān)用型高精度的模數(shù)轉(zhuǎn)換芯片HX711。芯片引腳圖如圖2-6所示。圖2-6 HX711引腳圖2.3.3 人機(jī)交互部分2.3.3.1 鍵盤(pán)輸入鍵盤(pán)作為人機(jī)交互模塊中非常重要的一環(huán),它是使用者向系統(tǒng)進(jìn)行信息輸入的工具。鍵盤(pán)是由一個(gè)一個(gè)的獨(dú)立按鍵和相應(yīng)的電路構(gòu)成。鍵盤(pán)的種類(lèi)有很多,但我們經(jīng)常使用到的只有幾種,例如通用鍵盤(pán)。鍵盤(pán)的選型要根據(jù)課題的要求和設(shè)計(jì)的需要而定目前有兩種方案可以選擇。方案一:I
19、ntel8279是一種大家經(jīng)常使用的可編程通用鍵盤(pán)/顯示器接口芯片,它既有鍵盤(pán)輸入功能,也有顯示器輸出功能。它有很多優(yōu)點(diǎn),但是同時(shí)也有致命的缺點(diǎn),就是它的使用會(huì)占用系統(tǒng)過(guò)多的資源,這會(huì)讓本就緊張的系統(tǒng)資源更加稀少。方案二:選用常用的矩陣鍵盤(pán),它編程非常簡(jiǎn)單,設(shè)計(jì)可靠,同時(shí)配合單片機(jī)可以很輕松的實(shí)現(xiàn)按鍵輸入。通過(guò)以上分析,最終選用矩陣鍵盤(pán)。2.3.3.2 顯示電路顯示電路作為人機(jī)交互的重要組成部分,其中顯示器的選擇尤為重要,它直接關(guān)乎著使用者進(jìn)行人機(jī)交互的體驗(yàn)感受。有以下兩種方案。方案一:使用數(shù)碼管作為顯示器。這種設(shè)計(jì)方案能夠滿(mǎn)足課題的基本要求,完成物品稱(chēng)重的同時(shí),也能顯示重量、單價(jià)、總價(jià)等信息
20、。其顯著的優(yōu)點(diǎn)是編程較為簡(jiǎn)單,但缺點(diǎn)則是不能同時(shí)顯示多個(gè)不同的信息,若要同時(shí)顯示不同的信息,如同時(shí)顯示單價(jià),總價(jià)等信息,則需要同時(shí)安裝大量的數(shù)碼管。這樣則增加了電路的復(fù)雜度,使設(shè)計(jì)硬件電路時(shí)的難度大大增加。同時(shí)軟件編寫(xiě)的難度也加大了許多,再則數(shù)碼管能夠顯示的字符十分有限,對(duì)許多字符不能很好的顯示。方案二:采用具有更強(qiáng)字符顯示功能的LCD液晶顯示器,可以設(shè)置顯示單價(jià),總價(jià),時(shí)間日期等信息,它的功耗很低、能夠顯示的內(nèi)容非常豐富,穩(wěn)定性也很好。現(xiàn)在字符型液晶顯示器應(yīng)用也較為普遍,價(jià)格也不是很高。經(jīng)過(guò)仔細(xì)分析,最終選擇了方案二,使用液晶顯示器作為顯示電路的核心器件。2.3.4 電源部分因?yàn)楸驹O(shè)計(jì)中選用
21、的單片機(jī)等器件的所需的電源電壓均為5V,而USB接口剛好為5V,所以本設(shè)計(jì)采用電腦USB接口直接供電,這樣設(shè)計(jì)電路也比較簡(jiǎn)單。同時(shí),設(shè)計(jì)了相應(yīng)的USB下載電路,單片機(jī)可以通過(guò)USB接口直接下載程序。其電路原理如圖2-7所示。圖2-7 供電及程序下載電路2.3.5 具體實(shí)施方案簡(jiǎn)介本系統(tǒng)設(shè)計(jì)最終決定選用新一代STC89C52RC單片機(jī)來(lái)制作完成課題所要求的電子秤,使其作為主控電路的核心,實(shí)現(xiàn)電子秤的所有功能。STC89C52單片機(jī)是一種具有低功耗,具有優(yōu)異性能的微處理器,它具有許多傳統(tǒng)51單片機(jī)不具備的功能,同時(shí)具備一定的存儲(chǔ)空間,由于編程所需要的軟件存儲(chǔ)空間不是太大,此單片機(jī)內(nèi)部存儲(chǔ)空間能夠滿(mǎn)
22、足需求,這樣就無(wú)須再外接外部存儲(chǔ)器了,從而降低了系統(tǒng)設(shè)計(jì)的難度。硬件部分除了包括單片機(jī)控制核心模塊之外,還包括數(shù)據(jù)采集,人機(jī)交互,系統(tǒng)電源和時(shí)鐘電路等部分。數(shù)據(jù)采集部分由電阻式壓力傳感器和專(zhuān)用型24位模數(shù)轉(zhuǎn)換器組成。在選擇電阻式壓力傳感器時(shí),要結(jié)合課題的要求,根據(jù)實(shí)際需求,選用有足夠精確度和穩(wěn)定性的傳感器,還要把其的稱(chēng)重誤差控制在合理范圍內(nèi)。另外還要考慮秤臺(tái)自身的重量的影響,并且要防止物體超重時(shí)損壞稱(chēng)重傳感器,所以最終選擇的電阻式壓力傳感器的稱(chēng)重極限值,要大于課題所要求的最大值,準(zhǔn)確性也要達(dá)到課題的要求。人機(jī)交互部分的鍵盤(pán),最終選用了編程較為簡(jiǎn)單的矩陣鍵盤(pán)。液晶顯示器選用了lcd1602.時(shí)鐘
23、模塊選用了時(shí)鐘芯片DS1302作為核心器件。系統(tǒng)硬件的結(jié)構(gòu)框圖如下圖2-8所示。圖2-8 系統(tǒng)硬件結(jié)構(gòu)框圖第三章 系統(tǒng)的硬件設(shè)計(jì)本系統(tǒng)設(shè)計(jì)最終決定選用新一代STC89C52RC單片機(jī)來(lái)制作完成課題所要求的電子秤,使其作為主控電路的核心,實(shí)現(xiàn)電子秤的所有功能。硬件部分由單片機(jī)控制核心,數(shù)據(jù)采集,人機(jī)交互,系統(tǒng)電源和時(shí)鐘五大部分組成。3.1基于STC89C52的主控電路(1) 單片機(jī)STC89C52簡(jiǎn)述STC89C52是一種性能十分出眾,功耗很低的單片機(jī),作為一款改進(jìn)型單片機(jī),它使用了傳統(tǒng)的MCS-51內(nèi)核,由于做了許多改進(jìn),使得芯片相較于傳統(tǒng)的51單片機(jī)功能更加豐富,性能也更加強(qiáng)勁。另外由于沿用
24、了傳統(tǒng)內(nèi)核,所以它的指令集也完全兼容傳統(tǒng)8051。 (2)單片機(jī)核心控制電路的中心為STC89C52單片機(jī),其次是晶振電路。為了能夠?qū)崿F(xiàn)清零功能,還設(shè)計(jì)了復(fù)位電路,此電路是整個(gè)系統(tǒng)中最重要的部分,是實(shí)現(xiàn)所有功能的關(guān)鍵所在。本課題設(shè)計(jì)的單片機(jī)主控電路如圖3-1所示。圖3-1 主控電路圖圖中DT和SCK外接模數(shù)轉(zhuǎn)換電路,負(fù)責(zé)單片機(jī)與模數(shù)轉(zhuǎn)換電路之間的信息交換。P1.6外接蜂鳴器,用來(lái)傳輸報(bào)警信號(hào)。晶振是晶片使用某些特殊材料封裝起來(lái)以后,又將IC添加在其封裝內(nèi)部組成振蕩電路的晶體元件。晶振在單片機(jī)中所起的作用非常巨大,它能夠?yàn)槠涮峁┬枰臅r(shí)鐘頻率,而且單片機(jī)的指令都必須在這個(gè)基礎(chǔ)之上執(zhí)行。
25、設(shè)計(jì)復(fù)位電路一方面為實(shí)現(xiàn)清零功能,另一方面是為了保證系統(tǒng)中的電路能夠穩(wěn)定可靠的工作,本設(shè)計(jì)復(fù)位電路采用兩種復(fù)位方式,按鍵復(fù)位和上電復(fù)位。構(gòu)成復(fù)位電路有兩種方案,一種是借助STC89C52內(nèi)部的反相放大器構(gòu)成振蕩器,但是要形成時(shí)鐘脈沖,需要在外部額外增加電路,這樣會(huì)增加電路的復(fù)雜度。所以最終選用另外一種方案,即利用內(nèi)部自帶時(shí)鐘,使用芯片內(nèi)部的振蕩器,完成復(fù)位電路設(shè)計(jì)。3.2 數(shù)據(jù)采集及A/D轉(zhuǎn)換電路3.2.1 數(shù)據(jù)采集電路 (1)數(shù)據(jù)采集采用HL-8型稱(chēng)重傳感器,其安裝方式如圖3-2所示。圖3-2 HL-8型稱(chēng)重傳感器安裝圖(2)HL-8型稱(chēng)重傳感器的內(nèi)部原理圖如3-3所示。圖3-3 HL-8型
26、稱(chēng)重傳感器內(nèi)部原理圖(3)HL-8型稱(chēng)重傳感器的主要技術(shù)參數(shù)如表3-1所示。表3-1 HL-8型稱(chēng)重傳感器主要技術(shù)參數(shù)3.2.2 A/D轉(zhuǎn)換電路采用高增益的24位HX711轉(zhuǎn)換器HX711是一款專(zhuān)用型高精度的24位模數(shù)轉(zhuǎn)換芯片。HX711管腳說(shuō)明如表3-2所示。表3-2 HX711管腳說(shuō)明(1)模擬輸入(2)供電電源(3)時(shí)鐘選擇本課題設(shè)計(jì)的HX711電路如圖3-4所示。圖3-4 HX711電路3.3 顯示電路使用具有顯示內(nèi)容豐富的16*2行的LCD1602顯示器,它性能優(yōu)異,能夠同時(shí)顯示多種字符和數(shù)字,基控制器采用HD44780,非常符合本設(shè)計(jì)的要求。它功耗很小,體積小,顯示內(nèi)容豐富,編程較
27、為簡(jiǎn)單8。其與單片機(jī)的連接電路如圖3-5所示。圖3-5 系統(tǒng)狀態(tài)顯示電路圖 1腳為接地引腳;2腳為電源引腳;3腳為液晶1602的背光調(diào)節(jié)引腳,通過(guò)2K電位器接地;4腳是控制模塊內(nèi)部寄存器選擇的引腳;5腳是控制讀/寫(xiě)模塊操作的引腳;6腳為使能端;4、5、6引腳分別與單片機(jī)的P1.0、P1.1、P1.2端口相連;7-14腳與單片機(jī)的P0口相連,他們是8根數(shù)據(jù)通信線。通它們,單片機(jī)可以和液晶屏進(jìn)行信息交換;15腳連接電源、16腳接地8。3.4 時(shí)鐘電路DS1302是一種實(shí)時(shí)時(shí)鐘芯片,它的性能十分出眾,功耗很低,并且自帶RAM,使用它可以輕松編程實(shí)現(xiàn)電子日歷功能。工作電壓寬達(dá)2.55.5V。因?yàn)橛兄T多
28、優(yōu)點(diǎn),所以它在很多測(cè)量系統(tǒng)中被普遍使用9。DS1302管腳圖如圖3-6所示。 圖3-6 DS1302管腳定義DS1302各引腳的功能為:VCC1:備用電源;VCC2:主電源。當(dāng)VCC2>VCC1+0.2V時(shí),由VCC2向DS1302供電,當(dāng)VCC2< VCC1時(shí),由VCC1向DS1302供電。SCLK:串行時(shí)鐘,輸入; I/O:三線接口時(shí)的雙向數(shù)據(jù)線;CE:輸入信號(hào),在讀、寫(xiě)數(shù)據(jù)期間,必須為高。時(shí)鐘電路如圖3-7所示。圖3-7 時(shí)鐘電路3.5 報(bào)警電路本設(shè)計(jì)中的報(bào)警電路原理簡(jiǎn)單,易于理解。當(dāng)物品重量超過(guò)最大量程時(shí),蜂鳴器發(fā)出報(bào)警聲,進(jìn)行報(bào)警。報(bào)警電路由三極管,電阻和蜂鳴
29、器構(gòu)成。蜂鳴器通過(guò)三極管來(lái)驅(qū)動(dòng),單片機(jī)的引腳P1.6與三極管的基極相連,三極管通過(guò)單片機(jī)相應(yīng)接口輸出的高低電平來(lái)控制其導(dǎo)通與否。報(bào)警電路如圖3-8所示。圖3-8 報(bào)警電路3.6 鍵盤(pán)輸入鍵盤(pán)輸入電路作為人機(jī)交互部分中重要的組成部分,在電子稱(chēng)工作的過(guò)程中,所有信息的輸入都由它來(lái)完成,例如單價(jià)值的輸入,時(shí)間的調(diào)整。經(jīng)過(guò)縝密思考,鍵盤(pán)最終選用了矩陣鍵盤(pán),這是因?yàn)槠浣Y(jié)構(gòu)簡(jiǎn)單,編程方便,便于進(jìn)行相應(yīng)的軟件設(shè)計(jì)。其電路如圖3-9所示。圖3-9 矩陣鍵盤(pán)作為電子秤時(shí),其按鍵功能分配如下表所示。789刪除456去皮123清零10011顯示時(shí)間此電子秤每次開(kāi)機(jī)自動(dòng)進(jìn)入稱(chēng)重頁(yè)面,所有數(shù)據(jù)初始化清零。進(jìn)行物品稱(chēng)重前
30、,要先按下去皮鍵,除去托盤(pán)重量,將其重量清零,實(shí)現(xiàn)去皮功能。在輸入了單價(jià)的過(guò)程中,可以使用刪除鍵或者清零鍵修改單價(jià)。單價(jià)設(shè)定完完成后,總價(jià)會(huì)自動(dòng)生成,并被顯示出來(lái)。作為時(shí)鐘和鬧鐘的時(shí)候,鍵盤(pán)面板如下所示。選擇+-鬧鈴?fù)V鼓J竭x擇對(duì)應(yīng)矩陣鍵盤(pán)按鍵:1514131112由于此電子秤開(kāi)機(jī)后默認(rèn)進(jìn)入稱(chēng)重界面,所以進(jìn)入時(shí)間顯示界面或者鬧鐘顯示界面需要通過(guò)模式選擇按鍵進(jìn)行界面切換。進(jìn)入時(shí)間顯示界面或者鬧鐘顯示界面以后,對(duì)各個(gè)時(shí)間參數(shù)的調(diào)節(jié)需要通過(guò)選擇按鍵來(lái)進(jìn)行切換,使用加減鍵來(lái)調(diào)節(jié)其大小。3.7 系統(tǒng)硬件電路的繪制和PCB制作3.7.1Protel99SE軟件介紹在進(jìn)行電路的設(shè)計(jì)時(shí),我將此軟件和Altiu
31、m Designe軟件進(jìn)行了比較,經(jīng)過(guò)綜合考慮之后,我最終決定采用此軟件進(jìn)行原理圖,PCB的繪制,該軟件一經(jīng)問(wèn)世就備受歡迎,后經(jīng)過(guò)版本的更迭發(fā)展成為如今的版本Protel99SE。Protel99SE軟件是一款非常流行的EDA設(shè)計(jì)軟件,它除了能進(jìn)行原理圖,PCB板的設(shè)計(jì)兩種常用的功能之外,還可以完成可編程器件設(shè)計(jì)和電路仿真。它由多種功能模塊組成,包括有原理圖設(shè)計(jì)系統(tǒng)、印刷電路板設(shè)計(jì)系統(tǒng)、自動(dòng)布線系統(tǒng)、電路仿真系統(tǒng)、可編程器件設(shè)計(jì)系統(tǒng)、PCB信號(hào)完整性分析系統(tǒng)等等。因?yàn)樗哂泻軓?qiáng)大的數(shù)據(jù)交換能力和開(kāi)放性及3D模擬能力,所以該軟件自問(wèn)世以來(lái),一直以來(lái)都受到電子工程師和高校師生的極力追捧,備受推崇,
32、因此它成為一款非常流行的設(shè)計(jì)軟件。3.7.2系統(tǒng)原理圖和PCB的繪制3.7.2.1采用Protel99SE軟件繪制原理圖的步驟如下:(1)建立系統(tǒng)所需要的元件庫(kù),如果所需的元器件,軟件自帶的元件庫(kù)中沒(méi)有,則需自己制作沒(méi)有的原理圖符號(hào);(2)把自己建立的元件庫(kù)都添加進(jìn)入相應(yīng)的工程項(xiàng)目中;(3)進(jìn)行元件整體布局將元器件放置于圖中合理的位置,這是最關(guān)鍵的一步;(4)對(duì)原理圖內(nèi)的元器件進(jìn)行電氣連接;(5)放置注釋?zhuān)@是為了增加電路圖的可讀性;3.7.2.2采用Protel99SE軟件繪制PCB的步驟如下:(1)繪制出正確的原理圖后生成網(wǎng)絡(luò)表;(2)在工程中建立PCB文件,導(dǎo)入生成的網(wǎng)絡(luò)表。在網(wǎng)絡(luò)表導(dǎo)入
33、之前,要注意相關(guān)環(huán)境參數(shù)的設(shè)置和電路板的規(guī)劃;(3)進(jìn)行PCB的繪制時(shí),PCB的布線要盡可能美觀,完成繪制后,還要進(jìn)行最終的設(shè)計(jì)規(guī)則檢測(cè)。 第四章 軟件設(shè)計(jì)本課題設(shè)計(jì)的電子秤系統(tǒng)由硬件電路部分和軟件部分組成,硬件電路部分的完成只是整個(gè)系統(tǒng)的基礎(chǔ),它是為軟件的運(yùn)行做準(zhǔn)備的,軟件部分才是整個(gè)系統(tǒng)的靈魂,兩者相輔相成,才能確保整個(gè)系統(tǒng)的成功運(yùn)行。軟件部分必須能夠滿(mǎn)足課題對(duì)功能的所有要求,如自動(dòng)稱(chēng)重、價(jià)格計(jì)算、顯示功能、時(shí)鐘功能、鬧鐘功能、報(bào)警功能等等。軟件系統(tǒng)的主程序包括電子秤函數(shù)和時(shí)鐘函數(shù),此外還有一些重要的子函數(shù),如DS1302初始化程序、顯示函數(shù)、蜂鳴器報(bào)警函數(shù)等等。4.1 主程序流程圖 本本
34、程序主要有兩個(gè)功能函數(shù)組成,一個(gè)為電子秤函數(shù),一個(gè)為時(shí)鐘函數(shù),這兩個(gè)函數(shù)是整個(gè)程序中最重要的組成部分。4.1.1時(shí)鐘模塊程序時(shí)鐘函數(shù)流程圖如圖4-1所示。圖4-1 時(shí)鐘函數(shù)流程圖系統(tǒng)啟動(dòng)后,首先調(diào)用時(shí)鐘芯片DS1302的初始化程序?qū)⑵涑跏蓟?,然后再調(diào)用液晶顯示器LCD1602的初始化程序?qū)⑵涑跏蓟?。系統(tǒng)初始化完畢后,系統(tǒng)默認(rèn)自動(dòng)進(jìn)入物品稱(chēng)重界面,這時(shí)如果按下模式選擇鍵,系統(tǒng)就會(huì)進(jìn)入時(shí)鐘界面,這時(shí)顯示函數(shù)運(yùn)行,液晶屏開(kāi)始顯示時(shí)間,與此同時(shí)按鍵掃描程序開(kāi)始運(yùn)行,循環(huán)檢測(cè)鍵盤(pán)中是否有按鍵按下,是否在進(jìn)行各個(gè)時(shí)間參數(shù)的調(diào)節(jié)或者界面的切換。緊接著與預(yù)先設(shè)定的鬧鐘時(shí)間進(jìn)行比較,檢測(cè)是否與鬧鐘時(shí)間相一致,如
35、果相同,則定時(shí)器T0開(kāi)始運(yùn)行,蜂鳴器發(fā)出蜂鳴聲,提示鬧鐘時(shí)間到了。如果在鬧鐘發(fā)出鬧鈴聲的過(guò)程中關(guān)閉鬧鐘,可以按下鬧鈴解除按鍵,使鬧鐘停止。4.1.2稱(chēng)重模塊程序電子秤函數(shù)流程圖如圖4-2所示。圖4-2 電子秤函數(shù)流程圖在電子秤稱(chēng)重界面工作時(shí),系統(tǒng)啟動(dòng)后會(huì)首先調(diào)用LCD1602初始化程序?qū)⒁壕脸跏蓟瑔?dòng)A/D轉(zhuǎn)換函數(shù),對(duì)采集到的數(shù)據(jù)進(jìn)行處理,與此同時(shí)運(yùn)行單價(jià)函數(shù),按鍵掃描函數(shù)也會(huì)同時(shí)運(yùn)行,檢測(cè)按鍵值的輸入,再通過(guò)設(shè)置函數(shù)進(jìn)行單價(jià)的輸入和修改。自動(dòng)計(jì)算出總價(jià)后,調(diào)用顯示函數(shù)將重量、單價(jià)、總價(jià)等信息顯示在液晶屏上。如果想要清除所有信息重新稱(chēng)重,則只需按下清零鍵即可,系統(tǒng)會(huì)重新初始化,所有數(shù)據(jù)歸零
36、。4.1.3重要的子程序4.1.3.1 DS1302模塊的子程序void write_1302(uchar add,uchar dat)rst = 1; /把復(fù)位線拿高for(i=0;i<8;i+) /低位在前clk = 0; /時(shí)鐘線拿低開(kāi)始寫(xiě)數(shù)據(jù)io = add & 0x01; add >>= 1; /把地址右移一位clk = 1; /時(shí)鐘線拿高for(i=0;i<8;i+)clk = 0; /時(shí)鐘線拿低開(kāi)始寫(xiě)數(shù)據(jù)io = dat & 0x01;dat >>= 1; /把數(shù)據(jù)右移一位clk = 1; /時(shí)鐘線拿高rst = 0; /復(fù)位線
37、合低clk = 0;io = 0;此子程序的功能是往時(shí)鐘芯片DS1302中寫(xiě)入一個(gè)數(shù)據(jù)。寫(xiě)數(shù)據(jù)的過(guò)程就是先寫(xiě)入寄存器地址,再寫(xiě)入數(shù)據(jù)。這些數(shù)據(jù)就是年月日時(shí)分秒這些時(shí)間參數(shù)。寫(xiě)完數(shù)據(jù)以后,將RST置零。uchar read_1302(uchar add)uchar value,i;rst = 1; /把復(fù)位線拿高for(i=0;i<8;i+) /低位在前clk = 0; /時(shí)鐘線拿低開(kāi)始寫(xiě)數(shù)據(jù)io = add & 0x01; add >>= 1; /把地址右移一位clk = 1; /時(shí)鐘線拿高for(i=0;i<8;i+)clk = 0; /時(shí)鐘線拿低開(kāi)始讀數(shù)據(jù)v
38、alue >>= 1;if(io = 1)value |= 0x80;clk = 1; /時(shí)鐘線拿高rst = 0; /復(fù)位線合低clk = 0;io = 0;return value; /返回讀出來(lái)的數(shù)據(jù)此子程序的功能是讀取DS1302中的數(shù)據(jù)即讀取時(shí)間,讀取年月日時(shí)分秒這些時(shí)間參數(shù)。讀取數(shù)據(jù)的過(guò)程和寫(xiě)數(shù)據(jù)的過(guò)程很相似,也是先寫(xiě)入寄存器地址,再讀取數(shù)據(jù)。4.1.3.2 LCD1602液晶顯示器子程序void write_com(uchar com)e=0; /為了讓本次操作有效rs=0; /表示寫(xiě)指令寄存器rw=0; /表示對(duì)寄存器寫(xiě)操作P0=com; /把要寫(xiě)入液晶模塊的數(shù)據(jù)準(zhǔn)
39、備好delay_uint(3); e=1; /讓液晶模塊使能,以便讓我們對(duì)它的操作有效delay_uint(25);e=0; /為了讓本次操作有效此子程序的功能是向CD1602指令寄存器中寫(xiě)入命令。void write_data(uchar dat)e=0; /為了讓本次操作有效rs=1; /表示寫(xiě)數(shù)據(jù)寄存器rw=0; /表示對(duì)寄存器寫(xiě)操作P0=dat; /把要寫(xiě)入液晶模塊的數(shù)據(jù)準(zhǔn)備好delay_uint(3);e=1; /讓液晶模塊使能,以便讓我們對(duì)它的操作有效delay_uint(25);e=0; /為了讓本次操作有效此子程序的功能是向LCD1602數(shù)據(jù)寄存器中寫(xiě)入數(shù)據(jù)信息,void wr
40、ite_string(uchar hang,uchar add,uchar *p)if(hang=1) write_com(0x80+add);/在第一行指定位置顯示elsewrite_com(0x80+0x40+add);/在第二行指定位置顯示while(1) if(*p = '0') break;/判斷字符串是否結(jié)束write_data(*p); /將當(dāng)前的字符內(nèi)容發(fā)送到液晶屏上p+; /指向下一個(gè)字符此子程序的功能是在液晶顯示器的指定位置上顯示字符串。void init_1602() /lcd1602初始化設(shè)置write_com(0x38);/顯示模式設(shè)置,8位數(shù)據(jù)口wr
41、ite_com(0x0c); /開(kāi)啟顯示,光標(biāo)不顯示write_com(0x06); /設(shè)置光標(biāo)移動(dòng)方向?yàn)橄蛴遥@示字符時(shí)字符不移動(dòng)delay_uint(1000);/延時(shí),保證顯示更加穩(wěn)定此子程序的功能是初始化LCD1602液晶顯示器。4.2 主要中斷程序流程圖定時(shí)器T0中斷程序流程圖如圖4-3所示。圖4-3 定時(shí)器T0中斷程序流程圖進(jìn)入TO中斷程序后,系統(tǒng)會(huì)先將TO計(jì)數(shù)器初始化,然后判斷所稱(chēng)物品重量是否超過(guò)電子秤最大量程5kg,如果超重,就會(huì)啟動(dòng)蜂鳴器報(bào)警程序,蜂鳴器就會(huì)報(bào)警提示超重。否則繼續(xù)與鬧鐘標(biāo)志比較,判斷是否到達(dá)鬧鐘時(shí)間,如果到達(dá),同樣會(huì)啟動(dòng)蜂鳴器報(bào)警程序,使蜂鳴器報(bào)警。4.3 核
42、心代碼 下面介紹主程序編寫(xiě),其他程序見(jiàn)附錄7。 (1)頭文件和一些宏定義#include <reg52.h> /調(diào)用單片機(jī)頭文件#define uchar unsigned char /無(wú)符號(hào)字符型 宏定義變量范圍0255#define uint unsigned int /無(wú)符號(hào)整型 宏定義變量范圍065535#define ulong unsigned long#include "ds1302.h"#include<intrins.h> (2)管腳,常量,變量定義uchar code table_num="abcdefg"sb
43、it rs=P10; /寄存器選擇信號(hào) H:數(shù)據(jù)寄存器 L:指令寄存器sbit rw=P11; /寄存器選擇信號(hào) H:數(shù)據(jù)寄存器 L:指令寄存器sbit e =P12; /片選信號(hào) 下降沿觸發(fā)sbit hx711_dout=P21; sbit hx711_sck=P20; sbit ACC0=ACC0;sbit ACC7=ACC7;sbit clk = P13; /ds1302時(shí)鐘線定義sbit io = P14; /數(shù)據(jù)線sbit rst = P15; /復(fù)位線uchar miao,fen,shi,ri,yue,week,nian,lshi,lfen;uchar i;uchar open1;
44、sbit beep = P16; /蜂鳴器uchar menu_1,menu_2;long weight;unsigned long HX711_Buffer = 0;unsigned long Weight_Maopi = 0;unsigned char flag = 0;bit Flag_ERROR = 0;uint temp,qi_weight;bit chaozhong_flag;bit leiji_flag;uchar flag_200ms ;ulong price,z_price; /單價(jià) 總價(jià)uchar flag_p;(3)各個(gè)子程序/*初始化ds1302時(shí)間*/void ini
45、t_1302()uchar i;rst = 0;/第一次讀寫(xiě)數(shù)據(jù)時(shí)要把IO品拿低clk = 0;io = 0;i = read_ds1302ram(30); if(i != 8)i=8;write_ds1302ram(30,i); /4050 4100 3080write_1302(0x8e,0x00);/打開(kāi)寫(xiě)保護(hù)write_1302(0x90,0xaa);/ 定義充電write_1302(0x80,0x53);/秒 write_1302(0x84,0x13);/分 write_1302(0x82,0x43);/時(shí)write_1302(0x8c,0x12);/年write_1302(0x88
46、,0x06);/月write_1302(0x86,0x03);/日write_1302(0x8a,0x06);/星期write_1302(0x8e,0x80);/把最高位值0 允許ds1302工作write_1302(0x8e,0x80);/關(guān)寫(xiě)保護(hù)read_time(); /讀時(shí)間if(miao >= 0x60)write_1302(0x8e,0x00); /打開(kāi)寫(xiě)保護(hù)write_1302(0x80,0x53);/把最高位值0 允許ds1302工作write_1302(0x8e,0x80);/關(guān)寫(xiě)保護(hù)/* 名稱(chēng) : write_sfm4_price(uchar hang,uchar a
47、dd,uchar date)* 功能 : 顯示價(jià)格* 輸入 : 行,列,需要輸入1602的數(shù)據(jù)* 輸出 : 無(wú)*/void write_sfm4_price(uchar hang,uchar add,uint date)if(hang=1) write_com(0x80+add);elsewrite_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+dat
48、e%10);void write_sfm4_price1(uchar hang,uchar add,uint date)if(hang=1) write_com(0x80+add);elsewrite_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(0x3
49、0+date/1000%10);write_data(0x30+date/100%10);write_data('.');write_data(0x30+date/10%10);write_data(0x30+date%10);/*開(kāi)機(jī)液晶顯示函數(shù) 初始化液晶的內(nèi)容*/void init_1602_dis_csf() /初始化液晶 write_string(1,0," W:0.000kg ");write_string(2,0,"P:00.00 Z:00.00");write_zifu(2,7,0x5c);/¥/write_zifu(2,
50、15,0x5c);/¥void init_1602_dis_sj() /初始化液晶 write_string(1,0," : : W: ");write_string(2,0," 20 - - ");void init_1602_dis_nz() /初始化鬧鐘界面 write_string(1,0," set clock "); write_string(2,0," : ");/*壓力顯示程序*/void write_1602_yl(uchar hang,uchar add,uint date)if(hang=1)
51、 write_com(0x80+add);elsewrite_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);void Delay_hx711_us(void)_nop_();_nop_();unsigned long HX7
52、11_Read(void)/增益128unsigned long count; unsigned char i; 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=count0x;/第25個(gè)脈沖下降沿來(lái)時(shí),轉(zhuǎn)換數(shù)據(jù)Delay_hx711_us();hx711_sck=0; ret
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 彈簧管壓力表課程設(shè)計(jì)
- 環(huán)境審計(jì)課程設(shè)計(jì)
- 水泵課程設(shè)計(jì)平面圖
- 學(xué)生成績(jī)排名課程設(shè)計(jì)
- DB12T 990-2020 建筑類(lèi)建設(shè)工程規(guī)劃許可證設(shè)計(jì)方案規(guī)范
- 2024年中國(guó)可松式扎帶市場(chǎng)調(diào)查研究報(bào)告
- 2025山東東營(yíng)市利津縣鳳凰城街道遴選農(nóng)村專(zhuān)職網(wǎng)格員35人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025至2030年中國(guó)細(xì)木工芯板拼接機(jī)行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 辦公樓裝飾工程施工進(jìn)度計(jì)劃
- 施工場(chǎng)地治安保衛(wèi)管理計(jì)劃
- MOOC 組織學(xué)與胚胎學(xué)-華中科技大學(xué) 中國(guó)大學(xué)慕課答案
- 縫合線材料的可吸收性研究
- 2024屆紅河哈尼族彝族自治州綠春縣小升初語(yǔ)文檢測(cè)卷含答案
- GB/T 43700-2024滑雪場(chǎng)所的運(yùn)行和管理規(guī)范
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》知識(shí)競(jìng)賽參考題庫(kù)500題(含答案)
- 幼兒園園長(zhǎng)的園里園外融合教育
- 新型電力系統(tǒng)簡(jiǎn)介
- 海裝風(fēng)機(jī)故障培訓(xùn)課件
- 施工安全管理體系及安全保證措施樣本
- 磁異法探測(cè)海底纜線分解課件
- 304焊接工藝參數(shù)
評(píng)論
0/150
提交評(píng)論