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

正文內(nèi)容

基于51單片機(jī)溫濕度檢測(cè)電子萬(wàn)年歷的畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-04-08 06:56 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 )如為 0 表示要進(jìn)行寫操作,為 1 表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出 RAM RD 1 A4 A3 A2 A1 A0 / CK /WR 圖 327 DS1302 的控制字格式 (3) 數(shù)據(jù)輸入輸出( I/O) 在控制指令字輸入后的下一個(gè) SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位 0 開始。同樣,在緊跟 8 位的控制指令字后的下一個(gè) SCLK 脈沖的下降沿讀出 DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0 位到高位 7。如下圖 328 所示 圖 328 DS1302 讀 /寫 時(shí)序圖 (4) DS1302 的寄存器 DS1302 有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式 ,其日歷、時(shí)間寄存器及其控制字見圖 329。 12 圖 329 DS1302 的日歷、時(shí)間寄存器 此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與 RAM 相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302 與 RAM 相關(guān)的寄存器分為兩類:一類是單個(gè) RAM 單元,共 31 個(gè),每個(gè)單元組態(tài)為一個(gè) 8 位的字節(jié),其命令控制字為 C0H~ FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31 個(gè)字節(jié),命令控制字為 FEH(寫 )、 FFH(讀 )。 圖 23 示出 DS1302 的引腳排列,其中 Vcc1 為后備電源, Vcc2 為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。 DS1302 由 Vcc1或 Vcc2 兩者中的較大者供電。當(dāng) Vcc2 大于 Vcc1+ 時(shí), Vcc2 給 DS1302供電。當(dāng) Vcc2 小于 Vcc1 時(shí), DS1302 由 Vcc1 供電。 X1 和 X2 是振蕩源,外接 KHz 晶振。 RST 是復(fù)位 /片選線,通過把 RST 輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。 RST 輸入有兩種功能:首先, RST 接通控制邏輯,允許地址 /命令序列送入移位寄存器;其次, RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì) DS1302 進(jìn)行操作。如果在傳送過程中 RSTS 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送, I/O 引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在 Vcc 大于等于 之前,RST 必須保持低電平。中有在 SCLK 為低電平時(shí),才能將 RST 置為高電平,I/O 為串行數(shù)據(jù)輸入端(雙向)。 SCLK 始 終是輸入端。 13 溫濕度采集模塊 圖 3210 溫濕度采集系統(tǒng) 按鍵調(diào)整電路 圖 3211 按鍵調(diào)整電路 14 按鍵提示音電路 圖 3212 按鍵提示音電路 報(bào)警指示燈電路 圖 3213 報(bào)警指示燈電路 15 第 4 章 程序設(shè)計(jì) 程序設(shè)計(jì)的組成 該系統(tǒng)由延時(shí)子函數(shù)、檢查 LCD1602 液晶忙位子函數(shù)、 LCD1602 液晶寫指令子函數(shù)、 LCD1602 液晶寫數(shù)據(jù)子函數(shù)、 LCD1602 液晶初始化子函數(shù)、SHT10 寫字節(jié)子函數(shù)、 SHT10 讀字節(jié)子函數(shù)、 SHT10 啟動(dòng)傳輸子函數(shù)、 SHT10連接復(fù)位子函數(shù)、 SHT10 溫濕度檢測(cè)子函數(shù)、 SHT10 溫濕度值標(biāo)度變換及溫度補(bǔ)償子函數(shù)、溫濕度顯示子函數(shù)、 LCD1602 液晶寫參數(shù)子函數(shù)、按鍵提示音子函數(shù)、按鍵掃描子函數(shù)、 主函數(shù)和數(shù)據(jù)定義這幾部分組成。 部分程序分析 檢查 LCD1602 液晶忙位子函數(shù) //檢查 LCD1602 液晶忙位子函數(shù) void LCD1602_busy() { uchar i=0。 RS=0。 RW=1。 E=1。 P0=0xff。 i=0。 while(((P0amp。0x80)==0x80)amp。amp。i150) i++。 E=0。 } LCD1602 液晶寫指令子函數(shù) //LCD1602 液晶寫指令子函數(shù) void write_(uchar ) { LCD1602_busy()。 RS=0。 RW=0。 P0=。 E=1。 E=0。 } LCD1602 液晶寫數(shù)據(jù)子函數(shù) //LCD1602 液晶寫數(shù)據(jù)子函數(shù) 16 void write_date(uchar date) { LCD1602_busy()。 RS=1。 RW=0。 P0=date。 E=1。 E=0。 } LCD1602 液晶初始化子函數(shù) //LCD1602 液晶初始化子函數(shù) void LCD1602_init() //初始化設(shè)置 { uchar i。 write_(0x38)。 write_(0x0c)。 write_(0x06)。 write_(0x01)。 write_(0x80)。 for(i=0。i16。i++) { write_date(table1[i])。 delay(500)。 } write_(0xc0)。 for(i=0。i16。i++) { write_date(table2[i])。 delay(500)。 } a=35。 b=10。 c=65。 d=40。 } SHT10 寫字節(jié)子函數(shù) //SHT10 寫字節(jié)子函數(shù) char s_write_byte(uchar value) { uchar i,error=0。 for(i=0x80。i0。i=1) //高位為 1,循環(huán)右移 { if(iamp。value) 17 DATA=1。//和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位 else DATA=0。 SCK=1。 _nop_()。 _nop_()。 _nop_()。//延時(shí) 3us SCK=0。 } DATA=1。 //釋放數(shù)據(jù)線 SCK=1。 error=DATA。 //檢查應(yīng)答信號(hào),確認(rèn)通訊正常 _nop_()。 _nop_()。 _nop_()。 SCK=0。 DATA=1。 return error。 //error=1 通訊錯(cuò)誤 } SHT10 讀字節(jié)子函數(shù) //SHT10 讀字節(jié)子函數(shù) char s_read_byte(uchar ack) { uchar i,val=0。 DATA=1。 //釋放數(shù)據(jù)線 for(i=0x80。i0。i=1) //高位為 1,循環(huán)右移 { SCK=1。 if(DATA) val=(val|i)。 //讀一位數(shù)據(jù)線的值 SCK=0。 } DATA=!ack。 //如果是校驗(yàn) ,讀取完后結(jié)束通訊; SCK=1。 _nop_()。 _nop_()。 _nop_()。//延時(shí) 3us SCK=0。 _nop_()。 _nop_()。 _nop_()。 DATA=1。 //釋放數(shù)據(jù)線 return val。 } 18 SHT10 溫濕度檢測(cè)子函數(shù) //SHT10 溫濕度檢測(cè)子函數(shù) char s_measure(uchar *p_value,uchar *p_checksum,uchar mode) { unsigned error=0。 uint i。 s_transstart()。 //啟動(dòng)傳輸 switch(mode) //選擇發(fā)送命令 { case TEMP: error+=s_write_byte(0x03)。 break。 //測(cè)量溫度 case HUMI: error+=s_write_byte(0x05)。 break。 //測(cè)量濕度 default: break。 } for(i=0。i65535。i++) if(DATA==0) break。 //等待測(cè)量結(jié)束 if(DATA) error+=1。 // 如果長(zhǎng)時(shí)間數(shù)據(jù)線沒有拉低,說(shuō)明測(cè)量錯(cuò)誤 *(p_value)=s_read_byte(1)。 //讀第一個(gè)字節(jié),高字節(jié) (MSB) *(p_value+1)=s_read_byte(1)。 //讀第二個(gè)字節(jié),低字節(jié) (LSB) *p_checksum=s_read_byte(0)。 //read CRC 校驗(yàn)碼 return error。 // error=1 通訊錯(cuò)誤 } 19 第 5 章 Keil C51 編譯器 C51 概述 Keil C51 是 美國(guó) Keil Software 公司出品的 51 系列兼容 單片機(jī) C 語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比, C 語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。 Keil 提供了包括 C 編譯器 、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境 ( uVision)將這些部分組合在一起。運(yùn)行 Keil 軟件需要 WIN9NT、 WIN202 WINXP 等操作系統(tǒng)。如果你使用 C 語(yǔ)言編程,那么 Keil幾乎就是你的不二之選,即使不使用 C 語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。 Keil C51 編譯器的使用 uVision4 包括一個(gè)項(xiàng)目管理器,他可以使用戶的 8051 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)變得簡(jiǎn)單。要?jiǎng)?chuàng)建一個(gè)應(yīng)用,需要按下列步驟進(jìn)行操作: (1) 啟動(dòng) uVision4,新建一個(gè)項(xiàng)目文件,并從器件庫(kù)選 擇一個(gè)器件。 (2) 新建一個(gè)源文件,并把它加入到項(xiàng)目中。 (3) 增加并配置選擇的器件的啟動(dòng)代碼和針對(duì)目標(biāo)硬件設(shè)置工具選項(xiàng)。 (4) 編譯項(xiàng)目并生成可以編譯 PROM 的 HEX 文件。 創(chuàng)建項(xiàng)目 啟動(dòng) uVision4 如圖 521 所示并創(chuàng)建一個(gè)項(xiàng)目, uVision4 是一個(gè)標(biāo)準(zhǔn)Windows 應(yīng)用程序,直接點(diǎn)擊程序圖標(biāo)就可以啟動(dòng)它。要?jiǎng)?chuàng)建一個(gè)項(xiàng)目文件,從 uVision4 的 Project 菜單中選擇 New Project,這將打開一個(gè)標(biāo)準(zhǔn)的Windows 對(duì)話框 (圖 522),此對(duì)話框要求輸入項(xiàng)目文 件名。 圖 521 uVision4 啟動(dòng)畫面 20 圖 522 創(chuàng)建項(xiàng)目文件對(duì)話框 選擇所要的單片機(jī),這里我們選擇常用的 Ateml 公司的 AT89C52。此時(shí)屏幕如圖 523 所示。圖中右邊簡(jiǎn)單的介紹 了 Ateml 的功能 。完成上面步驟后,就可以進(jìn)行程序的編寫了。 圖 523 選擇器對(duì)話框 新建一個(gè)源文件 21 單擊菜單選項(xiàng) File→ New 新建一個(gè)源文件,這將打開 一個(gè)空的編輯窗口,要求輸入源代碼。當(dāng)把此文件另存為 *.c 的文件后, uVision4 將高亮顯示 C 語(yǔ)言語(yǔ)法字符。 一旦創(chuàng)建了源文件,如 ,就可以把它加入到創(chuàng)建的項(xiàng)目中。uVision4 提供了幾種手段把源文件加入到項(xiàng)目中。例如,可以鼠標(biāo)右鍵單擊 Project 窗口下 Files 頁(yè)中的文件組 (Source group),彈出快捷菜單,菜單中的 Add Files to Groups 選項(xiàng)打開一個(gè)標(biāo)準(zhǔn)的文件對(duì)話框,從對(duì)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1