電子秤課程設計_第1頁
電子秤課程設計_第2頁
電子秤課程設計_第3頁
電子秤課程設計_第4頁
電子秤課程設計_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

5、樣一個簡單的的系統,可以選用帶A/D轉換器的單片機,由于應用程序不大,應用程序直接存儲存片內,不用在外部擴展存儲器,這樣電路也可簡化。在這里選用STC生產的STC12C5A60S2單片機。STC12C5A60S2與MCS-51相比有如下優勢:第一, 指令集與MCS-51系列單片機完全兼容。第二, 片內存儲器采用閃速存儲器,并且支持SPI-ISP在線編程,使程序寫入更加方便,提高了調試效率,縮短了開發周期。第三, 提供了更小尺寸的芯片,使整個硬件電路體積更小。第四, 單指令周期,運行速度高。第五, 自帶上電復位電路,可減低單片機外圍電路的復雜程度。第六, 內置8路10位高速A/D轉換,轉換速度2

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

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

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

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

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

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

12、序設計是一個復雜的工作,為了把復雜的工作條理化,就要有相應的步驟和方法。其步驟 可概括為以下三點:(1) 分析系統控制要求,確定算法:對復雜的問題進行具體的分析,找出合理的計算方法及適當的數據結構,從而確定編寫程序的步驟。(2) 根據算法畫流程圖:畫流程圖可以把算法和解題步驟逐步具體化,以減少出錯的可能性。(3) 編寫程序:根據程序圖所表示的算法和步驟,選用適當的指令排列起來,構成一個有機的整體,即程序。4.1主程序的設計 主程序的功能是系統初始化,管理和調用各個子程序。本設計的程序流程圖如圖9所示。 開始 初始化置零鍵按下 調零程序啟動A/D轉換 數據處理 顯示 圖9主程序流程4.2子程序設

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

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

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

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

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

18、存儲 A/D 轉換標志 ADC_RES = 0; /A/D 轉換結果高8位 ADC_RESL = 0; /A/D 轉換結果低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 當前通道 _nop_(); ADC_CONTR |= 0x80; /啟動 A/D 電源 delay(1); /使輸入電壓達到穩定 ADC_CONTR |= 0x08; /0

19、000,1000 令 ADCS = 1, 啟動A/D轉換 AD_finished = 0; while (AD_finished = 0 ) /等待A/D轉換結束 AD_finished = (ADC_CONTR & 0x10); /0001,0000 測試A/D轉換結束否 ADC_CONTR &= 0xE7; /1111,0111 清 ADC_FLAG 位, 關閉A/D轉換 return (ADC_RES<<2|ADC_RESL);/返回轉換后的結果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(); /根據需要檢測忙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,關閉while循環while (LCD_Data&Busy) /硬件使用

22、時,不延遲,打開while循環return(LCD_Data);void LCDInit(void)LCD_Data = 0;WriteCommandLCD(0x38,0); /三次顯示模式設置,不檢測忙信號Delay5Ms(); WriteCommandLCD(0x38,0);Delay5Ms(); WriteCommandLCD(0x38,0);Delay5Ms(); WriteCommandLCD(0x38,1); /顯示模式設置,開始要求每次檢測忙信號WriteCommandLCD(0x08,1); /關閉顯示WriteCommandLCD(0x01,1); /顯示清屏WriteCommandLCD(0x06,1); / 顯示光標移動設置WriteCo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論