電子秤課程設(shè)計(jì)_第1頁
電子秤課程設(shè)計(jì)_第2頁
電子秤課程設(shè)計(jì)_第3頁
電子秤課程設(shè)計(jì)_第4頁
電子秤課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、【設(shè)計(jì)題目】:基于單片機(jī)的電子秤設(shè)計(jì)【設(shè)計(jì)要求】:(1)設(shè)計(jì)一款電子秤,用LCD液晶顯示器顯示被稱物體的質(zhì)量(2)可以設(shè)定該秤所稱的上限(3)當(dāng)物體超重時,能自動報警【設(shè)計(jì)過程】1. 【方案設(shè)計(jì)】1.1電子秤的組成1.1.1電子秤的基本結(jié)構(gòu) 電子秤是利用物體的重力作用來確定物體質(zhì)量(重量)的測量儀器,也可用來確定與質(zhì)量相關(guān)的其它量大小、參數(shù)、或特性。不管根據(jù)什么原理制成的電了秤均由以下三部分組成:(1) 承重、傳力復(fù)位系統(tǒng) 它是被稱物體與轉(zhuǎn)換元件之間的機(jī)械、傳力復(fù)位系統(tǒng),又稱電子秤的秤體,一般包括接受被稱物體載荷的承載器、秤橋結(jié)構(gòu)、吊掛連接部件和限位減振機(jī)構(gòu)等。(2) 稱重傳感器即由非電量(質(zhì)

2、量或重量)轉(zhuǎn)換成電量的轉(zhuǎn)換元件,它是把支承力變換成電的或其它形式的適合于計(jì)量求值的信號所用的一種輔助手段。 (3) 測量顯示和數(shù)據(jù)輸出的載荷測量裝置 即處理稱重傳感器信號的電子線路(包括放人器、模數(shù)轉(zhuǎn)換、電流源或電壓源、調(diào)節(jié)器、補(bǔ)嘗元件、保護(hù)線路等)和指示部件(如顯示、打印、數(shù)據(jù)傳輸和存貯器件等)。1.1.2電子秤的工作原理當(dāng)被稱物體放置在秤體的秤臺上時,其重量便通過秤體傳遞到稱重傳感器,傳感器隨之產(chǎn)生力一電效應(yīng),將物體的重量轉(zhuǎn)換成與被稱物體重量成一定函數(shù)關(guān)系(一般成正比關(guān)系)的電信號(電壓或電流等)。此信號由放大電路進(jìn)行放大、經(jīng)濾波后再由模數(shù)( A/D)器進(jìn)行轉(zhuǎn)換,數(shù)字信號再送到微處器的CP

3、U處理,CPU不斷掃描鍵盤和各功能開關(guān),根據(jù)鍵盤輸入內(nèi)容和各種功能開關(guān)的狀態(tài)進(jìn)行必要的判斷、分析、由儀表的軟件來控制各種運(yùn)算。運(yùn)算結(jié)果送到內(nèi)存貯器,需要顯示時,CPU發(fā)出指令,從內(nèi)存貯器中讀出送到顯示器顯示,或送打印機(jī)打印。1.2本設(shè)計(jì)思路本設(shè)計(jì)的主要思路是:利用壓力傳感器采集因壓力變化產(chǎn)生的電壓信號,經(jīng)過電壓放大電路放大,然后再經(jīng)過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,最后把數(shù)字信號送入單片機(jī)。單片機(jī)經(jīng)過相應(yīng)的處理后,得出當(dāng)前所稱物品的重量,然后顯示出來。主要技術(shù)指標(biāo)為:稱量范圍0600g,分度值1kg,精度等級III級,電源AC220V。2. 【器件選擇】按照本設(shè)計(jì)功能的要求,系統(tǒng)由5個部分組成:控制

