语音图像信息处理学院:通信与电子工程学院班级:电信132姓名:赵旭智学号:2013134018同组成员:指导老师:刘文礼日期:2016年6月10日组员分工1、组长:赵旭智,系统软件设计主程序lcd12864模块软件设计Ctrl模块软件设计2、组员:毕鸿翔,系统硬件设计最小系统模块电路设计键盘矩阵模块电路设计蜂鸣器模块电路设计IC模块电路设计显示器模块电路设计3、组员:张齐昌,焊接调试结果分析目录1.设计任务和性能指标……………………………………………………………….11.1设计任务…………………………………………………………………………………………………….11.2性能指标…………………………………………………………………………22.设计方案…………………………………………………………………………………………………………….31.3任务分析…………………………………………………………………………………………………….31.4方案设计…………………………………………………………………………………………………….33.系统硬件设计…………………………………………………………………………………………….……..43.1系统整体电路设计………………………………………………………………..….43.2最小系统模块电路设计模块电路设计…………………………………………………....63.3键盘矩阵模块电路设计…………….....………………….......................…………3.4蜂鸣器模块电路设计…………….....………….............................................…3.5IC模块电路设计………………………………………………………………………….3.6显示器模块电路设计模块电路设计…………………………………………………....83.7晶振模块电路设计…….....…………....................…….....…………....................3.8复位模块电路设计…….....…………....................…….....…………....................3.9USB模块电路设计………………………………………………………................……………104.系统软件设计……………………………………………………….…………………………………….….124.1主程序设计………………………………………………………………………………………………..124.2模块软件设计………………………………………………………………………..174.3lcd12864模块软件设计……………………………………..185.系统调试………………………………………………………………………………………………………….195.1调试过程…………………………………………………………………………………………………….194.3结果与分析…………………………………………………………………………………………………216.心得体会……………………………………………………………………………………………………….….22参考文献………………………………………………………………………………………………………………..23附录1系统原理图……………………………………………………………………………………………..24附录2系统实物图……………………………………………………………………………………………...25附录3程序清单…………………………………………………………………………………………………2611.设计任务和性能指标1.1设计任务校园一卡通是高校信息化、数字化的重要组成部分,是感应智能卡在高校中使用的发展趋势,感应智能卡具有保密性强、容量大、操作便捷、可扩展性强等特性。学生、教职工可以在各自的网点或自助终端实现余额查询、充值、消费、等金融支付;可以代替学生在学校内的所有个人证件(如工作证、学生证、身份证等),可以通过基于单片机和RFID的校园卡读卡器,ic卡读取和写信息,然后在12864上显示,写卡的时候通过矩阵键盘,感应智能卡内的电子钱包实现餐饮、购物、上机上网等内部消费。如图1-1,1-2,1-3。图1-1图1-2图1-32图1-41.2性能指标本系统性能指标如下(1)(2)(3)2.设计方案2.1任务分析2.2方案设计智能卡读写器的总体方案设计主要分为两个主要的部分:一是系统的硬件方案设计要确定电路中的各个模块电路的功能和系统的总体的硬件方案;二是系统的软件设计方案,主要是包括软件设计的流程图和部分功能的程序。在硬件系统设计中将电路划分为不同的模块,并确定其功能,然后通过不断的查阅资料,学习与本设计相关的知识,并且反复对系统的硬件设计方案进行论证以及向老师的求证,最终确定了系统的设计方案,下面将详细讲述各部分的器件的选材及在本设计中的具体应用。通过对电子元器件的选择和电路的分析和设计,基本的电路已经确定各部分的电路功能也基本确定。本次设计的最小系统用的是STC89C52,IC卡,LCD12864显示,矩阵键盘,蜂鸣器,复位,根据模块的描述可以确定系统主控制器的系统框图3.系统硬件设计3.1最小系统模块电路设计3图3-1STC89C52RC单片机是一款新型功能增强型的单片机,它所使用的代码用在普通型的单片机也是可以的,一样能很好的实现其所具有的功能。机器和时钟周期在其运行的时候也是能相互的选择与切换,其程序的电可擦写特性,使得开发与试验比较容易,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。STC89C52单片机引脚功能如下表所示:43.2键盘矩阵模块电路设计图3-23.3蜂鸣器模块电路设计本蜂鸣器报警电路采用的是其经典电路,蜂鸣器主要被分为两种类型,一种是压电式蜂鸣器,另一种是电磁式蜂鸣器。在本次的读卡器设计中,其作用主要是作为电路是否接通的报警提示音,另外,当刷卡成功后,也会有提示音,告诉设计者刷卡成功。图3-33.4IC模块电路设计非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。是新发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。卡片在一定距离范围(通常为5—10mm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作。二者之间的通讯频率为13.56MHZ。5图3-43.5显示器模块电路设计带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。图3.53.6晶振模块电路设计单片机外围的电路之一晶振电路如图3-3所示,有两个的电容和一个12MHz的晶振组成,其中晶振尽可能的要放在单片机的旁边,这样才能使其能更好的振荡,这样单片机才能更好的工作,另外,两个电容也起到滤除杂波以及减少电路中元器件的电气干扰的作用,使电路能很好的起到应有的作用。6图3-63.7复位模块电路设计单片机最小系统的外围电路之二是复位电路,当单片机系统通上电以后,其单片机的复位引脚会发生一个短暂的从高电平到低电平的变化。当按下复位开关时,会对C5的电容放电,使其的复位引脚处于高电平状态,这样就使单片机系统达到复位的功能。图3-73.8USB模块电路设计电源采用USB5V供电以及用CH341在异步串口方式下,该芯片提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于将普通的串口设备直接升级到USB总线,发光二极管作为电源指示灯,用于指示电源是否正常工作。图3-84.系统软件设计本读卡器系统的设计程序编程采用C语言,主要因为C语言结构简单,灵活性高,方便以后软件出现问题时的后继的调试与修改,同时C语言的功能也比其他编程语言功能更为强大。另外本设计也采用了C语言思想中的模块化编程思路!很大程度上也方便了在以后使用过程中对系统的维护!其他则是ALE,NRD,NWR,RST,NCS等单片机和射频芯片的通信、控制等接口。本系统中读卡模块的主要任务就是读取卡号,然后将卡号送给主MCU。读卡过程是一个很复杂的程序。执行过程,要按固定的顺序执行一系列的操作指令。由相应的指令程序来对相关寄存器控制不同的码号的输出,就可实现不同控制器设置,执行不同卡的操作命令。4.1主程序设计#includereg52.h#includemain.h#includeuart.h7#includetimer.h#includerc522.h#includectrl.h#includelcd12864.h#includebeep.h#includekey.h#includeEEPROM.hvoidinit_all(void)//初始化{EA=0;//关总中断init_timer();//定时器初始化init_uart();//串口初始化init_rc522();//RC522初始化lcd_init();//LCD初始化//EEPROM_READ(0,Card_SN_BUF,4);//EEPROM初始化,取出记录的卡号//EEPROM_READ(7,KEY_BUF,8);//EEPROM初始化,取出记录的密码send_bytes(Card_SN_BUF,4);EA=1;//开总中断}voidmain(void)//主函数{INT8Ukey;Delay_ms(500);//让硬件稳定init_all();//执行初始化函数relay_OFF();//关继电器LED_BLINK_1();//ledtestbeep1();//beeptestdisplay(0,0,0);//显示初始化while(1){key=key_scan();//按键操作if(key==12)if(states0)states--;elsestates=0;//上一功能if(key==13)if(++states2)states=2;//下一功能ctrl_process();//进入RC522操作}}84.2lcd12864模块软件设计LCD液晶显示用来显示用户以及卡储存的资料,通过控制以及调试显示程序、相应的指令代码来使LCD出现预期的消费、余额显示、充值等目的,如图4-1。图4-1程序#includereg52.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedint/*LCD12864端口定义*/#defineLCD_dataP0//数据口sbitLCD_RS=P2^2;//寄存器选择输入sbitLCD_RW=P2^1;//液晶读/写控制sbitLCD_EN=P2^0;//液晶使能控制//sbitLCD_PSB=P0^4;//串/并方式控制,部分液晶不需要ucharcodedis0[]=校园学生卡;ucharcodedis1[]=1.余额查询;ucharcodedis2[]=2.消费:;ucharcodedis3[]=3.充值:;ucharcodedis4[]=4.卡登记;ucharcodedis5[]=成功;ucharcodedis6[]=失败;voiddelay(intms)//延时xms{while(ms--){uchari;for(i=0;i250;i++)9{_