課程設(shè)計說明書_智能壓力測量儀_第1頁
課程設(shè)計說明書_智能壓力測量儀_第2頁
課程設(shè)計說明書_智能壓力測量儀_第3頁
課程設(shè)計說明書_智能壓力測量儀_第4頁
課程設(shè)計說明書_智能壓力測量儀_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州華信學(xué)院課程設(shè)計說明書題目: 智能壓力測量儀 姓 名: 楊巍 院 (系): 機電工程學(xué)院 專業(yè)班級: 電氣工程三班 學(xué) 號: 1102120310 指導(dǎo)教師: 宋東亞 楊坤漓 成 績: 時間: 2013年 12月 17 日至 2013 年 12 月 28 日 鄭州華信學(xué)院課程設(shè)計任務(wù)書題目 智能壓力測量儀 專業(yè)、班級 電氣工程及其自動化三班 學(xué)號 1102120310 姓名 楊巍 主要內(nèi)容:利用單片機計一個智能壓力測量儀,要求顯示壓力數(shù)據(jù)。基本要求:1.設(shè)計一個智能壓力測量儀,要求顯示當前壓力數(shù)值。2.利用proteus軟件完成設(shè)計電路和仿真;3.掌握并口驅(qū)動數(shù)碼管動態(tài)顯示的方法;4.通過

2、此次設(shè)計將單片機軟硬件結(jié)合起來對程序進行編輯、校驗,鍛煉實踐能力和理論聯(lián)系實際的能力。主要參考資料:1李全利,單片機原理及接口技術(shù)M,高等教育出版社2王文杰,單片機應(yīng)用技術(shù)M,冶金工業(yè)出版社3朱清慧,PROTEUS教程電子線路設(shè)計、制版與仿真M,清華大學(xué)出版社4單片機實驗指導(dǎo)書,天煌教儀5彭偉,單片機C語言程序設(shè)計實訓(xùn)100例M,電子工業(yè)出版社完 成 期 限: 指導(dǎo)教師簽名: 課程負責人簽名: 年 月 日目錄摘 要- 2 -1 引 言- 2 -1.1 問題的提出- 2 -1.2任務(wù)與分析- 3 -2方案設(shè)計- 3 -2.1 系統(tǒng)方案設(shè)計論證- 3 -2.1.1系統(tǒng)的控制方案設(shè)計- 3 -2.2

3、最終設(shè)計方案總體設(shè)計框圖- 3 -3 系統(tǒng)硬件設(shè)計- 4 -3.1 AT89C51單片機- 4 -3.1.1 AT89C51單片機介紹- 4 -3.1.2 選用AT89C51單片機原因- 6 -3.2 時鐘電路- 6 -3.3 復(fù)位電路- 6 -3.4 PG160128A顯示電路- 7 -3.5 A/D轉(zhuǎn)換電路- 8 -4 系統(tǒng)軟件設(shè)計- 9 -4.1主程序框圖- 9 -4.2顯示子程序框- 10 -5 系統(tǒng)調(diào)試過程- 10 -5.2 Keil程序調(diào)試- 12 -5.3 Proteus仿真調(diào)試- 12 -結(jié) 論- 15 -致謝- 16 -參考文獻- 16 -附錄一 程序源代碼- 16 -附錄二

4、 電路原理圖及PCB圖- 32 -附錄三 Proteus仿真截圖- 33 - 摘 要本課程設(shè)計是基于8051單片機為控制核心的壓力檢測系統(tǒng)。在硬件電路部分,此設(shè)計的采用8051單片機,ADC0832轉(zhuǎn)換器,本設(shè)計先測量出壓力的電信號,然后通過單片機對所測出的壓力值,并通過LCD顯示壓力數(shù)值。關(guān)鍵詞:8051單片機、壓力檢測、LCD顯示、1 引 言1.1 問題的提出隨著電子化程度越來越高,通過增加更多的電子裝置,使機器工作在更好的狀態(tài),充分發(fā)揮機器的性能,保證機器的安全性,減少機器故障率,增加機器壽命等,具有重要的意義。1.2任務(wù)與分析本設(shè)計的主要任務(wù)就是利用單片機實現(xiàn)壓力的檢測功能。檢測壓力檢

