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

正文內(nèi)容

畢業(yè)論文-基于at89s52單片機的非接觸式ic卡的讀寫-資料下載頁

2025-01-16 22:14本頁面
  

【正文】 int sbit UART_RX_BIT=P3^0。 sbit UART_TX_BIT=P3^1。 sbit Max7219_pinCLK=P2^2。 sbit Max7219_pinCS=P2^1。 sbit Max7219_pinDIN=P2^0。 uint jge=0。 uchar rxbuff[23],receive[23]。 uchar tmpResult。 uchar SearMode=0x01,CardBlock=0x04,KeyType=00。 //全局變量 //define ok TF0 //define Timer0_Enable TH0=TL0,TR0=1 //define Timer0_Disable TR0=0 void InitUART(void) { UART_RX_BIT=1。 UART_TX_BIT=1。 } 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 29 void Delay_xms(uint x) { uint i,j。 for(i=0。ix。i++) for(j=0。j112。j++)。 } // //功能:向 MAX7219(U3)寫入字節(jié) //入口參數(shù): DATA //出口參數(shù):無 //說明: void Write_Max7219_byte(uchar DATA) { uchar i。 Max7219_pinCS=0。 for(i=8。i=1。i) { Max7219_pinCLK=0。 Max7219_pinDIN=DATAamp。0x80。 DATA=DATA1。 Max7219_pinCLK=1。 } } // //功能:向 MAX7219 寫入數(shù)據(jù) //入口參數(shù): address、 dat //出口參數(shù):無 //說明: void Write_Max7219(uchar address,uchar dat) { Max7219_pinCS=0。 Write_Max7219_byte(address)。 //寫入地址,即數(shù)碼管編號 Write_Max7219_byte(dat)。 //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字 Max7219_pinCS=1。 } void Init_MAX7219(void) { Write_Max7219(0x09, 0xff)。 //譯碼方式: BCD 碼 Write_Max7219(0x0a, 0x03)。 //亮度 Write_Max7219(0x0b, 0x07)。 //掃描界限; 4 個數(shù)碼管顯示 Write_Max7219(0x0c, 0x01)。 //掉電模式: 0,普通模式: 1 Write_Max7219(0x0f, 0x01)。 //顯示測試: 1;測試結(jié)束,正常顯示: 0 } //void IntTimer0()interrupt 1 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 30 //{ // ok=1。 //} void delay104us(void) { uchar i。 for(i=0。i26。i++)。 } void delay52us(void) { uchar i。 for(i=0。i14。i++)。 } void delay10ms(uchar j) { unsigned int i。 uchar k。 for(k=0。kj。k++) for(i=0。i2022。i++)。 } void Sendchar(uchar pass) { uchar i。 i=0。 UART_TX_BIT=0。 //ok=0。 //Timer0_Enable。 //while(!ok)。 delay104us()。 do { if(passamp。0x01) UART_TX_BIT=1。 else UART_TX_BIT=0。 // ok=0。 // while(!ok)。 delay104us()。 i++。 pass=1。 }while(i8)。 UART_TX_BIT=1。 // ok=0。 // while(!ok)。 //Timer0_Disable。 delay104us()。 } uchar Receichar(void) { uchar ich,i。 ich=0。 i=0。 while(UART_RX_BIT)。 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 31 //Timer0_Enable。 //ok=0。 //while(!ok)。 delay104us()。 //delay52us()。 //may delete while(i8) { ich=1。 if(UART_RX_BIT) { ich|=0x80。 } i++。 //ok=0。 // while(!ok)。 delay104us()。 } UART_RX_BIT=1。 // Timer0_Disable。 return ich。 } void Commu_test(void) { uchar i。 uchar txbuff[8]。 //CardStatus=0。 txbuff[0]=0x3c。 txbuff[1]=0x04。 txbuff[2]=0。 txbuff[3]=0x60。 txbuff[4]=0。 txbuff[5]=0。 txbuff[6]=0。 for(i=0。i6。i++) txbuff[6]^=txbuff[i]。 txbuff[7]=0x0d。 for(i=0。i8。i++) { Sendchar(txbuff[i])。 } for(i=0。i5。i++) { rxbuff[i]=Receichar()。 } if(rxbuff[2]==0x01) { Write_Max7219(1,1)。 //CardStatus=0x01。 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 32 } } // //mand:3C 04 01 70 00(尋卡模式 00(IDLE)或 01(ALL)) 00 BCC 0D // void Search_Card(uchar *CardNum) { //void Turnon_BELL(uchar time)。 //void Turnon_LED(uchar time)。 uchar i,j。 uchar txbuff[9]。 //CardStatus=0。 txbuff[0]=0x3c。 txbuff[1]=0x04。 txbuff[2]=0x01。 txbuff[3]=0x70。 txbuff[4]=SearMode。 //search mode txbuff[5]=0。 txbuff[6]=0。 for(i=0。i6。i++) txbuff[6]^=txbuff[i]。 txbuff[7]=0x0d。 for(i=0。i8。i++) { Sendchar(txbuff[i])。 } // //right:3C 05 四字節(jié)卡號 00 BCC 0D //Error: 3C 01 FF(錯誤返回代碼 ) BCC 0D // for(i=0。i9。i++) { rxbuff[i]=Receichar()。 if(rxbuff[i]==0x0d) if(i==8) { Write_Max7219(2,1)。 //Turnon_BELL(0X55)。 //Turnon_LED(0X55)。 //CardStatus=0x01。 for(j=0。j4。j++) *CardNum++=rxbuff[2+j]。 } else break。 } } 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 33 //密碼驗證: //。下傳命令: 3C 0E 01 6C 六字節(jié)密碼 00(A 密碼或 B 密碼 01)04(塊號 ) 四字節(jié)卡號 BCC 0D //。成功返回: 3C 02 00 00 BCC 0D //。錯誤返回: 3C 01 FF(錯誤代碼 ) BCC 0D // void PSD_Verify(uchar *CardK,uchar *CardNum) { uchar i。 uchar txbuff[23]。 //CardStatus=0。 txbuff[0]=0x3c。 txbuff[1]=0x0E。 txbuff[2]=0x01。 txbuff[3]=0x6C。 for(i=4。i10。i++) txbuff[i]=*CardK++。 //card39。s keys txbuff[10]=KeyType。 txbuff[11]=CardBlock。 for(i=0。i4。i++) txbuff[12+i]=*CardNum++。 txbuff[16]=0。 for(i=0。i16。i++) txbuff[16]^=txbuff[i]。 txbuff[17]=0x0d。 for(i=0。i18。i++) { Sendchar(txbuff[i])。 } // //right:3C 02 00 00 BCC 0D //Error: 3C 01 FF(錯誤返回代碼 ) BCC 0D // for(i=0。i6。i++) { rxbuff[i]=Receichar()。 if(rxbuff[i]==0x0d) if(i==5) { Write_Max7219(3,1)。//CardStatus=0x01。 } else break。 } } // //mand:3C 04 01 66 00(絕對塊號 ) 00 BCC 0D // void Read_Card(void) 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 34 { uchar i。 uchar txbuff[8]。 //CardStatus=0。 txbuff[0]=0x3c。 txbuff[1]=0x04。 txbuff[2]=0x01。 txbuff[3]=0x66。 txbuff[4]=CardBlock。 //search mode txbuff[5]=0。 txbuff[6]=0。 for(i=0。i6。i++) txbuff[6]^=txbuff[i]。 txbuff[7]=0x0d。 for(i=0。i8。i++) { Sendchar(txbuff[i])。 } // //right:3C 12 00 Data0~Data15 BCC 0D //Error: 3C 01 FF(錯誤返回代碼 ) BCC 0D // for(i=0。i21。i++) { rxbuff[i]=Receichar()。 receive[i]=rxbuff[i]。 if(rxbuff[i]==0x0d) if(i==4) break。 if(i==20) {Write_Max7219(4,1)。 jge=1。 } } } // //mand:3C 13 01 67 00(絕對塊號 ) DATA0~DATA15 BCC 0D // void WriteCard(uchar *Data) { uchar i。 uchar txbuff[23]。 //CardStatus=0。 txbuff[0]=0x3c。 txbuff[1]=0x13。 txbuff[2]=0x01。 txbuff[3]=0x67。 txbuff[4]=CardBlock。 //search mode 利用單片機實現(xiàn)非接觸式 IC 卡讀寫 35 for(i=0。i16。i++) txbuff[5+i]=*Data++。 txbuff[21]=0。 for(i=0。i21。i++) txbuff[21]^=txbuff[i]。 txbuff[22]=0x0d。 for(i=0。i23。i++) Sendchar(txbuff[i])。 // //right:3C 02 00 00 BCC 0D //Error: 3C 01 FF(錯誤返回代碼 ) BCC 0D // for(i=0。i6。i++) { rxbuff[i]=Receichar()。 if(rxbuff[i]==0x0d) if(i==5) Write_Max7219(5,1)。 //CardStatus=0x01。 else break。 } } // //mand:3C 04 01 68 00 00 51 0D void
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1