基于C51的電子稱課設(shè)_第1頁
基于C51的電子稱課設(shè)_第2頁
基于C51的電子稱課設(shè)_第3頁
基于C51的電子稱課設(shè)_第4頁
基于C51的電子稱課設(shè)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理及系統(tǒng)課程設(shè)計評語:考勤(10分)守紀(jì)(10分)過程(30分)設(shè)計報告(30分)答辯(20分)總成績(100分)專 業(yè): 自動化班 級:姓 名:學(xué) 號:指導(dǎo)教師:2014年1月15日基于單片機(jī)的智能電子稱設(shè)計1設(shè)計任務(wù)1.1設(shè)計題目d91 基于單片機(jī)的智能電子秤設(shè)計1.2設(shè)計目的(1) 綜合運用所學(xué)單片機(jī)的知識實現(xiàn)單片機(jī)系統(tǒng)的設(shè)計;(2) 學(xué)會將單片機(jī)運用于實際生活或生產(chǎn)屮;(3) 培養(yǎng)科學(xué)良好的設(shè)計方法和作風(fēng);(4) 學(xué)握用keilc51編寫和調(diào)試程序;(5) 掌握用proteus實現(xiàn)應(yīng)用系統(tǒng)的仿真;(6) 學(xué)會單片機(jī)應(yīng)用系統(tǒng)設(shè)計的齊種步驟和技巧;1.3設(shè)計要求(1) 給出具體可行

2、的設(shè)計方案;(2) 設(shè)計合理的電路原理及可靠的系統(tǒng)破件;(3) 在合理碩件基礎(chǔ)上用keil c51編寫和調(diào)試程序;(4) 給出所設(shè)計系統(tǒng)在proteus軟件小的仿真結(jié)果;(5) 給出最后的設(shè)計結(jié)果集分析;1.4設(shè)計方案及原理(1) 設(shè)計方案:根據(jù)本設(shè)計功能的要求,系統(tǒng)主要由6個部分組成:控制器部 分、測量部分、鍵盤部分、數(shù)拯顯示部分、聲音顯示部分、和電路電源部分。總 休設(shè)計方案如圖所示:圖1.1設(shè)計原理圖(2) 設(shè)計原理:電子秤的工作原理是通過稱重傳感器采集到被測物體的重量并 將其轉(zhuǎn)換成電壓信號,再通過a/d轉(zhuǎn)換成數(shù)字量送入到主控電路的單片機(jī)屮。通 過單片機(jī)不斷掃描鍵盤和各功能開關(guān),根據(jù)鍵盤輸

3、入內(nèi)容和各功能狀態(tài)進(jìn)行必耍 的判斷、分析、由儀表的軟件來控制各種運算。運算結(jié)果送到內(nèi)存貯器,需要顯 示時,cpu發(fā)出命令,從內(nèi)存貯器中讀出送到顯示器顯示。2硬件設(shè)計2.1單片機(jī)的選型at89c51是一種帶4k字節(jié)閃存可編程可擦除只讀存儲器的低電壓,高性能 cmos 8位微處理器,俗稱單片機(jī)。at89c單片機(jī)為很多嵌入式控制系統(tǒng)提供了 一種靈活性高且價廉的方案。at89c51單片機(jī)特點能與mcs-51兼容,有4k字 節(jié)可編程閃爍存儲器,壽命能夠達(dá)到1000寫/擦循環(huán),數(shù)據(jù)可以保留時間長達(dá)10 年,全靜態(tài)工作:0hz-24mhz,三級程序存儲器鎖定,128x8位內(nèi)部ram, 32 可編程i/o線,

4、兩個16位定時器/計數(shù)器,5個中斷源,可編程串行通道,低功耗 的閑置和掉電模式,片內(nèi)振蕩器和時鐘電路。2.2傳感器的選型電阻應(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é)量傳感器。2.3 a/d轉(zhuǎn)換器的選型adc0832為8位分辨率a/d轉(zhuǎn)換芯片,其最高分辨可達(dá)256級,可以適應(yīng)一 般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓 輸入在05v之間。芯片轉(zhuǎn)換時間僅為32ps,據(jù)有雙數(shù)據(jù)輸岀可作

5、為數(shù)據(jù)校驗, 以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強。獨立的芯片使能輸入,使多器件掛 接和處理器控制變的更加方便。通過di數(shù)據(jù)輸入端,可以輕易的實現(xiàn)通道功能的 選擇。2.4鍵盤編碼芯片的選型mm74c922是一款4*4鍵盤譯碼芯片,它可以檢測到與之相連的4*4鍵盤的 按鍵輸入,并通過數(shù)據(jù)輸出口將按鍵相應(yīng)的編碼輸出。2.5硬件連接及原理(1)數(shù)據(jù)采集部分電路連接如圖2所示:u26578dognddich1clkchovcccs4327«v11kq.234.5g7 1111 4 4 1 1 ppppppppxtal1xtal2rstpsenale ea22db123db224db325d

