历史上的今天
返回首页

历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2020年10月15日 | 51单片机水卡充值扣费系统 RC522+S50卡源程序

2020-10-15 来源:51hei

本设计包括两个终端,包括负责水卡充值(可选择金额)的充值终端和每次刷卡扣费两元的付费终端。制作成品时建议两个终端做在一块板子上,用跳帽切换两个51单片机的电源。

主控芯片51单片机
射频模块RC522
射频卡M1卡S50
以下是付费终端的程序

#include "reg52.h"

#include "main.h"

#include "mfrc522.h"

#include         //函数处理头文件        

#include          //字符串处理头文件  

#include           // 输入输出函数头文件


unsigned char code data1[16] = {0x00,0x00,0x00,0x00,0xff,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0xFE,0x01,0xFE};

//M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令

//4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反

unsigned char data2[4]  = {0x00,0x00,0x00,0x00};//存值减值金额

unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //密码

unsigned char TYPE_DATA[2];                                              //类型

unsigned char ID_DATA[4];                                                //ID地址

unsigned char value_DATA[4];                                             //卡里面的值                                                                                                                                 

unsigned char g_ucTempbuf[20];                                           //卡号

unsigned char code dis0[] = {"S50"};

unsigned char code dis1[] = {"S70"};

unsigned char code dis2[] = {"X"};

unsigned char code dis3[] = {"44"};        

unsigned char code dis4[] = {"ID:"};  

unsigned char code dis5[] = {"RMB:"};   

unsigned char code dis6[] = {"0123456789ABCDEF"};  

unsigned int tt=0,a=2,b,falg_pro;                                    //falg_pro声音提示标志         

void main( )