4、器部分、測量部分、數(shù)據(jù)顯示部分、鍵盤部分、語音提示部分和電路電源部分,系統(tǒng)設(shè)計(jì)總體方案框圖如圖1所示。 語音提示 A/D轉(zhuǎn)換器 放大電路 壓力傳感 電源 按鍵 STC12C5A60S2單片機(jī) LCD顯示 圖1設(shè)計(jì)思路框圖 測量部分是利用稱重傳感器檢測壓力信號,得到微弱的電信號(本設(shè)計(jì)為電壓信號),而后經(jīng)處理電路(如濾波電路,差動放大電路,)處理后,送單片機(jī)中的A/D轉(zhuǎn)換器,將模擬量轉(zhuǎn)化為數(shù)字量輸出,控制器接受來自A/D轉(zhuǎn)換器輸出的數(shù)字信號,經(jīng)過復(fù)雜的運(yùn)算,將數(shù)寧信號轉(zhuǎn)換為物體的實(shí)際重量信號,并將其送到顯示單元中。2.1控制器部分本設(shè)計(jì)使用單片機(jī)作為系統(tǒng)的主控制器。根據(jù)總體方案設(shè)計(jì)的分析,設(shè)計(jì)這

5、樣一個簡單的的系統(tǒng),可以選用帶A/D轉(zhuǎn)換器的單片機(jī),由于應(yīng)用程序不大,應(yīng)用程序直接存儲存片內(nèi),不用在外部擴(kuò)展存儲器,這樣電路也可簡化。在這里選用STC生產(chǎn)的STC12C5A60S2單片機(jī)。STC12C5A60S2與MCS-51相比有如下優(yōu)勢:第一, 指令集與MCS-51系列單片機(jī)完全兼容。第二, 片內(nèi)存儲器采用閃速存儲器,并且支持SPI-ISP在線編程,使程序?qū)懭敫臃奖?,提高了調(diào)試效率,縮短了開發(fā)周期。第三, 提供了更小尺寸的芯片,使整個硬件電路體積更小。第四, 單指令周期,運(yùn)行速度高。第五, 自帶上電復(fù)位電路,可減低單片機(jī)外圍電路的復(fù)雜程度。第六, 內(nèi)置8路10位高速A/D轉(zhuǎn)換,轉(zhuǎn)換速度2

6、5萬次/秒。 STC12C5A60S2內(nèi)部帶有60KB的程序存儲器,并且?guī)в?路10位精度的A/D轉(zhuǎn)換器,基本上已經(jīng)能夠滿足我們的需要。STC12C5A60S2單片機(jī)的引腳圖如圖2所示。 圖2 STC12C5A60S2單片機(jī)的引腳圖2.2數(shù)據(jù)采集部分電子秤的數(shù)據(jù)采集部分主要包括稱重傳感器、處理電路電路,因此對于這部分的論證主要分兩方面。2.2.1傳感器的選擇 傳感器量程的選擇可依據(jù)秤的最大稱量值、選用傳感器的個數(shù)、秤體的自重、可能產(chǎn)生的最人偏載及動載等因素綜合評價來確定。一般來說,傳感器的量程越接近分配到每個傳感器的載荷,其稱量的準(zhǔn)確度就越高。根據(jù)設(shè)計(jì)需要,確定傳感器的額定載荷為1Kg,允許過

7、載為150%F.S,精度為0.05%,最大量程時誤差±0.1kg,可以滿足本系統(tǒng)的精度要求。綜合考慮,本設(shè)計(jì)采用SP20C-G501電阻應(yīng)變式傳感器,其最人量程為1Kg.該傳感器測量精度高、溫度特性好、工作穩(wěn)定等優(yōu)點(diǎn),廣泛用于各種結(jié)構(gòu)的動、靜態(tài)測量及各種電子稈的一次儀表。該稱重傳感器主要由彈性體、電阻應(yīng)變片電纜線等組成,其工作原理如圖3所示。 圖3 稱重傳感器原理圖2.2.2放大電路選擇 由稱重傳感器的稱量原理可知,采用轉(zhuǎn)換電路,把應(yīng)變計(jì)的R/R變化轉(zhuǎn)換成電壓或電流變化,但是這個電壓或電流信號很小,需要增加增益放大電路來把這個電壓或電流信號轉(zhuǎn)換成可以被A/D轉(zhuǎn)換器接收的信號。在前級處

8、理電路部分,我們考慮可以采用以下幾種方案: 方案一:利用普通低溫漂運(yùn)算放大器構(gòu)成前級處理電路; 普通低溫漂運(yùn)算放大器構(gòu)成多級放大器會引入大量噪聲。由于A/D轉(zhuǎn)換器需要很高的精度,所以幾毫伏的干擾信號就會直接影響最后的測量精度。所以,此種方案不宜采用。方案二:主要由高精度低漂移運(yùn)算放大器構(gòu)成差動放大器,而構(gòu)成的前級處理電路;差動放人器具有高輸入阻抗,增益高的特點(diǎn),可以利用普通運(yùn)放(如OP07)做成一個差動放大器。一般說來,集成化儀用放大器具有很高的共模抑制比和輸入阻抗,因而在傳統(tǒng)的電路設(shè)計(jì)中都是把集成化儀器放人器作為前置放人器。然而,絕人多數(shù)的集成化儀器放大器,特別是集成化儀器放大器,它們的共模

