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

正文內容

單片機電子密碼鎖-資料下載頁

2025-06-26 12:31本頁面
  

【正文】 } key=0。 } h[0]=f[0]。 h[1]=f[1]。 h[2]=f[2]。 h[3]=f[3]。 h[4]=f[4]。 h[5]=f[5]。 P0 = d[f[0]]。 //輪流顯示 k0= 1。 DelayMs(20)。 k0= 0。 P0 = d[f[1]]。 k1= 1。 DelayMs(20)。 k1= 0。 P0 = d[f[2]]。 k2= 1。 DelayMs(20)。 k2= 0。 P0 = d[f[3]]。 k3= 1。 DelayMs(20)。 k3= 0。 k3= 0。 P0 = d[f[4]]。 k4= 1。 DelayMs(20)。 k4= 0。 k4= 0。 P0 = d[f[5]]。 k5= 1。 DelayMs(20)。 k5= 0。 } } void KeyScan() //按鍵掃描子程賦key值{ int temp。 P3=0xF7。 temp=P3。 tempamp。=0xF0。 if(temp !=0xF0) { temp=P3。 tempamp。=0xFC。 if(temp !=0xFC) { switch(temp) { case 0x7D: key=6。break。 case 0x7E: key=5。break。 case 0x70: key=4。break。 case 0xB0: key=3。break。 case 0xD0: key=2。break。 case 0xE0: key=1。break。 } } } P3=0xF8。 temp=P3。 tempamp。=0xF0。 if(temp!=0xF0) { temp=P3。 tempamp。=0xF0。 if(temp !=0xF0) { DelayMs(1)。 switch(temp) { case 0x70: key=8。break。 case 0xB0: key=7。break。 case 0xD0: key=6。break。 case 0xE0: key=5。break。 } } }}/////////////////////2402子程序//////////////////// void I2C_Start(void) //啟動I2C { SDA=1。 SCL=1。 DelayMs(60)。 SDA=0。 DelayMs(60)。 SCL=0。 DelayMs(60)。 } void I2C_Stop(void) //終止I2C { SDA=0。 SCL=1。 DelayMs(60)。 SDA=1。 DelayMs(60)。 SCL=0。 DelayMs(60)。 } void SEND_0(void) //發(fā)送0 { SDA=0。 SCL=1。 DelayMs(60)。 SCL=0。 DelayMs(60)。 SDA=1。 } void SEND_1(void)//發(fā)送1 { SDA=1。 SCL=1。 DelayMs(60)。 SCL=0。 DelayMs(60)。 } bit Check_Acknowledge(void) //檢查應答信號{ SDA=1。 SCL=1。 DelayMs(30)。 F0=SDA。 DelayMs(60)。 SCL=0。 DelayMs(60)。 if(F0==1) return FALSE。 else return TRUE。 } void WriteI2C_Byte(char b) //向I2C總線寫一個字節(jié){ char i。 for(i=0。i8。i++) { if((bi)amp。0x80) SEND_1()。 else SEND_0()。 } } char ReadI2C_Byte(void) //從I2C總線讀一個字節(jié){ char b=0,i。 for(i=0。i8。i++) { SDA=1。 SCL=1。 DelayMs(10)。 F0=SDA。 DelayMs(10)。 SCL=0。 b=b1。 if(F0==1) { b=b|0x01。 } } return b。 //返回一個字節(jié)數(shù)據(jù)} void Write_One_Byte(char addr,char thedata) //向24C02寫1個字節(jié),addr為寫數(shù)單元地址,data為待寫數(shù){ bit acktemp=1。 MODE=0。 //可進行寫操作 I2C_Start()。 WriteI2C_Byte(0xa0)。 acktemp=Check_Acknowledge()。 WriteI2C_Byte(addr)。 acktemp=Check_Acknowledge()。 WriteI2C_Byte(thedata)。 acktemp=Check_Acknowledge()。 I2C_Stop()。 } void Write_A_Page(unsigned char *buffer,char addr,char N)//寫一頁,*buffer為待寫數(shù)據(jù)區(qū)指針,addr為寫入地址 { bit acktemp=1。 unsigned char m。 MODE=0。 I2C_Start()。 WriteI2C_Byte(0xa0)。 acktemp=Check_Acknowledge()。 WriteI2C_Byte(addr)。 acktemp=Check_Acknowledge()。 for(m=0。mN。m++) { WriteI2C_Byte(buffer[m])。 if(!Check_Acknowledge()) I2C_Stop()。//如為非應答則終止 } I2C_Stop()。 } char Read_One_Byte(char addr) //自編讀1個字節(jié)程序{ char outdata。 bit acktemp=1。 MODE=1。 //只進行讀操作 I2C_Start()。 WriteI2C_Byte(0xa0)。 acktemp=Check_Acknowledge()。 WriteI2C_Byte(addr)。 acktemp=Check_Acknowledge()。 I2C_Start()。 WriteI2C_Byte(0xa1)。 acktemp=Check_Acknowledge()。 outdata=ReadI2C_Byte()。 acktemp=Check_Acknowledge()。 I2C_Stop()。 return outdata。 } void Read_N_Byte(unsigned char *buffer,char n,char addr) //讀N個字節(jié){ bit acktemp=1。 unsigned char i=0。 I2C_Start()。 WriteI2C_Byte(0xa0)。 acktemp=Check_Acknowledge()。 WriteI2C_Byte(addr)。 acktemp=Check_Acknowledge()。 I2C_Start()。 WriteI2C_Byte(0xa1)。 acktemp=Check_Acknowledge()。 for(i=0。in。i++) { buffer[i]=ReadI2C_Byte()。 if(i!=n1) SEND_0()。 else SEND_1()。 } I2C_Stop()。 }
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1