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

正文內(nèi)容

基于at89s52智能語音溫度計的設(shè)計附電路圖及程序(參考版)

2025-06-21 15:30本頁面
  

【正文】 a=ReadOneChar()。 //跳過讀序號列號的操作WriteOneChar(0xBE)。 // this message is very importantInit_DS18B20()。 // 跳過讀序號列號的操作WriteOneChar(0x44)。Init_DS18B20()。}}void ReadTemperature(void) //讀取 ds18b20 當(dāng)前溫度{ unsigned char a=0。 j=125。void delay_Temp(unsigned int ms) //延時 K*1ms,{ unsigned char j。unsigned char code str1[]={temp: . oC}。unsigned char temp1,temp2。void displayTemp(void)。void ReadTemperature(void)。extern unsigned char code str1[]。}}endif/***********以下源代碼是溫度量測部分 **********/ifndef __TEMP_H__define __TEMP_H__include 39include include extern unsigned char temp1,temp2。 DQ = 1。0x01。 i) { DQ = 0。 for (i=8。 } return(dat)。 // 給脈沖信號 if(DQ) dat|=0x80。 // 給脈沖信號 dat=1。i0。unsigned char dat = 0。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。 //拉高總線 delay_18B20(14)。 //單片機(jī)將 DQ 拉低 38delay_18B20(80)。 //DQ 復(fù)位 delay_18B20(8)。 }void Init_DS18B20(void) //ds18b20 初始化函數(shù){ unsigned char x=0。void WriteOneChar(unsigned char dat)。void Init_DS18B20(void) 。}}}endif/***********以下源代碼是 部分**********/ifndef __DS18B20_H__define __DS18B20_H__include sbit DQ=P2^0。if(bottom_temp=30) bottom_temp=1。else{top_temp=30。}else if(ct==4){ top_temp。}else if(ct==3){ if(hour=0) hour=23。}else if(ct==2){ if(minite=0) minite=59。}}else if(DOWN_KEY){ delay_key(10)。 if(bottom_temp=top_temp) bottom_temp=1。if(top_temp=100) top_temp=30。 if(hour=24) hour=0。if(minite=60) minite=0。}else{seconde=0。if(UP_KEY){ if(ct==1){ if(seconde=30){seconde=0。} 36delay_key(100)。else{ct=0。}}else if(ENTER){ delay_key(10)。//溫度范圍設(shè)置模式else DisplayTimeFlag=1。if(ct5) ct=0。if(FUNCTION_KEY){ delay_key(10)。}void scan_key(void) //鍵盤掃描{ static char ct=0。 j=125。void delay_key(unsigned int ms){ unsigned char j。void scan_key(void)。 } if(hour=24 ) {hour=0。} if(minite=60 ) {hour++。 } if(seconde=60) {minite++。 if(mstt=20 ) {seconde++。 TL0=0xb0。DisplayOneChar(10,0,seconde%10+0x30)。DisplayOneChar(7,0,minite%10+0x30)。DisplayOneChar(4,0,hour%10+0x30)。 //顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0)。 EX0=1。 ET0=1。 //預(yù)置計數(shù)初值 TL0=0xb0。 //time0 為定時器,方式 1 TCON = 0x01 。void initClock(void) //定時器 t0 初始化 34{ initLCM( )。unsigned char mstt=0。 //定義并初始化時鐘變量unsigned char minite=0。 //clock 延時子程序void displayClock(void)。void initClock(void)。extern unsigned char mstt。 //定義并初始化時鐘變量extern unsigned char minite。 X++。 while(X16) { DisplayOneChar(X,Y,DData[ListLength])。 Xamp。 Yamp。 WriteDataLCM(DData)。 //若 y 為 1(顯示第二行) ,地址碼+0X40 X|=0x80。=15。=1。 //顯示光標(biāo)右移設(shè)置,檢測忙信號 WriteCommandLCM(0x0c,1)。 //關(guān)閉顯示,檢測忙信號 WriteCommandLCM(0x01,1)。 WriteCommandLCM(0x38,1)。 WriteCommandLCM(0x38,0)。 WriteCommandLCM(0x38,0)。WriteCommandLCM(0x38,0)。}void initLCM( ) // LCM 初始化子函數(shù){ DATAPORT=0。 _nop_()。 LCM_EN=1。_nop_()。 while(DATAPORTamp。 _nop_()。 LCM_RW=1。 LCM_EN=1。 LCM_EN=0。 _nop_()。 // 寫模式 LCM_EN=1。 LCM_RS=1。 }void WriteDataLCM(unsigned char WDLCM) // 寫數(shù)據(jù)到 LCM 子函數(shù){ lcd_wait( )。 _nop_()。 _nop_()。 // 選中指令寄存器 LCM_RW=0。DATAPORT=WCLCM。j++) {。i++) {for(j=0。 for(i=0。 //顯示指定坐標(biāo)的一個字符子函數(shù)void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData)。 //寫指令到 ICM 子函數(shù)void WriteDataLCM(unsigned char WDLCM)。 //LCD 初始化子程序void lcd_wait(void)。 //LCD 使能信號void delay_LCM(unsigned int)。 //數(shù)據(jù)/命令端sbit LCM_RW=P3^6。 //顯示溫度上下限子函數(shù)delayMs(10)。 //顯示溫度子函數(shù)if(DisplayTimeFlag) //判斷顯示模式displayClock()。 // 讀取溫度子函數(shù)if(temp top_temp || temp (char)bottom_temp) beep()。 //鍵盤掃描子函數(shù)delayMs(10)。} 30void main(void){ init( )。initTemp()。 initLCM( )。bottom_temp = 1。 //初始化 p1 口,全設(shè)為 1 P3=0xff。 j++)。while(ms){for(j=0。Playback Ics [G].2022.[11]DALLAS. High Precision lwire174。但是由于設(shè)計者的設(shè)計經(jīng)驗和知識水平有限,本文設(shè)計的語音溫度計還存在許多不足和缺陷。這次畢業(yè)設(shè)計基本的完成了任務(wù)書的要求,實現(xiàn)了溫度的控制和語音播報。通過這次畢業(yè)設(shè)計,不僅鍛煉自己分析問題、處理問題的能力,還提高了自己的動手能力。經(jīng)過 26了一番特殊的體驗后,靠用所學(xué)的專業(yè)知識來解決問題。經(jīng)過這段時間的方案論證、系統(tǒng)的硬件和軟件的設(shè)計、系統(tǒng)的仿真和調(diào)試。顯示模式包括當(dāng)前溫度顯示,時間顯示模式,溫度上下限,他們實現(xiàn)都是先初始化調(diào)用顯示字符串子程序后再調(diào)用顯示指定位置字符子程序,具體看顯示當(dāng)前溫度子程序流程圖如圖 所示:定時器 T0 初始化(方式 1)判斷 mstt=20 判斷 Seconde=60Seconde ++Mstt++Hour++判斷 Hour =24Hour=0 24當(dāng)前檢測溫度數(shù)據(jù)移入顯示寄存器LCD 初始化顯示字符temp: . oC顯示當(dāng)前溫度圖 顯示當(dāng)前溫度子程序流程圖 單片機(jī)語根據(jù)語音信息與分段地址的對照表和當(dāng)前溫度組合出播報當(dāng)前的溫度語音數(shù)據(jù)地址,再通過 控制語音芯片放音,把處理的數(shù)據(jù)地址通過P1 端口寫給語音芯片,程序流程如圖 所示:播報“現(xiàn)在溫度是”,播報溫度值的個位溫度值10播報“度”個位為零播報溫度值的十位播報“十”播報溫度值個位播報“度”個位不為零播報溫度值的十位播報“十”播報“度”圖 語音播放子程序 256 仿真結(jié)果數(shù)據(jù)分析各項功能仿真方法及仿真結(jié)果如下表 表 各項功能仿真方法及結(jié)果類別仿真項目 仿真方法 仿真結(jié)果(1)正常開機(jī)有嘟聲 開機(jī)實現(xiàn) 仿真實現(xiàn)(2)測量范圍 開機(jī)顯示,調(diào)整 DS18B20的溫度是否都可以顯示仿真實現(xiàn)(3)顯示時間和溫度 開機(jī)顯示 仿真實現(xiàn)(4)調(diào)整時間、日期,設(shè)定最低、最高溫度按 SW5 進(jìn)入時間、最低、最高溫度調(diào)整功能,SW6加 1,SW7 減 1,最后按SW5 確認(rèn)溫度設(shè)定結(jié)束 仿真實現(xiàn)(5)報警功能 調(diào)整 DS18B20 溫度分別超過上限與下限,啟動蜂鳴器與指示燈仿真實現(xiàn)基本部分 (6)語音播放功能 觀察連接語音芯片 P1 和高低電平的變化 仿真實現(xiàn)7 結(jié)束語本文設(shè)計的語音溫度計,即可用于人民生活中的日常用品,還可以單獨作為系統(tǒng)為了保證某特定環(huán)境溫度維持在設(shè)定的范圍內(nèi),以保證工作系統(tǒng)在穩(wěn)定的狀態(tài)下工作。清楚基本操作時序就可以完成寫指令和寫數(shù)據(jù)到 LCD 中的子函數(shù)設(shè)計。本設(shè)計中定時時間 50ms,時鐘周期為 12M,顧 TH0=0x3c。TMOD=0x01 定時器 T0 初始化方式 1。部分控制 DS18B20 指令功能如表 所示:初始化寫跳過 ROM 指令寫啟動溫度轉(zhuǎn)換指令延時初始化寫跳過 ROM 指令寫讀溫度轉(zhuǎn)換指令讀取溫度圖 測溫度子程序流程圖表 控制 DS18B20 指令表指 令 指令代碼 操 作 說 明 跳過 ROM CCH 忽略 64 位 ROM 編碼溫度轉(zhuǎn)換 44H 啟動 DS18B20 進(jìn)行溫度轉(zhuǎn)換 讀暫存器 BEH 讀暫存器 9 個字節(jié)內(nèi)容 寫暫存器 4EH 將數(shù)據(jù)寫入暫存器的 TH、TL 字節(jié) 復(fù)制暫存器 48H 把暫存器的 TH、TL 字節(jié)寫到 E2RAM 中 重新調(diào) E2RAM B8H 把 E2RAM 中的 TH、TL 字節(jié)寫到暫存器TH、TL 中 讀電源供電方式 B4H 啟動 DS18B20 發(fā)送電源供電方式的信號給主 CPU初始默認(rèn)上下限報警值,或鍵盤設(shè)定報警值,取量實時測溫度值與溫度上下限值比較,超過報警范圍,導(dǎo)通三極管,觸發(fā)蜂鳴器與指示燈報警,當(dāng)實時 22溫度恢復(fù)到報警范圍內(nèi)溫度時,自動停止報警。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā) ROM 功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。If(ct=3) 時減 1If(ct
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1