久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 54841|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

基于單片機的電子秤系統(tǒng)設(shè)計論文

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:290276 發(fā)表于 2018-3-11 09:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于單片機的電子秤系統(tǒng)設(shè)計

摘要

電子秤是將檢測與轉(zhuǎn)換技術(shù)、計算機技術(shù)、信息處理、數(shù)字技術(shù)等技術(shù)綜合一體的現(xiàn)代新型稱重儀器。它與我們?nèi)粘I罹o密結(jié)合息息相關(guān)。

電子稱主要以單片機作為中心控制單元,通過稱重傳感器進行模數(shù)轉(zhuǎn)換單元,在配以鍵盤、顯示電路及強大軟件來組成。電子稱不但計量準(zhǔn)確、快速方便,更重要的自動稱重、數(shù)字顯示,對人們生活的影響越來越大,廣受歡迎。

本系統(tǒng)的設(shè)計主要從硬件電路設(shè)計,軟件編程調(diào)試,實物焊接調(diào)試三部分進行詳細(xì)闡述。硬件電路主要是基于單片機AT89S52為核心的控制單元實現(xiàn)數(shù)據(jù)的處理,采用壓力傳感器對數(shù)據(jù)進行采集,電子秤專用24位AD轉(zhuǎn)換芯片HX711對傳感器采集到的模擬量進行AD轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)送到單片機進行處理顯示,數(shù)據(jù)顯示由LCD1602液晶實現(xiàn),液晶顯示效果穩(wěn)定無閃爍


目錄

摘要

ABSTRACT

目錄

第1章 緒論

1.1課題背景與研究意義

1.2 系統(tǒng)設(shè)計要求

1.3系統(tǒng)設(shè)計方案

1.4電子秤的主要組成

1.4.1  電子秤的基本結(jié)構(gòu)

1.4.2  電子秤的工作原理

1.4.3  電子秤的計量性能

第2章 系統(tǒng)硬件設(shè)計

2.1              流系統(tǒng)元器件選型及參數(shù)介紹

2.1.1 系統(tǒng)單片機選型

2.1.2 系統(tǒng)傳感器選型

2.1.3 系統(tǒng)AD轉(zhuǎn)換芯片選擇

2.1.4系統(tǒng)顯示器選擇

2.1.5系統(tǒng)時鐘芯片選擇

2.2              系統(tǒng)硬件電路設(shè)計

2.2.1系統(tǒng)電源電路設(shè)計

2.2.2系統(tǒng)單片機主控電路設(shè)計

2.2.3系統(tǒng)顯示部分電路設(shè)計

2.2.4系統(tǒng)超重報警指示電路設(shè)計

2.2.5系統(tǒng)按鍵輸入電路設(shè)計

2.3系統(tǒng)硬件電路的繪制與PCB線路板制作

2.3.1              Protell 99 SE軟件介紹

2.3.2 系統(tǒng)原理圖繪制與PCB印刷線路板制作

第3章 系統(tǒng)軟件設(shè)計

3.1系統(tǒng)軟件編程環(huán)境介紹

3.2系統(tǒng)主程序流程圖

3.3系統(tǒng)顯示部分流程圖

3.4系統(tǒng)按鍵調(diào)整部分流程圖

第四章 系統(tǒng)的制作、安裝與調(diào)試

4.1電路的繪制與PCB板的制作

4.2 系統(tǒng)的調(diào)試

第五章  總結(jié)與體會

5.1  總結(jié)

5.2  體會

參考文獻

致謝










第1章
緒論
1.1課題背景與研究意義

電子秤作為一種計量手段,廣泛應(yīng)用于工農(nóng)業(yè)、科研、交通、內(nèi)外貿(mào)易等各個領(lǐng)域,與人民的生活緊密相連。電子秤是電子衡器中的一種,衡器是國家法定計量器具,是國計民生、國防建設(shè)、科學(xué)研究、內(nèi)外貿(mào)易不可缺少的計量設(shè)備,衡器產(chǎn)品技術(shù)水平的高低,將直接影響各行各業(yè)的現(xiàn)代化水平和社會經(jīng)濟效益的提高。稱重裝置不僅是提供重量數(shù)據(jù)的單體儀表,而且作為工業(yè)控制系統(tǒng)和商業(yè)管理系統(tǒng)的一個組成部分,推進了工業(yè)生產(chǎn)的自動化和管理的現(xiàn)代化,它起到了縮短作業(yè)時間、改善操作條件、降低能源和材料的消耗、提高產(chǎn)品質(zhì)量以及加強企業(yè)管理、改善經(jīng)營管理等多方面的作用。稱重裝置的應(yīng)用已遍及到國民經(jīng)濟各領(lǐng)域,取得了顯著的經(jīng)濟效益。

電子秤是稱重技術(shù)中的一種新型儀表,廣泛應(yīng)用于各種場合。電子秤與機械秤比較有體積小、重量輕、結(jié)構(gòu)簡單、價格低、實用價值強、維護方便等特點,可在各種環(huán)境工作,重量信號可遠(yuǎn)傳,易于實現(xiàn)重量顯示數(shù)字化,易于與計算機聯(lián)網(wǎng),實現(xiàn)生產(chǎn)過程自動化,提高勞動生產(chǎn)率。從世界水平看,衡器技術(shù)已經(jīng)經(jīng)歷了四個階段,從傳統(tǒng)的全部由機械元器件組成的機械稱到用電子線路代替部分機械元器件的機電結(jié)合秤,再從集成電路式到目前的單片機系統(tǒng)設(shè)計的電子計價秤。我國電子衡器從最初的機電結(jié)合型發(fā)展到現(xiàn)在的全電子型和數(shù)字智能型。現(xiàn)今電子衡器制造技術(shù)及應(yīng)用得到了新發(fā)展:電子稱重技術(shù)從靜態(tài)稱重向動態(tài)稱重發(fā)展;計量方法從模擬測量向數(shù)字測量發(fā)展;測量特點從單參數(shù)測量向多參數(shù)測量發(fā)展。常規(guī)的測試儀器儀表和控制裝置被更先進的智能儀器所取代,使得傳統(tǒng)的電子測量儀器在遠(yuǎn)離、功能、精度及自動化水平定方面發(fā)生了巨大變化,并相應(yīng)的出現(xiàn)了各種各樣的智能儀器控制系統(tǒng),使得科學(xué)實驗和應(yīng)用工程的自動化程度得以顯著提高。

電子稱重的實現(xiàn)首先是通過壓力傳感器采集到被測物體的重量并將其轉(zhuǎn)換成電壓信號。輸出電壓信號通常很小,需要通過前端信號處理電路進行準(zhǔn)確的線性放大。放大后的模擬電壓信號經(jīng)A/D轉(zhuǎn)換電路轉(zhuǎn)換成數(shù)字量被送入到主控電路的單片機中,再經(jīng)過單片機控制譯碼顯示器,從而顯示出被測物體的重量。按照設(shè)計的基本要求,系統(tǒng)可分為三大模塊,數(shù)據(jù)采集模塊、控制器模塊、人機交互液晶顯示界面模塊。其中數(shù)據(jù)采集模塊由壓力傳感器、信號的前級處理和A/D轉(zhuǎn)換部分組成。轉(zhuǎn)換后的數(shù)字信號送給控制器處理,由控制器完成對該數(shù)字量的處理,驅(qū)動顯示模塊完成人機間的信息交換。此部分對軟件的設(shè)計要求比較高,系統(tǒng)的大部分功能都需要軟件來控制。在擴展功能上,本設(shè)計增加了一個過載報警提示功能和電子日歷功能使本電子稱的設(shè)計更人性化智能化。


