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

正文內(nèi)容

基于at89s52智能語音溫度計的設(shè)計附電路圖及程序(已改無錯字)

2023-07-19 15:30:23 本頁面
  

【正文】 加 1語音播報子程序If(ct=0)無效。If(ct=1)秒減 1。If(ct=2)分減 1。If(ct=3) 時減 1If(ct=4)上限加減If(ct=5)下限減 1圖 鍵盤子程序流程圖由在整個語音溫度計的設(shè)計中是以正確采集溫度為前提的,因為如果溫度采集就不正確,那么即使后續(xù)電路如顯示和報溫電路均正確,最后的結(jié)果仍然不能達(dá)到我們所要的目標(biāo),也就是不能正確的對環(huán)境溫度進(jìn)行顯示和報溫,所以關(guān)于 DS18B20 的溫度采集是非常重要的。DS18B20 單線通信功能是分時完成 21的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā) ROM 功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。其測溫子程序流程圖如 所示。部分控制 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)溫度時,自動停止報警。流程圖如圖 所示圖 報警子程序流程圖本系統(tǒng)的時鐘直接用單片機(jī)的定時器編程以實現(xiàn)時鐘,節(jié)省硬件。TMOD=0x01 定時器 T0 初始化方式 1。定時時間=(65536T0 初值)*時鐘周期*12。本設(shè)計中定時時間 50ms,時鐘周期為 12M,顧 TH0=0x3c。TL0=0xb0 時鐘實現(xiàn)流程圖如圖 所示: 不報警小于 0小于0大于 0小于 0大于 0大于0讀取溫度值溫度值減上限值溫度值減下限值報警 23圖 時鐘功能實現(xiàn)流程圖本設(shè)計使用的 LCD1602 基本操作時序如下表 。清楚基本操作時序就可以完成寫指令和寫數(shù)據(jù)到 LCD 中的子函數(shù)設(shè)計。在子函數(shù)中為了使液晶顯示更加穩(wěn)定,可以最簡短的延時。顯示模式包括當(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è)計的語音溫度計成本很低,如果采用大批量生產(chǎn)的話,生產(chǎn)成本會更低,可以帶來一定的經(jīng)濟(jì)效益。經(jīng)過這段時間的方案論證、系統(tǒng)的硬件和軟件的設(shè)計、系統(tǒng)的仿真和調(diào)試。查閱了大量的關(guān)于傳感器、單片機(jī)及其接口電路、以及控制方面的理論。經(jīng)過 26了一番特殊的體驗后,靠用所學(xué)的專業(yè)知識來解決問題。檢查了自己的知識水平,使我對自己有一個全新的認(rèn)識。通過這次畢業(yè)設(shè)計,不僅鍛煉自己分析問題、處理問題的能力,還提高了自己的動手能力。這些培養(yǎng)和鍛煉對于我們這些即將走向工作崗位的大學(xué)生來說,是很重要的。這次畢業(yè)設(shè)計基本的完成了任務(wù)書的要求,實現(xiàn)了溫度的控制和語音播報。通過仿真表明系統(tǒng)的設(shè)計是正確的,可行的。但是由于設(shè)計者的設(shè)計經(jīng)驗和知識水平有限,本文設(shè)計的語音溫度計還存在許多不足和缺陷。 27參考文獻(xiàn)[1] [M] . 133135[2] [M].北京航空航天大學(xué)出版 社.1999 [3] 系列單片機(jī)開發(fā)寶典[M].[4] 99SE 電路設(shè)計教程[M].[5] 51 單片機(jī) C 語音教程[M].[6] [M].[7] [M].[8] Dallas 公司. DS18B20 Resolution One – Wire Digital Thermometer. [G].2022[9] ISD 公司.Datebook of Voice Recodingamp。Playback Ics [G].2022.[11]DALLAS. High Precision lwire174。 Digital Thermometer[EB/OL].: //.[10]DALLAS. Understanding and Using Cyclic Redundancy Checks with Dallas Semiconductor iButtonTM Products[EB/OL].://. 28附錄一:電路圖 29附錄二:源程序/***********************語音溫度計************************************************************************************//***********以下源代碼是主程序部分 **********/include include include include include include include include include void delayMs(unsigned int ms) //延時 K*1ms,{ unsigned char j。while(ms){for(j=0。 j=125。 j++)。}}void init() //主初始化{ P1=0xff。 //初始化 p1 口,全設(shè)為 1 P3=0xff。top_temp = 30。bottom_temp = 1。delayMs(500)。 initLCM( )。 initClock()。initTemp()。BEEP = 1。} 30void main(void){ init( )。 //初始化 while (1) { scan_key()。 //鍵盤掃描子函數(shù)delayMs(10)。ReadTemperature( )。 // 讀取溫度子函數(shù)if(temp top_temp || temp (char)bottom_temp) beep()。displayTemp()。 //顯示溫度子函數(shù)if(DisplayTimeFlag) //判斷顯示模式displayClock()。 // 顯示時間子函數(shù)elsedisplayTempLim()。 //顯示溫度上下限子函數(shù)delayMs(10)。}}/***********以下源代碼是顯示子程序 部分**********/ifndef __LCD1602_H__define __LCD1602_H__include include define BUSY 0x80 //lcd 忙檢測標(biāo)志define DATAPORT P0sbit LCM_RS=P3^7。 //數(shù)據(jù)/命令端sbit LCM_RW=P3^6。 //讀/寫選擇端sbit LCM_EN=P2^7。 //LCD 使能信號void delay_LCM(unsigned int)。 //LCD 延時子程序延時 msvoid initLCM(void)。 //LCD 初始化子程序void lcd_wait(void)。 //LCD 檢測忙子程序void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC)。 //寫指令到 ICM 子函數(shù)void WriteDataLCM(unsigned char WDLCM)。 31//寫數(shù)據(jù)到 LCM 子函數(shù)void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData)。 //顯示指定坐標(biāo)的一個字符子函數(shù)void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData)。 //顯示指定坐標(biāo)的一串字符子函數(shù)void delay_LCM(unsigned int k) //延時 K*1ms,{ unsigned int i,j。 for(i=0。ik。i++) {for(j=0。j60。j++) {。} }} void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC)//寫指令到 LCM 子函數(shù){ if(BusyC)lcd_wait()。DATAPORT=WCLCM。 LCM_RS=0。 // 選中指令寄存器 LCM_RW=0。 // 寫模式 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=0。 }void WriteDataLCM(unsigned char WDLCM) // 寫數(shù)據(jù)到 LCM 子函數(shù){ lcd_wait( )。 //檢測忙信號 DATAPORT=WDLCM。 LCM_RS=1。 // 選中數(shù)據(jù)寄存器 LCM_RW=0。 // 寫模式 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=0。}void lcd_wait(void) // lcm 內(nèi)部等待函數(shù) 32{ DATAPORT=0xff。 LCM_EN=1。LCM_RS=0。 LCM_RW=1。 _nop_()。 _nop_()。 _nop_()。 while(DATAPORTamp。BUSY){ LCM_EN=0。_nop_()。 _nop_()。 LCM_EN=1。 _nop_()。 _nop_()。} LCM_EN=0。}void initLCM( ) // LCM 初始化子函數(shù){ DATAPORT=0。delay_LCM(15)。WriteCommandLCM(0x38,0)。 //三次顯示模式設(shè)置,不檢測忙信號 delay_LCM(5)。 WriteCommandLCM(0x38,0)。 delay_LCM(5)。 WriteCommandLCM(0x38,0)。 delay_LCM(5)
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1