基于485总线的食堂刷卡系统

上传人:aa****6 文档编号:29217878 上传时间:2018-01-22 格式:DOCX 页数:17 大小:1.64MB
返回 下载 相关 举报
基于485总线的食堂刷卡系统_第1页
第1页 / 共17页
基于485总线的食堂刷卡系统_第2页
第2页 / 共17页
基于485总线的食堂刷卡系统_第3页
第3页 / 共17页
基于485总线的食堂刷卡系统_第4页
第4页 / 共17页
基于485总线的食堂刷卡系统_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于485总线的食堂刷卡系统》由会员分享,可在线阅读,更多相关《基于485总线的食堂刷卡系统(17页珍藏版)》请在金锄头文库上搜索。

1、传感器与检测应用设计报告目 录摘要 1一 设计名称 2二 设计目的及思路 2三 主要功能 3四 设计原理 34.1 485 总线介绍4.1.1 485 总线概述4.1.2 485 总线特点4.2 食堂刷卡功能模块4.2.1 设计原理五 设计步骤 65.1 485 总线核心代码5.2 食堂刷卡模块核心代码5.3 设计结果截图六 心得体会 10七 参考文献 12摘 要像现在学校,大型企业都有食堂,食堂基本上都是打卡消费,这样确实很方便,省时间;但也存在一些问题,比如:要是丢失的卡被他人拾到,卡里的钱有可能短时间内被他人刷光,还有就是有时候食堂工作人员没注意把 5 块钱刷成 50 块钱,等刷完显示余

2、额的时候学生才发现刷错了,虽然现在这种情况在学生卡管理系统中能查到,但很不方便,如果食堂的刷卡机能显示所有的刷卡记录就可以很方便地发现这种情况了。所以设计一个更先进的食堂消费系统是很必要的(这里以学校食堂消费系统为例)。食堂是一个集体单位、企业等不可缺少的一部分,尤其是学校,学校一直以 来都是人群集中比较密集的地方,再随着高校的扩招,学生的密集程度更是急剧增长,故高校食堂的增多是不可避免的。再加上学生没有经济来源,去餐馆消费是几乎消费不起的,所以食堂的存在给广大的学生们带来了很多的方便及好处,同时也给提供餐饮方带来了极大的方便。一、设计名称基于 485 总线的食堂刷卡系统二、设计目的及思路传统

3、的食堂刷卡管理现在已经很难应对当今社会对食堂的管理要求,它与现在的基于计算机技术发展起来的食堂信息管理系统对比,有以下几大不同:便捷性方面:传统的人工对食堂信息进行管理,如:顾客信息管理,消费信息管理和记账信息管理,都是很繁琐的过程,其中的任何一部过程都要浪费大量的时间,而随着计算机技术的发展,这些原本繁琐的问题就会变得轻而易举。安全性方面:传统的纸质记录方式查询起来很麻烦,而且保密性很差,并且容易磨损丢失,对于金钱的管理是十分不利的。但是如果采用的是电子文档的方式进行数据得保存,这一切都变得非常便捷。你可以方便的对数据信息进行备份查询,并且数据的安全性可以得到最大程度的保证。准确性方面:传统

4、的人工记账容易出错,如果采用这种方式来处理现在的还有打折信息得消费结算会使得工作量很大,如果计算出错,将严重影响自己的声誉。而如果使用软件系统,这些问题都将不会出现,计算机的错误率几乎为零。鉴于以上传统的人工管理方式的种种缺陷,我们设计了方便工厂食堂,学校食堂使用的应用程序,通过它,管理者可以基本解决以上所遇到的种种问题,而且对于金钱的计算有很大的方便。实验思路:三、主要功能刷卡显示卡号及余额,有充值模式和消费模式。四、设计内容4.1 485 总线介绍4.1.1 485 总线概述485(一般称作 RS485/EIA-485)是隶属于 OSI 模型物理层的电气特性规定为 2 线,半双工, 多点通

5、信的标准。它的电气特性和 RS-232 大不一样。用缆线两端的电压差值来表示传递信号。 RS485 仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。硬件设计在这里使用的串口通讯芯片是常规芯片 MXA485,RS485 串口通讯电路是一个很成熟的电路,电路大家都熟悉了(参考原理图纸)。从图中可以看出芯片 1#管脚是数据接收端,4#管脚是数据发送端;2#、3#管脚是发送/接收状态转换控制端。如图4.1.2 RS485 的特点包括:1、 接口电平低,不易损坏芯片。RS485 的电气特性:逻辑“1”以两线间的电压差为+(26)V表示;逻辑“0”以两线间的电压差为-(26)V 表示。接

6、口信号电平比 RS232 降低了,不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。2、传输速率高。10 米时,RS485 的数据最高传输速率可达 35Mbps,在 1200m 时,传输速度可达 100Kbps。3、抗干扰能力强。RS485 接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。4、传输距离远,支持节点多。RS485 总线最长可以传输 1200m 以上(速率100Kbps)一般最大支持 32 个节点,如果使用特制的 485 芯片,可以达到 128 个或者 256 个节点,最大的可以支持到 400 个节点。4.2 食堂刷卡功