1.2 系統(tǒng)設(shè)計要求

一、基本要求

設(shè)計并制作一款基于單片機的電子秤重系統(tǒng)。

二、具體要求

本課題研究的內(nèi)容是以單片機STC89C52RC為控制核心,實現(xiàn)電子秤的基本策略及價格計算功能。本課題在電子稱的基本功能基礎(chǔ)上擴展了電子日歷及時鐘功能。該系統(tǒng)可以分為單片機最小系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、人機交互界面系統(tǒng)、電源系統(tǒng)、時鐘及語音報數(shù)六大部分組成。單片機最小系統(tǒng)部分主要包括STC89C52RC和經(jīng)典復(fù)位電路;數(shù)據(jù)采集部分由稱重傳感器、信號放大和A/D轉(zhuǎn)換部分組成,信號放大和A/D轉(zhuǎn)換部分主要由專用型高精度24位AD轉(zhuǎn)換芯片HX711實現(xiàn);人機交互界面為鍵盤輸入和點陣式液晶顯示,主要使用4*4矩陣鍵盤和1602液晶顯示器,可以方便的輸入數(shù)據(jù)和直觀的顯示數(shù)據(jù);時鐘模塊主要由時鐘芯片DS1302和時鐘電路組成;語音報數(shù)模塊可語音報讀電子秤系統(tǒng)的重量、單價、金額等語音內(nèi)容,主要由SC1010B電子稱專用語音芯片實現(xiàn)。

本課題的主要設(shè)計任務(wù)如下所述:

1)系統(tǒng)可實現(xiàn)電子稱基本的稱重功能(稱重范圍為0~5Kg,重量誤差不大于±0.005Kg);

2)系統(tǒng)應(yīng)具備輸入單價,計算總價及語音報價的功能;

3)系統(tǒng)超出最大測量范圍5Kg時應(yīng)有報警指示功能(蜂鳴器報警提示);

4)該電子稱設(shè)計需完成電子日歷及時鐘顯示功能的擴展。在未稱重狀態(tài)下系統(tǒng)應(yīng)具備顯示年月日、星期及時鐘功能。

1.3系統(tǒng)設(shè)計方案

結(jié)合所學(xué)知識,通過查找資料和論證,可通過以下方案來實現(xiàn)課題要求實現(xiàn)的指標(biāo),各方案介紹如下所述。

方案一  數(shù)碼管顯示:

圖1-1 數(shù)碼管顯示方案

此方案利用數(shù)碼管顯示物體重量,簡單可行,可以采用內(nèi)部帶有模數(shù)轉(zhuǎn)換功能的單片機。由此設(shè)計出的電子秤系統(tǒng),硬件部分簡單,接口電路易于實現(xiàn),并且在編程時大大減少程序量,在電路結(jié)構(gòu)上只有簡單的輸出輸入關(guān)系。缺點是:硬件部分簡單,雖然可以實現(xiàn)電子稱基本的稱重功能,但是不能實現(xiàn)外部數(shù)據(jù)的輸入,無法根據(jù)實際情況靈活地設(shè)定各種控制參數(shù)。由于數(shù)碼管只能實現(xiàn)簡單的數(shù)字和英文字符的顯示,不能顯示漢字以及其他的復(fù)雜字符,不能達到顯示購物清單的要求。又因為采用了具有模數(shù)轉(zhuǎn)換功能的單片機,系統(tǒng)電路過于簡單,系統(tǒng)硬件的擴展必受到限制,電子秤的功能過于單一,達不到設(shè)計的標(biāo)準(zhǔn)。

方案二  在前一種方案的基礎(chǔ)上進行擴展,增加一鍵盤輸入裝置,增加外界對單片機內(nèi)部的數(shù)據(jù)設(shè)定,使電子稱實現(xiàn)稱重計價的功能。

結(jié)構(gòu)簡圖如圖1-2所示:


圖1-2帶有鍵盤輸入的結(jié)構(gòu)簡圖

此方案設(shè)計的電子秤,可以實現(xiàn)稱物計價功能,但是局限于數(shù)碼管的功能,在顯示時只能顯示單價、購物總額以及簡單的貨物代碼等。在顯示重量時,如果數(shù)碼管沒有足夠的位數(shù),那么稱量物體重量的精度必受到限制,所以此方案需要較多的數(shù)碼管接入電路中。這樣在處理輸入輸出接口時需要另行擴展足夠多的I/O接口供數(shù)碼管使用,比較麻煩。

方案三 前端信號處理時,選用放大、信號轉(zhuǎn)換等措施來增加信號采集強度但會增加相應(yīng)的設(shè)計成本;顯示方面采用具有字符圖文顯示功能的LCD顯示器。這種方案不僅加強了人機交換的能力,而且滿足設(shè)計要求,可以顯示購物清單、所稱量的物體信息等相關(guān)內(nèi)容,當(dāng)需要增加擴展功能時可以通過切換液晶顯示界面的方式來實現(xiàn)。

結(jié)構(gòu)簡圖如下圖1-3所示:

圖3帶有鍵盤輸入及液晶顯示的結(jié)構(gòu)簡圖

鑒于上述三種方案的優(yōu)缺點,本系統(tǒng)在設(shè)計時充分考慮到系統(tǒng)的實用性及成本的可行性的前提下,設(shè)計完成了最終的電子稱方案,最終的硬件設(shè)計方案圖如圖4所示,該方案增加了電子日歷功能,從而使本系統(tǒng)的設(shè)計功能得到了很好的擴展與應(yīng)用。

1.4電子秤的主要組成1.4.1  電子秤的基本結(jié)構(gòu)

    電子秤是利用物體的重力作用來確定物體質(zhì)量(重量)的測量儀器,也可用來確定與質(zhì)量相關(guān)的其它量大小、參數(shù)、或特性。不管根據(jù)什么原理制成的電了秤均由以下三部分組成:

  • 承重、傳力復(fù)位系統(tǒng)

它是被稱物體與轉(zhuǎn)換元件之間的機械、傳力復(fù)位系統(tǒng),又稱電子秤的秤體,一般包括接受被稱物體載荷的承載器、秤橋結(jié)構(gòu)、吊掛連接部件和限位減振機構(gòu)等。

2) 稱重傳感器

即由非電量(質(zhì)量或重量)轉(zhuǎn)換成電量的轉(zhuǎn)換元件,它是把支承力變換成電的或其它形式的適合于計量求值的信號所用的一種輔助手段。

按照稱重傳感器的結(jié)構(gòu)型式不同,可以分直接位移傳感器(電容式、電感式、電位計式、振弦式、空腔諧振器式等)和應(yīng)變傳感器(電阻應(yīng)變式、盧表面諧振式)或是利用磁彈性、壓電和壓阻等物理效應(yīng)的傳感器。

對稱重傳感器的基本要求是:輸出電量與輸入重量保持單值對應(yīng),并有良好的線性關(guān)系;有較高的靈敏度;對被稱物體的狀態(tài)的影響要小;能在較差的工作條件下工作;有較好的頻響特性;穩(wěn)定可靠。

