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

正文內(nèi)容

基于單片機(jī)的溫控報(bào)警器設(shè)計(jì)(留存版)

2025-01-16 20:58上一頁面

下一頁面
  

【正文】 RB|=BIT(3)。 (x = 16)) //當(dāng) x軸不夠位置顯示,字符自動(dòng)換行 { y = 1。busy) //判斷 lcd1602 為工作中,工作完成繼續(xù)下一條代碼 { val=PINC。 //拉低 rw 電平 _NOP()。 //清屏,檢測(cè)忙信號(hào) lcd_w_(0x06,1)。 //溫度設(shè)定子函數(shù) display_2(t)。 //實(shí)時(shí)溫度的個(gè)位 delay_ms(5)。 //拉高 PB3 電平 delay_10us(1)。 //實(shí)時(shí)溫度的十位 delay_ms(5)。 //關(guān)蜂鳴器 while(1) { temperture=read_18b20_temp()。 delay_ms(5)。 lcd_en_0。 _NOP()。) //判斷顯示內(nèi)容不為空 { display_char(x,y,*s++)。 DDRBamp。 36 void init_18b20(void)。 //用于顯示的數(shù)組 int temperture=0。由于這個(gè)原因,在一開始的時(shí)候一直無法啟動(dòng) DS18B20,已被寫入在參考和控制程序,發(fā)現(xiàn)差異并不大,在水平設(shè)置。該系統(tǒng)的硬件調(diào)試主要是液晶顯示器 LCD1602,DS18B20 溫度傳感器之間的關(guān)系,分別與單片機(jī) ATmega16 的調(diào)試。 //端口初始化 lcd_init()。(sw==3)) //當(dāng)減 1 鍵按下并且轉(zhuǎn)換位變量 sw等于 3,十位減法變化 { delay_ms(100)。amp。此時(shí)進(jìn)入LCD1602 寫命令狀態(tài),然后將需要輸入一個(gè) 8 位命令 數(shù)據(jù)輸入通過 PC 端的單片機(jī) LCD1602。 //拉低 en 電平 } 此功能的作用,微控制器,顯示數(shù)據(jù)輸入到 LCD1602。 //顯示光標(biāo)右移設(shè)置,檢測(cè)忙信號(hào) lcd_w_(0x0c,1)。首先,定義一個(gè) 8位局部變量用于數(shù)值的返回。 DS18B20 讀一個(gè)字節(jié)數(shù)據(jù)子函數(shù) 程序代碼如下: uchar read_18b20_byte(void) { 22 uchar i,retd=0。i++) //分別寫 8次,這里一次寫一位 { DQ_OUT。 write_18b20_(0xbe)。 //設(shè)置 PB3 為輸出 DQ_SET。 1腳連接單片機(jī)的 MOSI 端; 2 腳空接; 3腳接單片機(jī) RESET 端; 4腳接單片機(jī) SCK 端; 5腳接單片機(jī) MISO 端; 6腳到 9 腳均接電源地 GND; 10 腳接 VCC。 設(shè)計(jì)圖如下 。 圖 3 DS18B20 內(nèi)部結(jié)構(gòu) DS18B20 工作原理 圖 4 12 LCD1602 主要參數(shù)技術(shù) 表 Lcd1602 技術(shù)參數(shù) 表 顯示容量: 16X2 個(gè)字符 芯片工作電壓: ~ 工作電流: ( ) 模塊最佳工作電壓: 字符尺寸: ( WXH) mm 引腳接口說明表 第 1 腳: VSS 為地電源。 DS18B20 的寫操作 ( 1) 數(shù)據(jù)線先置低電 平 “0” 。 DS18B20 有獨(dú)特的單線接口方式,和微處理器連接僅需一條口線即可實(shí)現(xiàn)雙向通訊;它不需要任何外圍元件,全部的傳感元件都集成在集成電路內(nèi);電壓范圍在 ~ 之間,溫度范圍在 - 55℃ ~+ 125℃ ,在 10~ +85℃ 時(shí)精度為 177。這個(gè)報(bào)警器能夠穩(wěn)定運(yùn)行,并且能夠在大多數(shù)情況下對(duì)高溫帶來的不良影響有一個(gè)預(yù)警的作用,防止一些對(duì)高溫敏感的器械有不良情況出現(xiàn)。綜合以上種種情況的出現(xiàn),溫度報(bào)警器就極其需要,只要環(huán)境溫度超過一定范圍時(shí)報(bào)警,來提醒使用者。 所以,溫度的測(cè)量是一個(gè)很重要的物理參數(shù),它能直接告訴人們所需要的溫度的大小。隨著世界的科技發(fā)展,對(duì)于溫度的測(cè)量要求也是越來越嚴(yán)格了,但是測(cè)量溫度的環(huán)境也越來越惡劣。 數(shù)字溫度計(jì) 的出現(xiàn)為現(xiàn)今社會(huì)帶來一定程度上的方便。 利用數(shù)字溫度芯片 DS18B20 測(cè)量溫度, 輸出信號(hào)全數(shù)字化。 ℃,符合設(shè)計(jì)條件;它還有負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱燒毀,實(shí)驗(yàn)結(jié)果。 ( 2) 延時(shí)確定的時(shí)間為 15 微秒。 第 2 腳: VDD 接 5V正電源。 圖 5 DS18B20 原理圖 14 這個(gè)是 DS18B20 傳感器的硬件設(shè)計(jì)。 圖 8 程序燒寫 電源端口 這部分只需要外接一個(gè) 2PIN 的端子用于連接 5V 開關(guān)。 //拉高 PB3 電平 delay_10us(1)。 //發(fā)出讀溫度命令 temp1=read_18b20_byte()。 //設(shè)置 PB3 為輸出 21 DQ_CLR。 for(i=0。這里有一個(gè)循環(huán)語句,同樣是 8次,一次只能讀一位的數(shù)據(jù)。 //顯示屏打開,光標(biāo)不顯示,不閃爍,檢測(cè)忙信號(hào) delay_ms(5)。檢測(cè) LCD1602 是在一個(gè)繁忙的狀態(tài),當(dāng) LCD1602 閑置無效的 RS 級(jí)別(對(duì)應(yīng)引腳查找表 ),并拉低的 RW 級(jí)延時(shí)等待 LCD1602 反應(yīng)。其次延遲等待命令完成,給一個(gè)下降沿 LCD1602 寫命令完成。(sw==2)) //當(dāng)加 1 鍵按下并且轉(zhuǎn)換位變量 sw等于 2 { delay_ms(100)。 shi。 //lcd1602 初始化 led_off。首先,設(shè)計(jì)時(shí),必須根據(jù) 原理圖 來連接每個(gè)設(shè)備。所以,延遲不起作用。 //全局變量,實(shí)時(shí)溫度變量 int t=50。 void displayl(uint ddd)。=~(1PB2)。 //x, y為顯示的位置, *s 是要顯示的子函數(shù) x++。 DDRC=0x00。 //拉低 en電平 } //lcd1602 寫數(shù)據(jù)子函數(shù) void lcd_w_data(uchar w_data) { lcd_busy()。 lcd_w_(0x38,1)。 //將從 18b20 讀回來的數(shù)據(jù)傳入全局變量 temperture 中 displayl(temperture)。 lcd_w_(0X80+13,1)。 //延時(shí) DQ_CLR。 lcd_w_data(display[ddd/10%10])。 //100us 延時(shí) ss()。 //關(guān)閉顯示,檢測(cè)忙信號(hào) lcd_w_(0x01,1)。 //拉高 rs 電平 lcd_rw_0。 //讀 PC端口,將數(shù)據(jù)傳入 val 局部變量 while(valamp。amp。 PORTB|=(1PB2)|(14)。 void display_2(uint ddd)。 //設(shè)定溫度變量,分別 xs 是小數(shù)位, ge 是個(gè)位, shi 是十位, bai 是百位, sw是轉(zhuǎn)換位變量 //============================================================= ///函數(shù)聲明 void delay_ms(uint ms)。所以做的修改 31 在延遲方面,一如預(yù)期,只要根據(jù)第一部分第二章調(diào)試可以啟動(dòng) DS18B20 的方法延遲。其次,你必須確定組件元 件完好, 在其他系統(tǒng)上運(yùn)行或檢測(cè)每個(gè)組件 的工作情況是否良好 。 //關(guān)蜂鳴器 while(1) { temperture=read_18b20_temp()。 28 } } if((plus==0)amp。 //個(gè)位加 1 if(ge9) //當(dāng)個(gè)位加到 10 歸 0 { ge=0。 /軟件防抖,延時(shí) sw++。 LCD1602 寫命令子函數(shù) 程序代碼如下: void lcd_w_(uchar ,uchar attribc) { if(attribc) //attribc 為是否需要 判斷 lcd1602 忙信號(hào) 25 { lcd_busy()。 //第一行要顯示的初始內(nèi)容 delay_ms(5)。右移一位之后,設(shè)置引腳為輸出并拉低電平,緊接就是拉高電平,延時(shí)等待傳感器反應(yīng)。i++) //分別讀 8次,這里一次讀一位 { retd=1。 if(amp。 init_18b20()。 //拉低 PB3 電平 delay_10us(75)。如下圖: 圖 9 電源端口接線原理圖 串口通訊端的設(shè)計(jì) 此設(shè)計(jì)目的是為了能夠使系統(tǒng)在硬件上得到擴(kuò)展型設(shè)計(jì),方便通過串口RS485 或者 RS232 上傳數(shù)據(jù)。還有在設(shè)計(jì)里面考慮到電源的不穩(wěn)定,所以在接近插槽的電源 VCC 和 地 GND 之間加了一個(gè) 的電容用于濾波 ,穩(wěn)定電源 。 第 4 腳: RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。 ( 4) 延時(shí)時(shí)間為 45微秒。開漏單總線接口引腳。采用 LCD1602 作為數(shù)字顯示模塊 ,用 avrmega16 進(jìn)行軟件設(shè) 計(jì) DS18B20 采集溫度數(shù)據(jù),經(jīng)過單片機(jī)響應(yīng)之后發(fā)送數(shù)據(jù)到單片機(jī)。這樣就完成了數(shù)字溫度計(jì)的基本測(cè)溫功能。但是很多時(shí)候,在惡劣的環(huán)境中的測(cè)量則會(huì)受到很大程度的限制,尤其在工業(yè)控制中,在這個(gè)時(shí)候,溫度測(cè)量的自動(dòng)控制先得尤為重要。 本文將要介紹的是和采用 DS18B20作為溫度傳感器,自動(dòng)測(cè)量當(dāng)前溫度,由單片機(jī) avr mega16 進(jìn)行處理控制,并通過 lCD1602 顯示設(shè)定溫度和當(dāng)前溫度,若當(dāng)前溫度超過設(shè)定溫度,系統(tǒng)將會(huì) 進(jìn)行比較簡(jiǎn)單的聲光報(bào)警。一般的電子產(chǎn)品都是發(fā)熱快,若散熱設(shè)施做的不夠及時(shí)而令機(jī)房?jī)?nèi)溫度短時(shí)間內(nèi)超出設(shè)備正常的溫度,就會(huì)導(dǎo)致系統(tǒng)癱瘓或者火災(zāi)的事故 發(fā)生。 6. 通過仿真以及調(diào)試,找出未解決問題。 C 時(shí),不在安全溫度范圍之內(nèi),蜂鳴器進(jìn)行報(bào)警,發(fā)光二極管發(fā)光顯示。 ( 7) 若 單片機(jī) 讀到了數(shù)據(jù)線上的低電平 “0” 后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第( 5)步的時(shí)間算起)最少要 480 微秒。 ( 8)延時(shí) 60 微秒。 然而設(shè)計(jì)要用的功能并不多,端口的復(fù)用功能基本用不上,只需要安排足夠的普 通 I/O 端口給溫度傳感器和液晶顯示便可以了。 圖 7 設(shè)計(jì)部分原理圖 16 程序燒寫 這部分設(shè)計(jì)是用于將在電腦端的編寫好的程序燒寫到單片機(jī) ATmega16,今次設(shè)計(jì)的下載用 ASP 下載方式。 2 鍵是用來設(shè)置溫度增加, 3 鍵來設(shè)定溫度下降, 而 4 鍵是用于切換位數(shù) 。 //發(fā)出轉(zhuǎn)換命令 init_18b20()。 for(i=0。接著就是延時(shí) 50us 等待傳感器反應(yīng),再接著是拉高電平指示這次的傳送完畢,后面跟著就是需要將命令右移一位。 } return retd。 //關(guān)閉顯示,檢測(cè)忙信號(hào) lcd_w_(0x01,1)。_NOP()。當(dāng)你進(jìn)入該函數(shù)將檢測(cè) 忙音信號(hào) 是否 為 1,是必要的檢測(cè)忙信號(hào)等待 LCD1602 閑置 1, 0 不要求檢測(cè)忙音信號(hào)。 //小數(shù)位減 1 if(xs0) //當(dāng)小數(shù)位減到 1歸 9 { xs=9。 } } if((reduce==0)amp。 //將小數(shù)位,個(gè)位,十位和百位整合到全局變量 t 中 } 程序代碼如下: void main(void) 29 { delay_ms(100)。最后,對(duì)實(shí)時(shí)溫度進(jìn)行判斷,當(dāng)實(shí)時(shí)溫度大于設(shè)定溫度,燈亮、器鳴;當(dāng)實(shí)時(shí)溫度小于設(shè)定溫度,燈滅并關(guān) 閉蜂鳴器。 啟動(dòng)調(diào)試 DS18B20。=~(1PB4) //點(diǎn)亮 led 燈 define bell_on PORTD|=(1PD4) //打開蜂鳴器 define led_off PORTB|=(1PB4) //熄滅 led 燈 35 define bell_off PORTDamp。 void write_18b20_(uchar val)。 DDRC=0xff。 } //字符串 lcd1602 顯示子函數(shù) void display_str(uchar x,uchar y,uchar *s) { while(*s != 39。 lcd_en_1。 //拉高 en電平 _NOP()。 delay_ms(5)。 //lcd1602 初始化 led_off。 //設(shè)置 lcd顯 示位置是第一行,第 13 個(gè)位 delay_ms(5)。 } } //18b20 初始化(復(fù)位)子函數(shù) void init_18b20(void) { 45 DQ_OUT。 //設(shè)置 lcd顯示位置是第一行,第 16 個(gè)位 delay_ms(5)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1