6、b426db527db628db710rs11rw12e21 dbo1617adc0832圖2.1數(shù)據(jù)采集部分電路原理:利用電阻應(yīng)變式傳感器將被測物體的重量轉(zhuǎn)換成電壓信號,再通過a/d 轉(zhuǎn)換器將電壓信號轉(zhuǎn)換成數(shù)字量輸給單片機(jī)。(2)單片機(jī)控制部分電路連接如圖2.2所示:po.o/ado po.1/ad1 p0.2/ad2 po.3/ad3 p0.4/ad4 p0.5/ad5 p0.&-ad6 p0.7/ad7p2.0/a8p2.1/a9 p2.2/a10 p2.3/a11 p2.4/a12 p2.5/a13 p2.6/a14 p2.7/a15p3.0/rxd p3.1/txd p3.2

7、/1nt0p3.3/int1p3.4a0p3.5/t1p3.6/wrp3.7/rd圖2.2單片機(jī)控制部分電路原理:作為整個系統(tǒng)的控制部分,at89c51單片機(jī)與其他各模塊連接在一起。 其中晶振電路為單片機(jī)提供工作信號脈沖。復(fù)位電路作為單片機(jī)的復(fù)位輸入,高 電平有效。p0.0p0.2端接 adc0832的 dio、clk、cs 端;p2.0p2.7端接lcd液晶顯示器;p 1.0p 1.4端接鍵盤譯碼電路的doadod及da端;p3.0p3.2端接 lcd 的 rs、rw、e 端;p1.5聲音提示裝置;xtalk xtal2端接晶振;(3) 鍵盤輸入部分電路連接如圖2.3所示:o36<cd