3) 測量顯示和數(shù)據(jù)輸出的載荷測量裝置

即處理稱重傳感器信號的電子線路(包括放人器、模數(shù)轉(zhuǎn)換、電流源或電壓源、調(diào)節(jié)器、補嘗元件、保護線路等)和指示部件(如顯示、打印、數(shù)據(jù)傳輸和存貯器件等)。這部分習(xí)慣上稱載荷測量裝置或二次儀表。在數(shù)字式的測量電路中,通常包括前置放大、濾濾、運算、變換、計數(shù)、寄存、控制和驅(qū)動顯示等環(huán)節(jié)。

1.4.2  電子秤的工作原理

當(dāng)被稱物體放置在秤體的秤臺上時,其重量便通過秤體傳遞到稱重傳感器,傳感器隨之產(chǎn)生力一電效應(yīng),將物體的重量轉(zhuǎn)換成與被稱物體重量成一定函數(shù)關(guān)系(一般成正比關(guān)系)的電信號(電壓或電流等)。此信號由放大電路進行放大、經(jīng)濾波后再由模/數(shù)( A/D)器進行轉(zhuǎn)換,數(shù)字信號再送到微處器的CPU處理,CPU不斷掃描鍵盤和各功能開關(guān),根據(jù)鍵盤輸入內(nèi)容和各種功能開關(guān)的狀態(tài)進行必要的判斷、分析、由儀表的軟件來控制各種運算。運算結(jié)果送到內(nèi)存貯器,需要顯示時,CPU發(fā)出指令,從內(nèi)存貯器中讀出送到顯示器顯示,或送打印機打印。一般地信號的放大、濾波、A/D轉(zhuǎn)換以及信號各種運算處理都在儀表中完成。

1.4.3  電子秤的計量性能

電子秤的計量性能涉及的主要技術(shù)指標(biāo)有:量程、分度值、分度數(shù)、準(zhǔn)確度等級等。

(1) 量程:電子衡器的最大稱量Max,即電子秤在正常工作情況下,所能稱量的最大值。

(2) 分度值:電子秤的測量范圍被分成若干等份,每份值即為分度值。用e或d來表示。

(3) 分度數(shù):衡器的測量范圍被分成若干等份,總份數(shù)即為分度數(shù)用n表示。

電子衡器的最大稱量Max可以用總分度數(shù)n與分度值d的乘積來表示,即Max=n·d

(4) 準(zhǔn)確度等級

國際法制計量組織把電子秤按不同的分度數(shù)分成T、II、III、Ⅳ四類等級,分別對應(yīng)不同準(zhǔn)確度的電子秤和分度數(shù)n的范圍,如表1-1所示:

表1-1 不同準(zhǔn)確度的電子秤和分度數(shù)

標(biāo)志及等級

電子秤分類

分度數(shù)范圍

特種準(zhǔn)確度

基準(zhǔn)衡器

n> 100000

高準(zhǔn)確度

精密衡器

10000 < n≤100000

中準(zhǔn)確度

商業(yè)衡器

1000 < n≤10000

普通準(zhǔn)確度

粗衡器

100<n≤1000

第2章 系統(tǒng)硬件設(shè)計

