freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的多功能參數(shù)檢測系統(tǒng)設(shè)計與實現(xiàn)-資料下載頁

2025-08-18 14:51本頁面

【導(dǎo)讀】本文論述了一種基于單片機(jī)的多功能參數(shù)檢測系統(tǒng)的設(shè)計與實現(xiàn)過程。根據(jù)系統(tǒng)測量的模擬量較多的特點,使用ADC0809作為A/D轉(zhuǎn)換芯。使用LCD1602作為顯示器件,能夠?qū)崟r顯示采集的溫度、壓力、流量、液位等物。同時,系統(tǒng)還設(shè)計了參數(shù)設(shè)置與報警提示等功能電路。思路做了介紹,并分別數(shù)據(jù)采集、顯示、按鍵處理等各功能部分設(shè)計過程進(jìn)行了敘述。

  

【正文】 1 1 讀出的數(shù)據(jù)內(nèi)容 指令 1:清屏顯示,指令代碼 0X01,使所有指針和所有的顯示清零,使其光標(biāo)復(fù)位 。 指令 2:光標(biāo)返回,指 令代碼 0X20。顯示回車,即數(shù)據(jù)指針清零,使光標(biāo)返回到0X00。 指令 3:設(shè)定輸入模式。 I/D(光標(biāo)和顯示設(shè)置)。 I/D=1,光標(biāo)右移(光標(biāo)加 1); I/D=0,光標(biāo)左移。當(dāng) S=1,在寫一個字符時,整屏顯示左移( I/D=1)或右移( I/D=0);當(dāng) S=0,當(dāng)寫一個字符時,整屏的顯示都不移動。 26 指令 4:開關(guān)控制的顯示方式。 D是控制整體顯示的開與關(guān), D=1時表示顯示開;D=0時表示關(guān)顯示。 C是控制光標(biāo)的開與關(guān), C=1時表示有光標(biāo); C=0時表示無光標(biāo)。B是控制光標(biāo)是否閃爍, B=1時表示光標(biāo)為閃爍狀態(tài); B=0時表示光 標(biāo)不閃爍。 指令 5:光標(biāo)或畫面滾動。 S/C(滾動對象選擇), S/C=1 時表示畫面滾動; S/C=0時表示光標(biāo)滾動。 R/L(滾動方向選擇), R/L=1時表示向右滾動; R/L=0時表示向左滾動。 指令 6:數(shù)據(jù)和字符的工作模式。 DL=1時表示數(shù)據(jù)總線寬度為 8位,即 D7~D0有效; DL=0 時表示數(shù)據(jù)總線寬度為 4 位,即 D7~D4 有效。 N(設(shè)置顯示字符的行數(shù)),N=0時表示為一行字符; N=1時表示為兩行字符。 F(設(shè)置字符體的點陣數(shù)), F=0時表示為 5*7的字符點陣; F=1時表示為 5*11的字符點數(shù)。一般設(shè)置為 F=0. 指 令 8:設(shè)置字符發(fā)生器 CGRAM及 數(shù)據(jù)存儲器 DDRAM的地址。 指令 9:忙標(biāo)志位和數(shù)據(jù)指針。 BF(忙標(biāo)志位), BF=1 時表示忙,此時 LCD 模塊不能接收命令或數(shù)據(jù); BF=0時表示不忙。所以在 MCU對 LCD進(jìn)行讀寫操作前,必須先確認(rèn)不忙。 指令 11:寫數(shù)據(jù)、讀數(shù)據(jù)。 LCD顯示程序流程圖如圖 。 圖 Lcd顯示程序流程圖 27 按鍵處理程序設(shè)計 按鍵掃描程序為獨立按鍵的掃描程序,主要完成按鍵的判斷,延時去抖動,判斷是否有按鍵按下,然后對對應(yīng)的按鍵的功能做詳細(xì)的介紹,獨立式按鍵掃描程 序的流程圖如圖 。 圖 按鍵程序流程圖 首先使用 if 語句判斷是否按鍵按下,如果按下則為低電平,然后進(jìn)入延時函數(shù), 28 防止抖動,然后再次判斷該按鍵是否按下,如果確實按下則進(jìn)入對應(yīng)的按鍵的功能。按鍵處理部分用到三個按鍵,一個( key1)用來控制四個參數(shù)的單獨顯示和循環(huán)顯示,另兩個( key key3)用來控制報警上下限值的加 1。 報警程序設(shè)計 報警部分的軟件設(shè)計思路為當(dāng)測量值超過報警上限或低于報警下限時產(chǎn)生報警,某個參數(shù)報警則在 LCD的報警界面中該參數(shù)后則顯示 E( error),如為上限 報警則 腳所接 LED亮及蜂鳴器響應(yīng),如為下限報警則 LED亮及蜂鳴器響應(yīng)。 報警程序流程圖如圖 。 圖 報警程序流程圖 29 結(jié) 論 本課題設(shè)計的是基于單片機(jī)的多功能參數(shù)檢測系統(tǒng)。根據(jù)預(yù)期設(shè)計目的與要求,實現(xiàn)了對溫度、壓力、流量、液位的采集、顯示,并能進(jìn)行手動設(shè)置和報警提示,完成了數(shù)據(jù)采集系統(tǒng)等硬件控制電路和軟件的設(shè)計等工作,最終達(dá)到預(yù)期的效果。 通過此項設(shè)計的分析可得到如下結(jié)論: ⑴ 本系統(tǒng)采用體積小、功耗低、功能強(qiáng)的 STC89C52單片機(jī),設(shè)計一個多功能參數(shù)檢測系統(tǒng),最終 實現(xiàn)對溫度、壓力、流量和液位四個參數(shù)的實時顯示與控制 ; ⑵ 利用數(shù)字濾波程序可使檢測到的數(shù)據(jù)的精度提高 ; ⑶ 利用去抖程序可使按鍵程序執(zhí)行的更加準(zhǔn)確 ; ⑷ 對于線性標(biāo)度變換,采用標(biāo)度變換公式時應(yīng)該靈活使用,不應(yīng)死套公式 ; ⑸ 電壓信號在經(jīng)過 LCM324后會有損耗,當(dāng) 5V電壓通過 LCM324時它的輸出電壓最高能達(dá)到 ,所以最終的測量結(jié)果會出現(xiàn)偏差。 30 致 謝 在論文的寫作過程中遇到了很多的困難和障礙,都在同學(xué)和老師的幫助下度過了。尤其要感謝我的論文指導(dǎo)老師 —劉寅生老師。他為人隨和熱情,治學(xué)嚴(yán)謹(jǐn)細(xì)心。劉老師從選題、 定題到硬件設(shè)計以及最后論文的反復(fù)修改,劉老師始終認(rèn)真負(fù)責(zé)地給與我深刻而細(xì)致的指導(dǎo)。 感謝這篇論文所涉及到的各位學(xué)者。本文引用了多位學(xué)者的研究文獻(xiàn),如果沒有各位學(xué)者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。 “不積跬步無以至千里 ”,這次畢業(yè)論文能夠最終順利完成,歸功于老師們四年間的認(rèn)真負(fù)責(zé),使得我能很好的掌握專業(yè)知識。也正是老師們的支持和幫助才使得我的畢業(yè)論文最終順利完成,謝謝你們! 31 參考文獻(xiàn) [1] 馬家辰,張穎. MCS51單片機(jī)原理及接口 技術(shù) [M].哈爾濱:哈工大出版社, 1998:2545 [2] 趙新民,王祁.智能儀器設(shè)計基礎(chǔ) [M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社, 1999: 3748 [3] 張凡,戴勝華.微機(jī)原理與接口技術(shù) [M].北京:清華大學(xué)出版社, 2020: 215 [4] 葛順明.基于標(biāo)簽變換的無線網(wǎng)絡(luò)關(guān)鍵技術(shù)的研究 [D].北京:北京郵電大學(xué), 2020 [5] 高繼傳. PC機(jī)無線互聯(lián)系統(tǒng)的設(shè)計 [D].南京:東南大學(xué), 2020 [6] 沈合利.機(jī)場跑道摩擦系數(shù)車標(biāo)定方法的研究 [D].天津:河北工業(yè)大學(xué), 2020 [7] 張榮.智能 電液執(zhí)行機(jī)構(gòu)控制系統(tǒng)的研究 [D].蘭州:蘭州理工大學(xué), 2020 [8] 張士福.半導(dǎo)體設(shè)備數(shù)據(jù)控制系統(tǒng)的設(shè)計及實現(xiàn) [D].西安:西安電子科技大學(xué), 2020 [9] 任亞軍.基于 USB的氣體傳感器檢測裝置的研究 [D].西安:西安科技大學(xué), 2020 [10] 胡斌.基于 HT50CT鉆機(jī)的鉆進(jìn)參數(shù)檢測系統(tǒng)的研究 [D].北京:中國地質(zhì)大學(xué),2020 32 附錄 A 硬件原理圖 圖 A1 多功能參數(shù)檢測系統(tǒng)電路原理圖 33 附錄 B 程序代碼 主程序 include include char Temp_Buffer[2][16]。 //顯示屏使用數(shù)據(jù)緩存 uchar Dis_Pot = 0。 uchar T0_Com = 0。 uint Compear_Data[12] = { 50,0, 10,0, 4,0, 900,0, /*最大值為 */100,14,6,1000}。 uint Measure_Data[4]。 //Measure_Data Compear_Data bit TIME_FLAGE = 0。 bit AUTO_FLAGE = 1。 //默認(rèn)自動模式 uchar Error_Check=0。 char code Fsmc_DisPlay_Data[10][16] = { { Temper: 100C },{ Up:50 Down:20 }, { Pressure:},{ Up: Down:}, { Flow: },{ Up: Down:}, { Liquid: 1000mm },{ Up:900 Down:100}, {CHECK_ERROR },{T:N P:N F:N L:N }, }。 void Refresh_DisPlay( uchar Dis_n )。 void anjian( void )。 void Adc_Conversion( uchar Adc_n )。 void Check_Error_Arlm( uchar Error_Changle )。 /******************************************** **函數(shù)名稱: void Init_Timer( void ) **函數(shù)功能:定時器處理 **入口參數(shù): **出口參數(shù): ********************************************/ void Init_Timer( void ) { TMOD = 0X01。ET0 = 1。 TH0 = 0X3C。TL0 = 0XB0。 EA = 1。TR0 = 1。 } /******************************************** **函數(shù)名稱: void main( void ) **函數(shù)功能:主函數(shù)處理 34 **入口參數(shù): **出口參數(shù): ********************************************/ void main( void ) { uchar Main_n = 0。 LCD_init( )。 Lcd_Clear( )。Init_Timer( )。Refresh_DisPlay(0)。beep(100)。 while(1) { Adc_Conversion( Dis_Pot )。 Check_Error_Arlm( Dis_Pot )。 if( Error_Check == 0 ) { if( AUTO_FLAGE == 1 ) { if( TIME_FLAGE == 1 ) {Refresh_DisPlay( Dis_Pot++ )。 if( Dis_Pot 3 ) { Dis_Pot = 0。 } TIME_FLAGE = 0。 } } else {Refresh_DisPlay( Dis_Pot )。} } else { for( Main_n=0。 Main_n16。 Main_n++ ) {Temp_Buffer[0][Main_n] = Fsmc_DisPlay_Data[8][Main_n]。 Temp_Buffer[1][Main_n] = Fsmc_DisPlay_Data[9][Main_n]。} for( Main_n=0。 Main_n4。 Main_n++ ) { if( (Error_Checkamp。(1Main_n)) == 0 ) {Temp_Buffer[1][Main_n*4+2] = 39。N39。} else {Temp_Buffer[1][Main_n*4+2] = 39。E39。} } LCD_write_line( 0, Temp_Buffer[0] )。 LCD_write_line( 1, Temp_Buffer[1] )。 } anjian()。 35 } } /********************************************************** **函數(shù)名稱: void Check_Error_Arlm( uchar Error_Changle ) **函數(shù)功能:檢查錯誤 **入口參數(shù):無 **出口參數(shù):無 **********************************************************/ void Check_Error_Arlm( uchar Error_Changle ) { //Measure_Data Compear_Data LED1 = 1。LED2 = 1。 if( Measure_Data[Error_Changle] Compear_Data[Error_Changle*2] ) { //上線報警 Error_Check = Error_Check|(1Error_Changle)。 LED1 = 0。 beep(10)。 } else if( Measure_Data[Error_Changle] Compear_Data[Error_Changle*2+1] ) { //下線報警 Error_Check = Error_Check|(1Error_Changle)。 LED2 = 0。beep(10)。 } else {Error_Check amp。= (~(1Error_Changle))。} } /******************************************** **函數(shù)名稱: void Adc_Conversion( uchar Adc_n ) **函數(shù) 功能: ADC采集 **入口參數(shù): Adc_n 采集通道 **出口參數(shù): ********************************************/ void Adc_Conversion( uchar Adc_n ) { uint Adc_Value。 uchar Bl_Valu
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1