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

正文內(nèi)容

基于ds18b20的多點(diǎn)溫度測量及報警課程設(shè)計報告(編輯修改稿)

2024-10-03 19:31 本頁面
 

【文章內(nèi)容簡介】 t e m p 5 0H _ t e m p = 5 0 H _ t e m p = 5 0YYYYYYYYYY YNNNNN NNNNN 檢測鍵盤掃描是否有返回值,判斷是否有按鍵按下。若無按鍵按下,則進(jìn)行數(shù)碼管顯示數(shù)據(jù)處理;若有按鍵按下且為 K1 鍵, mode 自加 1 ,并判斷 mode是否大于 2,若大于 2, mode 清零后輸出,若不大于 2,直接輸出 mode;若有按鍵按下且為 K2 鍵,判斷 mode 是否為 1,若為 1,上限報警溫度自加 1(不超過 125176。),若不為 1,進(jìn)行下限報警溫度自加 1(不超過 125176。);若有按鍵按下且為 K3 鍵,判斷 mode 是否為 1,若為 1,上限報警溫度自減 1(不低于 50176。),若不為 1,進(jìn)行下限報警溫度自減 1(不超 過 50176。)。 六. 設(shè)計總結(jié)及 參考資料 設(shè)計總結(jié) 本次課程設(shè)計我們將兩個 DS18B20和 AT89C51單片機(jī)相結(jié)合實(shí)現(xiàn)了多點(diǎn)溫度測量。對單片機(jī)的獨(dú)立控制外設(shè)而言難度不大,但由于不會用同一個 I/O 口控制多個 DS18B20,因此用兩個獨(dú)立的 I/O口分別對其控制,故編寫的程序有些繁瑣。本次設(shè)計的不足是,第二個 DS18B20 測得溫度的小數(shù)部分一直無法顯示,經(jīng)過多17 次調(diào)試仍然沒有結(jié)果,但基本功能都已實(shí)現(xiàn)。雖然課程設(shè)計結(jié)束了,但我們?nèi)詴⑦@一問題解決。 經(jīng)過本次設(shè)計實(shí)驗,充分認(rèn)識到自己實(shí)際操作方面的不足以及程序編寫不夠熟練等問題,因此需要多加練習(xí)。同時也更加明確了我們在接下來的學(xué)習(xí)中的側(cè)重方向,作為工科專業(yè)應(yīng)該更加注重理論與實(shí)際的結(jié)合,并且持之以恒地堅持,只有這樣不斷提高自己的專業(yè)素養(yǎng)。 參考文獻(xiàn) [1]李群芳 . 單片機(jī)微型計算機(jī)與接口技術(shù)第三版 .電子工業(yè)出版社, [2] 謝自美.電子線路設(shè)計.實(shí)驗測試(第二版)[ M].武漢:華中科技大學(xué)出版社, 2020. [3] 丘玉娟. 用串行 ROM和 AT89C51實(shí)現(xiàn)電子密碼鎖[ J].電腦知識與技術(shù) . 2020,11( 3): 34~ 36 [4]李金平 ?電子系統(tǒng)設(shè)計 ?電子工業(yè)出版社 ?2020 18 七.附件 附件一:完整源程序 include include //定義使用的 IO// sbit LSA=P2^2。 sbit LSB=P2^3。 sbit LSC=P2^4。 //譯碼器 sbit DQ=P3^7。 //定義第一個 18B20 單總線端口 sbit DQ1=P3^6。 //定義第二個 18B20 單總線端口 sbit key1=P1^0。 //模式切換(上限,下限,當(dāng)前) sbit key2=P1^1。 //溫度上 /下限 ++ sbit key3=P1^2。 //溫度上 /下限 sbit BEEP=P1^5。 //定義蜂鳴器接口 //定義全局變量 // unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x40,0x00}。 //數(shù)碼管表,其中 display[10]. display[11] display[12]不顯示 unsigned char mode=0,KEY。 //mode 是模式切換變量, KEY=key_back(按鍵返回值 ) unsigned char n=0。 //數(shù)碼管位數(shù) unsigned int temp_buff[9],temp1_buff[9],*p,*q,id_buff[8],id1_buff[8]。 //利用指針和數(shù)組進(jìn)行數(shù)據(jù)傳輸 unsigned char symbol,symbol1。 //正負(fù) 標(biāo)志位 unsigned char sflag,tltemp。 //負(fù)溫度標(biāo)志和臨時暫存變量 unsigned char TL。 //存儲暫存器的溫度低位 unsigned char TH。 //存儲暫存器的溫度高位 unsigned char TN,TN1。 //TN:第一個 DS18B20 測得溫度的整數(shù)部分, TN1:第二個DS18B20 測得溫度的整數(shù)部分 unsigned char TD,TD1。 //TD:第一個 DS18B20 測得溫度的小數(shù)部分, TD1:第二個DS18B20 測得溫度的小數(shù)部分 char temp[8]。 //溫度數(shù)據(jù)顯示的緩存 char H_temp=30。 //上限報警溫度 char L_temp=0。 //下限報警溫度 bit flag。 //函數(shù)聲明 // char cabs(char val)。 //取絕對值函數(shù) void delay(unsigned char)。 //短延時函數(shù) void delay1ms(unsigned int)。 //長延時函數(shù) bit Init18B20(void)。 //第一個 DS18B20 初始化函數(shù) 19 bit Init118B20(void)。 //第二個 DS18B20 初始化函數(shù) void Write0neChar(unsigned char)。 //向第一個 DS18B20 寫一個字節(jié) void Write0neChar1(unsigned char)。 //向第二個 DS18B20 寫一個字節(jié) unsigned char Read0neChar(void)。 //從第一個 DS18B20 讀一個字節(jié) unsigned char Read0neChar1(void)。 //從第二個 DS18B20 讀一個字節(jié) void Read_18B20(unsigned char)。 //讀第一個 DS18B20 void Read1_18B20(unsigned char)。 //讀第二個 DS18B20 ReadTemperature(void)。 //讀第一個 DS18B20 的溫度 ReadTemperature1(void)。 //讀第二個 DS18B20 的溫度 void beep(void)。 //蜂鳴器函數(shù) void check_alarm(void)。 //檢測第一個 DS18B20 是否超過限值并報警 void check1_alarm(void)。 //檢測第二個 DS18B20 是否超過限值并報警 unsigned char key_scan()。 //按鍵掃描 void key_action(key)。 //按鍵處理 void display_transaction()。 //第一個 DS18B20 顯示數(shù)據(jù)處理 void display_transaction1()。 //第二個 DS18B20 顯示數(shù)據(jù)處理 //短延時 // void delay(unsigned char us) { while(us)。 } //長延時 // void delay1ms(unsigned int x) { unsigned char i,j。 for(i=0。ix。i++) for(j=1。j120。j++)。 } //蜂鳴器 // void beep(void) { BEEP=0。 delay1ms(1)。 BEEP=~BEEP。 delay1ms(1)。 } //按鍵掃描 // unsigned char key_scan(void) { unsigned char key_back。 key_back=0。 if(!key1|!key2|!key3) 20 { delay1ms(10)。 if(!key1|!key2|!key3)
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1