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

正文內(nèi)容

基于單片機的交通燈控制器的研究與設計-畢業(yè)設計論文-資料下載頁

2025-10-15 18:22本頁面

【導讀】路的作用進行了詳細的介紹。闡述了DS1820的工作原理、指令系統(tǒng)、單片機與DS1820之間的接口、數(shù)據(jù)傳遞、通信協(xié)議。該系統(tǒng)采用單片機與數(shù)字溫度傳感器DS1820相結合,能夠測量出-55℃-125℃之間的溫度,同時還具有通過控制加熱系統(tǒng)調(diào)節(jié)被測環(huán)境溫度和對超限溫度進行報警等功能。且可以大幅度提高被控溫度的技術指標,從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。而溫度系統(tǒng)為大滯后系統(tǒng),較大的純滯后可引起系統(tǒng)不穩(wěn)定。制,又稱PID調(diào)節(jié)。可靠、調(diào)整方便而成為工業(yè)控制的主要技術之一。依靠經(jīng)驗和現(xiàn)場調(diào)試來確定,這時應用PID控制技術最為方便。目前,國際上新型溫度傳。該裝置適用于人民的日常生活。和工、農(nóng)業(yè)生產(chǎn)用于溫度測量。量裝置及其他集成電路,加上精心對軟件設計,實現(xiàn)了儀表智能化。對0~100℃范圍內(nèi)的各。象的溫度值,準確度高,顯示清晰,穩(wěn)定可靠,使用方便。整個系統(tǒng)的核心是進行溫度監(jiān)控與溫度傳感。器,完成了課題所有要求。量精度:℃,③反應時間≤500ms。

  

