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

正文內(nèi)容

單片機課程設(shè)計論文-基于51單片機的ds18b20數(shù)字溫度計的設(shè)計-資料下載頁

2024-11-03 20:31本頁面

【導讀】專業(yè)班級:電氣083班。中原工學院信息商務(wù)學院課程設(shè)計

  

【正文】 25 參考文獻 [1] 張五一,張道光 .微機原理與接口技術(shù) .鄭州:河南科學技術(shù)出版社, 2020 [2] 李廣弟 .單片機基礎(chǔ) . 北京:北京航 空航天大學出版社, 1994 [3] 廖常初 .現(xiàn)場總線概述 .電工技術(shù), 1999. [4] 倪曉軍 .單片機原理與接口技術(shù)教程 .北京:清華大學出版社, 2020 [5] 姚 年 春 向華 Protel99SE 基礎(chǔ)教程 . 北京 .人民名郵電出版社, 2020 [6] 韓穎 。 Proteus 在單片機技術(shù)實訓教學中的應用 [J]。中國科教創(chuàng)新導刊 。2020 年 31 期 [7] 周靈彬 。張靖武 .PROTEUS 的單片機教學與應用仿真 [J].單片機與嵌入式系統(tǒng)應用 。2020 年 01 期 附錄: DS18B20 顯示程序 include define uint unsigned int define uchar unsigned char //宏定義 sbit p34=P2^4。 sbit p35=P2^5。 sbit p36=P2^6。 sbit dp=P0^7。 sbit p37=P2^7。 sbit DQ=P2^2。 //定義 DS18B20 總線 I/O sbit SET=P3^1。 //定 義選擇報調(diào)整警溫度上限和下限( 1 為上限, 0 為下限) /**** 和 為調(diào)整溫度報警增加鍵和減少鍵 ******/ sbit LING=P2^0。 //定義響鈴 signed char m。 //溫度值全局變量 bit sign=0。 //外部中斷狀態(tài)標志 signed char shangxian=38。 //上限報警溫度,默認值為 38 signed char xiaxian=6。 //下限報警溫度,默認值為 5 uchar code LEDData[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}。 /*****延時子程序 *****/ void Delay(uint i) { while( i )。 } /*****初始化 DS18B20*****/ 中原工學院信息商務(wù)學院課程設(shè)計 26 void Init_DS18B20(void) { unsigned char x=0。 DQ=1。 Delay(8)。 //稍做延時 DQ=0。 //單片機將 DQ 拉低 Delay(80)。 //精確延時,大于 480us DQ=1。 //拉高總線 Delay(14)。 x=DQ。 //稍做延時后,如果 x=0 則初始化成功, x=1 則初始化失敗 Delay(20)。 } /*****讀一個字節(jié) *****/ unsigned char ReadOneChar(void) { unsigned char i=0。 unsigned char dat=0。 for (i=8。i0。i) { DQ=0。 // 給脈 沖信號 dat=1。 DQ=1。 // 給脈沖信號 if(DQ) dat|=0x80。 Delay(4)。 } return(dat)。 } /*****寫一個字節(jié) *****/ void WriteOneChar(unsigned char dat) { unsigned char i=0。 for (i=8。 i0。 i) { DQ=0。 DQ=datamp。0x01。 Delay(5)。 DQ=1。 dat=1。 } } void Tmpchange(void) //發(fā)送溫度轉(zhuǎn)換命令 { Init_DS18B20()。 WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0x44)。 //啟動溫度轉(zhuǎn)換 中原工學院信息商務(wù)學院課程設(shè)計 27 } /*****讀取溫度 *****/ unsigned int ReadTemperature(void) { unsigned char a=0。 unsigned char b=0。 unsigned int t=0。 float tt=0。 Tmpchange()。 Init_DS18B20()。 WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器 a=ReadOneChar()。 //讀低 8 位 b=ReadOneChar()。 //讀高 8 位 t=b。 t=8。 t=t|a。 tt=t*。 t= tt*100+。 //放大 10 倍輸出并四舍五入 return(t)。 } /*****顯示開機初始化等待畫面 *****/ Disp_init() { P0 = 0x80。 //顯示 p34=1。p35=0。p36=0。p37=0。 Delay(200)。 P0 = 0x80。 p34=0。p35=1。p36=0。p37=0。 Delay(200)。 P0 = 0x80。 p34=0。p35=0。p36=1。p37=0。 Delay(200)。 P0 = 0x80。 p34=0。p35=0。p36=0。p37=1。 Delay(200)。 P0 = 0x80。 } /*****顯示溫度子程序 *****/ Disp_Temperature() //顯示溫度 { uint a,b,c,d,e。 e=ReadTemperature()。 //獲取溫度值 a=e/1000。 //計算得到十位數(shù)字 中原工學院信息商務(wù)學院課程設(shè)計 28 b=e/100a*10。 //計算得到個位數(shù)字 d=e%10。 //計算得到小數(shù)點后兩位 c=(e%100)/10。 //計算得到小數(shù)點后一位 m=e/100。 if(mshangxian || mxiaxian) LING=1。 //溫度不在范圍內(nèi)報警 else LING=0。 p34=0。p35=0。p36=0。p37=0。 P0 =LEDData[d]。 //顯示小數(shù)點后兩位 p34=1。p35=0。p36=0。p37=0。 Delay(300)。 p34=0。p35=0。p36=0。p37=0。 P0 =LEDData[c]。 //顯示小數(shù)點后一位 p34=0。p35=1。p36=0。p37=0。 Delay(300)。 p34=0。p35=0。p36=0。p37=0。 P0 =LEDData[b]。 //顯示個位 dp=0。 p34=0。p35=0。p36=1。p37=0。 Delay(300)。 p34=0。p35=0。p36=0。p37=0。 P0 =LEDData[a]。 //顯示十位 p34=0。p35=0。p36=0。p37=1。 Delay(300)。 p34=0。p35=0。p36=0。p37=0。 //關(guān)閉顯示 } disptiaozheng() { uchar f,g,j,k。 f=shangxian/10。 g=shangxian%10。 j=xiaxian/10。 k=xiaxian%10。 p34=0。p35=0。p36=0。p37=0。 P0 =0xc0。 //顯示 0 p34=1。p35=0。p36=0。p37=0。 Delay(200)。 p34=0。p35=0。p36=0。p37=0。 P0 =0xc0。 //顯示 0 p34=0。p35=1。p36=0。p37=0。 Delay(200)。 p34=0。p35=0。p36=0。p37=0。 if(SET==1) { P0 =LEDData[g]。 dp=0。 //顯示上限溫度個位 } else 中原工學院信息商務(wù)學院課程設(shè)計 29 { P0 =LEDData[k]。 dp=0。 } p34=0。p35=0。p36=1。p37=0。 Delay(200)。 p34=0。p35=0。p36=0。p37=0。 if(SET==1) P0 =LEDData[f]。 //顯示上限溫度十位 else { if(f==0) P0=0x00。 //不顯示下限溫度十位 else P0 =LEDData[j]。 //顯示下限溫度十位 } p34=0。p35=0。p36=0。p37=1。 Delay(200)。 p34=0。p35=0。p36=0。p37=0。 //關(guān)閉顯示 Delay(20)。 } /*****外部中斷 0 服務(wù)程序 *****/ void int0(void) interrupt 0 { EX0=0。 //關(guān)外部中斷 0 sign=1。 if(SET==1) shangxian++。 else xiaxian++。 Delay(500)。 EX0=1。 } /*****外部中斷 1 服務(wù)程序 *****/ void int1(void) interrupt 2 { EX1=0。 //關(guān)外部中斷 0 sign=1。 if(SET==1) shangxian。 else xiaxian。 Delay(500)。 EX1=1。 } /*****主函數(shù) *****/ void main(void) { uint z。 中原工學院信息商務(wù)學院課程設(shè)計 30 IT0=1。 IT1=1。 EX0=1。 EX1=1。 EA=1。 ReadTemperature()。 LING=0。 for(z=0。z100。z++) { Disp_init()。 } while(1) { Disp_Temperature()。 if(sign==1) { for(z=0。z300。z++) disptiaozheng()。 sign=0。 } } }
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1