1、课程设计带语音播报的ic卡门禁系统设计本科论文 单片机课程设计实验报告 带语音播报的IC卡门禁系统设计 目 录1、前言2、系统的组成与功能 1.1系统组成1.1.1 STC89C52及其电路1.1.2.显示模块1.1.3读卡模块 1.1.4语音模块 1.2系统功能3、系统原理4、系统的制作与改进5、系统工作流程图6、主要程序代码7、原件清单8、结论9、个人心得体会参考文献 射频IC卡门禁系统设计0、前言随着全球经济的发展, 人们对安全问题的关注促使全球安防产业市场快速发展。因经济发展过程中引起的社会治安状况也令人担忧,日益扩大的贫富差距使得发展中国家的犯罪率不断上升,社会对安防产品的需求也因此
2、日益高涨。作为安防产业中的门禁系统已成为多数智能化项目中最常见的安防子系统之一;同时,IC卡门禁系统在政府、企业、工厂、石化、汽车、造船、金融、医院、部队等行业得到了大量应用,到2007年,中国已成为继美国之后全球第二大安防市场。在传统安防产业中,IC卡作为智能化弱电系统中的安防子系统的一部分,集自动识别技术和现代安全管理措施为一体,涉及电子、机械、光学、计算机技术、通讯技术、生物技术等诸多新技术,迈向高度集成化,体现了现代智能化管理的要求。IC卡门禁系统是一种利用计算机进行身份验证,实现开/关门、登录用户进出门信息的自动化管理系统。IC卡门禁,是门禁与IC卡的融合,它的范围渗透到社会各个领域
3、,并发挥日益重要的作用。除了包含门禁、考勤、证件、巡更、就餐、消费、健身、医疗、停车场、图书资料、会议签到、访客管理、电梯控制管理、办公设备管理、会所娱乐、叁表及物业交费等,还与其它智能化系统进行必要的集成和联动,如防盗报警、闭路监控、消防报警,甚至是楼宇自控系统等等。此外,门禁一卡通系统还与ERP等系统做数据接口,如考勤与薪资、人事管理等交互数据,互为依据。目前,国内外研制和使用的门禁系统主要集中在感应门禁系统和生物识别门禁系统;根据主流市场又分为以非接触式IC卡主的产业链及指纹门禁为主的辅助产业链;二者均以提供完善门禁一卡通应用解决方案提供服务。1系统的组成与功能1.1 系统组成1.1.1
4、 STC89C52及其电路应用最广的位单片机之一就是STC公司的89C52,它使用内核,但是在这基础上做了很多改进与传统单片机有所区别,有一些传统没有的功能。89C52单片机是一种8位微控制器,特点是低功耗、有高性能CMOS, 同时内置8K字节可编程Flash存储器。芯片内拥有十分灵巧的8位微处理器和在系统可编程Flash,使得STC89C52单片机提供为许多较灵活、十分有效的解决方案,主要在工农业控制系统中。STC89C52的标准功能如下:8k字节Flash,256字节RAM,32位I/O接口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量的中断结构,全双工串行 口。另
5、外,STC89C52可降至0Hz静态逻辑操作,支持2种工作软件,用来选 择 节 电 模 式。当工作在空闲模式下,微处理器就会停止工作,允许随机存储器、定时器/计数器、串口、中断继续工作。在掉电的时候,随机存储器中的内容会被保存起来,振荡器被冻结,单片机停止一切内外部工作,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。外部引脚如图所示。单纯的一个STC89C52单片机是不能够正常工作的,需要一些外围电路构成一个最小单元才能正常工作,这个最小单元成为最小系统。最小系统如下图所示: 内部结构: 1.1.2.显示模块 LED显示数码管一般正向压降的都是1.52V,额定电流为1
6、0mA,通过最大的电流为40mA。根据各种不同管接线的方式,可将数码管分成共阴极型和共阳极型。本次设计使用共阴极数码管。 LED数码管结构 显示数字共阴极字段码 0 3FH 1 06H 2 5BH 3 4FH 4 66H 5 6DH 6 7DH 7 07H 8 7FH 9 6FH a 77H b 7CH c 39H d 5EH e 79H f 71H 共阴数码管编码1.1.3.读卡模块 本次读卡模块使用RC522(如图)。RC522属于高集成读写卡芯片中的一个,基本上是使用免接触通讯当中。直接使用RC522集成模块来连接单片机89C52接口,用排插来连接RC522与单片机,目的是为了方便模块的
7、的移植和通用性。通行方式选用的是SPI串口通信模式。同步串行数据运用接口,这是一般的数据传输运用模式,它是在和外围器件之间进行的,器件一般为低速器件,工作过程中,移位脉冲有主器件产生,按位传输的数据,高位排在前面,通讯模式为全双工,速度一般为几兆每秒,速度比I2C总线模块下要快。()MOSI主器件数据输出,从器件数据输入()MISO主器件数据输入,从器件数据输出()SCK时钟信号()SDA双向数据信号(5)IRQ中断请求信号 RC522实物图1.1.4语音模块 WT588D语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。WT588D让语音芯片不再为控制方式而寻找合适的外围单片机电路,高
8、度集成的单片机技术足于取代复杂的外围控制电路。配套WT588D VoiceChip上位机操作软件可随意更换WT588D语音单片机芯片的任何一种控制模式,把信息下载到SPI-Flash上即可。软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。完全支持在线下载,即便是WT588D通电的情况下,一样可以通过下载器给关联的SPI-Flash下载信息,给WT588D单片机语音芯片电路复位一下,就能更新到刚下载进来的控制模式。 WT588D连接示意图 WT588D应用方框图1.2 系统的功能本系统最直观的功能就是刷卡功能。IC模块是由单片机控制的,当MIFARE卡在IC模块可以检测到的范
9、围之内时,MIFARE卡中的数据即被IC模块读取,然后IC模块将信息传送给单片机,单片机处理之后可以被数码管显示出来,数码管也就显示了IC卡的序列号,最后通过语音读出是否刷卡错误。以上部分是IC门禁的主要功能。2、系统原理本设计的中心部分是主控MCU即STC89C51部分。在MCU周围接上IC卡读写模块,当MIFARE卡与IC卡读写模块进行通信之后,IC卡内部buffer存储的信息传送给MCU进行处理,然后通过内部控制程序,对IC卡传递过来的信息进行特点处理,然后可以让数码管显示出来,从数码管可以看出卡号。当读取到的卡号与存储的可以通过的卡号匹配时,然后绿色LED灯所接端口被加上高电平,然后绿
10、色灯被点亮,表明刷卡通过,扬声器响。否则,红色LED灯被点亮,表明刷卡被拒绝。注释:由于没有读卡器模块,故不能进行仿真验证,只能通过大概设置各个模块的位置, 便于焊接时进行布局3、系统的制作与改进 该系统可以对所有采用RC522系统的MIFARE卡进行读取操作,譬如作为学生经常使用的校园一卡通,水卡等,为了进行验证系统的可靠性和完善性,对多张一卡通,水卡的读取操作进行了测试并进行了验证,结果表明无误后,进行了语音方面的扩展,使其在刷卡后能读出所刷卡是否是与预设卡号一致的卡,正确错误均给出提示。第一次进行焊接设计,板子也小,布线比较乱,以后会努力进行改正。改进后的图,由于板子太小,进行扩展比较不
11、方便,所以又加了一块板进行扩展用。没有预设卡号,复位后显示00000000.是预设的卡号ox76,0x6a,0xa3,0xad,显示卡号,指示灯不亮,蜂鸣器不响,扬声器给出,“刷卡正确,please come in”的提示。不是预设的卡号,指示灯亮,显示卡号0x56,0x9f,0xa3,0xad,扬声器发出:“刷卡错误,请确认卡号”的警报!4、系统工作流程图否是 是 否5、主要程序代码#include include.hsbit smguan0=P10; /选择数码管的三根控制线sbit smguan1=P11;sbit smguan2=P12;sbit greenLED=P14;/开门,可以
12、进入sbit redLED=P15;/不能开门,报警sbit rst=P14; /* RESET */ sbit sda=P30; /* DATA ,即WT588D的P01脚 */sbit CS =P31; /* CS 片选,即WT588D的P02脚 */ sbit SCL=P32; /* CLK ,即WT588D的P03脚 */ sbit BUSY=P13; /* 判断是否在播音 */ uchar opendoor=1; /预设门能开uchar zhong=0; /选中哪个数码管显示sbit DIN=P05; /小数点/*数码管0-9编码*Uchar Disp_Tab=0xd7,0x14,0
13、xcd,0x5d,0x1e,0x5b,0xdb,0x15,0xdf,0x5f,0x9F,0xDA,0xC3,0xDC,0xCB,0x8B,0x00;/*左边LED四位 0 1 2 3 4 5 6 7 8 9 A B C D E F 不亮 共阴数码管段码表 (按图接法的编码)*/Uchar Disp_Tab2=0x5F,0x41,0x9D,0xd5,0xC3,0xD6,0xDE,0x45,0xDF,0xD7,0xCF,0xDA,0x1E,0xD9,0x9E,0x8E,0x00;/*右边LED四位 0 1 2 3 4 5 6 7 8 9 A B C D E F 不亮 共阴数码管段码表 (按图接法的
14、编码)*/void main(void) long int j=0; InitAll(); greenLED=1; redLED=1;TEST_Busy();Send_threelines(0);TEST_Busy(); TEST_Busy();Send_threelines(1);TEST_Busy(); while(1) KeyNum=GetKey(); if(KeyNum=N_1) KeyTime=15; sendchar1(0xaa); oprationcard=SENDID; if(bWarn) bWarn=0; Warn(); if(bPass) bPass=0; Pass(); if(uart_comp) /在uart_interrupt_receive(void)中断中,串口收到数据,调处理程序 ctrl_uart();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1