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

正文內(nèi)容

基于單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文-在線瀏覽

2025-05-01 11:55本頁面
  

【正文】 22 腳): ~ 統(tǒng)稱為 P0 口。當(dāng)接有外部程序存儲器或擴(kuò)展 I/O 口時(shí),P0 口為地址 /數(shù)據(jù)分時(shí)復(fù)用口。 對于片內(nèi)含有 EPROM 的單片機(jī),當(dāng) EPROM 編程時(shí),從 P0 口輸入指令字節(jié),而當(dāng)檢驗(yàn)程序時(shí), 則輸出指令字節(jié)。對于 MCS— 52 子系列單片機(jī), 和 還有第 2 功能: 口用作定時(shí)器 /計(jì)數(shù)器 2 的計(jì)數(shù)脈沖輸入端 T2; 用作定時(shí)器 /計(jì)數(shù)器 2的外部控制端 T2EX。 (C).P2 口( 21腳~ 28 腳): ~ 統(tǒng)稱為 P2 口,一般可作為準(zhǔn)雙向 I/O 接口。對于 EPROM 編程和進(jìn)行程序校驗(yàn)時(shí), P2 口接收輸入的 8位地址。它為雙功能口,可以作為一般的準(zhǔn)雙向 I/O 接口,也可以將每 1 位用于第 2 功能,而且 P3 口的每一條引腳均可獨(dú)立定義為第 1功能的輸入輸出或第 2 功能。 引腳 第 2功能 RXD(串行口輸入端 0) TXD(串行口輸出端) INT0(部中斷 0請求輸入 端,低電平有效) INT1(中斷 1請求輸入端,低電平有效) T0(時(shí)器 /計(jì)數(shù)器 0計(jì)數(shù)脈沖端) T1(時(shí)器 /計(jì)數(shù)器 1數(shù)脈沖端) WR(部數(shù)據(jù)存儲器寫選通信號輸出端,低電平有效) RD(部數(shù)據(jù)存儲器讀選通信號輸出端,低電平有效) 第 9 頁 共 48 頁 (四 )溫度傳感器電路 采用一線制數(shù)字溫度傳感器 DS18B20 來作為本課題的溫度傳感器 。 DS18B20 溫度傳感器是美國達(dá)拉斯 (DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。本設(shè)計(jì)中溫度傳感器之所以選擇單線數(shù)字器件 DS18B20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因: ( 1)系統(tǒng)的特性:測溫范圍為 55℃~ +125℃ ,測溫精度為士 ℃ ;溫度轉(zhuǎn)換精度9~ 12 位可變,能夠直接將溫度轉(zhuǎn)換值以 16 位二進(jìn)制數(shù)碼的方式串行輸出; 12 位精度轉(zhuǎn)換的最大時(shí)間為 750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。一支 DS18B20 的體積與普通三極管相差無幾,價(jià)格只有十元人民幣左右。 ( 4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。 DS18B20 溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口 DQ ,外供電源線 VDD,共用地線 GND。這種情況下,用單片機(jī)的一個(gè) I/O 口來完成對 DS18B20 總線的上拉。 在本設(shè)計(jì)中采用外部供電方式實(shí)現(xiàn) DS18B20 傳感器與單片機(jī)的連接,其接口電路如圖4所示。 該器件內(nèi)部集成頻率補(bǔ)償和固定頻率發(fā)生器 ,開關(guān)頻率為 150KHz,與低頻開關(guān)調(diào)節(jié)器相比較,可以使用更小規(guī)格的濾波元件。 4%的范圍內(nèi),振蕩頻率誤差在177。 第 11 頁 共 48 頁 圖 5 系統(tǒng)電源模塊 (六 )LCD 顯示電路 本課題設(shè)計(jì)的溫度控制系統(tǒng)是采用液晶屏 128*64 作為顯示模塊,其接口原理圖如 下圖 6所示: 圖 6 液晶顯示接口電路 (七 )串口通訊電路 本課題設(shè)計(jì)的 通訊采用的是常見的串口通訊,協(xié)議轉(zhuǎn)換芯片是采用 MAX232A,其接口原理圖如下圖 7所示: 第 12 頁 共 48 頁 圖 6 串口通訊接口電路 (八 )按鍵接口電路 本課題設(shè)計(jì) 采用的 鍵盤模塊,其接口原理圖如下圖 8所示: 圖 8 鍵盤模塊電路 第 13 頁 共 48 頁 (九 )DS1302 時(shí)鐘電路 本課題設(shè)計(jì)的時(shí)鐘是采用時(shí)鐘芯片 DS1302,其接口原理圖如下圖 9所示: 圖 9 時(shí)鐘接口電路 (十 )存儲器接口電路 本課題設(shè)計(jì)的存儲器采用的是 AT24C256,其接口原理圖如下圖十所示: 圖 10 存儲 器 電路 三、系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)的軟件主要是采用 C語言,對單片機(jī)進(jìn)行變成實(shí)現(xiàn)各項(xiàng)功能。用的是循環(huán)查詢方式,來顯示和控制溫度,主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理 DS18B20 的測量的當(dāng)前溫度值并負(fù)責(zé)調(diào)用各子程序 ,其程序流程如圖 10 系統(tǒng)程序流程圖。其程序流程圖如圖 11 所示。其程序流程框圖如圖 12 所示。 第 17 頁 共 48 頁 圖 13 計(jì)算溫度子程序 (四 )顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為 0時(shí)將符 號顯示位移入下一位。 開始 溫度零下 ? 溫度值取補(bǔ)碼置“ — ”標(biāo)志 計(jì)算小數(shù)位溫度 BCD 值 計(jì)算整數(shù)位溫度 BCD 值 結(jié)束 置“ +”標(biāo)志 N Y 第 18 頁 共 48 頁 圖 14 數(shù)據(jù)刷新子程序 四、結(jié)束語 通過此次畢業(yè)論文的課題設(shè)計(jì),我們學(xué)會了怎樣把所學(xué)的書本知識應(yīng)用于實(shí)踐中去,并學(xué)會了如何去思考整個(gè)控制系統(tǒng)的軟硬件設(shè)計(jì)。此次課程設(shè)計(jì)不僅增強(qiáng)了我們學(xué)習(xí)專業(yè)課的興趣,而且給了我們勇氣和信心,更重要的是它為我們以后的學(xué)習(xí)指明了方向。 void DS1820_DelayCount (unsigned char Coun) { data unsigned char Count。 while(Count0) Count。 while(Count0) Count。 DS1820_DelayCount(412)。 DS1820_DelayCount(16)。 data unsigned char j。 while(TMDAT) { i。 } i=0xffff。 while(~TMDAT) { i。 else { j。 } } DS1820_DelayCount(16)。 } //等待 DS18B20 應(yīng)答 //讀取位 bit DS1820_Readbit(void) 第 23 頁 共 48 頁 { data int i=0。 TMDAT=0。i++。i++。i++。i++。i++。i++。 dat = TMDAT。 DS1820_DelayCount(32)。 } //讀取字節(jié) unsigned char DS1820_Readbyte(void) { data unsigned char i,j,dat=0。i=8。 dat=(j7)|(dat1)。 } //寫一個(gè)字節(jié) void DS1820_Writebyte(unsigned char dat) { data signed char i=0。 bit testb。j=8。 0x01。 if(testb) { TMDAT=0。i++。i++。i++。i++。 //DS1820_DelayCount(8)。 } else { TMDAT=0。 DS1820_DelayCount(32)。 i++。i++。i++。i++。 } } } //讀操作開始 unsigned char DS1820_StartTem(void) { EA=0。 if(DS1820_Answer()==aban_return) { EA=Ea。 } 第 25 頁 共 48 頁 // DS1820_Delayms(1)。 DS1820_Writebyte(0xcc)。 // for(i=0。i++) //DS1820_Writebyte(DS1820_temp[i])。 EA=Ea。 } //讀所有傳感器 int DS1820_ReadTem(void) { data unsigned char a,b。 data float y4。 EA=0。 if(DS1820_Answer()==aban_return) { EA=Ea。 } DS1820_Delayms(4)。 //跳過匹配傳感器 //DS1820_Writebyte(0x55)。i8。 DS1820_Writebyte(0xbe)。i9。 } if(CRC(9)!=0) { EA=1。 } //計(jì)算 CRC a = [0]。 DS1820_Reset()。 y4=y3。 EA=1。 } 二 、 DS1302 時(shí)鐘底層驅(qū)動程序 //DS1302 引腳定義 sbit rtc_sc=P3^4。 sbit rst_1302=P3^6。 sbit temp_0 = temp^0。 /************************************************************** DS1302 驅(qū)動程序開始 **************************************************************/ //功能 : 往 DS1302 寫入 1Byte 數(shù)據(jù) void v_RTInputByte(unsigned char ucDa) { unsigned char i。 for(i=8。 i) { rtc_io = temp_0。 rtc_sc = 0。 } } //功能 : 從 DS1302 讀取 1Byte 數(shù)據(jù) unsigned char uc_RTOutputByte(void) { unsigned char i。 for(i=8。 i) { temp = temp 1。 第 28 頁 共 48 頁 rtc_sc = 1。 } return(temp)。 ea=EA。 rtc_rs_portamp。 rtc_sc = 0。 v_RTInputByte(ucAddr)。 /* 寫 1Byte 數(shù)據(jù) */ rtc_sc = 1。=(~rtc_rs_bit)。 } //功能 : 讀取 DS1302 某地址的數(shù)據(jù) unsigned char read1302(unsigned char ucAddr) { unsigned char ucDa。 ea=EA。 rtc_rs_portamp。 rtc_sc = 0。 v_RTInputByte(ucAddr)。 /* 讀 1Byte 數(shù)據(jù) */ rtc_sc = 1。=(~rtc_rs_bit)。 return(ucDa)。 write1302(0x8e,0x00)。 i +=2。 i +=2。 i +=2。 i +=2。 i +=2。 i +=2。 i +=2。 /* 控制命令 ,WP=1,寫保護(hù) */ } 第 30 頁 共 48 頁 //功能 : 讀取 DS1302 當(dāng)前時(shí)間 void get1302(void) { unsigned char i,time_bcd_temp[6]。 for (i=0。i++) { time_bcd_temp[i] = read1302(ucAddr)。 } sec=time_bcd_temp[0]。 hou=time_bcd_temp[2]。 mon=time_bcd_temp[4]。 } //連續(xù) 6字節(jié)讀出程序 void ds1302_read(unsigned char *ptr,unsigned char addr) { unsigned char i。 for(i=0。i++) { *(ptr+i)=read1302(addr)。 } } //連續(xù) 6字節(jié)寫入程序 void ds1302_write(unsigned char *ptr,unsigned char addr) { unsigned char i。 write1302(0x8e,0x00)。i6。 addr+=2。 //寫保
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1