【正文】 9。 ADCON1=0X84。 ADIF=0。 ADGO=1。 for(delay=0x8ff。delay0。delay) asm(nop)。 while(ADIF==0) { asm(clrwdt)。 } asm(clrwdt)。 ADIF=0。 [0]=ADRESL。 [1]=ADRESH。 if((=0x204)amp。amp。(=0xD9)) { temp=0x10。 for( y=0x204。=y。=+0x07) { temp++。 if(temp==0x1a) temp=0x20。 if(temp==0x2a) temp=0x30。 if(temp==0x3a) temp=0x40。 if(temp==0x4a) temp=0x50。 if(temp==0x5a) temp=0x60。 if(temp==0x6a) temp=0x70。 if(temp==0x7a) temp=0x80。 if(temp==0x8a) temp=0x90。 if(temp==0x9a) temp=0x100。 } } TXPC(temp)。 RC0=1。 RXDATAS()。 if(rxbuf[0]!=0) { if((rxbuf[0]==0x10)amp。amp。(rxbuf[1]==0xff)) receive=0xff。 else if(rxbuf[0]==0x20) { templ=rxbuf[1]。 temph=rxbuf[2]。 } if(receive==0xff) { RC1=1。 a=0xff。 } } if(temp=templ) { if(a!=0xff) RD0=1。 else RD0=0。 } else if(temp=temph) { if(a!=0xff) RD1=1。 else RD1=0。 } else if((temp=templ)amp。amp。(temp=temph)) { a=0。 RD0=0。 RD1=0。 } for(delay=0xFff。delay0。delay) asm(nop)。 } include //************************* unsigned char txbuf[5]。 unsigned char rxbuf[5]。 extern unsigned int delay。 unsigned char s_uart_buf。 unsigned char rx_lo_buf。 extern unsigned char i。 //************************* void TXPC(unsigned char byte)//9600b/s { RC6 = 0。//start bit for(s_uart_buf=0。s_uart_buf46。s_uart_buf++)continue。 if(byteamp。0x01)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x02)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x04)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x08)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x10)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x20)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x40)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(byteamp。0x80)RC6=1。 else RC6=0。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 RC6=1。//stop bit for(s_uart_buf=0。s_uart_buf45。s_uart_buf++)asm(nop)。 } //************************************************* unsigned char RXPC(void)//9600b/s { rx_lo_buf=0。 while(1) { if(!RC7) break。 } //receive start bit for(s_uart_buf=0。s_uart_buf46。s_uart_buf++)continue。 //receive bit for(s_uart_buf=0。s_uart_buf17。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x01。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x02。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x04。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x08。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x10。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x20。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x40。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 if(RC7)rx_lo_buf=rx_lo_buf|0x80。 for(s_uart_buf=0。s_uart_buf35。s_uart_buf++)asm(nop)。 //receive stop bit for(s_uart_buf=0。s_uart_buf10。s_uart_buf++)asm(nop)。 return rx_lo_buf。 } void RXDATAS() { //開始接收數(shù)據(jù) for(i=0。i5。i++) rxbuf[i]=0。 for(i=0x04。i0。i) { asm(clrwdt)。 if(RC7==0) break。 for(delay=65535。delay0。delay) { asm(clrwdt)。 if(RC7==0) break。 } } if(RC7==1) { goto rxend。 } for(i=0。i5。i++) { rxbuf[i]=RXPC()。 if(rxbuf[i]==0x21) break。 } rxend: asm(clrwdt)。 } 附錄 2 溫度傳感器 DS1820 的匯編程序 晶振: 12M TEMPER_L EQU 36H TEMPER_H EQU 35H TEMPER_NUM EQU 60H FLAG1 BIT 00H DQ BIT AAA:MOV SP,70H LCALL GET_TEMPER LCALL TEMPER_COV LJMP AAA NOP 。讀出轉換后的溫度值 GET_TEMPER: SETB DQ 。 定時入口 BCD:LCALL INIT_1820 JB FLAG1,S22 LJMP BCD 。 若 DS18B20 不存在則返回 S22:LCALL DELAY1 MOV A,0CCH 。 跳過 ROM 匹配 0CC LCALL WRITE_1820 MOV A,44H 。 發(fā)出溫度轉換命令 LCALL WRITE_1820 NOP LCALL DELAY LCALL DELAY CBA:LCALL INIT_1820 JB FLAG1,ABC LJMP CBA ABC:LCALL DELAY1 MOV A,0CCH 。 跳過 ROM 匹配 LCALL WRITE_1820 MOV A,0BEH 。 發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 。READ_1820 RET 。讀 DS18B20 的程序 ,從 DS18B20 中讀出一個字節(jié)的數(shù)據(jù) READ_1820: MOV R2,8 RE1: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,7 DJNZ R3,$ MOV C,DQ MOV R3,23 DJNZ R3,$ RRC A DJNZ R2,RE1 RET 。寫 DS18B20 的程序 WRITE_1820: MOV R2,8 CLR C WR1: CLR DQ MOV R3,6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET 。讀 DS18B20的程序 ,從 DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù) READ_18200: MOV R4,2 。 將溫度高位和低位從 DS18B20 中讀出 MOV R1,36H 。 低位存入 36H(TEMPER_L),高位存入 35H(TEMPER_H) RE00: MOV R2,8 RE01: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,7 DJNZ R3,$ MOV C,DQ MOV R3,23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET 。將從 DS18B20 中讀出的溫度數(shù)據(jù)進行轉換 TEMPER_COV: MOV A,0F0H ANL A,TEMPER_L 。 舍去溫度低位中小數(shù)點后的四位溫度數(shù)值 SWAP A MOV TEMPER_NUM,A MOV A,TEMPER_L JNB ,TEMPER_COV1 。 四舍五入去溫度值 INC TEMPER_NUM TEMPER_COV1: MOV A,TEMPER_H ANL A,07H SWAP A ORL A,TEMPER_NUM MOV TEMPER_NUM,A 。 保存變換后的溫度數(shù)據(jù) LCALL BIN_BCD RET 。將 16 進制的溫度數(shù)據(jù)轉換成壓縮 B
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1