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

正文內容

畢業(yè)論文——基于ds18b20的溫度顯示及其報警控制系統(tǒng)(含完整原理圖及c程序)(文件)

2025-02-03 23:20 上一頁面

下一頁面
 

【正文】 機重啟后按 KEY1 鍵顯示的溫度范圍值為上次設置的值,說明溫度范圍值存儲成功 。 整體程序請見附錄 C。 本次設計的數(shù)字溫度報警系統(tǒng)經過多次測試,工作穩(wěn)定可靠、靈敏度較高、抗干擾能力強等特點。 在此我謹向我的導師以及同樣在畢業(yè)設計過程中給予我很大幫助的豐老師、同學們致以最誠摯的謝意! 最后感謝 08 級電子一班的所有同學和物理學院的所有老師 和同學們,在這四年里,他們教會了我許多專業(yè)知識,給了我很多幫助與支持,因為有了他們,我的大學生活才過得如此充實,謝謝他們! 湖南科技大學本科生畢業(yè)設計 25 附件 A: 整機硬件電路圖 湖南科技大學本科生畢業(yè)設計 26 附件 B: 硬件實物圖 湖南科技大學本科生畢業(yè)設計 27 附件 C: 程序清單 include include define uchar unsigned char define uint unsigned int /***********定義端口 ***********/ sbit sda=P2^7。 //蜂鳴器信號 sbit feng=P2^3。 sbit KEY3=P3^2。 //上限報警溫度乘 10 后的數(shù)據(jù) uchar xia。 //各按鍵計數(shù)值 uint key2=0。 /**********延時函數(shù) ***********/ void delayms(uint z) { uint x,y。y0。 TL0=(65536250)%256。 //蜂鳴器電平取反 } } 湖南科技大學本科生畢業(yè)設計 29 /***********IIC 開始信號 ***********/ void start() { sda=1。 sda=0。 scl=1。 } /***********IIC 應答信號 ***********/ void respons() { uchar i。amp。 } /***********IIC 初始化 ***********/ /*void init() { sda=1。 } */ /***********向 EEPROM 寫一個字節(jié) ***********/ void write_byte(uchar date) { uchar i,temp。i++) { temp=temp1。 delay()。 delay()。 scl=0。 for(i=0。 k=(k1)|sda。 } /***********向 EEPROM 指定地址寫一個字節(jié) ***********/ void write_add(uchar address,uchar date) { start()。 respons()。 } /***********從 EEPROM 指定地址讀一個字節(jié) ***********/ uchar read_add(uchar address) { uchar date。 write_byte(address)。 respons()。 } 湖南科技大學本科生畢業(yè)設計 32 /***********顯示程序 ***********/ void dis_temp(uint t) { uchar i。 delayms(5)。 delayms(5)。 delayms(7)。 while(i0)i。 } /***********讀 1 位函數(shù) ***********/ bit tempreadbit(void) { uint i。 //i++ 起延時作用 ds=1。 i=8。 dat=0。 dat=(d7)|(dat1)。 bit testb。0x01。i++。 } else 湖南科技大學本科生畢業(yè)設計 34 { ds=0。 i++。 dis_temp(temp)。 TR0=0。 tempwritebyte(0xcc)。 //讀高 8 位 temp=b。 //溫度在寄存器中為 12 位 分辨率位 176。 //temp 是整型 } /***********報警和控制函數(shù) ***********/ void deal() { uint i=temp/10。 //關風扇 warm=1。buzzer=1。amp。 //開風扇 warm=0。 //開風扇 warm=0。buzzer=1。 key1++。 i=10。 while(i)dis_temp(xia*10)。 湖南科技大學本科生畢業(yè)設計 37 } } if(key1==2) { dis_temp(shang*10)。 //去抖延時 } if(KEY2==0) { shang++。 i=10。 //如果按鍵值大于 2 則調零 。 } } } dis_temp(temp)。 while(i)dis_temp(shang*10)。 i=10。 i=10。 //去抖延時 } if(KEY2==0) //如果按 KEY2 則下限溫度加 1 { xia++。 //首先顯示下限溫度,用于延時 while(key13) { if(key1==1) //轉換成下限溫度模式 { dis_temp(xia*10)。 //關風扇 warm=0。amp。 //開啟定時器 0 buz=1。buzzer=1。 //關風扇 warm=1。amp。 //啟動定時器 0 buz=5。 //加 是四舍五入 湖南科技大學本科生畢業(yè)設計 35 temp=f_temp*10。 //兩個字節(jié)組合為 1 個字 temp=temp|a。 a=tempread()。 //溫度轉換 dsreset()。 // 寫跳過讀 ROM 指令 tempwritebyte(0x44)。 } } } /***********DS18B20 開始獲取溫度并轉換 ***********/ void tempchange() { TR0=0。while(i0)i。 i=8。 if(testb) //寫 1 { ds=0。j=8。 } /***********向 18B20 寫一個字節(jié)數(shù)據(jù) ***********/ void tempwritebyte(uchar dat) { uint i。c=8。 return (dat)。i++。 ds=0。 i=4。 ds=0。 P0=table[i]。 P0=tabler[i]。 P0=table[i]。 stop()。 start()。 write_byte(0xa0)。 respons()。 respons()。 delay()。i++) { scl=1。 sda=1。 delay()。 delay()。 delay()。 for(i=0。 scl=1。 scl=0。 delay()。 sda=1。 } /***********IIC 停止信號 ***********/ void stop() { sda=0。 scl=1。 //每 加一次 if(tentbuz) //記滿 buz 次時 { tent=0。 } void delay() {。x0。 /**********不帶小數(shù)點的數(shù)碼管碼 ***********/ uchar code table[]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f }。 //蜂鳴器頻率計數(shù) uchar tent。 //整型溫度數(shù)據(jù) float f_temp。 sbit KEY1=P3^0。 sbit ds=P2^5。 湖南科技大學本科生畢業(yè)設計 23 參 考 文 獻 [1] 張毅剛、彭喜元 .《單片機原理與應用設計》 :電子工業(yè)出版社, :1013 [2] 郭天祥 .《新概念 51 單片機 C 語言教程》 :電子工業(yè)出版社, :343 [3] 郭天祥 .《新概念 51 單片機 C 語言教程》 :電子工業(yè)出版社, :185 [4] 康 華光 .《電子技術基礎模擬部分》 :高等教育出版社, :103110 湖南科技大學本科生畢業(yè)設計 24 致 謝 本課題在選題及研究過程中得到聶老師的悉心指導,在設計過程中遇到了很多困難,得到了指導老師和周圍同學的幫助,在他們的幫助下 我順利完成了畢業(yè)設計。 在本系統(tǒng)設計過程中遇到了 很 多問題, 特別是在程序調試方面, 在解決這些問題的過程中,使我學到許多東西, 深深感到實踐 對于理論的重要性 。 當溫度還差 3176。 蜂鳴器發(fā)聲測試:經測試,可以通過程序控制蜂鳴 器發(fā)出不同的聲音。 湖南科技大學本科生畢業(yè)設計 20 小結 系統(tǒng)采用 C語言編程,編程軟件采用 Keil uVision4,在程序的構思和編寫及調試過程中同樣遇到很多困難,尤其是調試過程中發(fā)現(xiàn)了很多編程的不好的習慣導致程序出現(xiàn) 致命問題,但是最后還是通過努力順利地調試成功,在以后的編程中一定要注意改掉這些不好的編程習慣。報警采用蜂鳴器,利用單片機的定時器控制蜂鳴器的頻率進行報警。 date=read_byte()。 //寫入地址 respons()。 start()。 write_byte(date)。 //開始信號 write_byte(0xa0)。 典型的 I2C 字節(jié)讀取周期的操作過程是:主執(zhí)行設備用一個起始條件啟動傳輸,接著發(fā)送設備地址,該地址是要讀取數(shù)據(jù)字節(jié)的設備的地址,以高位在前、低位在后的方式發(fā)送。 數(shù)據(jù) 的發(fā)送如圖 45所示,圖中主執(zhí)行設備將數(shù)據(jù)位的值放在 SDA 信號線上,同時 SCL 信號線為低, SDA 信號線上的值要一直保持到 SCL 信號線出現(xiàn)時鐘脈沖。 I2C 總線上的數(shù)據(jù)傳輸用一個終止 條件來結束。 I2C 總線由兩條導線構成,數(shù)據(jù)導線稱為串行數(shù)據(jù)線 (SDA),時鐘導線稱為串行時鐘線 (SCL),即可發(fā)送數(shù)據(jù),也可接受數(shù)據(jù) 。 按鍵 設置程序 按鍵 1對應鍵值 key1的大小進行模式轉換,每掃描到鍵 1按下時 key1加 1,當 key1=1時為下限設置模式, key1=2時為上限設置模式, key1=3時滿足 “key12”,此時將 key1清零。 if(KEY1==0)set()。 dis_temp(temp)。 //溫度轉換 dis_temp(temp)。 TH0=(65536250)/256。 shang=read_add(4)。 系統(tǒng)主流程圖如圖 41: 圖 41 系統(tǒng)主流程 主程序設計 系統(tǒng) 軟件 主要在溫度顯示和鍵盤掃描之間循環(huán),隔一段時間才對 DS18B20進行溫度獲取,所以顯示和掃描循環(huán) 50次后再和溫度測量部分構成系統(tǒng)大循環(huán),即大約每一秒獲取一次溫度數(shù)據(jù)。整機硬件電路圖請見附錄 A。電路如圖 310 圖 310 溫度控制電路 湖南科技大學本科生畢業(yè)設計 13 顯示電路 顯示部分可以用液晶顯示和數(shù)碼管顯示,由于本系統(tǒng)需要顯示的只有數(shù)字,故用數(shù)碼管顯示即可。 GND:電源地 (GND)。使用 AT24C02 最大可級聯(lián) 8 個器件。 AT24C02 的引腳如圖 37,各引腳功能如下 [3]: SCL:串行時鐘輸入管腳,用于產生器件所有數(shù)據(jù)發(fā)送或接收的時鐘。 圖 36 溫度調整按鍵電
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1