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

正文內(nèi)容

基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)畢業(yè)設(shè)計(jì)-閱讀頁

2025-03-18 10:22本頁面
  

【正文】 unsigned char i=0。 for (i=8。i) { DQ = 0。 DQ = 1。 delay_18B20(4)。 } 溫度測量的結(jié)果以二進(jìn)補(bǔ)碼形式來存放,分辨力 12 位的測量結(jié)果用帶 5 個符號的 16 位二進(jìn)制格式來表示,高低 8 位分別存儲在兩個 RAM 單元中,前面 5 位 S 代表符號位, DS18B20 函數(shù)的作用就是完成這一過程的 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 21 頁 N 圖 43DS18B20 寫字節(jié)流程圖 DS18B20 寫函數(shù) void setds18b20(unsigned char TH,unsigned char TL,unsigned char RS) { Init_DS18B20()。 //跳過讀序號列號的操作 WriteOneChar(0x4E)。 //寫入想設(shè)定的溫度報警上限 WriteOneChar(TL)。 } 8位數(shù)據(jù)送完否? DS18B20寫入結(jié)束 延時 15us DQ置 1設(shè)置為恢復(fù)狀態(tài) 寫入一位數(shù)據(jù) 延時 15us DQ清零,將 DQ總線電平拉低 設(shè)置串行位數(shù)為 8 DS18B20寫開始 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 22 頁 LCD上電時,都必須按照一定的時序?qū)?LCD進(jìn)行初始化操作,主要任務(wù)是設(shè)置 LCD的工作方式,顯示狀態(tài),清屏,輸入方式,光標(biāo)位置等。 LCD_Write(LCD_COMMAND,0x38)。 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR)。 //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE)。 if(y==1) LCD_Write(LCD_COMMAND,0x80|(x0x40))。\039。 str++。 //RS=0 表示選擇指令寄存器 LcdRw=1。//RW=1 表示進(jìn)行讀操作 LcdEn=1。 //在 EN 為下降沿的時候鎖存據(jù) while(DBPortamp。 _nop_()。 _nop_()。 } LcdEn=0。 LcdRs=style。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } //設(shè)置顯示模式 ************************************************************ 讀 /寫標(biāo)志位 R/W=0時,進(jìn)行寫操作 當(dāng) RS=0時,選擇指令寄存器 開始 子程序返回 調(diào)用延時子程序 LCD使能信號 E至高電平后再過兩個時鐘周期至低電平,產(chǎn)生一個下降沿信號,往 LCD寫入指令代碼, LCD執(zhí)行命令 把指令數(shù)據(jù)送至 P0口 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 25 頁 define LCD_SHOW //顯示開 define LCD_HIDE //顯示關(guān) define LCD_CURSOR //顯示光標(biāo) define LCD_NO_CURSOR //無光標(biāo) define LCD_FLASH //光標(biāo)閃動 define LCD_NO_FLASH //光標(biāo)不閃動 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 } 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 26 頁 最常見的矩陣式鍵盤按鍵識別方法是編程掃描,這里采用的是列掃描方法。 //定義 P1 口為鍵盤掃描口 //P0=0x80,P1=0x90,P2=0xA0,P3= bit key_ok=0。 } unsigned char r_left(unsigned char x) { x=1。 return(x)。 key_port=0xf0。 if(temp!=0xf0) key_ok=1。 } /************鍵盤掃描程序 ************************* ****功能 :返回鍵值 ,當(dāng)無鍵按下時 ,返回 0*************/ unsigned char key_scan(void) { unsigned char temp,count=0x01,key_value。 unsigned char i,j,y。 //粗判是否有鍵按下 if(key_ok==1) { key_ok=0。 //延時去抖動 scan_full()。i4。 for(j=0。j++) 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 28 頁 { temp=key_port。0xf0。0xf0。 } key_value=count。 } else { count++。 } } y_scan=0xef。 } } } return(key_value)。主界面由菜單欄、工具欄、預(yù)覽窗口、元件選擇按鈕、元件列表窗口、原理圖繪制窗口和 仿真進(jìn)程控制按鈕組成(如圖 72 所示)。 仿真電路 圖見附錄 3 調(diào)試與運(yùn)行 ( 1)首先啟動 KEIL C51 軟件的集成開發(fā)環(huán)境,從桌面上雙擊 uVision 圖標(biāo)以啟動軟件。通常單片機(jī)應(yīng)用系統(tǒng)軟件包含多個源程序文件, KEIL C51 使用工程這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個 工程中。 ( 3)建立并添加源文件。 然后,我打開已經(jīng)畫好的仿真圖,再將生成的 HEX 文件導(dǎo)入單片機(jī)里,點(diǎn)擊開始按鈕,電路正常工作,并且能夠?qū)崿F(xiàn)預(yù)先設(shè)想的所有功能,而且效果很好,從而驗(yàn)證了我的程序的正確性。 本次設(shè)計(jì) 可以說是軟硬結(jié)合,又以硬件為主。由于單片機(jī)經(jīng)濟(jì)實(shí)用、開發(fā)簡便等特點(diǎn)依然在工業(yè)控制、家電等領(lǐng)域占據(jù)了廣泛的市場。在我完成這次畢業(yè)設(shè)計(jì)的過程中,當(dāng)看到自己將專業(yè)知識用于解決實(shí)際的問題時,那份成就感和喜悅感是難以形容的。光靠自己在書本上所學(xué)過的這點(diǎn)知識是遠(yuǎn)遠(yuǎn)不夠的,真正地認(rèn)識到了工作就是學(xué)習(xí)的道理。通過對本系統(tǒng)的設(shè)計(jì),我學(xué)習(xí)到了硬件開發(fā)和軟件開發(fā)的基本流程并有了一定的駕御此開發(fā)過程的能力。 總之,這次畢業(yè)設(shè)計(jì)對我來說是一次比較全面的、富有創(chuàng)造性和探索性的鍛煉,完成了我選題時的心愿。 //定義 DQ 引腳為 /***********ds18b20 延遲子函數(shù)(晶振 12MHz ) *******/ /************DS18B20 對時間要求很嚴(yán) ,但只能長不能短 *************在 下也行 ,因?yàn)闀r間長些 ********/ void delay_18B20(unsigned int i) { while(i)。 DQ = 0。 //精確延時 大于 480us DQ = 1。 x=DQ。 } /***********ds18b20 讀一個字節(jié) **************/ unsigned char ReadOneChar(void) { unsigned char i=0。 for (i=8。i) 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 33 頁 { DQ = 0。 DQ = 1。 delay_18B20(4)。 } /*************ds18b20 寫一個字節(jié) ****************/ void WriteOneChar(unsigned char dat) { unsigned char i=0。 i0。 DQ = datamp。 delay_18B20(5)。 dat=1。 WriteOneChar(0xCC)。 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 34 頁 WriteOneChar(TH)。 //寫入想設(shè)定的溫度報警下限 WriteOneChar(RS)。 Init_DS18B20()。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 // 溫度轉(zhuǎn)化要一段時間 Init_DS18B20()。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 tt[0]=ReadOneChar()。 //讀取溫度值高位 return(tt)。 //報警信號 //sbit DQ = P3^7。 //存放鍵盤掃描值 bit up_one,down_one。 //上限報警和下限報警設(shè)置標(biāo)志 bit set_temper_flag。 //報警開關(guān) unsigned char user_temper。 //上限溫度 110,下限 20,分辨率 10 位 ,也就是 unsigned char t[2],*pt。\039。 //顯示實(shí)時溫度 ,上電時顯示 + SET+ 00C unsigned char TempBuffer0[17]={0x54,0x48,0x3a,0x2b,0x20,0x30,0x30,0x20, 0x54,0x4c,0x3a,0x2b,0x20,0x30,0x30,0x43,39。}。 /***因顯示分辨率為 ,但小數(shù)運(yùn)算比較麻煩 ,故采用查表的方法 ******* 再將表值分離出十位和個位后送到十分位和百分位 ********************/ /***********用戶設(shè)定溫度轉(zhuǎn)換為 LCD 顯示數(shù)據(jù) ************** *功能 :將用戶設(shè)定溫度 user_temper,分離出符號位 ,百、十、個位 并將它們轉(zhuǎn)化為 ACSII 碼 ,送到液晶顯示緩沖區(qū) ******************************************************/ void user_temper_LCD(unsigned char temper) { if(temper0x7f) //判斷正負(fù) ,如果為負(fù)溫 ,將其轉(zhuǎn)化為其絕對值 { 四川信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 36 頁 TempBuffer1[11]=0x2d。 //將負(fù)數(shù)的補(bǔ)碼轉(zhuǎn)換成絕對值 temper++。 ////0x2B 為 +的 ASCII 碼 TempBuffer1[12]=temper/100+0x30。 //百位數(shù)消隱 TempBuffer1[13]=(temper%100)/10+0x30。 //分離出個位 } /***************溫度上下限轉(zhuǎn)換為 LCD 顯示數(shù)據(jù) ************ *功能 :將上下限報警溫度 ,分離出符號位 ,百、十、個位 并將它們轉(zhuǎn)化為 ACSII 碼 ,送到液晶顯示緩沖區(qū) ******************************************************/ void alarm_LCD( unsigned char TH, unsigned char TL) { if(TH0x7F) //判斷正負(fù) ,如果為負(fù)溫 ,將其轉(zhuǎn)化為其絕對值 { TempBuffer0[3]=0x2d。 //將負(fù)數(shù)的補(bǔ)碼轉(zhuǎn)換成絕對值 TH++。 //0x2B 為 +的 ASCII 碼 if(TL0x7f) { TempBuffer0[11]=0x2d。 } else TempBuffer0[11]=0x2b。 //分離出 TH 的百十個位 if( TempBuffer0[4]==0x30) TempBuffer0[4]=0xfe。 //分離出十位 TempBuffer0[6]=(TH%100)%10+0x30。 //分離出 TL 的百十個位 if( TempBuffer0[12]==0x30) TempBuffer0[12]=0xfe。 //分離出十位 TempBuffer0[14]=(TL%100)%10+0x30。 t[0]=*p
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1