9、抑制比與增益相關(guān):增益越高,共模抑制比越大。為了實(shí)現(xiàn)信號的放人,其設(shè)計(jì)電路如圖4所示:圖4 利用高精度低漂移運(yùn)放設(shè)計(jì)的差動放大器前級采用運(yùn)放Al和A2組成并聯(lián)型差動放大器,使其輸入阻抗為無窮大,共模抑制比也為無窮大。阻容耦合電路放存由并聯(lián)型差動放大器構(gòu)成的前級放大器和由儀器放大器構(gòu)成的后級放大器之間,這樣可為后級儀器放大器提高增益,進(jìn)而提高電路的共模抑制比提供了條件。后級電路采用廉價的儀器放大器,將雙端信號轉(zhuǎn)換為單端信號輸出。由于阻容耦合電路的隔直作用,后級的儀器放大器可以做到很高的增益,進(jìn)而得到很高的共模抑制比。3. 【系統(tǒng)電路設(shè)計(jì)】3.1 主控制器電路主控制器是STC12C5A60S2單片

10、機(jī),其外圍電路簡單,只需要加上晶振電路和電源就可以工作。主控制器電路如圖5所示。 圖5 主控制系統(tǒng)3.2 傳感器放大電路傳感器放大電路由兩級組成,前級由兩個同相比例運(yùn)算電路組成,后級是一個差動比例運(yùn)算電路。傳感器信號首先進(jìn)過前級進(jìn)行初步放大,接著進(jìn)入后級。由于前級的對稱性直接影響后級的共模抑制比,考慮到元件阻值的誤差,R2,R4選用多圈精密可調(diào)電阻。為了提高后級對共模信號的抑制,反饋電阻R3也采用精密多圈可調(diào)電阻。傳感器放大電路如圖6所示。圖6 傳感器放大電路3.3顯示電路1602液晶模塊的引腳連線如圖7。其中,第1、2腳為液晶的驅(qū)動電源;第三腳VL為液晶的對比度調(diào)節(jié),通過在VCC和GND之間

11、接一個10K多圈可調(diào)電阻,中間抽頭接VL,可實(shí)現(xiàn)液晶對比度的調(diào)節(jié);液晶的控制線RS、R/W、E分別接單片機(jī)的P0.5、P0.6、P0.7;數(shù)據(jù)口接在單片機(jī)的P2口;BL+、BL-為液晶背光電源。圖7 1602液晶模塊的接線圖3.4報警電路的設(shè)計(jì)當(dāng)電路檢測到稱重的物體超過儀器的測量限制時,將產(chǎn)生一個信號給報警電路。使報警電路報警從而提醒工作人員注意,超限報警電路如圖8所示。圖8 報警電路圖它是由89S52的P2.6口來控制的,當(dāng)超過設(shè)置的重量時(5Kg),通過程序使P2.6口值為高電平,從而使三極管導(dǎo)通,接通報警電路,使蜂鳴器SPEAKER發(fā)出警報聲,同時使報警燈LED發(fā)光。4. 【軟件設(shè)計(jì)】程

12、序設(shè)計(jì)是一個復(fù)雜的工作,為了把復(fù)雜的工作條理化,就要有相應(yīng)的步驟和方法。其步驟 可概括為以下三點(diǎn):(1) 分析系統(tǒng)控制要求,確定算法:對復(fù)雜的問題進(jìn)行具體的分析,找出合理的計(jì)算方法及適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),從而確定編寫程序的步驟。(2) 根據(jù)算法畫流程圖:畫流程圖可以把算法和解題步驟逐步具體化,以減少出錯的可能性。(3) 編寫程序:根據(jù)程序圖所表示的算法和步驟,選用適當(dāng)?shù)闹噶钆帕衅饋?,?gòu)成一個有機(jī)的整體,即程序。4.1主程序的設(shè)計(jì) 主程序的功能是系統(tǒng)初始化,管理和調(diào)用各個子程序。本設(shè)計(jì)的程序流程圖如圖9所示。 開始 初始化置零鍵按下 調(diào)零程序啟動A/D轉(zhuǎn)換 數(shù)據(jù)處理 顯示 圖9主程序流程4.2子程序設(shè)