7、能模块4.2.1 工作原理每个食堂有很多台刷卡机,于是食堂需要一台计算机来和这些刷卡机通信, 当食堂的工作人员通过数字按键(例如一碗粉 5 块,当他按下5.00,并按确定后),该扣钱信息便向机房的计算机发送命令。当你把饭卡放到刷卡机上后(注意:饭卡离刷卡机 3cm 内,刷卡机才能感应到),首先读卡器读取卡上的信息( 学号、卡号、金额等) ,再将信息转发到计算机上确定卡的合法性.如果不合法(卡到期、卡挂失、卡禁用)时,会发出嘀嘀嘀滴的报警声;如果卡可以用,则计算机根据这个帐号调出数据库(里面存储着你的使用信息和余额信息等),然后判断你的卡上余额是否足够扣除,如果足够扣除,则再根据刚刚接到的工作人

8、员所发出扣除信号,迅速扣除相应金额(同时发出一声滴的响声),并迅速将你的卡上余额返回刷卡机的显示窗口,同时更新数据库的金额信息,最后退出系统;如果不够扣除,便会发出嘀嘀嘀的连续响声,以警告卡上余额不足。如果你的卡在刷卡机没有放好,刷卡及没能读出你的卡上信息,便没有相应的扣除你的金额,这时,当你收回卡时,刷卡机也会发出连续的嘀嘀嘀声,警告饭卡没有刷上。当工作人员没有输入扣钱金额,即刷卡机便没有给计算机发送扣钱的指令信息,这时当学生把卡放在刷卡机上时,刷卡机读取卡号信息并立即传给计算机,然后计算机将该卡的卡上余额信息返送给刷卡机并显示余额五、实验步骤5.1 485 总线核心代码int main(v

9、oid) uint8_t RcvCh;uint8_t TxBuffer = 神州系列开发板 RS485 总线收发实验rn; 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(nr-n );xprintf(nr STM32神州系列开发板 RS485 总线收发实

10、验 n);xprintf(nr按 KEY1按键设置神州开发板设置为 RS485发送端 n);xprintf(nr按 KEY2按键设置神州开发板设置为 RS485接收端 n);xprintf(nr-n );xprintf(nnr 提示: 当前显示的窗口为串口 1/COM1/USART1。rn);xprintf(nnr 串口 2/COM2/USART2作为 RS485,请将 J14和 J12跳到 12侧。rn);SZ_STM32_KEYInit(KEY1, BUTTON_MODE_GPIO);SZ_STM32_KEYInit(KEY2, BUTTON_MODE_GPIO); SZ_STM32_KE

11、YInit(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 xprintf(%c, RcvCh);else if(RS485_Mode = TX_MODE) xprint

12、f(nr正在发送数据: %s, TxBuffer);printf(%s, TxBuffer);delay();elseRS485_MODE_SET(); void RS485_SET_RX_Mode(void)RS485OBB = 0;void RS485_SET_TX_Mode(void)RS485OBB = 1;void RS485_MODE_SET(void)uint32_t KeyNum = 0;while(!(KeyNum = SZ_STM32_KEYScan() if(1 = KeyNum)RS485_Mode = TX_MODE;xprintf(nrRS485 发送模式设置成功)

13、;RS485_SET_TX_Mode();SZ_STM32_LEDOn(LED1);SZ_STM32_LEDOff(LED2);else if(2 = KeyNum)RS485_Mode = RX_MODE;xprintf(nrRS485 接收模式设置成功); xprintf(nr等待接收数据nr);SZ_STM32_LEDOff(LED1);SZ_STM32_LEDOn(LED2);RS485_SET_RX_Mode(); elseRS485_Mode = IDLE;SZ_STM32_LEDOff(LED1);SZ_STM32_LEDOff(LED2);xprintf(nr 推出发送接收 请

14、重新设置工作模式);xprintf(nr USER1按键:设置 RS485为接收模式);xprintf(nr USER2按键:设置 RS485为发送模式);*本工程为从机,先给从机上电int main(void)uiUSART2_Config();USART1_Config(); nt8_t temp;printf(rn485实验从机rn);while(1)GPIO_ResetBits(GPIOB,GPIO_Pin_5); /进入接收模式while( USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!= SET); temp = USART_ReceiveData(USART2);printf(rn接收到的数据为%d rn,temp);temp+; /把 temp的值加 1后再发送给主机GPIO_SetBits(GPIOB,GPIO_Pin_5); /进入发送模式USART_SendData(USART2, temp); /发送数据while (USART_GetFlagStatus(USART2,USART_FLAG_TC) !=SET); printf(rn发送数据成功!rn);*本工程为主机,实验时先给从机上电int main(void)uint8_t temp = 0; /* USART2 c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号