2.1          流系統(tǒng)元器件選型及參數(shù)介紹2.1.1 系統(tǒng)單片機選型
單片機的選擇在整個系統(tǒng)設(shè)計中至關(guān)重要,要滿足大內(nèi)存、高速率、通用性、價格便宜等要求,本課題選擇AT89S52作為主控芯片。
AT89S52是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S52芯片具有以下特性[[]4:
①指令集和芯片引腳與Intel公司的8051兼容;
②4KB片內(nèi)在系統(tǒng)可編程Flash程序存儲器;
③時鐘頻率為0~33MHz;
④128字節(jié)片內(nèi)隨機讀寫存儲器(RAM);
⑤32個可編程輸入/輸出引腳;
⑥2個16位定時/計數(shù)器;
⑦6個中斷源,2級優(yōu)先級;
⑧全雙工串行通信接口;
⑨監(jiān)視定時器;
⑩2個數(shù)據(jù)指針。
AT89S52單片機的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳[[]5。
AT89S52單片機引腳圖如圖2-1所示:





圖2-1 單片機引腳圖
2.1.2 系統(tǒng)傳感器選型

系統(tǒng)采用壓電傳感器是一種典型的有源傳感器,又稱自發(fā)電式傳感器。其工作原理是基于某些材料受力后在其相應(yīng)的特定表面產(chǎn)生電荷的壓電效應(yīng)。

壓電傳感器體積小、重量輕、結(jié)構(gòu)簡單、工作可靠,適用于動態(tài)力學(xué)量的測量,不適合測頻率太低的被測量,更不能測靜態(tài)量。目前多用于加速度和動態(tài)力或壓力的測量。壓電器件的弱點:高內(nèi)阻、小功率。功率小,輸出的能量微弱,電纜的分布電容及噪聲干擾影響輸出特性,這對外接電路要求很高。

電阻應(yīng)變式傳感器是一種利用電阻應(yīng)變效應(yīng),將各種力學(xué)量轉(zhuǎn)換為電信號的結(jié)構(gòu)型傳感器。電阻應(yīng)變片式電阻應(yīng)變式傳感器的核心元件,其工作原理是基于材料的電阻應(yīng)變效應(yīng),電阻應(yīng)變片即可單獨作為傳感器使用,又能作為敏感元件結(jié)合彈性元件構(gòu)成力學(xué)量傳感器。

導(dǎo)體的電阻隨著機械變形而發(fā)生變化的現(xiàn)象叫做電阻應(yīng)變效應(yīng)。電阻應(yīng)變片把機械應(yīng)變信號轉(zhuǎn)換為△R/R后,由于應(yīng)變量及相應(yīng)電阻變化一般都很微小,難以直接精確測量,且不便處理。因此,要采用轉(zhuǎn)換電路把應(yīng)變片的△R/R變化轉(zhuǎn)換成電壓或電流變化。其轉(zhuǎn)換電路常用測量電橋。

直流電橋的特點是信號不會受各元件和導(dǎo)線的分布電感及電容的影響,抗干擾能力強,但因機械應(yīng)變的輸出信號小,要求用高增益和高穩(wěn)定性的放大器放大。

圖2-2為一直流供電的平衡電阻電橋,接直流電源E:




圖2-2 傳感器內(nèi)部連接圖

當(dāng)電橋輸出端接無窮大負(fù)載電阻時,可視輸出端為開路,此時直流電橋稱為電壓橋,即只有電壓輸出。

當(dāng)忽略電源的內(nèi)阻時,由分壓原理有:

=                                   (2.1)

當(dāng)滿足條件R1R3=R2R4時,即

                                                                   (2.2)

=0,即電橋平衡。式(2.2)稱平衡條件。

應(yīng)變片測量電橋在測量前使電橋平衡,從而使測量時電橋輸出電壓只與應(yīng)變片感受的應(yīng)變所引起的電阻變化有關(guān)。

若差動工作,即R1=R-△R,R2=R+△R,R3=R-△R,R4=R+△R,按式(2.1),則電橋輸出為

                                              (2.3)                                         

應(yīng)變片式傳感器有如下特點:

(1)應(yīng)用和測量范圍廣,應(yīng)變片可制成各種機械量傳感器。

(2)分辨力和靈敏度高,精度較高。

(3)結(jié)構(gòu)輕小,對試件影響小, 對復(fù)雜環(huán)境適應(yīng)性強,可在高溫、高壓、強磁場等特殊環(huán)境中使用,頻率響應(yīng)好。

(4)商品化,使用方便,便于實現(xiàn)遠(yuǎn)距離、自動化測量[5]。

通過對壓力傳感器與電阻應(yīng)變式傳感器比較分析,最終選擇了第二種方案。題目要求稱重范圍0~5Kg,滿量程量誤差不大于0.005Kg,考慮到秤臺自重、振動和沖擊分量,還要避免超重?fù)p壞傳感器,所以傳感器量程必須大于額定稱重5Kg。我們選擇的是電阻應(yīng)變片壓力傳感器,量程為5Kg,精度為0.01% ,滿足本系統(tǒng)的精度要求。


2.1.3 系統(tǒng)AD轉(zhuǎn)換芯片選擇

HX711是一款專為高精度電子秤而設(shè)計的24位A/D轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強等優(yōu)點。降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU 芯片的接口和編程非常簡單,所有控制信號由管腳驅(qū)動,無需對芯片內(nèi)部的寄存器編程。輸入選擇開關(guān)可任意選取通道A 或通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A 的可編程增益為128 或64,對應(yīng)的滿額度差分輸入信號幅值分別為±20mV或±40mV。通道B 則為固定的64 增益[[]9,用于系統(tǒng)參數(shù)檢測。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D 轉(zhuǎn)換器提供電源,系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接器件。上電自動復(fù)位功能簡化了開機的初始化過程。芯片管腳圖如圖2-3所示。

圖2-3 HX711管腳定義

HX711典型應(yīng)用電路如圖2-4所示。

圖2-4 HX711典型應(yīng)用電路

2.1.4系統(tǒng)顯示器選擇

方案一 數(shù)碼管顯示

數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。

數(shù)碼管顯示信息有限,當(dāng)顯示信息較多時需要多個數(shù)碼管級聯(lián)方可,這樣會造成硬件連接復(fù)雜,成本增加;數(shù)碼管對大部分字符不能很好的顯示,動態(tài)掃描時處理不好易出現(xiàn)閃爍現(xiàn)象。

方案二 LCD字符液晶顯示

采用點陣字符型 LCD 液晶顯示,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的信息顯示器件,但采用LCD液晶顯示會造成設(shè)計成本增加。

LCD1602可以顯示2行 16 個字符,有 8 位數(shù)據(jù)總線 D0-D7,和 RS、R/W、 EN 三個控制端口,工作電壓為 5V,并且?guī)в凶址麑Ρ榷日{(diào)節(jié)和背光[10]。

具體引腳說明如表2-1所示。

表2-1 LCD1602液晶顯示器引腳說明

LCD1602 液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了 160 個不同 的點陣字符圖形,如表 1 所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、 常用的符號、和日文假名等,每一個字符都有一個固定的代碼,它的讀寫操作、 屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。

最后綜合了多方面因素的考慮采用了方案二,選擇 LCD1602 顯示器作為系統(tǒng)的顯示界面。

2.1.5系統(tǒng)時鐘芯片選擇

DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后背電源進行涓細(xì)電流充電的能力。 DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄,因此廣泛應(yīng)用于測量系統(tǒng)中。DS1302實物和管腳圖分別如圖2-5、圖2-6所示。

  

圖2-5 DS1302實物圖

                 

圖2-6 DS1302管腳定義

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ù)期間,必須為高。該引腳有兩個功能:第一,CE開始控制字訪問移位寄存器的控制邏輯;其次,CE提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒ā?/font>

  DS1302有關(guān)日歷、時間的寄存器共有12個,其中有7個寄存器(讀時81h~8Dh,寫時80h~8Ch),存放的數(shù)據(jù)格式為BCD碼形式。

2.2          系統(tǒng)硬件電路設(shè)計2.2.1系統(tǒng)電源電路設(shè)計

由于該系統(tǒng)中 51 單片機及 AD 轉(zhuǎn)換芯片及液晶顯示器所需供電電壓均為 5V 電壓,所以要保證系統(tǒng)穩(wěn)定可靠的工作,需要設(shè)計一個可以穩(wěn)定提供 5V 電壓的供電系統(tǒng)。本設(shè)計采用雙電源接口供電方式,USB 接口供電方便程序調(diào)試,也可采用外置電源作為系統(tǒng)的供電電源,但是需另加三端穩(wěn)壓器件 LM7805 作為系統(tǒng)電源的穩(wěn)壓器件以保證系統(tǒng)電壓為穩(wěn)定的直流 5V 電壓,同時外置電源的輸出電壓要高于 5V輸出,系統(tǒng)電源輸入接口要加濾波電容以確保工作電壓穩(wěn)定。電源輸出接口加上LED 電源指示燈,用來判定電源是否正常工作。該系統(tǒng)電源電路設(shè)計如圖 2-7所示。

                                

圖2-7電源接口電路

C1,C2實現(xiàn)對電源濾波,以濾除可能存在的高頻雜波對電源的影響,C4實現(xiàn)對電源電壓的平滑穩(wěn)定作用[10],當(dāng)USB接口輸出電壓高時C4用來儲能,當(dāng)后續(xù)電路負(fù)載過高USB供電不足時電解電容C4通過釋放儲存的電能來保證電源電壓不跌落。LED0用作電源指示,其亮滅代表電源工作與否,R0用來限流,以保證LED不被燒壞[13]。


2.2.2系統(tǒng)單片機主控電路設(shè)計

系統(tǒng)主控電路由AT89S52單片機及晶振電路和復(fù)位電路組成,該電路作為整個系統(tǒng)功能實現(xiàn)的核心單元,其連接方式如圖2-8所示。


圖2-8 單片機控制模塊電路

晶振全稱為晶體振蕩器,其作用在于產(chǎn)生原始的時鐘頻率,這個頻率經(jīng)過頻率發(fā)生器的放大或縮小后就成了電腦中各種不同的總線頻率。晶振一般叫做晶體諧振器,是一種機電器件,是用電損耗很小的石英晶體經(jīng)精密切割磨削并鍍上電極焊上引線做成。這種晶體有一個很重要的特性,如果給它通電,它就會產(chǎn)生機械振蕩,反之,如果給它機械力,它又會產(chǎn)生電,這種特性叫機電效應(yīng)。他們有一個很重要的特點,其振蕩頻率與他們的形狀,材料,切割方向等密切相關(guān)。由于石英晶體化學(xué)性能非常穩(wěn)定,熱膨脹系數(shù)非常小,其振蕩頻率也非常穩(wěn)定,由于控制幾何尺寸可以做到很精密,因此,其諧振頻率也很準(zhǔn)確。根據(jù)石英晶體的機電效應(yīng),我們可以把它等效為一個電磁振蕩回路,即諧振回路。他們的機電效應(yīng)是機-電-機-電..的不斷轉(zhuǎn)換,由電感和電容組成的諧振回路是電場-磁場的不斷轉(zhuǎn)換。在電路中的應(yīng)用實際上是把它當(dāng)作一個高Q值的電磁諧振回路。由于石英晶體的損耗非常小,即Q值非常高,做振蕩器用時,可以產(chǎn)生非常穩(wěn)定的振蕩,作濾波器用,可以獲得非常穩(wěn)定和陡削的帶通或帶阻曲線[10]。

復(fù)位電路采用按鍵復(fù)位加上電復(fù)位來實現(xiàn),S1為復(fù)位按鍵,復(fù)位按鍵按下后,復(fù)位端通過1K的小電阻與電源接通,迅速放電,使RST引腳為高電平,復(fù)位按鍵彈起后,電源通過10KΩ的電阻對10μF的電容C1重新充電,RST引腳端出現(xiàn)復(fù)位正脈沖。AT89S52內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器,但要形成時鐘脈沖,外部還需附加電路,本設(shè)計采用內(nèi)部時鐘方式,利用芯片內(nèi)部的振蕩器,然后在引腳XTAL1和XTAL2兩端跨接晶體振蕩器,就構(gòu)成了穩(wěn)定的自激振蕩器,發(fā)出的脈沖直接送入內(nèi)部時鐘電路,C2和C3的值通常選擇為30pF左右,晶振Y1選擇12MHz.為了減小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器電容應(yīng)盡可能安裝得與單片機引腳XTAL1和XTAL2靠近[[]7。

單片機的31腳(EA)接+5V電源,表示允許使用片內(nèi)ROM。

2.2.3系統(tǒng)顯示部分電路設(shè)計

顯示部分采用LCD1602液晶顯示模塊,液晶板上排列著若干 5×7或 5×10點陣的字符顯示位,每個顯示位可顯示1個字符,從規(guī)格上分為每行 8、16、20、24、32、40位,有一行、兩行及四行三類。其與單片機的連接電路如圖2-9所示

圖2-9 液晶顯示接口電路

    1腳和2腳為液晶1602地和電源引腳,3腳為背光調(diào)節(jié)引腳,通過10K電位器接地,背光可通過電位器來調(diào)節(jié)亮度;4腳、5腳、6腳為液晶片選控制引腳,分別連接到單片機的P2.0、P2.1、P2,2端口,7~14腳為數(shù)據(jù)接口,與單片機的P0口相連實現(xiàn)數(shù)據(jù)的傳輸,15、16、腳為液晶的背光控制腳,分別接到電源和地[9]。


2.2.4系統(tǒng)超重報警指示電路設(shè)計

超重報警指示電路用來在稱重測量超出最高值時報警提示,以免重量太高的情況下?lián)p壞傳感器。報警指示電路由PNP三極管9012驅(qū)動蜂鳴器來實現(xiàn),單片機IO口控制三極管的基極,當(dāng)單片機的IO口輸出為低電平時,三極管導(dǎo)通,蜂鳴器的正極與電源接通,蜂鳴器通電發(fā)出報警聲,當(dāng)單片機IO口輸出高電平時,三極管截止,蜂鳴器停止報警。報警指示電路如圖2-10所示。

圖2-10報警指示電路


2.2.5系統(tǒng)按鍵輸入電路設(shè)計
按鍵輸入電路用來在電子稱測量過程中輸入單價值,按鍵輸入電路采用4*4矩陣鍵盤實現(xiàn),矩陣鍵盤電路如圖2-11所示。


圖2-11按鍵輸入電路
電子稱按鍵功能分配如表2-2所示:
表2-2系統(tǒng)按鍵配置表
7
8
9
去皮
4
5
6
清零
1
2
3
累計
0
計算


此電子秤是開機檢測托盤重量,并將托盤重量清零(即電子秤每次開機后檢測托盤重量,并程序中自動將托盤重量保存在一個變量中,稱量過程中每次都將獲得的重量減去托盤重量,而得到所要稱量物體的真正的重量)。
計算功能:在正確輸入了單價之后,按下計算按鍵,將會計算出金額,并在液晶顯示器上顯示出重量、單價、總價。
電子日歷時鐘鍵盤面板:
設(shè)置












對應(yīng)矩陣鍵盤按鍵
S1
S2
S3












通過設(shè)置按鍵可以切換日期、星期、時間的設(shè)置,通過加減鍵來進行各個狀態(tài)的調(diào)節(jié)。

2.3系統(tǒng)硬件電路的繪制與PCB線路板制作2.3.1        Protell 99 SE軟件介紹

本文在硬件電路的設(shè)計過程中,原理圖和PCB的繪制采用Protel99SE軟件,Protel99SE是應(yīng)用于Windows9X/2000/NT操作系統(tǒng)下的EDA設(shè)計軟件,該軟件以其簡單易操作的優(yōu)勢一直以來備受電子工程師的喜愛,因而也成了很多高校電子相關(guān)專業(yè)EDA工具的必選課程。

2.3.2 系統(tǒng)原理圖繪制與PCB印刷線路板制作

采用Protel99SE軟件繪制原理圖和PCB的主要步驟如下所述:

  • 建立系統(tǒng)所需原件庫;
  • 加載所建原件庫到工程項目中;
  • 在原理圖頁面中放置所需元器件并按照電氣性能連接各元件;
  • 建立原件封裝庫并加載到工程文件中;
  • 繪制好電路后進行ERC電氣檢測,并生成網(wǎng)絡(luò)表;
  • 在工程中建立PCB文件,導(dǎo)入生成的網(wǎng)絡(luò)表;
  • 按照網(wǎng)絡(luò)飛線提示繪制PCB,最后完成DRC檢測[13]

按照如上步驟最終完成繪制的電路圖與PCB圖分別如圖2-12、2-13所示。



     圖2-12 系統(tǒng)電路原理圖

圖2-13 系統(tǒng)PCB印刷線路板圖











第3章 系統(tǒng)軟件設(shè)計
3.1  系統(tǒng)軟件編程環(huán)境介紹

系統(tǒng)軟件設(shè)計采用C語言編程,編譯環(huán)境為keil UV3。

keil c51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發(fā)系統(tǒng),和匯編相比,C 在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。

Keil c51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows 界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。

Keil C51 可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件,然后分別有C51 及A51 編輯器編譯連接生成單片機可執(zhí)行的二進制文件(.HEX),然后通過單片機的燒寫軟件將HEX 文件燒入單片機內(nèi)。軟件主要三個方面:一是初始化系統(tǒng);二是按鍵檢測;三是數(shù)據(jù)采集、數(shù)據(jù)處理并進行顯示。這三個方面的操作分別在主程序中來進行。程序采用模塊化的結(jié)構(gòu),這樣程序結(jié)構(gòu)清楚,易編程和易讀性好,也便于調(diào)試和修改。


3.2系統(tǒng)主程序流程圖
系統(tǒng)軟件部分主程序流程圖如圖3-1所示
圖3-1  系統(tǒng)主程序流程圖

3.3系統(tǒng)顯示部分流程圖
系統(tǒng)示子程序主要是來判斷是否需要顯示,以及如何去顯示,也是十分重要的程序之一。設(shè)計流程圖如圖3-2所示。

圖3-2系統(tǒng)顯示部分流程圖
3.4系統(tǒng)按鍵調(diào)整部分流程圖
鍵盤電路設(shè)計成4X4矩陣式,在程序中可以先判斷按鍵編碼,然后根據(jù)編碼將鍵盤代表的數(shù)值送到相應(yīng)的存儲單元,再進行功能選擇或數(shù)據(jù)處理。設(shè)計流程圖如圖3-3所示。
圖3-3  按鍵調(diào)整程序流程圖

  第四章 系統(tǒng)的制作、安裝與調(diào)試
4.1電路的繪制與PCB板的制作
把系統(tǒng)的電路原理圖設(shè)計好以后。下一步工作就是進行實物制作了,而實物制作的第一步就是對電路進行排版布線;雖然PROTEL99 SE軟件有自動布局布線的功能,但是,我還是選擇了手動布線。雖然可能布的不是很漂亮,但是很多問題是只有親自動手了,才會發(fā)現(xiàn)。PCB板制作遇到以下幾個方面。
1. 電路原理圖的布局
在器件布局的過程中應(yīng)注意以下幾點:(1)一個模塊及其附屬的一些分離元器件應(yīng)盡量放到一起;(2)不同的電路模塊盡量劃分清晰,使得在調(diào)試過程中多電路的檢查能夠一目了然;(3)較容易發(fā)熱的元器件盡量放到電路的邊緣,有利于散熱。
2. 布線
PCB布線的好壞對系統(tǒng)性能有直接的影響,在高頻電路表現(xiàn)的尤為突出,所以,在進行電路布線時還需注意以下幾點:(1)模擬地和數(shù)字地應(yīng)分開接地,避免數(shù)字信號和模擬信號會相互干擾;(2)每一根走線,能短則短,不要為了盲目追求少跳線而繞遠(yuǎn)路,因為線越短電阻越小,干擾也會越小;(3)電源線和地線盡量從電路板的邊緣走線,且電源線盡量畫的比一般線寬略粗一些;(4)走線在改變方向時應(yīng)該走45°角或曲線,避免直角的拐角。
3. 打印與轉(zhuǎn)印
打印時要注意油紙不能折疊,打印的設(shè)置必須準(zhǔn)確,只留下底層的走線和焊盤。而在轉(zhuǎn)印時首先覆銅板要刷洗干凈,以免在轉(zhuǎn)印時油墨不能完全的轉(zhuǎn)印;其次,轉(zhuǎn)印機必須預(yù)熱到機器發(fā)出提示音,這表明,轉(zhuǎn)印機已經(jīng)準(zhǔn)備好轉(zhuǎn)印了;第三,轉(zhuǎn)印機的轉(zhuǎn)印速度檔位應(yīng)放在“正常”檔位,板子的類型應(yīng)放在“印刷板” 檔位。第四,在轉(zhuǎn)印時,注意油紙上的走線圖必須能夠完整的附在覆銅板上,一塊板子最好轉(zhuǎn)印兩次,確保把油墨完全的轉(zhuǎn)印到覆銅板上。
4. 腐蝕
將油紙上的電路圖轉(zhuǎn)印到覆銅板后,接著就要把多余的銅腐蝕掉。不過在剛轉(zhuǎn)印好的時候,首先應(yīng)檢查是否轉(zhuǎn)印完整,若有斷線、走線空心的問題,必須用油墨筆將斷線補起來,空心的走線填完整。確保轉(zhuǎn)印工序完成后,就可以將電路板放入FeCl3溶液里進行腐蝕了,俗稱“爛板”。如果有條件,可以將腐蝕液加熱,再放入電路板,這樣能夠有效的提高腐蝕的速度。
5. 打孔
腐蝕好的板子,在洗凈之后就可以打孔了,打孔時尤其要注意孔的大小不能將焊盤的銅箔完全打掉,否則焊接時,焊盤沒有銅箔就無法進行焊接了。
最后,打孔完成,用砂紙將毛糙磨平,這樣電路圖的繪制與PCB板的制作就順利完成了。
4.2 系統(tǒng)的調(diào)試
電路板實物做完以后,接下來的工作就是調(diào)試。這是理論指導(dǎo)實踐最重要的一步。調(diào)試工作需要耐心與恒心。所以在調(diào)試過程中必須保持冷靜的頭腦,較強的電路分析能力。一個系統(tǒng)的調(diào)試需要軟硬件結(jié)合調(diào)試。
在軟硬件結(jié)合調(diào)試的過程中所遇到的問題:
1、電子電路的設(shè)計中對各種影響因素的考慮不夠完全,比如在對過電壓情況的處理中未作防范措施。
2、系統(tǒng)設(shè)計不夠優(yōu)化,有待改善。比如系統(tǒng)的超量程信號直接由單片機送入報警電路,沒有設(shè)計保護電路再入單片機處理后送入報警電路。
3、沒有擴展更多電路,如溫度顯示功能,通訊接口電路與上位機(PC機)進行通訊,上位機顯示功能從而將大量的商品數(shù)據(jù)存于上位機,然后通過串口或并口通訊與電子稱相連,達到遠(yuǎn)距離控制的目的。
4、對各種實用芯片價格了解不夠,選擇上任有欠缺,如所選的稱重傳感器價格較貴。這些都為我今后的學(xué)習(xí)和工作留下了積極的影響。

第五章  總結(jié)與體會
5.1  總結(jié)

本文采用AT89S52單片機計的電子計重秤, 無論是計量精度, 還是穩(wěn)定性都滿足國家對A級電子秤的要求, 它具有較好的標(biāo)定校準(zhǔn)方法, 性能穩(wěn)定, 操作簡單, 價格低廉。該電子秤集傳感器技術(shù)、微計算機技術(shù)、數(shù)字顯示技術(shù)于一體、其反應(yīng)靈敏、準(zhǔn)確度高、顯示直觀,便于使用。通過硬件的少量擴展和軟件的修改, 能設(shè)計出性能優(yōu)越的計價秤、電子臺秤等, 滿足各行各業(yè)對現(xiàn)代電子衡器的需求。另外稍加擴展,該電子秤還可與其它生產(chǎn)質(zhì)量管理系統(tǒng)項連接,具有推廣應(yīng)用價值。

下面就電子秤軟件組成部分展望一下它的發(fā)展:

  在整個畢業(yè)設(shè)計過程中,我對大學(xué)四年所學(xué)的知識有了一個系統(tǒng)的認(rèn)識和理解,尤其是對本課題所用到的單片機及其相關(guān)知識有了進一步的掌握,對利用單片機進行控制系統(tǒng)的設(shè)計與開發(fā)又及對系統(tǒng)的分析和問題的解決有了切身的認(rèn)識和體會,正所謂學(xué)以致用,在此實踐過程中增長了知識、豐富了經(jīng)驗,提高了解決問題的能力。系統(tǒng)的分析與設(shè)計過程是對學(xué)習(xí)的總結(jié)過程,更是進一步學(xué)習(xí)和探索的過程。控制系統(tǒng)的開發(fā)設(shè)計是一項復(fù)雜的系統(tǒng)工程,必須嚴(yán)格按照系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施、系統(tǒng)運行與調(diào)試的過程來進行。系統(tǒng)的分析和設(shè)計是項很辛苦的工作,同時也是一個充滿樂趣的過程,在設(shè)計過程中,要邊學(xué)習(xí),邊實踐,遇到新問題就不斷探索和努力即可使問題得到解決。

理論和實際必須緊密結(jié)合,在設(shè)計中要針對不同的系統(tǒng)根據(jù)理論給與不同的方案,綜合考慮各方面的因素和需要,選擇出最佳的方案與結(jié)論。

本課題軟件和硬件相結(jié)合,有相當(dāng)大的難度,同時也有很大的實用性。在做畢業(yè)設(shè)計的過程中,我的理論和實踐水平都有了較大的提高。在本課題的設(shè)計中,我熟練掌握了單片機硬件設(shè)計和接口技術(shù),同時對稱重傳感器的原理及應(yīng)用有了一定的了解,掌握了各種控制電路及其相關(guān)元器件的使用。通過這次畢業(yè)設(shè)計,我不僅學(xué)會如何將所學(xué)專業(yè)知識運用到實際生活中,還學(xué)會如何克服未知的困難,解決難題的方法。

5.2  體會

畢業(yè)設(shè)計終于結(jié)束了,這意味著我的大學(xué)生涯中最后一項任務(wù)也完成了,在此畢業(yè)設(shè)計過程中,鞏固了我在大學(xué)4年內(nèi)學(xué)過的知識,尤其是單片機和C語言編程方面的知識,同時通過這次畢設(shè)提高了單片機編程的能力,尤其是獲得的軟件調(diào)試經(jīng)驗,同時了解到了其它相關(guān)領(lǐng)域的知識,對今后的工作學(xué)習(xí)有著極大的幫助。

由于時間太倉促,經(jīng)驗不足,理論方面也相應(yīng)的存在不足,加上條件有限,仍存在著一些設(shè)計方面的問題,個人技能也有待提高。理論知識還要鞏固加強。但是寶貴的實踐經(jīng)驗還是對自己的提高有著極大的幫助。

參考文獻


[[1] 薛均義,張彥斌.《MCS-516系列單片微型計算機及應(yīng)用》[M].西安交通大學(xué)出版社,1999

[2]  中國機械工業(yè)教育協(xié)會 組編.《單片機原理與應(yīng)用》.機械工業(yè)出版社.2001

[3] 黃繼昌.《傳感器工作原理及應(yīng)用實例》[A],人民郵電出版社,1998

[4]  郭永貞,  《數(shù)字電子技術(shù)》[M]  西安電子科技大學(xué)出版社  2000

[5]  楊金巖等.《8051單片機數(shù)據(jù)傳輸接口擴展技術(shù)與應(yīng)用實例》[M]人民郵電出版社,2005.

[6]  張齊,杜群貴.《單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)》[M].電子工業(yè)出版社,2007

[7]  李廣弟  《單片機基礎(chǔ)》[M],北京航空航天大學(xué)出版社,2001

[8] 于京《51系列單片機C程序設(shè)計與應(yīng)用方案》[M] 中國電力出版社  2002.

[9]  張齊,杜群貴  《單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)》[M].電子工業(yè)出版社,2004

