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

正文內(nèi)容

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

 

【正文】 INT1(中斷1請(qǐng)求輸入端,低電平有效)T0(時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖端)T1(時(shí)器/計(jì)數(shù)器1數(shù)脈沖端)WR(部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出端,低電平有效)RD(部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效)綜上所述,MCS—51系列單片機(jī)的引腳作用可歸納為以下兩點(diǎn):1).單片機(jī)功能多,引腳數(shù)少,因而許多引腳具有第2功能;2).單片機(jī)對(duì)外呈3總線形式,由PP0口組成16位地址總線;由P0口分時(shí)復(fù)用作為數(shù)據(jù)總線。本設(shè)計(jì)中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過(guò)多方面比較和考慮后決定的,主要有以下幾方面的原因:(1)系統(tǒng)的特性:測(cè)溫范圍為55℃~+125℃ ,℃;溫度轉(zhuǎn)換精度9~12位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時(shí)間為750ms;可以通過(guò)數(shù)據(jù)線供電,具有超低功耗工作方式。(4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)接口大為簡(jiǎn)化,給系統(tǒng)的調(diào)試帶來(lái)方便。這種情況下,用單片機(jī)的一個(gè)I/O口來(lái)完成對(duì)DS18B20總線的上拉。該器件內(nèi)部集成頻率補(bǔ)償和固定頻率發(fā)生器,開(kāi)關(guān)頻率為150KHz,與低頻開(kāi)關(guān)調(diào)節(jié)器相比較,可以使用更小規(guī)格的濾波元件。圖5 系統(tǒng)電源模塊(六)LCD顯示電路本課題設(shè)計(jì)的溫度控制系統(tǒng)是采用液晶屏128*64作為顯示模塊,其接口原理圖如下圖6所示:圖6 液晶顯示接口電路(七)串口通訊電路本課題設(shè)計(jì)的通訊采用的是常見(jiàn)的串口通訊,協(xié)議轉(zhuǎn)換芯片是采用MAX232A,其接口原理圖如下圖7所示:圖6 串口通訊接口電路(八)按鍵接口電路本課題設(shè)計(jì)采用的鍵盤(pán)模塊,其接口原理圖如下圖8所示:圖8 鍵盤(pán)模塊電路(九)DS1302時(shí)鐘電路本課題設(shè)計(jì)的時(shí)鐘是采用時(shí)鐘芯片DS1302,其接口原理圖如下圖9所示:圖9 時(shí)鐘接口電路(十)存儲(chǔ)器接口電路本課題設(shè)計(jì)的存儲(chǔ)器采用的是AT24C256,其接口原理圖如下圖十所示:圖10 存儲(chǔ)器電路三、系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的軟件主要是采用C語(yǔ)言,對(duì)單片機(jī)進(jìn)行變成實(shí)現(xiàn)各項(xiàng)功能。其程序流程圖如圖11所示。 開(kāi)始溫度零下?溫度值取補(bǔ)碼置“—”標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY圖13 計(jì)算溫度子程序(四)顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。此次課程設(shè)計(jì)不僅增強(qiáng)了我們學(xué)習(xí)專(zhuān)業(yè)課的興趣,而且給了我們勇氣和信心,更重要的是它為我們以后的學(xué)習(xí)指明了方向。附件1:系統(tǒng)原理圖附件2:系統(tǒng)相關(guān)程序一、DS18B20底層驅(qū)動(dòng)程序//延時(shí) N ms//DS1820引腳定義sbit TMDAT =P1^0。 Count=Coun。 TMDAT=1。 i=0xc000。 j=3。 i=0xffff。 bit dat。i++。i++。i++。// DS1820_DelayCount(8)。 for(i=1。 } return dat。 for(j=1。 dat = dat1。i++。i++。 DS1820_DelayCount(32)。 TMDAT=1。i++。i++。 return(aban_return)。 // DS1820_Writebyte(0x55)。 DS1820_Writebyte(0x44)。data int y3。 DS1820_Reset()。 DS1820_Writebyte(0xcc)。i++) //DS1820_Writebyte([i])。i++) { [i]=DS1820_Readbyte()。 b = [1]。 y4=(y4*25)/4。sbit rtc_io=P3^5。sbit temp_7 = temp^7。 i0。temp = temp 1。 i0。 rtc_sc = 0。 EA=0。rtc_rs_port|=rtc_rs_bit。rtc_rs_portamp。 bit ea。=(~rtc_rs_bit)。 /* 地址,命令 */ucDa = uc_RTOutputByte()。EA = ea。 /* 控制命令,WP=0,寫(xiě)操作*/ write1302(i,time_tempsec)。 write1302(i,time_temphou)。 write1302(i,time_tempmon)。 write1302(i,time_tempyea)。unsigned char ucAddr = 0x81。/*格式為: 秒 分 時(shí) 日 月 星期 年 */ ucAddr += 2。day=time_bcd_temp[3]。 addr=addr*2+0x0c1。 addr+=2。 //寫(xiě)保護(hù)置低(關(guān)閉) for(i=0。 } write1302(0x8e,0x80)。 EA=0。 write1302(0x8e,0x00)。 /* 控制命令,WP=1,寫(xiě)保護(hù)*/ EA=ea。sbit temp1_0 = temp1^0。 epr_sc=1。 epr_sd=1。do{ i。epr_sd=1。 epr_sd=0。 epr_sc=1。 epr_sd=1。 epr_sd=0。 epr_sc=0。i++) //從高位開(kāi)始傳送數(shù)據(jù) { epr_sd=temp1_7。 epr_sc=1。 epr_sd=1。i8。 temp1_0=epr_sd。 } return(temp1)。}///////////////24c256 raddrunsigned char raddr(){ start()。 noack()。 unsigned char char_type[1]。 //將x的高位賦給m,低位賦給n m=[0]。 wrby(n )。a=15。} }}//24c256 讀出一字節(jié) unsigned char epr_read(unsigned int x){ bit ea。 d5ms()。 EA=ea。 EA=0 。 wrby(x)。 EA=ea。計(jì)算后的百位和十位的BCD碼存放。數(shù)碼管小數(shù)位Buffer DIS_BUF_G DATA 36H 。鍵盤(pán)輸入后,的個(gè)位值 KEY_BUF_S DATA 49H 。下調(diào)按鈕 K_ENTER EQU 。標(biāo)志位,確定是否存在DS18B20 ENTER_FLAG EQU 。調(diào)用讀溫度子程序 JB FLAG,NORMAL 。賦值給DIS_BUF_X,G,S,B LCALL DISPLAY 。程序名稱(chēng):ERR。如果沒(méi)有找到DS18B20,那么就顯示錯(cuò)誤,錯(cuò)誤。入口參數(shù):TEMPERATURE_L。對(duì)低8為進(jìn)行補(bǔ)碼處理CLR CMOV A,TEMPERATURE_L 。查表 MOV TEMPERATURE_LC,A 。得到個(gè)位‘單個(gè)數(shù)值 SWAP A 。TEMPERATURE_HC LOW位 = 十位數(shù) MOV TEMPERATURE_HC,AMOV A,TEMPERATURE_LANL A,0FHSWAP AMOV R7,AMOV A,TEMPERATURE_HC 。*2 = 01H。以此類(lèi)推..........。出口參數(shù):R7HtoB: MOV B,064H 。程序名稱(chēng):INIT_TEMP。主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖 MOV R0,6BH MOV R1,04HTSR1: DJNZ R0,$ MOV 40,6BH DJNZ R1,TSR1 SETB P_DS18B20 。置標(biāo)志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG 。功能:讀取DS18B20的數(shù)據(jù)。判斷DS1820是否存在?若DS18B20不存在則返回TSS2: MOV A,0CCH 。準(zhǔn)備讀溫度前先復(fù)位 MOV A,0CCH 。功能:將A保存的數(shù)值寫(xiě)入DS1820中。循環(huán)右移MOV P_DS18B20,CMOV R3,3CHDJNZ R3,$ 。程序名稱(chēng):READ_18B20。將溫度高位和低位從DS18B20中讀出MOV R1,TEMPERATURE_L RE00: MOV R2,8 。入口參數(shù):DIS_BUF_G,DIS_BUF_S,DIS_BUF_B。將當(dāng)前的溫度賦值給KEY_BUF MOV KEY_BUF_S,DIS_BUF_SMOV KEY_BUF_B,DIS_BUF_BK_LOOP:JB ENTER_FLAG,QUIT 。功能:確認(rèn)鍵盤(pán)輸入和退出鍵盤(pán)輸入。程序名稱(chēng):PRO_UP。按鈕抖動(dòng)處理INC KEY_BUF_G 。十位超過(guò)99,溢出了MOV R0,200ERROR1: LCALL ERR 。功能:數(shù)值下調(diào)處理。個(gè)位減一MOV A,KEY_BUF_GCJNE A,0FFH,DOWNNEXT 。出錯(cuò),顯示8888DJNZ R0,ERROR2INC KEY_BUF_S 。鍵盤(pán)抖動(dòng)延時(shí)子程序MOV R6,250DL20MS_1:MOV R7,200DJNZ R7,$DJNZ R6, DL20MS_1RET。十位如果相等,那么繼續(xù)比較個(gè)位MOV A,KEY_BUF_GSUBB A,DIS_BUF_GJC COOLHOT: CLR P_SWITCH 。P_SWITCH 為1說(shuō)明當(dāng)前溫度大于設(shè)定溫度 SETB 。入口參數(shù):TEMPERATURE_LC,TEMPERATURE_HC。十位 MOV A,TEMPERATURE_HC SWAP A ANL A,0FH MOV DIS_BUF_B,A 。十位數(shù)顯示符號(hào)NEXT1: RET。入口參數(shù):DIS_BUF_G, DIS_BUF_S, DIS_BUF_B。數(shù)碼管TABDISTAB:DB 0C0H 。3DB 099H 。7DB 0
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1