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

正文內(nèi)容

通信工程專業(yè)課程設(shè)計報告模板-資料下載頁

2024-10-23 11:23本頁面

【導(dǎo)讀】1.提出課題的初步設(shè)想和研究目的;完成軟件和硬件系統(tǒng)的調(diào)試,功能指標(biāo)達(dá)到設(shè)計要求;[6]何立民.單片機高級教程[M].北京:北京航空航天大學(xué)出版社,2020.為了在觀測時間的同時,能夠了解其它與人類關(guān)系相關(guān)的信息,比如溫度、星期、提供時鐘、DS18B20溫度傳感芯片提供溫度數(shù)據(jù)、LCD液晶顯示屏顯示。星期、時、分、秒進(jìn)行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,此外,該電子萬年歷還具有時

  

【正文】 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應(yīng)時間 E=1。 //E 置高電平 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應(yīng)時間 E=0。 //當(dāng) E 由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 } /***************************************************** 函數(shù)功能:指定字符顯示的實際地址 入口參數(shù): x ***************************************************/ void WriteAddress(unsigned char x) { WriteInstruction(x|0x80)。 //顯示位置的確定方法規(guī)定為 80H+地址碼 x } /***************************************************** 函數(shù)功能:將數(shù)據(jù) (字符的標(biāo)準(zhǔn) ASCII 碼 )寫入液晶模塊 入口參數(shù): y(為字符常量 ) ***************************************************/ void WriteData(uchar y) 燕京理工學(xué)院課程設(shè)計 第 23 頁 { while(BusyTest()==1)。 RS=1。 //RS 為高電平, RW 為低電平時,可以寫入數(shù)據(jù) RW=0。 E=0。 //E 置低電平 (根 據(jù)表 86,寫指令時, E 為高脈沖, // 就是讓 E 從 0 到 1 發(fā)生正跳變,所以應(yīng)先置 0 P0=y。 //將數(shù)據(jù)送入 P0 口,即將數(shù)據(jù)寫入液晶模塊 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應(yīng)時間 E=1。 //E 置高電平 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應(yīng)時間 E=0。 //當(dāng) E 由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 } /***************************************************** 函數(shù)功能:對 LCD 的顯示模式進(jìn)行初始化設(shè)置 ***************************************************/ void LcdInitiate(void) { delaynms(15)。 //延時 15ms,首次寫指令時應(yīng)給 LCD 一段較長的反應(yīng)時間 WriteInstruction(0x38)。 //顯示模式設(shè)置: 16 2 顯示, 5 7 點陣, 8 位數(shù)據(jù)接口 delaynms(5)。 //延時 5ms ,給硬件一點反應(yīng)時間 WriteInstruction(0x38)。 delaynms(5)。 //延時 5ms ,給硬件一點反應(yīng)時間 WriteInstruction(0x38)。 //連續(xù)三次 ,確保初始化成功 delaynms(5)。 //延時 5ms ,給硬件一點反應(yīng)時間 WriteInstruction(0x0c)。 //顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍 delaynms(5)。 //延時 5ms ,給硬件一點反應(yīng)時間 WriteInstruction(0x06)。 //顯示模式設(shè)置:光標(biāo)右移,字符不移 delaynms(5)。 //延時 5ms ,給硬件一點反應(yīng)時間 WriteInstruction(0x01)。 //清屏幕指令,將以前的顯示內(nèi)容清除 delaynms(5)。 //延時 5ms ,給硬件一點反應(yīng)時間 } void write_(uchar )//向 1602 寫指令 { RS=0。 RW=0。 P0=。 delaynms(10)。 E=1。 delaynms(10)。 E=0。 燕京理工學(xué)院課程設(shè)計 第 24 頁 } /***************************************************** 函數(shù)功能:將 DS18B20 傳感器初始化,讀取應(yīng)答信號 出口參數(shù): flag ***************************************************/ bit Init_DS18B20(void) { 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(釋放總線后需等待 15~60us 讓 DS18B20 輸出存 在脈沖) flag=DQ。 //讓單片機檢測是否輸出了存在脈沖( DQ=0 表示存在) for(time=0。time200。time++) //延時足夠長時間,等待存在脈沖輸出完畢 。 return (flag)。 //返回檢測成功標(biāo)志 } /***************************************************** 函數(shù)功能:從 DS18B20 讀取一個字節(jié)數(shù)據(jù) 出口參數(shù): dat ***************************************************/ uchar ReadOneChar(void) { uchar i=0。 uchar dat。 //儲存讀出的一個字節(jié)數(shù)據(jù) for (i=0。i8。i++) { DQ =1。 // 先將數(shù)據(jù)線拉高 _nop_()。 //等待一個機器周期 DQ = 0。 //單片機從 DS18B20 讀書據(jù)時 ,將數(shù)據(jù)線從高拉低即啟動讀時序 dat=1。 _nop_()。 //等待一個機器周期 DQ = 1。 //將數(shù)據(jù)線 人為 拉高 ,為單片機檢測 DS18B20 的輸出電平作準(zhǔn)備 for(time=0。time2。time++) 。 //延時約 6us,使主機在 15us 內(nèi)采樣 if(DQ==1) dat|=0x80。 //如果讀到的數(shù)據(jù)是 1,則將 1 存入 dat else dat|=0x00。//如果讀到的數(shù)據(jù)是 0,則將 0 存入 dat //將單片機檢測到的電平信 號 DQ 存入 r[i] 燕京理工學(xué)院課程設(shè)計 第 25 頁 for(time=0。time8。time++) 。 //延時 3us,兩個讀時序之間必須有大于 1us 的恢復(fù)期 } return(dat)。 //返回讀出的十進(jìn)制數(shù)據(jù) } /***************************************************** 函數(shù)功能:向 DS18B20 寫入一個字節(jié)數(shù)據(jù) 入口參數(shù): dat ***************************************************/ void WriteOneChar(uchar dat) { uchar i=0。 for (i=0。 i8。 i++) { DQ =1。 // 先將數(shù)據(jù)線拉高 _nop_()。 //等待一個機器周期 DQ=0。 //將數(shù)據(jù)線從高拉低時即啟動寫時序 DQ=datamp。0x01。 //利用與運算取出要寫的某位二進(jìn)制數(shù)據(jù) , //并將其送到數(shù)據(jù)線上等待 DS18B20 采樣 for(time=0。time10。time++) 。//延時約 30us, DS18B20 在拉低后的約 15~60us 期間從數(shù)據(jù)線上采樣 DQ=1。 //釋放數(shù)據(jù)線 for(time=0。time1。time++) 。//延時 3us,兩個寫時序間至少需要 1us 的恢復(fù)期 dat=1。 //將 dat 中的各二進(jìn)制位數(shù)據(jù)右移 1 位 } for(time=0。time4。time++) 。 //稍作延時 ,給硬件一點反應(yīng)時間 } /***************************************************** 函數(shù)功能:顯示沒有檢測到 DS18B20 ***************************************************/ void display_error(void) { uchar i。 WriteAddress(0x00)。 //寫顯示地址, 將在第 1 行第 1 列開始顯示 i = 0。 //從第一個字符開始顯示 while(Error[i] != 39。\039。) //只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫 { WriteData(Error[i])。 //將字符常量寫入 LCD i++。 //指向下一個字符 delaynms(100)。 //延時 100ms 較長時間,以看清關(guān)于顯示的說明 } while(1) //進(jìn)入死循環(huán) ,等待查明原因 。 } 燕京理工學(xué)院課程設(shè)計 第 26 頁 /***************************************************** 函數(shù)功能:顯示溫度的小數(shù)點 ***************************************************/ void display_dot(void) { WriteAddress(0x80+0x40+0x03)。 //寫顯示地址,將在第 2 行第 10 列開始顯示 WriteData(39。.39。)。 //將小數(shù)點的字符常量寫入 LCD delaynms(50)。 //延時 1ms 給硬件一點反應(yīng)時間 } /***************************************************** 函數(shù)功能:顯示溫度的單位 (Cent) ***************************************************/ void display_cent(void) { WriteAddress(0x80+0x40+0x05)。 //寫顯示地址,將在第 2 行第 13 列開始顯示 WriteData(0xdf)。 WriteAddress(0x80+0x40+0x06)。 WriteData(39。C39。)。 } /************************
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1