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

正文內(nèi)容

基于單片機最小系統(tǒng)的溫度控制系統(tǒng)-在線瀏覽

2024-09-06 03:54本頁面
  

【正文】 個 ALE 脈 沖 。 如 有 必 要 , 可 通 過 對 特 殊 功 能 寄 存 器 ( SFR) 區(qū) 中 的 8EH 單 元 的 D0 位 置 位 , 可禁 止 ALE 操 作 。 此 外 ,該 引 腳 會 被 微 弱 拉 高 , 單 片 機 執(zhí) 行 外 部 程 序 時 , 應 設 置 ALE 禁 止 位 無 效 。 在此 期 間 , 當 訪 問 外 部 數(shù) 據(jù) 存 儲 器 , 將 跳 過 兩 次 PSEN 信 號 。 欲 使 CPU 僅 訪 問 外 部 程 序 存 儲 器 ( 地 址 為 0000H—FFFFH) , EA 端必 須 保 持 低 電 平 ( 接 地 ) 。 如 EA 端 為 高 電 平 ( 接 Vcc 端 ) , CPU 則 執(zhí) 行 內(nèi) 部 程 序 存 儲 器 中 的 指 令。 XTAL1振 蕩 器 反 相 放 大 器 的 及 內(nèi) 部 時 鐘 發(fā) 生 器 的 輸 入 端 。 圖 5.DS18B20工作原理:低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小〔1〕 ,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。 (1).數(shù)碼管的選擇: 圖 7. CL5461AS a,b,c,d,e,f,g 為四位 7 段數(shù)碼管的段選線 ,dp 為數(shù)碼管的小數(shù)點顯示位 ,A1,A2,A3,A4 為四位 7 段數(shù)碼管的位選線 設置獨立式按鍵,其功能分別是“設置” 、 “+”、 “-” 、 “負” 。圖 當溫度低于設定溫度是,單片機給主電路發(fā)高電平通過光電隔離開關控制雙向晶闡管的導通,是主電路接通或關斷市電(220V 50HZ) ,從而控制加熱元件的加熱(制冷元件的制冷)圖 四、系統(tǒng)軟件設計圖 開始初始化D S 1 8 B 2 0 是否存在 ?R O M 操作命令存儲操作命令讀溫度值計算整數(shù)位溫度 B C D 值 ,并進行存儲錯誤提示顯示 8 8 8 8NY結束返回圖圖 中斷判斷有鍵按下 ?調(diào)用 1 0 m s 延時子程序判斷是否有鍵按下檢測當前溫度 ( 假設為R 2 )調(diào)用顯示子程序顯示當前溫度P 1 . 4 = 1 ?( 是否為加 ) P 1 . 5 = 1 ?( 是否為 -)P 1 . 6 = 1 ?( 確定鍵按下沒有 ) 默認溫度 = R 2中斷結束返回YYNNYNNR 2 = R 2 + 1延時 1 0 m sYR 2 = R 2 1YN圖 設置默認溫度和溫度上限值初始化 ( 中斷和定時 )開始調(diào)用溫度檢測子程序 溫度顯示子程序當前溫度 溫度上限制 ?溫度 默認溫度 ?P 1 . 0 發(fā)高電平延時 1 0 m sP 1 . 0 發(fā)低電平P 1 . 0 發(fā)低電平報警和錯誤顯示8 8 8 8 NYYN五、系統(tǒng)調(diào)試仿真 圖 14. 實時溫度顯示圖 15六、結束語 經(jīng)過這次單片機的課程設計,我們接觸到了更多平時沒有接觸到的儀器設備、元器件以及相關的使用高度經(jīng)驗,發(fā)現(xiàn)了自身許多不足之處,使我深刻體會到了所學理論知識的重要性。本文的溫度控制系統(tǒng),只是單片機廣泛的應用更加廣泛化。課程設計能夠從理論設計和工程實踐相結合、鞏固基礎知識與培養(yǎng)創(chuàng)新意識相結合、個人作用和集體協(xié)作結合等方面全方位的培養(yǎng)我們學生的素質。這些在我將來的工作和學習當中都會有很大的幫助。 其次,我學會了怎么樣查閱資料和利用工具書。一個人所學所了解的總是有限,因此,當我在設計過程中需要一些我不曾學習過的知識時,我就有針對性地去查找了相關材料,并加以理解和利用。 而且,課程設計對我以前學過的知識起到了回顧作用,并對其加以進一步的消化和鞏固。也讓我明白了吃苦耐相對應的工程意識的重要。 基于 DS18B20 的測溫系統(tǒng)* 功 能: 實時測量溫度,超過上下限報警,報警溫度可手動調(diào)整。在正常模式下,按一下 K2 進入查看上限溫度模式,顯示 1s 左右自動* 退出;按一下 K3 進入查看下限溫度模式,顯示 1s 左右自動退出;按一下 K4 消除* 按鍵音,再按一下啟動按鍵音。 *********************************************************************/include //將 頭文件包含到主程序include //將 頭文件包含到主程序(調(diào)用其中的_nop_()空操作函數(shù)延時)define uint unsigned int //變量類型宏定義,用 uint 表示無符號整形(16 位)define uchar unsigned char //變量類型宏定義,用 uchar 表示無符號字符型(8 位)uchar max=0x00,min=0x00。 //s 是調(diào)整上下限溫度時溫度閃爍的標志位,s=0 不顯示 200ms,s=1 顯示 1s 左右bit s1=0。 //聲明 display1()函數(shù)( 頭文件中的函數(shù), 要用應先聲明)include //將 頭文件包含到主程序include //將 頭文件包含到主程序include //將 頭文件包含到主程序/***********************主函數(shù)************************/void main(){ beer=0。 //關閉 LED 燈 timer1_init(0)。 //首次啟動 DS18B20 獲取溫度(DS18B20 上點后自動將 EEPROM 中的上下限溫度復制到 TH 和 TL 寄存器) while(1) //主循環(huán) { keyscan()。 //獲取溫度函數(shù) //keyscan()。//顯示函數(shù) alarm()。 //按鍵掃面函數(shù) }} /********************************************************************* 程序名。 //可位尋址變量定義,用 DQ 表示 口sbit beer=P1^7。 //用 led 表示 uchar temp=0。 //測量溫度的小數(shù)部bit f=0。 //上限溫度的標志位‘0’表示“正溫度” ‘1’表示“負溫度”)bit f_min=0。 //報警標志位‘1’啟動報警‘0’關閉報警)sbit check=P1^0。}void ds18b20_delayms(uint t) //延時 1ms 左右{uint i,j。i0。j0。}/**************************ds18b20 初始化函數(shù)*************************/void ds18b20_init() // DS18B20 初始化{ uchar c=0。DQ=0。 //延時 1580μsDQ=1。 //等待 DS18B20 拉低總線,在 60240μs 之間ds18b20_delayus(150)。 //拉高數(shù)據(jù)線,準備數(shù)據(jù)傳輸;}/***************************ds18b20 字節(jié)讀函數(shù)************************/uchar ds18b20_read() //DS18B20 字節(jié)讀取{uchar i。DQ = 1。i0。 //低位先發(fā);DQ = 0。_nop_()。 //必須寫 1,否則讀出來的將是不預期的數(shù)據(jù);if(DQ) //在 12us 處讀取數(shù)據(jù);d |= 0x80。}return d。 for(i=8。i) { DQ=0。0x01。 DQ=1。 }}/***************************獲取溫度函數(shù)****************************/ void get_temperature(bit flag){uchar a=0,b=0,c=0,d=0。ds18b20_init()。 //向 DS18B20 發(fā)跳過讀 ROM 命令ds18b20_write(0x44)。 display1(1)。ds18b20_init()。 //向 DS18B20 發(fā)跳過讀 ROM 命令ds18b20_write(0xbe)。 //讀內(nèi)部 RAM (LSB)b=ds18b20_read()。 //讀內(nèi)部 RAM (TH ) min=ds18b20_read()。0x80)==0x80) //若讀取的上限溫度的最高位(符號位)為‘1’表明是負溫度{f_max=1。} //將上限溫度符號標志位置 ‘1’表示負溫度,將上限溫度裝換成無符號數(shù)。0x80)==0x80) //若讀取的下限溫度的最高位(符號位)為‘1’表明是負溫度{f_min=1。} //將下限溫度符號標志位置‘1’表示負溫度,將下限溫度裝換成無符號數(shù)。i=4。 //i 為 0,正溫度,設立正溫度標記 temp=((a4)|(b4))。0x0f)。 //小數(shù)部分}else{ f=1。 b=~b。 //整數(shù)部分 a=(aamp。 //小數(shù)部分 temp_d=a。if(f_min==1) //若下限溫度為負,將上限溫度轉換成有符號數(shù)min=min+0x80。 //DS18B20 初始化ds18b20_write(0xcc)。 //向 DS18B20 發(fā)寫字節(jié)至暫存器 2 和 3(TH 和 TL)命令ds18b20_write(max)。 //向暫存器 TL(下限溫度暫存器)寫溫度ds18b20_write(0xff)。 //DS18B20 初始化ds18b20_write(0xcc)。 //向 DS18B20 發(fā)將 RAM 中 3 字節(jié)的內(nèi)容寫入 EEPROM } //DS18B20 上電后會自動將 EEPROM 中的上下限溫度拷貝到 TH、TL 暫存器 /**************************溫度超限報警函數(shù)*************************/ void alarm() { //若上限值是正值 if(f_max==0) { if(f_min==0) //若下限值是正值 { if(f==0) //若測量值是正值 { if(temp=min||temp=max) {w=1。} //當測量值小于最小值或大于最大值時報警 if((tempmax)amp。(tempmin)) {w=0。 if(temp=max) check=0。TR1=1。TR1=1。} } if(f==1) //若測量值是負值 { if(temp=min)//當測量值大于最小值時報警 {w=1。} if(tempmin)//當測量值小于最小值時不報警 {w=0。TR1=1。amp。} //當測量值小于最小值且大于最大值時不報警 } if(f==0){w=1。} //若測量值是正值時報警 } } }endif/********************************************************
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1