{     

     unsigned char status;

     InitializeSystem( );                 //初始化

     PcdReset();                                //复位RC522

     PcdAntennaOff();                     //关闭天线

     PcdAntennaOn();                      //开启天线

           data2[1]=a/256;

                 data2[0]=a%256;

     while ( 1 )

     {                           

               status = PcdRequest(PICC_REQALL, g_ucTempbuf); //返回卡片类型#define PICC_REQIDL 0x26 寻天线区内未进入休眠状态

                                 if(status!= MI_OK)         //读不到卡,显示清0;

                                 {

                                                TYPE_DATA[0]=0;         

                                                TYPE_DATA[1]=0;

                                                ID_DATA[0]=0;

                                                ID_DATA[1]=0;

                                                ID_DATA[2]=0;

                                                ID_DATA[3]=0;

                                                value_DATA[0]=0;

                                                value_DATA[1]=0;

                                                value_DATA[2]=0;

                                                value_DATA[3]=0;

                                                falg_pro=0;

                                                b=0;

                                 }

         if (status == MI_OK)

         {         

                                                 TYPE_DATA[0]=g_ucTempbuf[0];

                                                 TYPE_DATA[1]=g_ucTempbuf[1];

                                                  status = PcdAnticoll(g_ucTempbuf);       //防冲撞 ,返回卡片ID号 4字节

                         if (status == MI_OK)

                         {

                                                           status = PcdSelect(g_ucTempbuf);    //选定卡片  ,输入卡片ID号

                                         if (status == MI_OK)

                                         {         

                                                                     if(falg_pro==0)//声音提示标志

                                                                                 {

                                                                                         falg_pro=1;

                                                                                         pro();

                                                                                 }        

                                                                         ID_DATA[0]=g_ucTempbuf[0];

                                                                         ID_DATA[1]=g_ucTempbuf[1];

                                                                         ID_DATA[2]=g_ucTempbuf[2];

推荐阅读

史海拾趣

Aptos Technology公司的发展小趣事

Aptos Technology成立于2006年,正值电子科技行业蓬勃发展的时期。初创时期的Aptos面临着资金短缺、技术积累不足以及市场竞争激烈等多重挑战。然而,凭借其独特的SiP-System in Package技术,公司成功在微电子封装领域获得了一席之地。通过不断的研发和创新,Aptos逐渐在行业内崭露头角。

DEWALT公司的发展小趣事

随着全球经济的不断发展和市场需求的不断增长,DEWALT公司开始积极拓展海外市场。公司在全球范围内设立了多个生产基地和销售网络,为不同地区的用户提供优质的产品和服务。同时,DEWALT还积极与全球知名的企业和品牌进行合作,共同推动电动工具行业的发展。在未来,DEWALT公司将继续致力于技术创新和产品拓展,为全球用户提供更加高效、耐用的电动工具产品。

台湾双羽公司的发展小趣事

富士通的故事始于1935年,当时它作为一家电信设备制造公司在日本成立。在那个通信技术刚刚起步的时代,富士通凭借其创新精神和卓越的技术实力,迅速在电信设备领域崭露头角。公司最初专注于电话交换机的生产,随着技术的不断进步,富士通逐渐扩大了业务范围,为日本的电信基础设施建设做出了重要贡献。这一阶段的成功,为富士通后续在电子行业的蓬勃发展奠定了坚实的基础。

COMPUTAR公司的发展小趣事

随着摄影和摄像技术的不断发展,市场对镜头性能的要求也越来越高。为了满足这一需求,CBC株式会社于1985年成功研制出第一款非球面高速镜头。这款镜头采用了先进的非球面设计,有效减少了像差和畸变,提高了成像质量。非球面高速镜头的诞生,不仅为CBC赢得了更多的市场份额,也为整个光学行业树立了新的技术标杆。

百佳(BAIJIA)公司的发展小趣事

在多年的发展过程中,百佳公司始终坚守品质至上的原则。他们严格把控产品质量,从原材料采购到生产制造的每一个环节都进行严格的监控和检测。同时,百佳公司还注重提升客户服务水平,为客户提供及时、专业的技术支持和售后服务。正是这种对品质的坚持和对客户的尊重,使得百佳公司赢得了广大客户的信赖和长期合作。

这五个故事只是百佳公司在电子行业发展中的一部分缩影。它们展示了百佳公司从初创时期的艰苦与坚持,到抓住市场机遇迅速崛起,再到技术创新引领发展、拓展国际市场实现全球化布局,以及坚持品质至上赢得客户信赖的完整历程。这些故事不仅见证了百佳公司的成长和成功,也展现了电子行业的蓬勃发展和无限可能。

德旭电子(DEXU)公司的发展小趣事

随着公司规模的不断扩大和业务范围的不断拓展,德旭电子开始注重履行社会责任和推动可持续发展。公司积极参与公益事业和社会活动回馈社会。

在环保方面德旭电子坚持绿色生产和低碳发展理念积极推广环保技术和设备降低生产过程中的能耗和排放。同时公司还注重产品的环保性能研发和生产符合环保标准的产品满足客户的环保需求。

在社会责任方面德旭电子关注员工福利和职业发展为员工提供良好的工作环境和培训机会促进员工的成长和发展。此外公司还积极参与社会公益事业和慈善活动为社会做出积极贡献。

通过这些举措德旭电子在履行社会责任和推动可持续发展方面取得了显著成效赢得了社会的广泛认可和赞誉。

问答坊 | AI 解惑

基于模拟电感的混沌同步电路的研究

李芳,李征,柯熙政 西安理工大学自动化与信息工程学院 陕西西安 710048 众所周知,电子学的近代趋势是减小电路的尺寸,而在集成电路中要减小电阻和电容器的尺寸是比较简单的,至于无源电感器,体积庞大,不利于集成。这是因为半导体内得不 ...…

查看全部问答>

单片机与对讲机

单片机输出的数字信号,如何加载到对讲机上发射出去?还是将数字信号转换一下再加载呢?转换成什么格式呢?…

查看全部问答>

vs2005中新建的pocket PC2003 项目与wince4.0是什么关系?

vs2005中新建的pocket PC2003 项目与wince4.0是什么关系? 我新建的是pocket PC2003 项目,看文档说明书的时候,人家都说是,wince3.0 4.0什么的, 我想知道 pocket PC2003 到底是对应wince哪个版本呢? 先谢了..…

查看全部问答>

配置QT出现错误 运行make shi

在执行#make时 出现如下错误: ismounted.c:146: dereferencing pointer to incomplete type ismounted.c:146: dereferencing pointer to incomplete type make[2]: *** [ismounted.o] 错误 1 make[2]: Leaving directory `/root/yizhi/e2fspr ...…

查看全部问答>

学习PLC

急求大家帮帮忙 本人是计算机专业毕业的,现在所在单位准备调动我去搞技术 现在在搞PLC,有一些技术员的帮助,但人家也忙,不好意思老问人家 想问问大家,现在自己自学PLC,怎么入手,电路很弱,几乎可以忽略。。。。。。 看了看编出来的程序,感 ...…

查看全部问答>

linphone-1.7.1的编译问题

make  all-am make[1]: Entering directory `/home/lonelysand/huang/lin/linphone-1.7.1/mediastreamer2/src\' /bin/sh ../libtool --tag=CC --mode=link gcc -I.. -I../../oRTP/include -I/home/lonelysand/linphone/speex/include&n ...…

查看全部问答>

【求助】不通过循线 的小车定位问题

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 本人菜鸟,求助小车前方1m处有一个木块,木块尺寸5cm x 5cm x 5cm 场地不能循线,问:小车如何才能行驶到木快处?只通过超声波传感器能实现吗? 1m的距离啊求解好方案 [ 本帖最后由 beife ...…

查看全部问答>

程序员版的《奋斗》

replyreload += \',\' + 1484699;简介 · · · · · ·   本书描写了绝影等程序员的成长之路,分为大学、工作、创业三部分。作者笔下以绝影、BOSS liu、Bug Yang等为代表的程序员是大多程序员成长的真实写照,很多网友看过小说之后都说“这些 ...…

查看全部问答>