[10] 張洪潤  《電子線路與電子技術(shù)》[M].清華大學(xué)出版社,2005

[11] 童詩白,華成英.《模擬電子技術(shù)基礎(chǔ)》[M]. 高等教育出版社,2006

[12] 胡海學(xué).《單片機原理及應(yīng)用系統(tǒng)設(shè)計》[M].電子工業(yè)出版社,2005.

[13] 及力,《Protel99SE原理圖與PCB設(shè)計教程》[M]電子工業(yè)出版社,2004.

[14] 戴佳,《51單片機C語言設(shè)計實例精講》[M] 電子工業(yè)出版社        2006

[15 ] INTEGRATED CIRCUITS DATA HANDBOOK 80C51-based 8-bit microcontrollers PHILIPS,1992

[16 ] Adel S.Sedra,Kenneth C.Smith:Microelectronics Circuits,3rd Edition,Holt Rinehart and Winston,Inc.,1991

            


致謝

四年的本科學(xué)習(xí)生涯即將結(jié)束,在本人做畢業(yè)設(shè)計中,得到了我的導(dǎo)師的悉心指導(dǎo)和無私幫助。他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和謙和的為人給我留下了深刻的印象。

本課題在選題及研究過程中得到???老師的悉心指導(dǎo)。?老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。?老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實的態(tài)度,踏踏實實的精神,不儀授我以文,而且教我做人,雖歷時三載,卻給以終生受益無窮之道。
    通過這次畢業(yè)設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在傳感器的基本原理、傳感器的實際應(yīng)用,以及在常用傳感器設(shè)計思路技巧的掌握方面都能向前邁了一人步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。我在?老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,并對當(dāng)前電了領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,這對我今后進一步學(xué)習(xí)傳感器方面的知識有極人的幫助。在此,我衷心感謝???老師的指導(dǎo)和支持。在未來的工作和學(xué)習(xí)中,我將以更好的成績來回報老師。
    在此,我還要感謝在一起愉快的度過人學(xué)生生活的機電工程系全體老師和同學(xué)門,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。
    在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們!


