基于单片机的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。基于单片机的ic卡门卫系统
相关推荐
输给液晶现实器进行显示。 液晶显示模块 该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块做比较的话,不仅硬件电路结构简洁,且该模块的价格也略低于相同点阵的图形液晶模块, LCD1602 的程序流程图如图 所示。 L C D 初始化开始清显示 R A M 区置显示行初值 , 显示指针指向第一行待显示数据送入缓冲区预设数据显示在指定区域中调整指针 , 指向 L C D
度信号,以“一线总线”串行送给 CPU,同时可传送 CRC校验码,具有极强的抗干扰纠错能力。 9) 负压特性。 电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 9 1) 冷冻库、粮仓、储罐 、电信机房、电力机房、电缆线槽等测温和控制领域。 2) 轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。 3) 汽车空调、冰箱、冷柜以及中低纬度干燥箱等。 4) 供热、制冷管道热量计量
{ SBUF=0xff。 while(!TI)。 delayms(10)。 TI=0。 } for(i=0xff。 i0。 i) { SBUF=0x00。 delayms(10)。 while(!TI)。 TI=0。 } ES=1。 flag=0。 } void juchi() //锯齿波 { for(i=0xff。 i0。 i) { SBUF=i。 while(!TI)。 TI=0。 }
AT89C51 单片机为 40 引脚双列直插芯片 ,有四个 I/O 口 P0,P1,P2,P3, MCS51 单片机共有 4浙江林学院天目学院本科生毕业设计(论文) 7 个 8位的 I/O口( P0、 P P P3),每一条 I/O线都能独立地作输出或输入。 P0口: P0口为一个 8位漏级开路双向 I/O口,每脚可吸收 8TTL门电流。 当 P1口的管脚第一次写 1 时,被定义为高阻输入。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向 振荡器的输出 [6]。 单片机的最小系统 单片机最小系统主要由复位电路 、 晶振电路 、 电源等几部分组成。 (1)复位电路 复位电路有两种方式:上电复位和按钮复位 , 我们 采 用 上电和按键复 位方式。 如 图 31 所示: 10 图 31 复位电路 (2)晶振电路 晶振电路原理图如 32: 选取原则:电容选取
选中其中一列的点阵有效,再使用两个 74HC595 级联而成的移位寄存器作为行驱动器,行驱动驱动译码器选中的这一列中点阵的 16 个发光二极管亮灭情况。 当下一个程序语句到来时, 416 线74HC154 译码器选中下一列有效,行驱动器驱动译码器选中的这一列 16 个发光二极管的亮灭情况,以此类推。 这样反复点亮, 由于人眼视觉暂留现象 (每秒24 次以上 ), 只要速度够快,我们就能看到