基于单片机的ic卡门卫系统内容摘要:

EA=1。 //开总中断 EX0=0。 //禁止外部中断 delayms(10)。 WP_IC_CARD =1。 ES=1。 i=10。 while(flag1)。 //当子程序传输数据终了时控制 Flag跳出循环 flag1=1。 WP_IC_CARD =1。 for(i=10。 i15。 i++){wr_24c01(i,display_buffer[i])。 delay(250)。 } bibo()。 //数据传输成功提示音 BUZZER=1。 } if((SW3==0)amp。 amp。 (CHECKPW==1)){ //写合法字 D2=0。 for(i=0。 i200。 i++){ SEGMENT=0x0E。 BIT_LED=1。 delay(150)。 BIT_LED=2。 delay(150)。 BIT_LED=4。 delay(150)。 BIT_LED=8。 delay(150)。 } BIT_LED=0。 SCON=0x50。 //设置成串口工作方式在 8 位 URT TMOD=0x20。 //设置 T1为可重装 8 位定时器 TL1=0xFD。 //256FOSC/BTL/32/12 9600bps() TH1=0xFD。 1 TR1=1。 //开启定时器 EA=1。 //开总中断 EX0=0。 //禁止外部中断 WP_IC_CARD =1。 ES=1。 i=0。 while(flag1); //当子程序传输数据终了时控制 Flag 跳出循环 ES=0。 flag1=1。 WP_IC_CARD =1。 for(i=0。 i5。 i++){wr_24c01(i,display_buffer[i])。 delay(250)。 } bibo()。 //数据传输成功提示音 BUZZER=1。 } } } goto start。 } ///////////////串行中断程序 /////////////////////////////// void int_(void) interrupt 4 { display_buffer[i]=SBUF。 while(!RI)。 if((i==14)|(i==4)){flag1=0。 } else i=i+1。 RI=0。 } ////////////////////////////////////////////////////////////// /////**IC 卡读写子程序 **////////////////////////////////////// void start() { SDA_IC_CARD=1。 SCL_IC_CARD=1。 SDA_IC_CARD=0。 SCL_IC_CARD=0。 } void stop() { SDA_IC_CARD=0。 SCL_IC_CARD=1。 SDA_IC_CARD=1。 } void ack() { 1 SCL_IC_CARD=1。 SCL_IC_CARD=0。 } void shift8(char a) { data unsigned char i。 _data=a。 for(i=0。 i8。 i++) { SDA_IC_CARD=mos_bit。 SCL_IC_CARD=1。 SCL_IC_CARD=0。 _data=_data*2。 } } unsigned char rd_24c01(char a) { data unsigned char i,mand。 SDA_IC_CARD=1。 SCL_IC_CARD=0。 start()。 mand= shift8(mand)。 ack()。 shift8(a)。 ack()。 start()。 mand=161。 shift8(mand)。 ack()。 SDA_IC_CARD=1。 for(i=0。 i8。 i++) { _data=_data*2。 SCL_IC_CARD=1。 low_bit=SDA_IC_CARD。 SCL_IC_CARD=0。 } stop()。 return(_data)。 } void wr_24c01(char a,char b) { data unsigned char mand。 1 WP_IC_CARD=0。 _nop_()。 SDA_IC_CARD=1。 SCL_IC_CARD=0。 start()。 mand= shift8(mand)。 ack()。 shift8(a)。 ack()。 shift8(b)。 ack()。 stop()。 _nop_()。 WP_IC_CARD=1。 } void delay(int n) { int i。 for(i=1。 i=n。 i++){。 } } ////////////////动态显示子程序 //////////////////////////// unsigned char get_code(unsigned char i) { unsigned char p。 switch (i){ case 0: p=0x3F。 break。 /*0*/ case 1: p=0x06。 break。 /*1*/ case 2: p=0x5B。 break。 /*2*/ case 3: p=0x4F。 break。 /*3*/ case 4: p=0x66。 break。 /*4*/ case 5: p=0x6D。 break。 /*5*/ case 6: p。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。