8、0q$aa sau u鬥iso.luiq00nln0寸s10匸u3mm74c9222ov 14o7oov圖2.3鍵盤部分電路y3原理:4*3矩陣鍵盤通過鍵盤譯碼電路譯碼向單片機(jī)輸入數(shù)據(jù)。 (4兒cd液晶顯示電路連接如圖2.4所示:gg§db1cmllo6co r、9id寸s838s58lcd1lm016l圖2.4 lm016l液品顯示電路(5)聲音提示裝置連接電路如圖2.5所示:r6ls1|n /510rsounder圖2.5聲咅提示連接電路原理:用以顯示重量與價格與單片機(jī)連接。3軟件設(shè)計軟件程序是連接各硬件工作和實現(xiàn)單片機(jī)智能化的靈魂。主要作用是實現(xiàn)以 單片機(jī)為控制中心,讓各個模塊

9、分工實現(xiàn)其功能,單片機(jī)進(jìn)行數(shù)據(jù)的采集、處理 存儲和輸出顯示的功能。模塊化是c語言的一大特點,對單片機(jī)的編程而言,用 c語言模塊化編程也是必須,故可以用一個主函數(shù)和adc0832轉(zhuǎn)換函數(shù)、按鍵處 理函數(shù)、計算總額函數(shù)和1602相關(guān)函數(shù)4個子程序即可實現(xiàn)相關(guān)功能,另外加按 鍵音函數(shù)、延時函數(shù)2個子程序。以下是各函數(shù)功能實現(xiàn)的流程圖。主程序功能 的流程圖如圖3所示。圖3.1主函數(shù)流程圖按鍵子程序流程圖如圖3.2所示,a/d轉(zhuǎn)換子程序流程圖如圖3.3所示。4系統(tǒng)仿真用proteus實現(xiàn)應(yīng)用系統(tǒng)的仿真,用模擬的c51芯片和外圍電路搭建電子秤仿 真系統(tǒng)電路圖,運用keilc51軟件下編寫和調(diào)試程序,調(diào)試完

10、成后生成的.hex文 件,裝入仿真系統(tǒng)單片機(jī)中,讓仿真系統(tǒng)工作。經(jīng)過調(diào)試,能顯示正確的結(jié)果, 即實現(xiàn)了基于單片機(jī)的智能電子秤設(shè)計。仿真圖見附圖1.5總結(jié)通過本次課程設(shè)計,我對所學(xué)的知識冇了一個系統(tǒng)的認(rèn)識和理解,尤其是對 本課題所用的單片機(jī)及其相關(guān)知識有了進(jìn)-步的掌握,對利用單片機(jī)進(jìn)行控制系 統(tǒng)的設(shè)計與開發(fā)以及對系統(tǒng)的分析和問題的解決有了切身的認(rèn)識和體會,正所謂 學(xué)以致用,在此實踐過程中增長了知識、豐富了經(jīng)驗,提高了解決問題的能力。 系統(tǒng)的分析與設(shè)計過程是對學(xué)習(xí)的總結(jié)過程,更是進(jìn)-步學(xué)習(xí)和探索的過程???制系統(tǒng)的開發(fā)設(shè)計是一項復(fù)雜的系統(tǒng)工程,必須嚴(yán)格按照系統(tǒng)分析、系統(tǒng)設(shè)計、 系統(tǒng)實施、系統(tǒng)運行與

11、調(diào)試的過程來進(jìn)行。系統(tǒng)的分析和設(shè)計是項很辛苦的工作, 同時也是一個充滿樂趣的過程,在設(shè)計過程屮,要邊學(xué)習(xí),邊實踐,遇到新問題 就不斷探索和努力即可使問題得到解決。理論和實際必須緊密結(jié)合,在設(shè)計中要針對不同的系統(tǒng)根據(jù)理論給與不同的 方案,綜合考慮各方面的因索和需要,選擇出最佳的方案與結(jié)論。要人量廣泛的 收集資料,然后認(rèn)真地研究其思路,和指導(dǎo)老師保持聯(lián)系,和同學(xué)共同研究遇到 的問題,堅持笑到最后。參考文獻(xiàn)1 宋戈.51單片機(jī)應(yīng)用開發(fā)范例大全m.北京:人民郵電出版社,2010.2 鄭峰.51單片機(jī)應(yīng)用典型模塊開發(fā)大全m.北京:中國鐵道出版社,2010.3 王思明,張金験,茍軍年等.單片機(jī)原理及應(yīng)用系

12、統(tǒng)設(shè)計m.北京:科學(xué)出版社,2012.附錄c2c3rf _rir x104 一-j crystal1 _1jr2c522b220«0.69jc1o.luu3mm74c9222iib9«r1ick296_7bxtal1po.oaix)po.iiad!3収xtal2po3ad3po.aimpo.&ad6rstpo.7<ad7p2da8p21.a9p22a1ops創(chuàng)p23-a11alep24/a12eap25a13p26a14p27('a15p10p30xdp1.1p3!.'txdp12p32'wt0p13p3.3m1p1.4p3x'

13、1dp1.5p35't1p16p3&7/rp17u11r4j2r5 itxr310k38gko chi21deo 22dbi23de224d&j2$2fides 27dm 28de: 0rsb' i2e±tl20 一12 “ .q皆 p-c 0-=-y1345y26戶rl8y39r-cy4r65i0rls1/ sounder v附圖1仿真及調(diào)試效來附錄2:源程序# include<reg5 l.h># include<intrins.h>#include <absacc.h>#include <math.h&g

14、t;#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#define uchar unsigned char#define uintunsigned int按鍵引腳定義sbit da=p1a4;#define key pressed (da= 1)有鍵按下#define key no (pl&oxof) 獲取鍵值鍵盤字符表code char key_char_table=n012 345 678 9.c”;#define plen 7價格最大

15、長度#dcfinc wlen 4重量最大長度#define sumlen 10/金額最大長度char disp_buffer_pplen;uchar disp_bufter_pzplen;char disp_buffer_wwlen;char disp2buffer2sumsumlen;uchar numberptr=0;蜂鳴器引腳定義sbit beep=pla5;/adc0832引腳定義sbit adcs =p0a2; 片選線sbit addi =p0a0; 數(shù)據(jù)線sbit addo =p0a0; 數(shù)據(jù)線sbit adclk =p0al; 時鐘線volatile int ad_result,

16、pre_result=o,pressure_value=o;/數(shù)模轉(zhuǎn)換結(jié)果,上次轉(zhuǎn)換結(jié) 果,壓力換算畐果 一一/lcd 1602引腳、宏定義#define lcd_db_port p2/1602d0d7sbit rs=p3a0; 數(shù)據(jù)/命令線選擇sbitrw=p3al; /讀寫控制線sbit en=p3a2 ; 使能端void showstring(unsigned char x,unsigned char y,unsigned char *str);void show_sum();/* 0正 口寸國 6* u£*/void delay_us(uchar x) - while (x)

17、nop_();嚴(yán)*按鍵音函數(shù)void sounder()uchar i;beep=l;for (i=0;i<20;i+) delay_us(70);beep=0;beep=l;嚴(yán)*按鍵處理 函數(shù)void keyb_dow()uchar kcychar;static uchar havdot=0;按卜小數(shù)點標(biāo)志位,按下為1static uchar dtnum=plen; 未輸入小數(shù)點時可以繼續(xù)輸入的字符個數(shù) p1|=oxof;if(key_pressed) "sounder(); keychar=key_char_tablekey_no;/ 獲取鍵值 if(isdigit(key

18、char)|(keychar=t&&!havdot)if(strlen(disp_buffer_p)=3 &&(keychar!-. '&&!havdot)return; 在當(dāng)前未輸入小數(shù)點,而已超過串長3吋返回 ifxnumberptr<dtnum)if(numberptr=0&&(keychar='(t|keychar=t)disp_buffer_pnumberptr+-o,; keychar=7; -else disp_buffer_pnumberptr4-+=keychar; disp_bufter_

19、pnumberptr=,o,;showstring(2,0,disp_buffer_p);if(keychar=7&&! havdot)dtnum=n umberptr+2;havdot= 1;else if(keychar=,c,)numberptr=o;havdot=0;dtnum=plen-2;disp_buffer_p0=,0,;disp_buffer_sumo=,o,;showstring(2,0,(char*)n”);showstring(5,l,(char*)u”);if(key_pressed)show_sum();while(key_pressed);嚴(yán)*計

20、算 總 勸 函 數(shù)*void show_sum() "float p,w;否則轉(zhuǎn)換為float型if(strlen(disp_buffer_p)=o)/價格未輸入時將 p 置為 0,elsep=strtod(disp_buffer_p,0,);w=strtod(disp_buffer_w,;0,); 將重量字符串轉(zhuǎn)換成 float 型 sprintf(disp_buffer_sum;,%.2f,p*w);/ 計算金額并轉(zhuǎn)化成字符串 showstring(5,l,(char*)n”); 清除原金額showstring(5,l ,disp_buffer_sum); 顯示當(dāng)前金額void

21、delay_ms(uchar x) uchar t; while (x) for(t=0;t<120;t+);/*adc0832 轉(zhuǎn)換函數(shù)uchar adc0832(unsigned char channel) /a/d 轉(zhuǎn)換,返冋結(jié)果 uchar i=0;uchar j;uint dat=0;uchar ndat=0;if(channel=0)channel=2;ifchannel 1 )channel=3;addi=1;_nop_();_nop_();adcs=0;拉低 cs 端_nop_();_nop_();adclk=1;拉高 clk 端op_();_nop_();adclk=0

22、;拉低clk端,形成下降沿1_nop_();_nop_();adclk=1;拉高 clk 端addi=channel&ox 1;_nop_();_nop_();adclk=o;拉低clk端,形成下降沿2_nop_();_nop_();adclk=1;拉高 clk 端addi=(channel» 1 )&0x 1;_nop_();_nop_();adclk=o;拉低clk端,形成下降沿3addi=1;控制命令結(jié)束_nop_();_nop_();dat=o;for(i=0;i<8;i+) dat|=addo;/ 收數(shù)據(jù) adclk=1;_nop_();_nop_()

23、;adclk=o;形成一次時鐘脈沖_nop_();_nop_();dat«= 1;if(i=7)dat|=add0;for(i=0;i<8;i+)j=0; j=j|addo;/ 收數(shù)據(jù) adclk=1;_nop_();_nop_();adclk=o; 形成一次時鐘脈沖_nop_();_nop_(); j=jv<7; ndat=ndatj;if(i<7)ndat»=l;adcs=1;/拉低 cs 端adclk=o;拉低 clk 端addo=1;/拉高數(shù)據(jù)端到初始狀態(tài) dat«=8;dat|=ndat;return(dat);/return dat1

24、602相關(guān)函數(shù)/*,比扌奇查函*unsigned char busy_check() "unsigned char lcd status;rs = 0;-rw= 1;en= 1;delayus(looo);lcdtatus = lcd db port; en m);-return lcd status;*向 lcd函5( *void write_lcd_command(unsigned char cmd) while(busy_check ()&0x80)=0x80);rs = 0;_rw = 0;en = 0;lcddbport = cmd;en ="1; delayus(looo);en = 0;/*向lcd發(fā)送數(shù)據(jù)函數(shù)void write_lcd_data(unsigned char dat) ""while(busy_check ()&0x80)=0x80);rs= 1;rw = 0;en = 0;lcddbport = dat;

溫馨提示

  • 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

提交評論