5、測系統(tǒng)所具有的功能如下:壓力檢測系統(tǒng)是通過聲音和文字信息來體現(xiàn)壓力的狀態(tài)。該系統(tǒng)利用8051單片機作為微控制器,通過壓變式壓力傳感器對壓力進行信號檢測,傳感器輸出信號經(jīng)數(shù)字濾波及A/D轉(zhuǎn)換后輸入ECU,經(jīng)計算后在LED屏幕上顯示壓力。2方案設(shè)計2.1 系統(tǒng)方案設(shè)計論證2.1.1系統(tǒng)的控制方案設(shè)計檢測壓力傳感器MPX4250檢測到壓力信號后,通過ADC0832轉(zhuǎn)換后送入AT89C51單片機,單片機對數(shù)據(jù)進行處理,顯示等。2.2最終設(shè)計方案總體設(shè)計框圖A/D傳感器壓力傳感器LCD顯示壓力80C51單片機圖2.1 系統(tǒng)總體設(shè)計框圖本方案是由壓力傳感器、A/D模數(shù)轉(zhuǎn)換器、AT89C51單片機、LED顯

6、示電路。壓力傳感器采集壓力信號,將其轉(zhuǎn)換為相對應(yīng)的電壓信號,將電壓信號輸送到A/D模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,并送入到AT89C51單片機中,經(jīng)過單片機的數(shù)字濾波處理后,在通過PG160128的驅(qū)動程序,將其顯示在LCD顯示器上。3 系統(tǒng)硬件設(shè)計3.1 AT89C51單片機3.1.1 AT89C51單片機介紹(1)8051單片機在此單片機上集成了微處理器(CPU),內(nèi)部數(shù)據(jù)存儲器(RAM),以及輸入輸出端口。8051單片機采用40只引腳的雙列直插封裝方式,各引腳的功能如下:時鐘引腳X1及 X2:用于接晶體振蕩器,此次設(shè)計用的晶振頻率為6MHZ。RESET腳:是復(fù)位信號輸入端,高電平有效。ALE腳

7、:地址鎖存允許信號,用于鎖存單片機輸出的地址信號,高電平有效PSEN腳:程序存儲器輸出控制端,在單片機訪問外部程序存儲器時,此引腳輸出的負脈沖作為讀外部程序存儲器的選通信號,接至程序存儲器的OE端。低電平有效。EA腳:其功能為內(nèi)外程序存儲器選擇控制端。當EA為高電平時,單片機訪問內(nèi)部程序存儲器,當EA為低電平時,單片機直接訪問片外程序存儲器。本設(shè)計用的是8031,由于8031內(nèi)部無程序存儲器,所以此引腳應(yīng)接地。低電平有效。I/O口引腳:共4個,分別是P0、P1、P2、P3,均為8位口。這4個I/O口可分別作為基本的Input、Output端口。其中P0口可作為數(shù)據(jù)總線和地址總線(低8位)分時復(fù)

8、用的端口,P2口可作為地址總線的高8位,即P0口和P2口地起構(gòu)成16位地址總線,可供尋址的地址范圍是:64KB。P3口具有第二功能,即可以產(chǎn)生中斷,定時計數(shù)等功能。RD、WR引腳:為讀和寫選通信號,RD用于將單片機的數(shù)據(jù)寫入外設(shè)中,WR用于從外設(shè)中讀取數(shù)據(jù)。低電平有效AT89C51系列單片機都是以8031為核心發(fā)展起來的,具有和51系列單片機及基本結(jié)構(gòu)和軟件特征,其內(nèi)部結(jié)構(gòu)如圖3-2所示:振蕩器及定時電路AT89C51CPU4K字節(jié)ROM128字節(jié)RAM2個16位定時器/計數(shù)器64K總線擴展控制可編程I/O可編程串行口 圖3-2 AT89C51單片機框圖3.1.2 選用AT89C51單片機原因

