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

正文內(nèi)容

課程設(shè)計(jì)-基于89c51單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)-文庫吧

2025-05-18 08:05 本頁面


【正文】 //寄存器選擇位,將 RS 位定義為 引腳 sbit RW=P2^1。 //讀寫選擇位,將 RW 位定義為 引腳 sbit E=P2^2。 //使能信號位,將 E 位定義為 引腳 sbit BF=P0^7。 //忙 碌標(biāo)志位,將 BF 位定義為 引腳 void delay1ms() //延時功能函數(shù) 延時 1ms { unsigned char i,j。 for(i=0。i10。i++)。 for(j=0。j33。j++)。 } void delaynms(unsigned char n) //延時功能函數(shù) 延時 n 毫秒 { unsigned char i。 for(i=0。in。i++)。 delay1ms()。 } bit BusyTest(void) //判斷液晶屏是否忙碌的函數(shù) { bit result。 RS=0。 //根據(jù)規(guī)定, RS 為低電平, RW 為高電平時,可以讀狀態(tài) RW=1。 E=1。 //E=1,才允許讀寫 _nop_()。 //空操作 _nop_()。 _nop_()。 _nop_()。 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 result=BF。 //將忙碌標(biāo)志電平賦給 result E=0。 //將 E 恢復(fù)低電平 return result。 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 10 } void WriteInstruction (unsigned char dictate) //將指令和數(shù)據(jù)寫入液晶塊的操作 { while(BusyTest()==1)。 //如果忙就等待 RS=0。 //根據(jù)規(guī)定, RS 和 R/W 同時為低電平時,可以寫入指令 RW=0。 E=0。 //E 置低電平 (根據(jù)表 86,寫指令時, E 為高脈沖, // 就是讓 E 從 0 到 1 發(fā)生正跳變,所以應(yīng)先置 0 _nop_()。 _nop_()。 //空操作兩個機(jī)器周期,給硬件反應(yīng)時間 P0=dictate。 //將數(shù)據(jù)送入 P0 口,即寫入指令或地址 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 E=1。 //E 置高電平 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 E=0。 //當(dāng) E 由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 } void WriteAddress(unsigned char x) //指定字符顯示的實(shí)際地址 的函數(shù) { WriteInstruction(x|0x80)。 //顯示位置的確定方法規(guī)定為 80H+地址碼 x } void WriteData(unsigned char y) //將數(shù)據(jù) (字符的標(biāo)準(zhǔn) ASCII 碼 )寫入液晶模塊 的函數(shù) { while(BusyTest()==1)。 //液晶塊是否忙碌 RS=1。 //RS 為高電平, RW 為低電平時,可以寫入數(shù)據(jù) RW=0。 E=0。 //讓 E 從 0 到 1 發(fā)生正跳變,所以應(yīng)先置 0 P0=y。 //將數(shù)據(jù)送入 P0 口,即將數(shù)據(jù)寫入液晶模塊 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 11 E=1。 //E 置高電平 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機(jī)器周期,給硬件反應(yīng)時間 E=0。 //當(dāng) E 由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 } void LcdInitiate(void) //LCD 的顯示模式進(jìn)行初始化設(shè)置 { delaynms(15)。 //延時 15ms,首次寫指令時應(yīng)給 LCD 一段較長的反應(yīng)時間 WriteInstruction(0x38)。 //設(shè)置 模式: 162 顯示, 57 點(diǎn)陣, 8 位數(shù)據(jù)接 delaynms(5)。 //延時 5ms,給硬件一點(diǎn)反應(yīng)時間 WriteInstruction(0x38)。 delaynms(5)。 //延時 5ms,給硬件一點(diǎn)反應(yīng)時間 WriteInstruction(0x38)。 //連續(xù)三次,確保初始化成功 delaynms(5)。 //延時 5ms,給硬件一點(diǎn)反應(yīng)時間 WriteInstruction(0x0c)。 //顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍 delaynms(5)。 //延時 5ms,給硬件一點(diǎn)反應(yīng)時間 WriteInstruction(0x06)。 //顯示模式設(shè)置:光標(biāo)右移,字符不移 delaynms(5)。 //延時 5ms,給硬件一點(diǎn)反應(yīng) 時間 WriteInstruction(0x01)。 //清屏幕指令,將以前的顯示內(nèi)容清除 delaynms(5)。 //延時 5ms,給硬件一點(diǎn)反應(yīng)時間 } sbit DQ=P3^3。 unsigned char time。 //設(shè)置全局變量,專門用于嚴(yán)格延時 bit Init_DS18B20(void) //DS18B20 傳感器初始化,讀取應(yīng)答信號 函數(shù) { bit flag。 //儲存 DS18B20 存在的標(biāo)志, flag=0 存在; flag=1 不存在 DQ = 1。 //先將數(shù)據(jù)線拉高 for(time=0。time2。time++) //略微延時約 6 微秒 。 DQ = 0。 //再將數(shù)據(jù)線從高拉低,要求保持 480~960us for(time=0。time200。time++) //略微延時約 600 微秒 。 //以向 DS18B20 發(fā)出一持續(xù) 480~960us 的低電平復(fù)位脈沖 DQ = 1。 //釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) for(time=0。time10。time++)。 //釋放總線后需等待 30us 讓 其 輸出存在脈沖 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 12 flag=DQ。 //讓單片機(jī)檢測是否輸出了存在脈沖( DQ=0 表示存在) for(time=0。time200。time++)。 //延時足夠長時間,等待存在脈沖輸出完畢 return (flag)。 //返回檢測成功標(biāo)志 } unsigned char ReadOneChar(void) //從 DS18B20 讀取一個字節(jié)數(shù)據(jù) 的函數(shù) { unsigned char i=0。 unsigned char dat。 //儲存讀出的一個字節(jié)數(shù)據(jù) for (i=0。i8。i++) { DQ =1。 // 先將數(shù)據(jù)線拉高 _nop_()。 //等待一個機(jī)器周期 DQ = 0。 //單片機(jī)從 DS18B20 讀數(shù)據(jù)時 ,將數(shù)據(jù)線 正跳便開始讀 dat=1。 _nop_()。 //等待一個機(jī)器周期 DQ = 1。 //將數(shù)據(jù)線 拉高 ,為單片機(jī)檢測 DS18B20 的輸出作準(zhǔn)備 for(time=0。time2。time++)。//延時約 6us,使主機(jī)在 15us 內(nèi)采樣 if(DQ==1) dat|=0x80。 //如果讀到的數(shù)據(jù)是 1,則將 1 存入 dat else dat|=0x00。//如果讀到的數(shù)據(jù)是 0,則將 0 存入 dat //將單片機(jī)檢測到的電平信號 DQ 存入 r[i] for(time=0。time8。time++)。//延時 14us,兩個讀時序 間 必須大于恢 復(fù)期 } return(dat)。 //返回讀出的十進(jìn)制數(shù)據(jù) } WriteOneChar(unsigned char dat) //DS18B20 寫入一個字節(jié)數(shù)據(jù) { unsigned char i=0。 for (i=0。 i8。 i++) { DQ =1。 // 先將數(shù)據(jù)線拉高 _nop_()。 //等待一個機(jī)器周期 DQ=0。 //將數(shù)據(jù)線從高拉低時 即啟動寫時
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1