基于485总线的食堂刷卡系统_第1页
基于485总线的食堂刷卡系统_第2页
基于485总线的食堂刷卡系统_第3页
基于485总线的食堂刷卡系统_第4页
基于485总线的食堂刷卡系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

传感器与检测应用设计报告目录摘要……………1一设计名称…………………2二设计目的及思路…………2三主要功能…………………3四设计原理………………34.1485总线介绍4.1.1485总线概述4.1.2485总线特点4.2食堂刷卡功能模块4.2.1设计原理五设计步骤…………………65.1485总线核心代码5.2食堂刷卡模块核心代码5.3设计结果截图六心得体会…………………10七参考文献…………………12摘要像现在学校,大型企业都有食堂,食堂基本上都是打卡消费,这样确实很方便,省时间;但也存在一些问题,比如:要是丢失的卡被他人拾到,卡里的钱有可能短时间内被他人刷光,还有就是有时候食堂工作人员没注意把5块钱刷成50块钱,等刷完显示余额的时候学生才发现刷错了,虽然现在这种情况在学生卡管理系统中能查到,但很不方便,如果食堂的刷卡机能显示所有的刷卡记录就可以很方便地发现这种情况了。所以设计一个更先进的食堂消费系统是很必要的(这里以学校食堂消费系统为例)。食堂是一个集体单位、企业等不可缺少的一部分,尤其是学校,学校一直以来都是人群集中比较密集的地方,再随着高校的扩招,学生的密集程度更是急剧增长,故高校食堂的增多是不可避免的。再加上学生没有经济来源,去餐馆消费是几乎消费不起的,所以食堂的存在给广大的学生们带来了很多的方便及好处,同时也给提供餐饮方带来了极大的方便。一、设计名称基于485总线的食堂刷卡系统二、设计目的及思路传统的食堂刷卡管理现在已经很难应对当今社会对食堂的管理要求,它与现在的基于计算机技术发展起来的食堂信息管理系统对比,有以下几大不同:便捷性方面:传统的人工对食堂信息进行管理,如:顾客信息管理,消费信息管理和记账信息管理,都是很繁琐的过程,其中的任何一部过程都要浪费大量的时间,而随着计算机技术的发展,这些原本繁琐的问题就会变得轻而易举。安全性方面:传统的纸质记录方式查询起来很麻烦,而且保密性很差,并且容易磨损丢失,对于金钱的管理是十分不利的。但是如果采用的是电子文档的方式进行数据得保存,这一切都变得非常便捷。你可以方便的对数据信息进行备份查询,并且数据的安全性可以得到最大程度的保证。准确性方面:传统的人工记账容易出错,如果采用这种方式来处理现在的还有打折信息得消费结算会使得工作量很大,如果计算出错,将严重影响自己的声誉。而如果使用软件系统,这些问题都将不会出现,计算机的错误率几乎为零。鉴于以上传统的人工管理方式的种种缺陷,我们设计了方便工厂食堂,学校食堂使用的应用程序,通过它,管理者可以基本解决以上所遇到的种种问题,而且对于金钱的计算有很大的方便。实验思路:三、主要功能刷卡显示卡号及余额,有充值模式和消费模式。四、设计内容4.1485总线介绍4.1.1485总线概述485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。它的电气特性和RS-232大不一样。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。硬件设计在这里使用的串口通讯芯片是常规芯片MXA485,RS485串口通讯电路是一个很成熟的电路,电路大家都熟悉了(参考原理图纸)。从图中可以看出芯片1#管脚是数据接收端,4#管脚是数据发送端;2#、3#管脚是发送/接收状态转换控制端。如图4.1.2RS485的特点包括:1、接口电平低,不易损坏芯片。RS485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。2、传输速率高。10米时,RS485的数据最高传输速率可达35Mbps,在1200m时,传输速度可达100Kbps。3、抗干扰能力强。RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。4、传输距离远,支持节点多。RS485总线最长可以传输1200m以上(速率≤100Kbps)一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。4.2食堂刷卡功能模块4.2.1工作原理每个食堂有很多台刷卡机,于是食堂需要一台计算机来和这些刷卡机通信,当食堂的工作人员通过数字按键(例如一碗粉5块,当他按下5.00,并按确定后),该扣钱信息便向机房的计算机发送命令。当你把饭卡放到刷卡机上后(注意:饭卡离刷卡机3cm内,刷卡机才能感应到),首先读卡器读取卡上的信息(学号、卡号、金额等),再将信息转发到计算机上确定卡的合法性.如果不合法(卡到期、卡挂失、卡禁用)时,会发出嘀嘀嘀滴的报警声;如果卡可以用,则计算机根据这个帐号调出数据库(里面存储着你的使用信息和余额信息等),然后判断你的卡上余额是否足够扣除,如果足够扣除,则再根据刚刚接到的工作人员所发出扣除信号,迅速扣除相应金额(同时发出一声滴的响声),并迅速将你的卡上余额返回刷卡机的显示窗口,同时更新数据库的金额信息,最后退出系统;如果不够扣除,便会发出嘀嘀嘀的连续响声,以警告卡上余额不足。如果你的卡在刷卡机没有放好,刷卡及没能读出你的卡上信息,便没有相应的扣除你的金额,这时,当你收回卡时,刷卡机也会发出连续的嘀嘀嘀声,警告饭卡没有刷上。当工作人员没有输入扣钱金额,即刷卡机便没有给计算机发送扣钱的指令信息,这时当学生把卡放在刷卡机上时,刷卡机读取卡号信息并立即传给计算机,然后计算机将该卡的卡上余额信息返送给刷卡机并显示余额五、实验步骤5.1485总线核心代码intmain(void){uint8_tRcvCh;uint8_tTxBuffer[]="神州系列开发板RS485总线收发实验\r\n";SZ_STM32_LEDInit(LED1);SZ_STM32_LEDInit(LED2);SZ_STM32_LEDInit(LED3);SZ_STM32_LEDInit(LED4);SZ_STM32_RS485();RS485_SET_RX_Mode();SZ_STM32_SysTickInit(1000);SZ_STM32_COMInit(COM2,9600);xPxprintf("\n\r---------------------------------------------\n");xprintf("\n\rSTM32神州系列开发板RS485总线收发实验\n");xprintf("\n\r—按KEY1按键设置神州开发板设置为RS485发送端\n");xprintf("\n\r—按KEY2按键设置神州开发板设置为RS485接收端\n");xprintf("\n\r---------------------------------------------\n");xprintf("\n\n\r提示:当前显示的窗口为串口1/COM1/USART1。\r\n");xprintf("\n\n\r串口2/COM2/USART2作为RS485,请将J14和J12跳到1<->2侧。\r\n");SZ_STM32_KEYInit(KEY1,BUTTON_MODE_GPIO);SZ_STM32_KEYInit(KEY2,BUTTON_MODE_GPIO);SZ_STM32_KEYInit(KEY3,BUTTON_MODE_GPIO);SZ_STM32_KEYInit(KEY4,BUTTON_MODE_GPIO);while(RS485_Mode==IDLE){RS485_MODE_SET();}while(1){if(RS485_Mode==RX_MODE)//RXģʽ {while(USART_GetFlagStatus(SZ_STM32_COM2,USART_FLAG_RXNE)==RESET){}RcvCh=(int)SZ_STM32_COM2->DR&0xFF;xprintf("%c",RcvCh);} elseif(RS485_Mode==TX_MODE) { xprintf("\n\r正在发送数据:%s",TxBuffer);printf("%s",TxBuffer);delay(60000000); }else{RS485_MODE_SET();}}}voidRS485_SET_RX_Mode(void){RS485OBB=0;}voidRS485_SET_TX_Mode(void){ RS485OBB=1;}voidRS485_MODE_SET(void){uint32_tKeyNum=0;while(!(KeyNum=SZ_STM32_KEYScan()))if(1==KeyNum){RS485_Mode=TX_MODE;xprintf("\n\rRS485发送模式设置成功");RS485_SET_TX_Mode();SZ_STM32_LEDOn(LED1);SZ_STM32_LEDOff(LED2);}elseif(2==KeyNum){RS485_Mode=RX_MODE;xprintf("\n\rRS485接收模式设置成功");xprintf("\n\r等待接收数据\n\r");SZ_STM32_LEDOff(LED1);SZ_STM32_LEDOn(LED2);RS485_SET_RX_Mode(); }else{RS485_Mode=IDLE;SZ_STM32_LEDOff(LED1);SZ_STM32_LEDOff(LED2);xprintf("\n\r推出发送接收请重新设置工作模式");xprintf("\n\rUSER1按键:设置RS485为接收模式");xprintf("\n\rUSER2按键:设置RS485为发送模式");}}*本工程为从机,先给从机上电intmain(void){uiUSART2_Config(); USART1_Config();nt8_ttemp;printf("\r\n485实验从机\r\n");while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_5);//进入接收模式while( USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=SET);temp=USART_ReceiveData(USART2);printf("\r\n接收到的数据为%d\r\n",temp);temp++;//把temp的值加1后再发送给主机GPIO_SetBits(GPIOB,GPIO_Pin_5);//进入发送模式USART_SendData(USART2,temp); //发送数据while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);printf("\r\n发送数据成功!\r\n");}}*本工程为主机,实验时先给从机上电intmain(void){uint8_ttemp=0;/*USART2config*/USART2_Config();//串口2用于收发485的数据USART1_Config();//串口1用于输出调试信息printf("\r\n485实验主机\r\n");while(1){GPIO_SetBits(GPIOB,GPIO_Pin_5);//进入发送模式USART_SendData(USART2,temp); //发送数据while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET); printf("\r\n发送数据成功!\r\n");//使用串口1打印调试信息到终端GPIO_ResetBits(GPIOB,GPIO_Pin_5); //进入接收模式while( USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=SET);temp=USART_ReceiveData(USART2);printf("接收到的数据为%d\r\n",temp); }}5.2食堂刷卡模块核心代码intmain(void){ InitRc522(); USART1_Config(); LED_GPIO_Config(); NVIC_Configuration(); LED1(ON); LED2(ON); printf("\r\ntheuseris:ICCard\r\n");USART_Send8(0x15); while(1) { find_card(); Card_Write(2); }}u8ReadData(u8addr,u8*pKey,u8*pSnr,u8*dataout){ u8status,k; status=0x02;// k=5; do{ status=PcdAuthState(PICC_AUTHENT1A,addr,pKey,pSnr); k--; //printf("AuthStateiswrong\n"); }while(status!=MI_OK&&k>0); status=0x02;// k=5; do{ status=PcdRead(addr,dataout); k--; }while(status!=MI_OK&&k>0); returnstatus;}u8WriteData(u8addr,u8*pKey,u8*pSnr,u8*datain){ u8status,k; status=0x02;// k=5; do{ status=PcdAuthState(PICC_AUTHENT1A,addr,pKey,pSnr); k--; }while(status!=MI_OK&&k>0); status=0x02;// k=5; do{ status=PcdWrite(addr,datain); k--; //printf("ReadDataiswrong\n"); }while(status!=MI_OK&&k>0); returnstatus;voidCard_Write(unsignedcharsum){ unsignedcharstatus; data1[0]=sum;data1[4]=~sum;data1[8]=sum; status=PcdWrite(1,data1); if(status==MI_OK) { LED1(OFF); LED2(OFF); InforStore[6]=CardRead(); printf("余额:"); printf("%d\r\n",InforStore[6]); }}u8CardRead(){ unsignedcharstatus;unsignedcharsum;status=PcdRead(1,SN); if(status==MI_OK) { sum=SN[0]; } returnsum; }u8find_card(){ unsignedcharstatus; u8j; u8c; status=PcdRequest(PICC_REQALL,CT); status=PcdAnticoll(SN); if(status==MI_OK) { LED1(ON); LED2(OFF); printf("\r\nTheCardIDis:\r\n"); for(j=0;j<4;j++) { c=SN[j]; printf("%d\t",c); } }}5.3设计结果截图六、心得体会通过此次课程设计,使我更加扎实的掌握了有关485总线方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了刷卡系统的识别和测试,通过查询资料,也了解了刷卡原理。我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。七、参考文献《STM32F103开发手册》基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用单片机在高楼恒压供水系统中的应用基于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论