9、在課程設(shè)計里所需外圍電路簡單,在設(shè)計里面使用的引腳較少,占用的資源也比較少。而且該芯片是以AT89C51為核心,性能價格比高,應(yīng)用成熟,且對其內(nèi)部結(jié)構(gòu)較為熟悉,芯片功能夠用而且適用,從而選用AT89C51單片機作為主控芯片。3.2 時鐘電路本設(shè)計采用內(nèi)部時鐘方式的電路。 AT89C51單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成了一個穩(wěn)定的自激振蕩器。電路中的電容C1和C2典型值通常選擇為33pF左右。晶體的振蕩頻率的范圍通常是在1.2MHZ12MHZ之間。晶體的頻率越高

10、,則系統(tǒng)的時鐘頻率也就越高,單片機的運行速度也就越快。.圖3-3 時鐘電路3.3 復(fù)位電路 復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。本次設(shè)計采用上電復(fù)位電路。上電復(fù)位電路是在上電瞬間來實現(xiàn)的,其電路如圖3-4所示。上電時, RESET端維持兩個機器周期的高電平實現(xiàn)復(fù)位。圖3-4 復(fù)位電路3.4 PG160128A顯示電路PG160128A是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器/列驅(qū)動器及格160128全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示108個(1616點陣)漢字。主要技術(shù)參數(shù)和性能:模塊內(nèi)自帶-15負壓,用于LCD的驅(qū)動電壓1. 電源VDD:+5V; 2.顯示內(nèi)容:1

11、60(列)128(行)點 3.全屏幕點陣 4.十三種指令 5.與CPU接口采用8位數(shù)據(jù)總線并行輸入輸出 6.占空比1/1287.工作溫度:-10+55,存儲溫度:-20+70這里通過PG160128A來顯示相關(guān)信息 圖3-5 顯示電路ADC0832 是美國國家半導(dǎo)體公司生產(chǎn)的一種8 位分辨率、雙通道A/D轉(zhuǎn)換芯片。學(xué)習(xí)并使用ADC0832 可是使我們了解A/D轉(zhuǎn)換器的原理,有助于我們單片機技術(shù)水平的提高。這里通過ADC0832將壓力傳感器輸出的電壓信號轉(zhuǎn)換為數(shù)字信號,并送入到單片機中進行處理。3.5 A/D轉(zhuǎn)換電路4 系統(tǒng)軟件設(shè)計4.1主程序框圖 開始開始(1)主程序流程框圖如下: (2)信號

12、采集子程序框圖如下: 置數(shù)據(jù)區(qū)首地址信號采集 設(shè)置采集個數(shù)求出壓力值 A/D轉(zhuǎn)換開始LCD顯示數(shù)值 等待轉(zhuǎn)換 結(jié)束儲存,轉(zhuǎn)換中斷開始設(shè)置數(shù)據(jù)存儲區(qū)首址設(shè)置采集數(shù)據(jù)個數(shù)對數(shù)據(jù)進行處理恢復(fù)現(xiàn)場返回圖4-3 數(shù)字濾波流程框圖波流程框圖(3) 數(shù)字濾波流 4.2顯示子程序框 開始初始化調(diào)用顯示函數(shù)返回圖4-4 顯示子程序流程圖5 系統(tǒng)調(diào)試過程通過上面的設(shè)計,設(shè)計已經(jīng)基本完成。下面主要實現(xiàn)Altium Designer的原理圖、印制板圖的繪制和做相關(guān)檢測,對Keil進行相應(yīng)的檢查和調(diào)試,并用Proteus對所設(shè)計系統(tǒng)進行仿真。5.1原理圖和印制板圖繪制和檢查5.1.1 在protel99se繪制原理圖并

13、進行相應(yīng)的ERC檢查圖5-1 原理圖的繪制繪制完原理圖之后,對原理圖進行編譯檢測,ERC檢測結(jié)果。5.1.2 在PROTEL99SE生成PCB圖在創(chuàng)建完原理圖后,對各元器件的引腳進行封裝,在原理圖中創(chuàng)建網(wǎng)絡(luò)表(NET),然后再PROTEL99S中新建PCB ,對于生成的PCB圖中各器件進行調(diào)整,并布線,最終生成PCB圖。結(jié)果如圖5-2所示圖5-2 生成PCB圖5.2 Keil程序調(diào)試程序調(diào)試結(jié)果如下所示:creating hex file from 壓力檢測系統(tǒng).壓力檢測系統(tǒng) - 0 Error(s), 0 Warning(s).5.3 Proteus仿真調(diào)試在Proteus中建立仿真圖。按下

