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

正文內(nèi)容

基于51單片機與若干傳感器的智能開關(guān)窗系統(tǒng)_課程設計報告-預覽頁

2025-07-03 21:46 上一頁面

下一頁面
 

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