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

正文內(nèi)容

基于51單片機(jī)的電熱水器控制系統(tǒng)設(shè)計(jì)p-資料下載頁(yè)

2025-11-27 07:37本頁(yè)面

【導(dǎo)讀】是人們通常會(huì)對(duì)其使用過(guò)程中的一些危險(xiǎn),如一氧化碳中毒和燃?xì)庑孤┑膿?dān)心,的成熟,安全性也能很好的得到保證。摒棄傳統(tǒng)的機(jī)械式的控制方式,轉(zhuǎn)而采用全新的控制方式,,以微處理器為核心,器的智能使控制方法。其現(xiàn)有接口外接各種硬件模塊,主要有:溫度測(cè)量電路,實(shí)時(shí)時(shí)鐘電路,鍵盤(pán),看門(mén)狗電路,加熱開(kāi)關(guān),LED顯示電路。軟件部分主要是為實(shí)現(xiàn)系統(tǒng)功能而進(jìn)行的C語(yǔ)言編程。的各種數(shù)據(jù),便于用戶的操作,通過(guò)用戶的各種事先指令,對(duì)單片機(jī)進(jìn)行操作,達(dá)到控制熱水器的加熱系統(tǒng)的工作狀態(tài),基本達(dá)到了對(duì)熱水器的控制的目的。

  