14、開始仿真按鈕,開始進行仿真實驗,結(jié)果如圖5-4,圖5-5,圖5-6所示: 圖5-4 Proteus仿真圖 圖5-5 Proteus仿真圖圖5-6 Proteus仿真圖仿真電路圖中實現(xiàn)對壓力檢測的控制,輸出到PG160128A顯示。 結(jié) 論 通過MPX4250檢測到壓力信號,轉(zhuǎn)換為電壓值,然后通過ADC0832轉(zhuǎn)換后產(chǎn)生一個數(shù)字信號輸入到AT89C51單片機中進行處理,再通過單片機驅(qū)動PG160128A顯示壓力的相關(guān)信息。由于顯示程序的復(fù)雜性,所以選用了C語言作為開放程序加快了開發(fā)進度。本次設(shè)計由于時間較為倉促,難免考慮不周全,還有許多功能需要完善,這需要下來再去深究。在本次課程設(shè)計里面,我把電

15、路和單片機必備的一些基本操作技能再次熟悉了一遍。 對于壓力檢測,我只進行了最簡單的程序編寫和仿真,而往往在實際中是作為一個系統(tǒng)中的很小子環(huán)節(jié)來進行應(yīng)用的,所以還需要我進一步學(xué)習(xí)更多的單片機及相關(guān)測試傳感器知識。致謝本課題在選題及進行過程中得到宋老師的悉心指導(dǎo)。論文行文過程中,宋老師多次幫助我分析思路,開拓視角,在我遇到困難想放棄的時候給予我最大的支持和鼓勵。宋老師嚴謹求實的治學(xué)態(tài)度,踏實堅韌的工作精神,將使我終生受益。再多華麗的言語也顯得蒼白。在此,謹向宋老師致以誠摯的謝意和崇高的敬意。參考文獻1譚浩強.C程序設(shè)計(第三版)M.北京.清華大學(xué)出版社.2005(2007重印)2 張毅剛,彭喜元等

16、. MCS-51單片機應(yīng)用設(shè)計(第3版)M.哈爾濱.哈爾濱工業(yè)大學(xué)出版社.2001.3徐琤穎.Protel99SE EDA技術(shù)及應(yīng)用.M.北京.機械工業(yè)出版社.2009.1重印4古輝,劉均等.微型計算機接口及控制技術(shù).M.北京.機械工業(yè)出版社.2009.1附錄一 程序源代碼/名稱:160128液晶顯示當前壓力#include#include#include#include#include#include#include#define HZ_CHR_HEIGHT 12#define HZ_CHR_WIDTH 12#include#include#define uchar unsigned cha

17、r#define uint unsigned intextern char fnLCMInit();/LCD初始化extern void fnSetPos(unsigned char urow,unsigned char ucol);/設(shè)置當前地址extern uchar dprintf(uchar x,uchar y,char *fmt);/ASCII(8*16)及漢字(16*16)顯示函數(shù)sbit CS=P34;sbit CLK=P32;sbit DI0=P33;uint theLastTime;/一次鳴響持續(xù)次數(shù)unsigned char dsp4;/作為壓力存儲傳入函數(shù)顯示uchar

18、Get_AD_Result() uchar i,dat1=0,dat2=0;CS = 0;CLK=0;/起始控制位 DI0 = 1; _nop_(); _nop_();CS = 0; _nop_(); _nop_();CLK = 1; _nop_(); _nop_();/第一個下降沿之前,設(shè)DI = 1 / 0 /選擇單端/差分(SGL/DIF)模式中的單端輸入模式CLK = 0;DI0 = 1; _nop_(); _nop_();CLK = 1; _nop_(); _nop_();/第二個下降沿之前,設(shè)DI = 0 / 1,選擇CH0/CH1 CLK = 0;DI0 = 0; _nop_()

19、; _nop_();CLK = 1;DI0 = 1; _nop_(); _nop_(); /第三個下降沿之前,設(shè)DI = 1 CLK = 0;DI0 = 1; _nop_(); _nop_(); /第4-11個下降沿讀數(shù)據(jù)(MSB-LSB)for(i=0;i8;i+) CLK = 1; _nop_(); _nop_();CLK = 0; _nop_(); _nop_(); dat1 = dat1 1 | DI0; for(i=0;i8;i+) dat2 = dat2 | (uchar)(DI0)i); CLK = 1; _nop_(); _nop_(); CLK = 0; _nop_(); _