系統(tǒng)部分代碼:
  1. void shizhong_hanshu()
  2. {
  3.               init();
  4.               Init_DS1302();//初始化芯片
  5.               init_1602();//初始化lcd
  6.               while(1)
  7.               {
  8.                             if(du_k2==0)
  9.                             dianzhicheng_hanshu();              //跳去運行電子稱
  10.                             tmpchange();              //溫度轉(zhuǎn)換                                         
  11.                             wendu_100bei=tmp();               //獲得溫度
  12.                             show_date();
  13.                             keyscan();
  14.                             if((shi==clock_shi)&&(fen==clock_fen)&&(status==2)&&(miao<5))
  15.                             {
  16.                                           clock_flag=1;
  17.                                           TR1=1;
  18.                             }
  19.                             if(status==1)              //鬧鐘狀態(tài)A解除鬧鐘
  20.                             {
  21.                                           clock_flag=0;
  22.                                           clock=1;
  23.                                           TR1=0;
  24.                             }
  25.               }
  26. }
  27. void get_pizhong()
  28. {
  29.               uint j;
  30.               ulong hx711_dat;
  31.               for(j=0;j<5;j++)
  32.               Delay10ms();
  33.               hx711_dat=ReadCount();
  34.               temp=(uint)(hx711_dat/100);            
  35. }
  36. void get_weight()
  37. {
  38.               ulong hx711_data,a;
  39.               uint get,aa;            
  40.               hx711_data=ReadCount();
  41.               get=(uint)(hx711_data/100);
  42.               if(get<(temp+4))
  43.               {
  44.                             while(1)
  45.                             {
  46.                                           if(du_k1==0)
  47.                                           shizhong_hanshu();              //跳去運行時間
  48.                                           weight=0;
  49.                                           TR0=0;              //不允許運行
  50.                                           chaozhong_flag=0;              //無重物,超重標(biāo)志為0;
  51.                                           clock=1;
  52.                                           if(leiji_flag==1)
  53.                                           {
  54.                                                         weight_shuzhi(leiji_weight);//顯示累計重量
  55.                                                         P3=0xf0;
  56.                                                         if(P3!=0xf0)
  57.                                                         {
  58.                                                                       leiji_count--;
  59.                                                                       break;
  60.                                                         }              //按鍵就提出
  61.                                           }
  62.                                           else            
  63.                                           weight_shuzhi(weight);//顯示重量            
  64.                                           hx711_data=ReadCount();
  65.                                           get=(uint)(hx711_data/100);
  66.                                           if(get>(temp+4))break;
  67.                             }
  68.               }
  69.               a=ReadCount();
  70.               aa=(uint)(a/100)-temp;
  71.               weight=(uint)((float)aa/4.4+0.05);
  72.               weight=weight-qi_weight;              //去皮
  73.               if(weight>=0)
  74.               {
  75.                             if(weight>5000)
  76.                             {chaozhong_flag=1;TR0=1;}              //重量大于5000g,超重報警?
  77.                             else
  78.                             {chaozhong_flag=0;TR0=0;clock=1;}
  79.                             weizhi_zifu(0x00,'+');
  80.               }
  81.               else {weizhi_zifu(0x00,'-');}
  82. }

  83. void press(uchar *s)
  84. {
  85.               unsigned char dat;
  86. nn:              P3=0xf0;                                                                                                                //保存第一位
  87.               while(P3==0xf0)
  88.               {
  89.                             get_weight();//得到重量
  90.                             if(weight>0)
  91.                             {weight_shuzhi(weight);}//顯示重量
  92.                             else
  93.                             {weight_shuzhi(-weight);}
  94.               }
  95.     dat=key_scan();
  96.               if(dat>=0&&dat<10)
  97.     {  
  98.                             if(leiji_flag==1)
  99.                             {
  100.                                           leiji_weight=leiji_weight+weight;
  101.                                           leiji_count++;
  102.                                           if(leiji_count==10)
  103.                                           leiji_count=0;
  104.                                           weizhi_zifu(0x04,0x30+leiji_count);
  105.                                           weight_shuzhi(leiji_weight);
  106.                             }
  107.                             *s=dat;
  108.                             price_shuzhi(1,dat+0x30);//顯示
  109.                             s++;
  110.               }
  111.               if(dat==16)                                          //去皮
  112.               {qi_weight=weight+qi_weight;goto nn;}
  113.               if(dat==15)                                          //置零
  114.               {  
  115.                             qi_weight=0;
  116.                             weight=0;
  117.                             price=0;
  118.                             money=0;
  119.                             pricetable[2]=0;
  120.                             pricetable[1]=0;
  121.                             pricetable[0]=0;
  122.                             leiji_flag=0;
  123.                             leiji_weight=0;
  124.                             leiji_count=0;
  125.                             chaozhong_flag=0;
  126.                             clock=1;
  127.                             TR0=0;
  128.                             write_com(0x01);//清屏;
  129.                             init_1602();
  130.                             system();
  131.                             goto nn;
  132.               }
  133.               if(dat==14)//累計
  134.               {
  135.                             leiji_flag=1;
  136.                             leiji_weight=leiji_weight+weight;
  137.                             leiji_count++;
  138.                             if(leiji_count==10)
  139.                             {leiji_count=0;}
  140.                             write_com(0x01);//清屏;
  141.                             init_1602();
  142.                             system();
  143.                             weizhi_zifu(0x04,0x30+leiji_count);
  144.                             goto nn;
  145.               }
  146. mm:              P3=0xf0;                                                                                                    //保存第二位
  147.               while(P3==0xf0)
  148.               {
  149.                             get_weight();//得到重量
  150.                             if(leiji_flag==1)
  151.                             {weight_shuzhi(leiji_weight);}//如果累計標(biāo)志為1,顯示累計重量
  152.                             else
  153.                             {
  154.                                           if(weight>0)
  155.                                           {weight_shuzhi(weight);}//顯示重量
  156.                                           else
  157.                                           {weight_shuzhi(-weight);}
  158.                             }
  159.               }                                                                                   
  160.     dat=key_scan();
  161.               if(dat>=0&&dat<10)
  162.     {  
  163.                             *s=dat;
  164.                             price_shuzhi(2,dat+0x30);//顯示
  165.                             s++;
  166.               }
  167.               if(dat==16)                                          //去皮
  168.               {qi_weight=weight+qi_weight;goto mm;}
  169.               if(dat==12)                                          //清除
  170.               {s--;*s=0;price_shuzhi(1,' ');goto nn;}
  171.               if(dat==15)                                          //置零
  172.               {  
  173.                             s--;
  174.                             qi_weight=0;
  175.                             weight=0;
  176.                             price=0;
  177.                             money=0;
  178.                             pricetable[2]=0;
  179.                             pricetable[1]=0;
  180.                             pricetable[0]=0;
  181.                             leiji_flag=0;
  182.                             leiji_weight=0;
  183.                             leiji_count=0;
  184.                             chaozhong_flag=0;
  185.                             clock=1;
  186.                             TR0=0;
  187.                             write_com(0x01);                            //清屏;
  188.                             init_1602();
  189.                             system();
  190.                             goto nn;
  191.               }
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
基于單片機的電子秤系統(tǒng)設(shè)計(附程序代碼).doc (508 KB, 下載次數(shù): 274)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:462839 發(fā)表于 2019-1-6 02:00 來自手機 | 只看該作者
樓主有電路仿真圖的原文件嗎
回復(fù)

使用道具 舉報

板凳
ID:565349 發(fā)表于 2019-6-18 09:55 | 只看該作者
非常棒!
回復(fù)

使用道具 舉報

地板
ID:565349 發(fā)表于 2019-6-18 09:57 | 只看該作者
zhangbingtao 發(fā)表于 2019-1-6 02:00
樓主有電路仿真圖的原文件嗎

請問您要到了嗎
回復(fù)

使用道具 舉報

5#
ID:663839 發(fā)表于 2019-12-14 16:15 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

6#
ID:680901 發(fā)表于 2020-1-4 10:56 | 只看該作者
樓主能把word文檔分享一下嗎?
回復(fù)

使用道具 舉報

7#
ID:758645 發(fā)表于 2020-5-23 06:34 來自手機 | 只看該作者
程序代碼在那
回復(fù)

使用道具 舉報

8#
ID:907769 發(fā)表于 2021-4-19 15:14 | 只看該作者
樓主有電路仿真圖的原文件嗎
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产女人与拘做视频免费 | 黑人巨大精品欧美一区二区一视频 | 久久久久久国产 | 黄色免费在线观看网站 | 夜色www国产精品资源站 | 亚洲国产精品久久久久婷婷老年 | 雨宫琴音一区二区在线 | 亚洲一二三在线观看 | 午夜激情网 | 久久精品一区二区 | 国产日韩亚洲欧美 | 91视视频在线观看入口直接观看 | 国产激情 | 成人区一区二区三区 | 一区二区视频在线 | 福利视频1000| 国产一区二区三区在线免费观看 | 欧美色综合一区二区三区 | 97精品视频在线 | 亚洲乱码国产乱码精品精98午夜 | 青青草国产在线观看 | 在线91 | 另类亚洲视频 | 欧美福利视频 | 国产高清在线 | 搞av.com | 日韩国产在线 | 日韩av.com| 国产精品一区久久久 | 亚洲精品乱码久久久久久久久 | 国产欧美日韩综合精品一区二区 | 午夜视频在线播放 | 久久久久久久久91 | 欧美阿v| 国产精品五区 | 伊人网99| 日本 欧美 三级 高清 视频 | 中文字幕一页二页 | 91精品国产综合久久久动漫日韩 | 精品国产精品国产偷麻豆 | 国产精品久久久久久久久久久免费看 |