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

正文內(nèi)容

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

2025-03-30 11:55 上一頁面

下一頁面
 

【正文】 ,單片機(jī)訪問片內(nèi)程序存儲(chǔ)器 4KB( MS— 52子系列為 8KB)。 ( 4)輸入 /輸出( I/O)引腳 P0 口、 P1口、 P2 口及 P3 口 (A).P0 口( 39 腳~ 22 腳): ~ 統(tǒng)稱為 P0 口。 對(duì)于片內(nèi)含有 EPROM 的單片機(jī),當(dāng) EPROM 編程時(shí),從 P0 口輸入指令字節(jié),而當(dāng)檢驗(yàn)程序時(shí), 則輸出指令字節(jié)。 (C).P2 口( 21腳~ 28 腳): ~ 統(tǒng)稱為 P2 口,一般可作為準(zhǔn)雙向 I/O 接口。它為雙功能口,可以作為一般的準(zhǔn)雙向 I/O 接口,也可以將每 1 位用于第 2 功能,而且 P3 口的每一條引腳均可獨(dú)立定義為第 1功能的輸入輸出或第 2 功能。 DS18B20 溫度傳感器是美國達(dá)拉斯 (DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。一支 DS18B20 的體積與普通三極管相差無幾,價(jià)格只有十元人民幣左右。 DS18B20 溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口 DQ ,外供電源線 VDD,共用地線 GND。 在本設(shè)計(jì)中采用外部供電方式實(shí)現(xiàn) DS18B20 傳感器與單片機(jī)的連接,其接口電路如圖4所示。 4%的范圍內(nèi),振蕩頻率誤差在177。用的是循環(huán)查詢方式,來顯示和控制溫度,主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理 DS18B20 的測量的當(dāng)前溫度值并負(fù)責(zé)調(diào)用各子程序 ,其程序流程如圖 10 系統(tǒng)程序流程圖。其程序流程框圖如圖 12 所示。 開始 溫度零下 ? 溫度值取補(bǔ)碼置“ — ”標(biāo)志 計(jì)算小數(shù)位溫度 BCD 值 計(jì)算整數(shù)位溫度 BCD 值 結(jié)束 置“ +”標(biāo)志 N Y 第 18 頁 共 48 頁 圖 14 數(shù)據(jù)刷新子程序 四、結(jié)束語 通過此次畢業(yè)論文的課題設(shè)計(jì),我們學(xué)會(huì)了怎樣把所學(xué)的書本知識(shí)應(yīng)用于實(shí)踐中去,并學(xué)會(huì)了如何去思考整個(gè)控制系統(tǒng)的軟硬件設(shè)計(jì)。 void DS1820_DelayCount (unsigned char Coun) { data unsigned char Count。 while(Count0) Count。 DS1820_DelayCount(16)。 while(TMDAT) { i。 while(~TMDAT) { i。 } } DS1820_DelayCount(16)。 TMDAT=0。i++。i++。i++。 DS1820_DelayCount(32)。i=8。 } //寫一個(gè)字節(jié) void DS1820_Writebyte(unsigned char dat) { data signed char i=0。j=8。 if(testb) { TMDAT=0。i++。i++。 } else { TMDAT=0。 i++。i++。 } } } //讀操作開始 unsigned char DS1820_StartTem(void) { EA=0。 } 第 25 頁 共 48 頁 // DS1820_Delayms(1)。 // for(i=0。 EA=Ea。 data float y4。 if(DS1820_Answer()==aban_return) { EA=Ea。 //跳過匹配傳感器 //DS1820_Writebyte(0x55)。 DS1820_Writebyte(0xbe)。 } if(CRC(9)!=0) { EA=1。 DS1820_Reset()。 EA=1。 sbit rst_1302=P3^6。 /************************************************************** DS1302 驅(qū)動(dòng)程序開始 **************************************************************/ //功能 : 往 DS1302 寫入 1Byte 數(shù)據(jù) void v_RTInputByte(unsigned char ucDa) { unsigned char i。 i) { rtc_io = temp_0。 } } //功能 : 從 DS1302 讀取 1Byte 數(shù)據(jù) unsigned char uc_RTOutputByte(void) { unsigned char i。 i) { temp = temp 1。 } return(temp)。 rtc_rs_portamp。 v_RTInputByte(ucAddr)。=(~rtc_rs_bit)。 ea=EA。 rtc_sc = 0。 /* 讀 1Byte 數(shù)據(jù) */ rtc_sc = 1。 return(ucDa)。 i +=2。 i +=2。 i +=2。 i +=2。 for (i=0。 } sec=time_bcd_temp[0]。 mon=time_bcd_temp[4]。 for(i=0。 } } //連續(xù) 6字節(jié)寫入程序 void ds1302_write(unsigned char *ptr,unsigned char addr) { unsigned char i。i6。 //寫保護(hù)置高 (打開 ) } void Start1302(void) { unsigned char temp。 temp=read1302(0x81)。 /* 控制命令 ,WP=0,寫操作 */ write1302(0x80,temp)。 } //DS1302 驅(qū)動(dòng)程序結(jié)束 三 、數(shù)據(jù)存儲(chǔ)底層驅(qū)動(dòng)程序 //ATC256 引腳定義 sbit epr_sd=P3^3。 sbit temp1_7 = temp1^7。 epr_sc=1。 epr_sc=1。 if(epr_sd==0) { epr_sc=0。 epr_sd=1。 epr_sd=0。 epr_sd=1。 } ///24c256 start void start() { epr_sc=1。 epr_sd=0。 temp1=x。 temp1=temp11。 epr_sc=1。 epr_sd=1。i++) { 第 35 頁 共 48 頁 epr_sc=1。 epr_sc=0。 } ///////////////24c256 waddr void waddr() { start()。 wrby(0xa1)。 stop()。 }u_int_char。 n=[1]。 ask()。a++) { for (b=0。 第 37 頁 共 48 頁 ea=EA。 waddr()。//開中斷 return(temp1)。 //關(guān)中斷 d5ms()。 ask()。 //開中斷 } //存儲(chǔ)器驅(qū)動(dòng)程序結(jié)束 匯編部分: TEMPERATURE_L DATA 31H 。BUFFER TEMPERATURE_LC DATA 33H 。數(shù)碼管個(gè)位 Buffer DIS_BUF_S DATA 37H 。鍵盤輸入后,的十位值 KEY_BUF_B DATA 41H 。輸入數(shù)據(jù)確認(rèn)按鈕 P_DS18B20 EQU 。鍵盤輸入的標(biāo)志位 , ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,60H 。判斷是否有 DS18B20 的存在 CALL ERR 。調(diào)用數(shù)碼管顯示子程序 LCALL SCAN_KEY 。功能 :程序出錯(cuò)處理,顯示四個(gè) 8,即 8888 。顯示為 888 MOV DIS_BUF_G,08H MOV DIS_BUF_S,08H MOV DIS_BUF_B,08H LCALL DISPLAY RET 第 39 頁 共 48 頁 。出口參數(shù) :DIS_BUF_G, DIS_BUF_S, DIS_BUF_ DATA_DEAL: MOV A,TEMPERATURE_H 。二進(jìn)制數(shù)求補(bǔ)(雙字節(jié)) CPL A 。TEMPERATURE_LC LOW=小數(shù)部分 BCD MOV DIS_BUF_X,A 。SWAP 后就得到個(gè)位真正的個(gè)位 MOV TEMPERATURE_L,A MOV A,TEMPERATURE_H ANL A,0FH SWAP A ORL A,TEMPERATURE_L MOV TEMPERATURE_ZH,A 。TEMPERATURE_HC HI = 百位數(shù) BCD ANL A,0FH ORL A,R7 MOV TEMPERATURE_HC,A TEMPC12: RET 。*3 = 01H 。程序名稱 :HtoB 。100 DIV AB 。功能 :初始化 DS18B20,確定 DS18B20 是否是存在的 。然后拉高數(shù)據(jù)線,釋放總線進(jìn)入接受狀態(tài) 第 41 頁 共 48 頁 NOP NOP NOP MOV R0,32H TSR2: JNB P_DS18B20,TSR3 。清標(biāo)志位 ,表示 DS1820 不存在 LJMP TSR7 TSR5: MOV R0,06BH TSR6: DJNZ R0,TSR6 。入口參數(shù) :TEMPERATURE_L, TEMPERATURE_H 。跳過 ROM 匹配 LCALL WRITE_18B20 MOV A,44H 。跳過 ROM 匹配 LCALL WRITE_18B20 MOV A,0BEH 。入口參數(shù) :A 寄存器 。23*2 = 46 微妙 SETB P_DS18B20 NOP DJNZ R2,WR1 。功能 :讀取 18B20 中的數(shù)據(jù),由于是串行通信,每次讀取一個(gè),循環(huán) 8 次讀取 。數(shù)據(jù)一共有 8 位 RE01: CLR C SETB P_DS18B20 NOP NOP CLR P_DS18B20 NOP NOP NOP SETB P_DS18B20 MOV R3,09 RE10: DJNZ R3,RE10 MOV C,P_DS18B20 MOV R3,3CH RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET 。出口參數(shù) :KEY_BUF_G,KEY_BUF_S,kEY_BUF_B SCAN_KEY: JB K_ENTER,QUIT 。如果輸入完成, ENTER_FLAG 則為 1,退出鍵盤程 。入口參數(shù) :ENTER_FLAG 。功能 :數(shù)值上調(diào)處理 。個(gè)位增一 MOV A,KEY_BUF_G CJNE A,0AH,UPNEXT 。出錯(cuò),顯示 8888 DJNZ R0,ERROR1 DEC KEY_BUF_S 。入口參數(shù) :KEY_BUF_G,KEY_BUF_S,KEY_BUF_B 。個(gè)位減到 0,回到 9 MOV KEY_BUF_G,09H DEC KEY_BUF
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1