【正文】 [4](即外接一排阻連接到 VCC 上,如圖 48 所示)。其硬件顯示模塊如圖 所示。 [16] 圖 液晶顯示模塊原理圖 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 28 其余硬件模塊設(shè)計(jì) 蜂鳴器電路在輸入為低電平時(shí)導(dǎo)通,作為某些按鍵按下的指示音。 LED 燈在繼電器斷開(kāi)即加熱工作時(shí)亮,在加熱電路斷開(kāi)時(shí), LED 燈熄滅。 圖 串口通信模塊 圖 蜂鳴器報(bào)警電路及 LED 顯示燈模塊 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 29 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 30 第五章系統(tǒng)軟件設(shè)計(jì) 根據(jù)系統(tǒng)所需要實(shí)現(xiàn)的功能,軟件設(shè)計(jì)主要分為如下的幾個(gè)模塊:主程序、溫度讀取模塊設(shè)計(jì)、實(shí)時(shí)時(shí)鐘模塊設(shè)計(jì)、 LCD 顯示模塊設(shè)計(jì)、鍵盤(pán)掃描程序以及按鍵消抖程序。 本系統(tǒng)的工作流程是:系統(tǒng)上電后,對(duì)電路板上的各部分初始化;然后按下按鍵 2,對(duì)時(shí)間進(jìn)行設(shè)定;按下按鍵 3 之后,對(duì)燒水溫度進(jìn)行設(shè)定;按下按鍵 4后,對(duì)燒水時(shí)間進(jìn)行設(shè)定,當(dāng)溫度超過(guò)設(shè) 定的溫度之后,蜂鳴器工作,系統(tǒng)停止工作;在系統(tǒng)受到較強(qiáng)干擾時(shí),按下按鍵 1 可以對(duì)單片機(jī)進(jìn)行復(fù)位。 主程序模塊 主程序主要完成的是對(duì)個(gè)全局變量進(jìn)行定義,對(duì)時(shí)鐘與時(shí)間的初始化,調(diào)用子函數(shù)功能。 具體流程圖如圖 所示。 主程序清單如下: void main() { bit bz=0。 float ttt。 char we[6]。 unsigned int i。 int te。 delayms(1)。 chushishizhong()。 //初始時(shí)鐘 chushishijian()。 //初始時(shí)間 //writetime()。 kaishi: write(0x01)。 //清零 while(1) { readtime()。 //讀取時(shí)間 t[0]=shijian[4]/10+0x30。 //時(shí)間數(shù)據(jù)處理 t[1]=shijian[4]%10+0x30。 t[3]=shijian[5]/10+0x30。 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 31 t[4]=shijian[5]%10+0x30。 t[6]=shijian[6]/10+0x30。 t[7]=shijian[6]%10+0x30。 tt[2]=shijian[1]/10+0x30。 tt[3]=shijian[1]%10+0x30。 tt[5]=shijian[2]/10+0x30。 tt[6]=shijian[2]%10+0x30。 tt[8]=shijian[3]/10+0x30。 tt[9]=shijian[3]%10+0x30。 writestr(0,0,tt)。 //顯示時(shí)間 處理 writestr(0,10, data)。 writestr(1,0,t)。 writestr(1,10, time)。 aj=keyscan()。 //檢測(cè)按鍵 調(diào)用對(duì)應(yīng)的子程序 } 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 32 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 33 DS18B20 測(cè)溫模塊 此模塊主要任務(wù)是對(duì) DS18B20 進(jìn)行初始化,然后再進(jìn)行讀字節(jié)、寫(xiě)字節(jié)的工作,最后將讀得的 16 進(jìn)制溫度傳送到處理器內(nèi)進(jìn)行處理。 DS18B20 測(cè)溫流程圖如圖 所示 具體程序如下: sbit wen=P1^0。 //數(shù)據(jù)口選擇 bit chushi18b20() //初始化 DS18B20 的讀數(shù) { bit dat。 wen=1。 //先將數(shù)據(jù)線置高電平 delayus(1)。 //調(diào)用延時(shí) wen=0。 //數(shù)據(jù)線置低電平 delayus(200)。 //調(diào)用延時(shí) delayus(200)。 wen=1。 //數(shù)據(jù)線置高電平 delayus(30)。 //延時(shí)等待 dat=wen。 //CPU讀溫度 delayus(50)。 //調(diào)用延時(shí) return dat。 //讀 返回值 } uchar readds() //讀 8 位數(shù)據(jù) 開(kāi)始 初始化DS18B20 讀 DS18B20測(cè)得的溫度 圖 DS18B20 測(cè)溫流程圖 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 34 { uchar dat。 uchar i。 for(i=0。i8。i++) //循環(huán) 8 次移位 { wen=0。 dat =1。 //數(shù)據(jù)右移移位 wen=1。 if(wen) dat| =0x80。 //最高位置 1 else dat amp。=0x7f。 //最高位置 0 delayus(30)。 //調(diào)用延時(shí) } return dat。 //得到 8 位數(shù)據(jù) } void writeds(uchar dat) //數(shù)據(jù)寫(xiě)入 { uchar i。 for(i=0。i8。i++) //循環(huán) 8 次移位 { wen=0。 wen= dat amp。 0x01。 //從字節(jié)的最低位開(kāi)始傳輸 delayus(30)。 wen=1。 dat =1。 //數(shù)據(jù)右移一位 } delayus(10)。 //寫(xiě)時(shí)序持續(xù) 60us } unsigned int duwendu() //讀溫度 { uchar a。 unsigned int q,w。 //分別定義溫度的高八位,低八位與總溫度 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 35 chushi18b20()。 writeds(0xcc)。 //讀低溫 writeds(0x44)。 //讀高溫 delayms(15)。 chushi18b20()。 writeds(0xcc)。 //忽略 ROM 指令 writeds(0xbe)。 //讀暫存器指令 delayms(15)。 a=readds()。 //低八位數(shù)據(jù) q=readds()。 //高八 位數(shù)據(jù) q= q 8。 w=q+a。 return w。 //得到 2 進(jìn)制的溫度示值 } 實(shí)時(shí)時(shí)鐘模塊 實(shí)時(shí)時(shí)鐘模塊完成時(shí)間的設(shè)定與時(shí)間的讀取,包括年、月、日、時(shí)、分、秒。 具體流程圖如圖 所示 開(kāi)始 DS1302 初始化 讀取 DS1302時(shí)間 顯示 時(shí)、分、秒 圖 DS1302 顯示流程圖 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 36 具體程序如下: define uchar unsigned char sbit res= P2^0。 //數(shù)據(jù)命令口選擇 sbit clo= P2^2。 //脈沖信號(hào)口選擇 sbit io=P2^1。 //數(shù)據(jù)口選擇 define miao 0x80//秒 define fen 0x82//分 define shi 0x84//時(shí) define ri 0x86//日 define yue 0x88//月 define nian 0x8c//年 define kongzhi 0x8e//光標(biāo) uchar shijian[8]={20,12,1,1,0,0,0,0}。 //表示初始時(shí)間 uchar shijian1[8]。 void writeda(uchar add,uchar dat) { uchar i。 add =add amp。 0xfe。 //地址清零 res=1。 //復(fù)位信號(hào) for(i=0。i8。i++) //循環(huán) 8 次移位 { if(add amp。 0x01) //若地址不為 0 io=1。 //傳輸數(shù)據(jù) else io=0。 clo=1。 //有脈沖信號(hào) delayus(1)。 clo=0。 //無(wú)脈沖信號(hào) add =1。 //數(shù)據(jù)右移 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 37 } for(i=0。i8。i++) //寫(xiě)數(shù)據(jù) { if(dat amp。 0x01) //有數(shù)據(jù) io=1。 else io=0。 clo=1。 delayus(1)。 clo=0。 dat =1。 } res=0。 //不進(jìn)行復(fù)位操作 } uchar readda(uchar add) //讀數(shù)據(jù) { uchar dat。 uchar i。 add |=0x01。 //低位置 1 res=1。 for(i=0。i8。i++) { if(add amp。 0x01) /若低位為 1,則將數(shù)據(jù)傳送到處理器內(nèi),否則傳送 0 io=1。 else io=0。 clo=1。 delayus(1)。 clo=0。 add =1。 } for(i=0。i8。i++) 八位循環(huán)位移 { 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 38 dat =1。 if(io) dat |=0x80。 //高位置 1 else dat amp。=0x7f。 //高位置 0 clo=1。 delayus(1)。 clo=0。 } res=0。 return dat。 } void writetime() //寫(xiě)時(shí)間 { uchar i,te。 for(i=0。i8。i++) { te=shijian[i]/10。 //將時(shí)間轉(zhuǎn)換為 10 進(jìn)制 shijian1[i]=shijian[i]%10。 shijian1[i]=te*16+shijian1[i]。 } writeda(kongzhi,0x00)。 //kongzhi 關(guān) writeda(miao,0x80)。 //miao 停 writeda(miao,shijian1[6])。 writeda(fen,shijian1[5])。 writeda(shi,shijian1[4])。 writeda(ri,shijian1[3])。 writeda(yue,shijian1[2])。 writeda(nian,shijian[1])。 writeda(kongzhi,0x80)。 //kongzhi 開(kāi) } void readtime() //讀時(shí)間 南京工程學(xué)院康尼學(xué)院本科畢業(yè)設(shè)計(jì)(論文 ) 39 { uchar i,te。 shijian1[1]=readda(nian)。 shijian1[2]=readda(yue)。 shijian1[3]=readda(ri)。 shijian1[4]=readda(shi)。 shijian1[5]=readda(fen)。 shijian1[6]=readda(miao)。 for(i=0。i8。i++) //進(jìn)制轉(zhuǎn)換 { te=shijian1[i]/16。 shijian[i]=shijian1[i]%16。 shijian[i]=te*10+shijian[i]。 } } void chushishijian() //初始時(shí)間 將秒位置 0 { res=0。 clo=0。 writeda(miao,0x00)。 } LCD 顯示模塊 LCD 顯示模塊主要實(shí)現(xiàn)各個(gè)數(shù)據(jù)的顯示功能,
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1