13、計(jì)4.2.1A/D轉(zhuǎn)換啟動及數(shù)據(jù)讀取程序A/D轉(zhuǎn)換子程序主要是指在系統(tǒng)開始運(yùn)行時,把稱重傳感器傳遞過來的模擬信號轉(zhuǎn)換成數(shù)字信號并傳遞到單片機(jī)的程序設(shè)計(jì)。設(shè)計(jì)流程圖如圖10所示。 開始 A/D574初始化 啟動 A/D轉(zhuǎn)換 A/D轉(zhuǎn)換完成NY 數(shù)據(jù)存儲 數(shù)據(jù)顯示圖10 A/D轉(zhuǎn)換啟動及數(shù)據(jù)讀取程序流程圖4.2.2顯示子程序設(shè)計(jì) 顯示子程序主要是來判斷是否需要顯示,以及如何去顯示。設(shè)計(jì)顯示子程序的流程圖如圖11所示: 開始 顯示歡迎界面 有無按鍵 顯示功能選擇按鍵 有無按鍵輸入鍵盤界面 是否為D顯示測量界面 是否為E 是否為F 返回 圖11顯示子程序流程圖4.2.3報警子程序的設(shè)計(jì) 由于要求有報警

14、電路,可以將設(shè)定的閥值與實(shí)時顯示的值進(jìn)行比較,如果設(shè)定值小于實(shí)時顯示的值,則將P1.0置為1,就報警。程序流程圖如圖12所示。 開始 A/D高位大?Y 與閥值相等?NNY A/D低位大?Y 與閥值相等?NNYY 報警 返回圖12 報警子程序框圖5. 【結(jié)果分析】 實(shí)驗(yàn)中在稱重物時,電子秤能夠測量出物體的重量,當(dāng)物體重量大于600克時,會發(fā)出警報。綜上所述,設(shè)計(jì)出的電子秤能夠正常的進(jìn)行工作。6.【設(shè)計(jì)總結(jié)】(1)設(shè)計(jì)中出現(xiàn)的問題及解決方案始用C語言編寫代碼時,出現(xiàn)很多小錯誤。比如變量還沒定義就直接使用了;書寫不規(guī)范,不該用分號的地方用了,括號不配對等;沒有注意大小寫的區(qū)別。這些都是根據(jù)提示找到出

15、錯的語句直接改正就可以。在重量調(diào)整子程序中,設(shè)置了一個上限量程,在重量超過了上限時直接使用beep()函數(shù),但是這時并不報警,才發(fā)現(xiàn)還沒定義這個函數(shù),接下來在下面定義了報警函數(shù),還是不行,原來必行在調(diào)用之前定義或是先聲明了才能在調(diào)用之后定義這個函數(shù)。(2)個人體會 通過本次課程設(shè)計(jì),加深了對單片機(jī)的理解,并且更加熟悉了單片機(jī)的整個設(shè)計(jì)流程。經(jīng)過對電子稱的設(shè)計(jì),加深了對傳感器的理解以及更加了解到日常生活中傳感器與我們實(shí)際生活的聯(lián)系。在設(shè)計(jì)過程中出現(xiàn)了許多錯誤,導(dǎo)致一些程序無法運(yùn)行,但經(jīng)過不斷的努力,終于克服了困難,完成了設(shè)計(jì)的任務(wù)及要求。由于設(shè)計(jì)時間有限,只能在以后的學(xué)習(xí)過程中做更進(jìn)一步的改進(jìn)和

16、提高。7.【參考文獻(xiàn)】1趙茂泰 智能儀器原理及應(yīng)用M.北京:電子工業(yè)出版社 2009.42馬忠梅 單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社.2009.83劉瑞新 單片機(jī)原理及應(yīng)用教程M.機(jī)械工業(yè)出版社.2011.74王東峰 單片機(jī)C語言應(yīng)用100例M北京:電子工業(yè)出版社.2009.55李平等 單片機(jī)入門與開發(fā)M北京:機(jī)械工業(yè)出版社.2010.16張毅剛 MCS-51單片機(jī)應(yīng)用設(shè)計(jì)M哈爾濱:哈爾濱工業(yè)大學(xué)出版社.2011.9附錄:#include "config.h"/- / SPEED1 SPEED0 A/D轉(zhuǎn)換所需時間#define AD_SPEED 0

