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

正文內(nèi)容

can總線的溫室控制系統(tǒng)設(shè)計(jì)(參考版)

2025-08-02 00:13本頁(yè)面
  

【正文】 */bit tmpreadbit(void) //r。從而完成了一個(gè)讀周期。} /*讀操作:主機(jī)將信號(hào)線從高電平拉低至低電平1μS以上,再使數(shù)據(jù)線 升為高電平,產(chǎn)生讀起始信號(hào)。 i=4。 while(i0)i。 //DS18B20初始化 DS=0。主機(jī)收到此信號(hào)后,才能對(duì)DS18820作其它操作。(2)主機(jī)將信號(hào)線置為高電平,時(shí)間為15~60μS。 }}/*1.復(fù)位:對(duì)DS18B20操作之前,首先要將它復(fù)位。 while(i0) i。 }}void delay(uint count) //delay{ uint i。 if (jishu==100) { jishu=0。TL0=0x00。TR0=0。 //50MS定時(shí)初值(T0計(jì)時(shí)用) IE|=0x90。 //工作方式16位定時(shí)計(jì)數(shù)器 TH0=0x3c。 TI=0。 }void send_char_(unsigned char ch) { SBUF=ch。 IE |= 0x90。 TH1 = 0xFA。 TMOD |= 0x20。sbit CS=P2^0。sbit P34=P3^4。sbit P2_2=P2^2。//定義DS18B20接口DS=P2^4sbit P2_0=P2^0。unsigned char inbuf1[8]。unsigned char xdata *SJA_BCANAdr。unsigned int temp。unsigned char ser,shi,ge,xiao,jishu。//CAN總線發(fā)送18B20的溫度值 CAN_Send_onebyte(xiao,1)。// CAN_Send_onebyte(shi,1)。 //顯示if(RevceData[0]==1) { RevceData[0]=0。 //溫度轉(zhuǎn)換 delay_ms(10)。 //測(cè)試專用發(fā)送到串口看狀態(tài) else EA=1。 //初始化串口 ss=Sja_1000_Init()。 IT0=0。 PX0=1。unsigned char num=0。 return 0。 if(*SJA_BCANAdr!=0x00) return 6。 //退出 復(fù)位模式 *SJA_BCANAdr=*SJA_BCANAdramp。 *SJA_BCANAdr=0x1D。 //輸出控制寄存器 *SJA_BCANAdr=0x1a。 //設(shè)置波特率125K 16MHZ if (s==1) return 5。//屏蔽寄存//器,都設(shè)為無(wú)關(guān),接收所有報(bào)文,當(dāng)屏蔽位為1,不濾波,0就濾波必須相等 if (s==1) return 4。 //Pelican if (s==1) return 3。 //建立通信 if (s==1) return 2。 if (s==1) return 1。 EA=0。 //數(shù)據(jù)發(fā)送請(qǐng)求 BCAN_CMD_PRG(TR_CMD)。 SJA_BCANAdr = REG_RXBuffer4。 SJA_BCANAdr = REG_RXBuffer3。 SJA_BCANAdr = REG_RXBuffer2。 //循環(huán)檢測(cè)等待 { SJA_BCANAdr = REG_RXBuffer1。 if((tempttamp。 loop: SJA_BCANAdr = REG_STATUS。 //功能:由src所指內(nèi)存區(qū)域復(fù)制count個(gè)字節(jié)到dest所指內(nèi)存區(qū)域 } BCAN_CMD_PRG(RRB_CMD)。 //宏定義的變量不能memcpy(RevceData,REG_RXBuffer4,8)。 if ((ttamp。 length=tt1amp。0x01) //產(chǎn)生了接收中斷 { SJA_BCANAdr=REG_RXBuffer1。 SJA_BCANAdr=REG_INTERRUPT。 break。 break。 0x02)==0)//判斷清除超載是否成功 return 0。 case COS_CMD: SJA_BCANAdr = REG_STATUS。 else return 0。 //訪問(wèn)地址指向狀態(tài)寄存器 if((*SJA_BCANAdr amp。 break。 0x20)==0) //判斷是否正在發(fā)送 return 0。 case AT_CMD: SJA_BCANAdr = REG_STATUS。 case SRR_CMD: return 0。 //啟動(dòng)命令字 switch(cmd) { case TR_CMD: return 0。 } //*啟動(dòng)命令字 bit BCAN_CMD_PRG(unsigned char cmd) { SJA_BCANAdr=REG_COMMAND。0x01) == 1) return 0。 *SJA_BCANAdr=0x09。 SJA_BCANAdr = REG_CONTROL。 //讀測(cè)試正確 else return 1。 *SJA_BCANAdr=0xaa。} return 0。 *SJA_BCANAdr=BTR1_num。 if(*SJA_BCANAdr!=BTR0_num) {return 1。 } SJA_BCANAdr=REG_BTR0。 default : return 1。 BTR1_num=0x14。 break。 case ByteRate_800k: BTR0_num=0x00。 BTR1_num=0x1c。 break。 case ByteRate_400k: BTR0_num=0x80。 BTR1_num=0x1b。 break。 case ByteRate_125k: //SJA1000的晶振為16MHZ,波特率設(shè)置為125kpbs BTR0_num=0x03。 BTR1_num=0x1C。 break。 case ByteRate_80k: BTR0_num=0x49。 BTR1_num=0x1c。 break。 case ByteRate_40k: BTR0_num=0x87。 BTR1_num=0x1C。 break。 case ByteRate_10k: BTR0_num=0x31。 BTR1_num=0xFF。*/ bit BCAN_SET_BANDRATE(unsigned char CAN_ByteRate) //波特率選擇{ unsigned char BR_Num= CAN_ByteRate,BTR0_num,BTR1_num。 return 0。 *SJA_BCANAdr=BCAN_AMR3。 *SJA_BCANAdr=BCAN_AMR2。 *SJA_BCANAdr=BCAN_AMR1。 *SJA_BCANAdr=BCAN_AMR0。 if(*SJA_BCANAdr != BCAN_ACR3) return 1。 SJA_BCANAdr=REG_TXBuffer4。 SJA_BCANAdr=REG_TXBuffer3。 //寫(xiě)入?yún)?shù) SJA_BCANAdr=REG_TXBuffer2。 *bit BCAN_SET_OBJECT(unsigned char BCAN_ACR0,BCAN_ACR1,BCAN_ACR2,BCAN_ACR3,BCAN_AMR0,BCAN_AMR1,BCAN_AMR2,BCAN_AMR3){ SJA_BCANAdr=REG_TXBuffer1。 else return 0。 *SJA_BCANAdr=Clock_Out。//選通第二位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電}//設(shè)置SJA1000的時(shí)鐘分頻 ,該子程序只能用于復(fù)位模式。//選通第二位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 P2_2=1。 //顯示十位 帶小數(shù)點(diǎn)的 P2_0=0。//選通第二位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 delay(1)。//選通第二位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 P2_2=1。 //顯示十位 帶小數(shù)點(diǎn)的 P2_0=1。//選通第二位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 delay(1)。//選通第二位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 P2_2=0。 //顯示十位 帶小數(shù)點(diǎn)的 P2_0=1。 P1=table[A2]amp。//選通第一位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 P2_3=0。//選通第一位數(shù)碼管的陽(yáng)極位選端,即給數(shù)碼管的共陽(yáng)極供電 P2_1=1。 P1=table[A1]。 ge=A2。 A3=A2t%10。 A2t=temp%100。 ser=temp/10。 //放大十倍,這樣做的目的將小數(shù)點(diǎn)后第一位 return temp。 tt=temp*。 //two byte pose a int variable temp=temp|a。 temp=b。 //發(fā)送讀取數(shù)據(jù)命令 a=tmpread()。 tmpwritebyte(0xcc)。 dsreset()。 //發(fā)送溫度轉(zhuǎn)換命令}uint tmp() //get the temperature 獲得溫度{ float tt。 //延時(shí),等待應(yīng)答時(shí)間 tmpwritebyte(0xcc)。 }void tmpchange(void) //DS18B20 begin change發(fā)送溫度轉(zhuǎn)換命令{ dsreset()。j33。it。 } }}void delay_ms(unsigned char t){ unsigned char i,j。 i++。while(i0)i。 } else { DS=0。 //在15~60μS的時(shí)間內(nèi)DS18820對(duì)信號(hào)線檢? i=8。i++。 if(testb) //write 1 寫(xiě)1部分 { DS=0。0x01。j=8。 bit testb。*/ void tmpwritebyte(uchar dat) //write a byte to ds18b20{ //寫(xiě)一個(gè)字節(jié)到DS18B20里 uint i。從信號(hào) 線的下降沿開(kāi)始,在15~60 μS的時(shí)間內(nèi)DS18820對(duì)信號(hào)線檢查,如信號(hào) 線為高電平,則寫(xiě)1如信號(hào)線為O,則寫(xiě)0,從而完成了一個(gè)寫(xiě)周期。//讀出的數(shù)據(jù)最低位在最前面,這樣一個(gè)字節(jié)在DAT里 }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1