20、nop_(); CS = 1; return (dat1 = dat2) ? dat1:0; unsigned char dsp4; /作為壓力存儲傳入函數(shù)顯示 void delay() /蜂鳴器鳴響間隔延時 uint i, j = 200; while(j-) for (i = 0; i = 500; i+); void main()uchar AD_Result;/獲取的AD值float ad=0;/當前壓力值float Y1,Y2,dY;/限幅濾波dY=2;/定時器初始化fnLCMInit();fnSetPos(0,0); dprintf(30,12,液晶屏顯示當前壓力);dprintf

21、(110,58,千帕);AD_Result=Get_AD_Result();Y1=(AD_Result*5.0/255.0/5.1-0.04)/0.00369-3.45;while(1)AD_Result=Get_AD_Result();Y1=(AD_Result*5.0/255.0/5.1-0.04)/0.00369-3.45;if(abs(Y2-Y1)=dY)/變化不能太快,否則會失效ad=Y2;Y1=Y2;elsead=Y1;sprintf(dsp,%-3.0f,ad);dprintf(82,58,dsp);/LCD顯示控制程序#define ASC_CHR_WIDTH 8#define

22、 ASC_CHR_HEIGHT 12/數(shù)字字符點陣庫,粗體初號,32*64點陣,32/8=4,每個數(shù)字需要4*64字節(jié),共10個數(shù)字char code MSK1=0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;char code MSK2=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;code uchar const uPowArr=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code ASC_MSK58*10=0x00,0x00,0x00,0x00,0x00,

23、0x00,0x00,0xff,0xff,0xff,0xff,0xff, / 0;i-)if(LCMCW&0x03)=0x03)break;return i;/若返回0,說明錯誤uchar fnST3(void)/狀態(tài)位ST3判斷(數(shù)據(jù)自動寫狀態(tài))uchar i;for(i=10;i0;i-)if(LCMCW&0x08)=0x08)break;return i;/若返回0,說明錯誤uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2)/寫雙參數(shù)的指令if(fnST01()=0)return 1;LCMDW=uPar1;if(fnST01()=0)retur

24、n 2;LCMDW=uPar2;if(fnST01()=0)return 3;LCMCW=uCmd;return 0;/返回0成功uchar fnPR11(uchar uCmd,uchar uParl)/寫單參數(shù)的指令if(fnST01()=0)return 1;LCMDW=uParl;if(fnST01()=0)return 2;LCMCW=uCmd;return 0;/返回0成功uchar fnPR12(uchar uCmd)/寫無參數(shù)的指令if(fnST01()=0)return 1;LCMCW=uCmd;return 0;/返回0成功uchar fnPR13(uchar uData)/

25、寫數(shù)據(jù)if(fnST3()=0)return 1;LCMDW=uData;return 0;/返回0成功uchar fnPR2(void)/讀數(shù)據(jù)if(fnST01()=0)return 1;return LCMDW;void fnSetPos(uchar urow,uchar ucol)/設(shè)置當前地址uint iPos;iPos=urow*20+ucol;fnPR1(LC_ADD_POS,iPos & 0xFF,iPos/256);gCurRow=urow;gCurCol=ucol;char fnLCMInit(void)/LCM初始化reset=0;reset=1;fnPR1(LC_TXT_STP,0x00,0x00);/文本顯示區(qū)首地址fnPR1(LC_TXT_WID,0x14,0x00);/文本顯示區(qū)寬度fnPR1(LC_GRH_STP,0x00,0x00);/圖形顯示區(qū)首地址fnPR1(LC_GRH_WID,0x14,0x00);/文本顯示區(qū)寬度fnPR11(LC_CGR_POS,CGRAMSTART11);fnPR12(LC_CUR_SHP|0x01);/光標形狀fnPR12(LC_MOD_OR);/顯示方式設(shè)置fnPR12(LC_DIS_SW|0x08);grhome=GRSTART;txthome=TXTSTART;return 0;uchar dp

溫馨提示

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

評論

0/150

提交評論