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

正文內(nèi)容

基于單片機的數(shù)字溫度計及其報警系統(tǒng)畢業(yè)論文(參考版)

2025-03-02 10:23本頁面
  

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