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

正文內(nèi)容

基于51單片機(jī)與若干傳感器的智能開(kāi)關(guān)窗系統(tǒng)_課程設(shè)計(jì)報(bào)告-預(yù)覽頁(yè)

 

【正文】 三、 1602 液晶 接口電路 1602 液晶接口電路原理圖如下: 本電路用于連接 1602 液晶, — 分別接 RS、 RW、 EN, P0口接數(shù)據(jù)指令輸入口, 10K 歐可調(diào)電阻用于調(diào)節(jié)液晶的對(duì)比度 第四章 程序設(shè)計(jì) 本人在這次課設(shè)中負(fù)責(zé)步進(jìn)電機(jī)驅(qū)動(dòng)及控制模塊的電路設(shè)計(jì)與相關(guān)程序的編寫以及 LCD1602 液晶的程序控制,因此本部分將介紹步進(jìn)電機(jī) 的編程控制方法 與 LCD1602 液晶的 編程控制 。當(dāng)對(duì)步進(jìn)電機(jī)施加一系列連續(xù)不斷的控制脈沖時(shí),它可以連續(xù)不斷地轉(zhuǎn)動(dòng)。),雙(雙相繞組通電)四拍( ABBC CDDAAB。 //正轉(zhuǎn)相序編碼表 uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}。num2) { if(v8) { P1 = REV[v]。 } num2=512。num20。 delaynms(15)。 } 電機(jī)轉(zhuǎn)一圈即 360 度需要 64*64=4096 個(gè)脈沖,所以要想電機(jī)轉(zhuǎn) 45度,需要 4096/8=512 個(gè)脈沖,這里用 num2=512 來(lái)控制電機(jī)轉(zhuǎn) 45度。 這次課設(shè)我主要負(fù)責(zé)的是步進(jìn)電機(jī)模塊的電路設(shè)計(jì)及軟件編程,另外我還學(xué)習(xí)了 LCD1602 液晶顯示的編程控制方法。在這之后我開(kāi)始考慮要實(shí)現(xiàn)的電機(jī)功能, 在完成了原理圖與 PCB 圖繪制、電路元件焊接后,我開(kāi)始著手進(jìn)行程序設(shè)計(jì)。另外,在這次課設(shè)過(guò)程中涉及的 LCD1602 控制等內(nèi)容也對(duì)我很有幫助。 //定義字符數(shù)組顯示數(shù)字 uchar code Str[]={state:}。 //溫度單位 uchar code winon[]={ON }。//反轉(zhuǎn)相序編碼表 uchar z1flag=1。 uchar temph=30。 sbit light=P3^6。 //使能信號(hào)位,將 E位定義為 sbit BF=P0^7。i++) for(j=0。 for(i=0。 result=1,忙碌 。 E=1。 _nop_()。 } /***************************************************** 函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊 入口參數(shù): dictate ***************************************************/ void lcd_wcmd (unsigned char dictate) { while(lcd_busy()==1)。 //E 置低電平 (根據(jù)表 86,寫指令時(shí), E 為高脈沖, // 就是讓 E 從 0到 1發(fā)生正跳變,所以應(yīng)先置 0 _nop_()。 _nop_()。 //E 置高電平 _nop_()。 //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=0。 //RS 為高電平, RW為低電平時(shí),可以寫入數(shù)據(jù) RW=0。 _nop_()。 //E 置高電平 _nop_()。 //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=0。 //延時(shí) 5ms ,給硬件一點(diǎn) 反應(yīng)時(shí)間 lcd_wcmd(0x38)。 //延時(shí) 5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 lcd_wcmd(0x0c)。 //延時(shí) 5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 lcd_wcmd(0x01)。 //設(shè)置全局變量,專門用于嚴(yán)格延時(shí) /***************************************************** 函數(shù)功能:將 DS18B20 傳感器初始化,讀取應(yīng)答信號(hào) 出口參數(shù): flag ***************************************************/ bit Init_DS18B20(void) { bit flag。time++) //略微延時(shí)約 6微秒 。time++) //略微延時(shí)約 600微秒 。time++) 。time++) //延時(shí)足夠長(zhǎng)時(shí)間,等待存在脈沖輸出完畢 。 //儲(chǔ)存讀出的一個(gè)字節(jié)數(shù)據(jù) for (i=0。 //等待一個(gè)機(jī)器周期 DQ = 0。 //將數(shù)據(jù)線 人為 拉高 ,為單片機(jī)檢測(cè) DS18B20的輸出電平作準(zhǔn)備 for(time=0。 //如果讀到的數(shù)據(jù)是 1,則將 1存入 dat else dat|=0x00。 //延時(shí) 3us,兩個(gè)讀時(shí)序之間必須有大于 1us的恢復(fù)期 } return(dat)。 i++) { DQ =1。0x01。//延時(shí)約 30us, DS18B20在拉低后的約 15~60us期間從數(shù)據(jù)線上采樣 DQ=1。//延時(shí) 3us,兩個(gè)寫時(shí)序間至少需要 1us 的恢復(fù)期 dat=1。 //稍作延時(shí) ,給硬件一點(diǎn)反應(yīng)時(shí)間 //return(dat)。 //從第一個(gè)字符開(kāi)始顯示 while(Error[i] != 39。 //指向下一個(gè)字符 delaynms(100)。 //寫顯示地址,將在第 1行第 1 列開(kāi)始顯示 i = 0。 //將字符常量寫入 LCD i++。 //寫顯示地址,將在第 2行第 1 列開(kāi)始顯示 i = 0。 //將字符常量寫入 LCD i++。.39。 lcd_pos(0x4c)。) //只要沒(méi)有寫到結(jié)束標(biāo)志,就繼續(xù)寫 { lcd_wdat(Cent[i])。 //j,k,l 分別儲(chǔ)存溫度的百位、十位和個(gè)位 j=x/100。 //寫顯示地址 ,將在第 2行第 7列開(kāi)始顯示 lcd_wdat(digit[j])。 //延時(shí) 1ms 給硬件一點(diǎn)反應(yīng)時(shí)間 } /***************************************************** 函數(shù)功能:顯示溫度的小數(shù)數(shù)部分 入口參數(shù): x ***************************************************/ void display_temp2(unsigned char x) { lcd_pos(0x4a)。 //將 DS18B20初始化 WriteOneChar(0xCC)。time++) 。 //讀取溫度寄存器 ,前兩個(gè)分別是溫度的低位和高位 } /***************************************************** 函數(shù)功能:顯示窗戶信息 ***************************************************/ void display_on(void) { unsigned char i。\039。 //延時(shí) 100ms 較長(zhǎng)時(shí)間,以看清關(guān)于顯示的說(shuō)明 } } /***************************************************** 函數(shù)功能:顯示窗戶信息 ***************************************************/ void display_off(void) { unsigned char i。\039。 //延時(shí) 100ms 較長(zhǎng)時(shí)間,以看清關(guān)于顯示的說(shuō)明 } } /***************************************************** 函數(shù)功能:主函數(shù) ***************************************************/ void main(void) { uchar v=0。 //儲(chǔ)存溫度的整數(shù)部分 unsigned char TD。 //延時(shí) 5ms給硬件一點(diǎn)反應(yīng)時(shí)間 if(Init_DS18B20()==1) display_error()。 //顯示溫度的小數(shù)點(diǎn) display_cent()。 //接著讀的是溫度值高位 TN=TH*16+TL/16。 //顯示溫度的小數(shù)部分 delaynms(10)。amp。amp。num20。 delaynms(15)。 } if(z2flag==0) { for(。 } if(v==8) v=0。 z2flag=1
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1