17、x60 / 0110,0000 1 1 90 個時鐘周期轉(zhuǎn)換一次, / CPU工作頻率21MHz時 A/D轉(zhuǎn)換速度約 300KHz/#define AD_SPEED 0x40 /0100,0000 1 0 140 個時鐘周期轉(zhuǎn)換一次/#define AD_SPEED 0x20 /0010,0000 0 1 280 個時鐘周期轉(zhuǎn)換一次/#define AD_SPEED 0x00 /0000,0000 0 0 420 個時鐘周期轉(zhuǎn)換一次/-unsigned int get_AD_result(unsigned char channel) unsigned char AD_finished=0; /

18、存儲 A/D 轉(zhuǎn)換標(biāo)志 ADC_RES = 0; /A/D 轉(zhuǎn)換結(jié)果高8位 ADC_RESL = 0; /A/D 轉(zhuǎn)換結(jié)果低2位 channel &= 0x07; /0000,0111 清0高5位 ADC_CONTR = AD_SPEED; _nop_();ADC_CONTR|=0xE0;/1110,0000清ADC_FLAG,ADC_START位和低三位 ADC_CONTR |= channel; /選擇 A/D 當(dāng)前通道 _nop_(); ADC_CONTR |= 0x80; /啟動 A/D 電源 delay(1); /使輸入電壓達(dá)到穩(wěn)定 ADC_CONTR |= 0x08; /0

19、000,1000 令 ADCS = 1, 啟動A/D轉(zhuǎn)換 AD_finished = 0; while (AD_finished = 0 ) /等待A/D轉(zhuǎn)換結(jié)束 AD_finished = (ADC_CONTR & 0x10); /0001,0000 測試A/D轉(zhuǎn)換結(jié)束否 ADC_CONTR &= 0xE7; /1111,0111 清 ADC_FLAG 位, 關(guān)閉A/D轉(zhuǎn)換 return (ADC_RES<<2|ADC_RESL);/返回轉(zhuǎn)換后的結(jié)果void WriteDataLCD(unsigned char WDLCD)ReadStatusLCD(); /檢測

20、忙LCD_Data = WDLCD;LCD_RS = 1;LCD_RW = 0;LCD_E = 0; /若晶振速度太高可以在這后加小的延時LCD_E = 0;LCD_E = 0; /延時LCD_E = 1;void WriteCommandLCD(unsigned char WCLCD,BuysC) /BuysC為0時忽略忙檢測if (BuysC) ReadStatusLCD(); /根據(jù)需要檢測忙LCD_Data = WCLCD;LCD_RS = 0;LCD_RW = 0; LCD_E = 0;LCD_E = 0;LCD_E = 0;LCD_E = 1; unsigned char Read

21、DataLCD(void)LCD_RS = 1; LCD_RW = 1;LCD_E = 0;LCD_E = 0;LCD_E = 0;LCD_E = 1;return(LCD_Data);unsigned char ReadStatusLCD(void)LCD_Data = 0xFF; LCD_RS = 0;LCD_RW = 1;LCD_E = 0;LCD_E = 0;LCD_E = 0;LCD_E = 1;delay_18B20(200); /Delay5Ms(); /檢測忙信號 proteus仿真時,延遲5MS,關(guān)閉while循環(huán)while (LCD_Data&Busy) /硬件使用

22、時,不延遲,打開while循環(huán)return(LCD_Data);void LCDInit(void)LCD_Data = 0;WriteCommandLCD(0x38,0); /三次顯示模式設(shè)置,不檢測忙信號Delay5Ms(); WriteCommandLCD(0x38,0);Delay5Ms(); WriteCommandLCD(0x38,0);Delay5Ms(); WriteCommandLCD(0x38,1); /顯示模式設(shè)置,開始要求每次檢測忙信號WriteCommandLCD(0x08,1); /關(guān)閉顯示W(wǎng)riteCommandLCD(0x01,1); /顯示清屏WriteCommandLCD(0x06,1); / 顯示光標(biāo)移動設(shè)置WriteCo

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論