《基于MCS-51單片機(jī)的壓力傳感器實(shí)驗(yàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于MCS-51單片機(jī)的壓力傳感器實(shí)驗(yàn)(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、燕山大學(xué)課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)題目: 壓力傳感器實(shí)驗(yàn) 學(xué)院(系): 里仁學(xué)院 年級(jí)專業(yè): 儀表10-2 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 教師職稱: 燕山大學(xué)課程設(shè)計(jì)(論文)任務(wù)書(shū)院(系):電氣工程學(xué)院 基層教學(xué)單位:儀器科學(xué)與工程系學(xué) 號(hào)學(xué)生姓名專業(yè)(班級(jí))設(shè)計(jì)題目壓力傳感器實(shí)驗(yàn)設(shè)計(jì)技術(shù)參數(shù)研究壓力傳感器電路的工作原理和弱信號(hào)傳感器電路。熟悉A/D變換電路的工作原理。利用試驗(yàn)板上提供的壓力傳感器電路,完成壓力的采樣和顯示。設(shè)計(jì)要求設(shè)計(jì)測(cè)量和顯示的硬件電路;編制相應(yīng)的程序。工作量設(shè)計(jì)的內(nèi)容滿足課程設(shè)計(jì)的教學(xué)目的與要求,設(shè)計(jì)題目的難度和工作量適合學(xué)生的知識(shí)和能力狀況,工作量飽滿。工作計(jì)劃查閱
2、資料進(jìn)行設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)硬件電路、編制程序,編制程序、驗(yàn)證設(shè)計(jì)、撰寫(xiě)任務(wù)書(shū)。參考資料單片微型計(jì)算機(jī)接口技術(shù)及其應(yīng)用 張淑清 國(guó)防工業(yè)出版社單片機(jī)原理及應(yīng)用技術(shù) 張淑清單片機(jī)應(yīng)用技術(shù)匯編指導(dǎo)教師簽字基層教學(xué)單位主任簽字說(shuō)明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。 年 月 日摘要 此次設(shè)計(jì)是基于8051單片機(jī)的壓力檢測(cè)系統(tǒng),簡(jiǎn)要介紹了壓力傳感器電路的工作原理和弱信號(hào)傳感器電路以及A/D變換電路的工作原理,通過(guò)壓力傳感器將需要測(cè)量的位置的壓力信號(hào)轉(zhuǎn)化為電信號(hào),再經(jīng)過(guò)運(yùn)算放大器進(jìn)行信號(hào)放大,送至8位AD轉(zhuǎn)換器ADC0808,然后將模擬信號(hào)轉(zhuǎn)換成單片機(jī)可以識(shí)別的數(shù)字信號(hào),再經(jīng)單片機(jī)轉(zhuǎn)換成
3、LED顯示器可以識(shí)別的信息,最后顯示輸出。 關(guān)鍵詞: 8051單片機(jī) 壓力傳感器A/D變換電路LED顯示器目錄摘要- -2關(guān)鍵字- -2第一章 總體設(shè)計(jì)方案及模塊劃分-41.1總體設(shè)計(jì)方案-41.2模塊劃分-41.3設(shè)計(jì)框圖如下圖所示-5第二章各模塊設(shè)計(jì)參數(shù)-52.1傳感器元件模塊-52.2 A/D轉(zhuǎn)換模塊-82.3控制器處理模塊-14第三章 壓力傳感器實(shí)驗(yàn)數(shù)據(jù)采集、顯示及程序-20 3.1數(shù)據(jù)采集及顯示-203.2程序設(shè)計(jì)-20第四章 心得體會(huì)-29參考文獻(xiàn)資料-30第一章總體設(shè)計(jì)方案及模塊劃分1.1 總體設(shè)計(jì)方案本次設(shè)計(jì)是基于8051單片機(jī)的測(cè)量與顯示。電路采用ADC0809模數(shù)轉(zhuǎn)換電路,
4、ADC0809是CMOS工藝,采用逐次逼近法的8位A/D轉(zhuǎn)換芯片,片內(nèi)有帶鎖存功能的8路模擬電子開(kāi)關(guān),先用ADC0809的轉(zhuǎn)換器對(duì)各路電壓值進(jìn)行采樣,然后將模擬信號(hào)轉(zhuǎn)換成單片機(jī)可以識(shí)別的數(shù)字信號(hào),再經(jīng)單片機(jī)轉(zhuǎn)換成LED顯示器可以識(shí)別的信息,最后顯示輸出。本次設(shè)計(jì)是以單片機(jī)組成的壓力測(cè)量,系統(tǒng)中必須有前向通道作為電信號(hào)的輸入通道,用來(lái)采集輸入信息。壓力的測(cè)量,需要傳感器,利用傳感器將壓力轉(zhuǎn)換成電信號(hào)后,再經(jīng)放大并經(jīng)A/D轉(zhuǎn)換為數(shù)字量后才能由計(jì)算機(jī)進(jìn)行有效處理。然后用LED進(jìn)行顯示。本設(shè)計(jì)的最終結(jié)果是,將軟件下載到硬件上調(diào)試出來(lái)了需要顯示的數(shù)據(jù),當(dāng)輸入的模擬信號(hào)發(fā)生變化的時(shí)候,通過(guò)A/D轉(zhuǎn)換后,L
5、ED將顯示不同的數(shù)值。1.2 模塊劃分(1) 傳感器元件模塊 傳感器元件主要是對(duì)壓力這樣的物理量轉(zhuǎn)變成電信號(hào)。(2) A/D轉(zhuǎn)換電路模塊 A/D轉(zhuǎn)換電路是將模擬量轉(zhuǎn)換為數(shù)字量,便于單片機(jī)的處理。(3) 控制器處理模塊 控制器是通過(guò)51系列單片機(jī)對(duì)數(shù)字信號(hào),按照預(yù)定目的進(jìn)行處理。(4) 顯示與報(bào)告模塊 顯示與報(bào)告是對(duì)于最終輸出結(jié)果進(jìn)行直觀的表達(dá)。1.3設(shè)計(jì)框圖如下圖所示:圖1.3.1 設(shè)計(jì)框圖第二章 各模塊設(shè)計(jì)參數(shù)2.1傳感器元件模塊壓力傳感器是壓力檢測(cè)系統(tǒng)中的重要組成部分,由各種壓力敏感元件將被測(cè)壓力信號(hào)轉(zhuǎn)換成容易測(cè)量的電信號(hào)作輸出,給顯示儀表顯示壓力值,或供控制和報(bào)警使用。力學(xué)傳感器的種類繁
6、多,如電阻應(yīng)變片壓力傳感器、半導(dǎo)體應(yīng)變片壓力傳感器、壓阻式壓力傳感器、電感式壓力傳感器、電容式壓力傳感器諧振式壓力傳感器及電容式加速度傳感器等。 而電阻應(yīng)變式傳感器具有悠久的歷史。由于它具有結(jié)構(gòu)簡(jiǎn)單、體積小、使用方便、性能穩(wěn)定、可靠、靈敏度高動(dòng)態(tài)響應(yīng)快、適合靜態(tài)及動(dòng)態(tài)測(cè)量、測(cè)量精度高等諸多優(yōu)點(diǎn),因此是目前應(yīng)用最廣泛的傳感器之一,本實(shí)驗(yàn)采用電阻應(yīng)變式傳感器作為壓力傳感器。壓力傳感器構(gòu)成:電阻應(yīng)變式傳感器由彈性元件和電阻應(yīng)變片構(gòu)成,當(dāng)彈性元件感受到物理量時(shí),其表面產(chǎn)生應(yīng)變,粘貼在彈性元件表面的電阻應(yīng)變片的電阻值將隨著彈性元件的應(yīng)變而相應(yīng)變化。通過(guò)測(cè)量電阻應(yīng)變片的電阻值變化,可以用來(lái)測(cè)量位移加速度、
7、力、力矩、壓力等各種參數(shù)。壓力傳感器的工作原理:本質(zhì)上是惠斯通電橋,這里采用的是最常見(jiàn)的電阻應(yīng)變片式的壓力傳感器。它得到廣泛應(yīng)用的原因是溫度特性好,減小溫度變化帶來(lái)的誤差。膜片上的壓力使得電橋不平衡,從而產(chǎn)生一個(gè)差動(dòng)的輸出信號(hào),這種結(jié)構(gòu)的基本特性之一是它的差動(dòng)輸出電壓U與偏置電壓U成正比關(guān)系,這種關(guān)系隱含壓力測(cè)量精度直接決定偏置電源的容限值,當(dāng)四個(gè)橋臂電阻達(dá)到相應(yīng)的關(guān)系時(shí),電橋輸出為零,或則就有電壓輸出同時(shí),它也能提供一種溫度補(bǔ)償最通用的方法。本實(shí)驗(yàn)研究壓力傳感器電路如圖2.1.1所示,為壓力傳感器的電路,其由三部分組成(1)電源電路部分;(2)電橋電路部分;(3)放大電路部分。 圖2.1.1
8、壓力傳感器電路 如圖示,傳感器采用恒壓源供電,為+15V,經(jīng)過(guò)與分壓(電容起濾波作用),點(diǎn)5、6、7三點(diǎn)處有相同電壓: (2.1.1) 根據(jù)上式,帶入數(shù)據(jù) , ,求得。 經(jīng)過(guò)電路電橋部分,簡(jiǎn)化如下圖2.1.2 UO圖2.1.2壓力傳感器電橋電路設(shè)橋臂電阻分別為, ,則當(dāng)壓力傳感器受力時(shí),電阻變化對(duì)應(yīng)的輸出電壓值為,由于 100us;*;工程量代換:B存高八位,A存低八位;程序中除以256相當(dāng)于右移八位,即高八位變?yōu)檎麛?shù)位,低八位變?yōu)樾?shù)位;最后結(jié)果為: B存整數(shù)部分,A存小數(shù)部分;*DAIHUAN:MOV B,#200MOV A,ADResultMUL AB MOV 51H,A;小數(shù)部分MOV
9、 50H,B;整數(shù)部分RET;-;INT1查詢服務(wù)子程式;-INT: MOV DPTR,#8000HMOVX A, DPTR ; 讀入結(jié)果CALL CLSMOV A,#10000000B ;將二進(jìn)制10000000的值放入累加器內(nèi),代表設(shè)定DDRAM的地址為00H, ;即將光標(biāo)移到第一行第一個(gè)列的位置上。 CALL Write_instruction ;調(diào)用寫(xiě)指令碼子程式。 MOV DPTR,#LINE1 ;將第一行字串在程式記憶體中的起始地址存入DPTR CALL STRING ;調(diào)用STRING子程式,將字串顯示到LCMMOV A,#11000010B ;將二進(jìn)制11000000的值放入累
10、加器內(nèi),代表設(shè)定DDRAM的地址為40H, ;即將光標(biāo)移到第二行第三個(gè)列的位置上 CALL Write_instruction ;調(diào)用寫(xiě)指令碼子程式。 MOV A,#50H MOV ADResult, A CALL DAIHUAN MOV DPTR,#LINE2 ;將第二行字串在程式記憶體中的起始地址存DPTR。 CALL DATE ;調(diào)用DATE子程式,將數(shù)據(jù)顯示到LCM RETI;-;TO中斷服務(wù)子程式;-INSERS: MOV TH0,#0 MOV TL0,#0 DJNZ R5,NO MOV R5,#50 NO: RETI ;-;Initial子程序設(shè)定LCM使用8BITS匯流排,顯示兩
11、行,;使用5*7字型,顯示器要顯示光標(biāo)要顯示但不閃爍;-Initial: MOV A,#00111000B ; CALL Write_instruction ;第一次設(shè)置顯示模式 MOV A,#00111000B ; CALL Write_instruction ;第二次設(shè)置顯示模式 MOV A,#00111000B ; CALL Write_instruction ;第三次設(shè)置顯示模式 MOV A,#00111000B ; CALL Write_instruction ;第四次設(shè)置顯示模式 MOV A,#00001110B ; CALL Write_instruction ;設(shè)置光標(biāo) MOV
12、 A,#00000110B ; CALL Write_instruction ;設(shè)置LCD數(shù)據(jù)指針自動(dòng)加一 RET;-;CheckBusy子程序;等待LCM有空可以執(zhí)行下一行命令;-CheckBusy: PUSH ACC ;將累加器ACC的內(nèi)容放到堆棧內(nèi), ;以免破壞原來(lái)的ACC的資料CheckBusyLoop: CLR ENABLE ;設(shè)定E=0,禁能讀模式 SETB R_W ;設(shè)定R/W=1,選擇讀模式 CLR RS ;設(shè)定RS=0,選擇指令寄存器IR SETB ENABLE ;將P3.3腳設(shè)定為1,使能LCM MOV A,DB0_DB7 ;將存在ACC內(nèi)的資料經(jīng)由P1存入ACC中 ;以便
13、查封第7位元及BF是否為0什么 CLR ENABLE ;將P3.3腳設(shè)定為0 MOV A,#00H JB ACC.7,CheckBusyLoop ; 判斷由LCM讀入資料的第7位及BF ;是否為1,若等于1表示LCM忙碌中,CPU ;跳到標(biāo)記CheckBusyLoop繼續(xù)執(zhí)行程序 POP ACC ;將累加器ACC內(nèi)容從堆棧區(qū)取出 CALL DELAY ;調(diào)用延遲子程序,延時(shí)約數(shù)個(gè)mS RET ;返回主程序;-;Write_instruction子程序;將ACC內(nèi)的資料輸入到LCM的IR寄存器;-Write_instruction: CALL CheckBusy ;調(diào)用CheckBusy子程序確
14、定LCM可以執(zhí)行指令 CLR ENABLE ;設(shè)定E=0,禁能LCM CLR R_W ;設(shè)定R/W=0,選擇寫(xiě)模式 CLR RS ;設(shè)定RS=0,選擇指令寄存器IR SETB ENABLE ;將P3.3腳設(shè)定為1,使能LCM MOV DB0_DB7,A ;將存在ACC內(nèi)的指令碼經(jīng)由P1輸出到LCM CLR ENABLE ;將P3.3設(shè)定為0,MCS-51向LCM存取資料后, ;必須將LCM的E腳輸出0,讓LCM禁能(Disable) ;不做介面的資料傳送或設(shè)定 RET ;返回主程序;-;WriteLCDData子程序;將ACC內(nèi)的資料輸入到LCM的DR寄存器;-WriteLCDData: CA
15、LL CheckBusy ;調(diào)用CheckBusy子程序,確定LCM可以執(zhí)行指令 CLR ENABLE ;設(shè)定E=0,禁能LCM CLR R_W ;設(shè)定R/W=0,選擇寫(xiě)模式 SETB RS ;設(shè)定RS=1,選擇U寄資料存器DR SETB ENABLE ;將P3.3腳設(shè)定為1,使能LCM MOV DB0_DB7,A ;將存在ACC內(nèi)的指令碼經(jīng)由P0輸出到LCM CLR ENABLE RET ;返回主程序;-;CLS子程序清除LCM的顯示字幕;-CLS: MOV A,#01H CALL Write_instruction RET;-;DATE子程序;壓力數(shù)據(jù)的掃描顯示;-DATE:PUSH AC
16、C;入棧累加器APUSH PSW;入棧PSW中的CYHIG:MOV R1,#50HMOV A,R1CJNE A,#64H,CJ1;判斷是否等于100,等于100則直接顯示100MOV A,#01HMOVC A,A+DPTRLCALL WriteLCDDataDEC ALCALL WriteLCDDataLCALL WriteLCDDataSJMP XSDCJ1:JC SHI;判斷是否大于100 大于100則繼續(xù)執(zhí)行分位操作MOV B,#64H;否則跳轉(zhuǎn)到十位分位程序DIV AB;除法做分位處理MOVC A,A+DPTRLCALL WriteLCDDataMOV A,BSHI:CLR CCJNE
17、 A,#0AH,CJ2;判斷是否等于10等于10則直接顯示10MOV A,#01HMOVC A,A+DPTRLCALL WriteLCDDataDEC ALCALL WriteLCDDataSJMP XSDCJ2:JC GEE;判斷是否大于10MOV A,B;否則跳轉(zhuǎn)到個(gè)位顯示程序GEE:MOV B,#0AHDIV ABMOVC A,A+DPTRLCALL WriteLCDDataMOV A,BMOVC A,A+DPTRLCALL WriteLCDDataXSD:MOV A,#0AH;小數(shù)點(diǎn)顯示程序MOVC A,A+DPTRLCALL WriteLCDDataLOWER:INC R1;小數(shù)位顯示程序 分位原理同上MOV A,R1MOV B,#64HDIV ABMOVC A,A+DPTRLCALL WriteLCDDataMOV A,BMOV B,#0AHDIV ABMOVC A,A+DPTRLCALL WriteLCDDataMOV A,BMOVC A,A+DPTRLCALL WriteLCDDataPO