射频卡流量办理体系(制止转载)

  [仿制链接]
42638 333
虫子先生 宣布于 2013-12-12 21:34:11 | 只看该作者 |只看大图 |阅览形式 打印 上一主题 下一主题
本帖最终由 gazelle 于 2014-8-29 14:20 修正

发现有人在转载我的帖子,所以下载源文件的权限现已更改,以防那些厌恶的人轻松拿到。
只想说一句,你转载应该通过我的赞同!感谢wannabaw2009会员及时反响信息。

不是怕转载,有些朋友转载了,随意涂抹图片,乃至删减文字

让咱们久等了,电子制造射频卡流量办理体系在立马共享给咱们!
期望不论您觉得我做得好仍是欠好,都回复一下,渴求您名贵的定见,也等候您的鼓舞!
-------------------------------------------------------------------------------------------------

         先来个全家福!!!
*****************************************************
         
******************************************************
        首要介绍下制造的理由,想对淋浴,饮水等进行流量操控,现在我校是按时刻消费的,这个不科学,饮水机一般是平摊费用,有了流量收费,咱们能够依据自己的流量付费,基本是公正的。而且现在许多大学都用的是IC卡,IC卡有许多长处:
       a、存储容量大。磁卡的存储容量大约在200个字符;IC卡的存储容量依据类型不同,小的几百个字符,大的上百万个字符。
       b、安全保密性好,不容易被仿制,IC卡上的信息能够随意读取、修正、擦除,但都需求暗码。
       c、CPU卡具有数据处理才能。在与读卡器进行数据交流时,可对数据进行加密、解密,以保证交流数据的精确牢靠;而磁卡则无此功用。
      d、运用寿命长,能够重复充值。
      e、IC卡具有防磁、防静电、防机械损坏和防化学损坏等才能,信息保存年限长,读写次数在数万次以上。

-------------------------------------------------------------------------------------------------
       思路:
             首要读取IC卡,将IC卡存储的信息显现出来,假如显现成功,则翻开电磁阀,敞开外部中止计数脉冲,依据脉冲个数进行相应的扣款操作。比方每10个脉冲扣相应的金额,完结扣款后一起回来余额,并显现出来。写一个上位机对名字,钱包,学号等进行更改。
   
-------------------------------------------------------------------------------------------------
     材料:
        EHY射频卡读写模块                   2                串口协议    用于读写射频卡
        STC12C5A60S2单片机               2                选他是由于是双串口,而且速度还不错
        继电器                                       2                 操控电磁阀
        三极管   8050   8550                若干,          驱动蜂鸣器,继电器
        LED                                          若干
        7805稳压                                 2
        12864液晶                               2
        流量计                                      2                   一热一冷(热的是铜原料的)
        电磁阀                                      2                   一热一冷(热的是铜原料的)

        
-------------------------------------------------------------------------------------------------
  好了,咱们开端吧
  加上上课的时刻,研讨了射频卡,基础知识必需求,否则不知道怎样用他的,我选用了X宝的EHY射频卡读写模块,他是运用串口协议做的一个模块,由于我自己高频布线没经历,假如自己做要好久的时刻估量,仍是自己自身的短缺。先说下这个串口协议的缺点,我也是用了才知道的,他的一切指令都是以AA BB最初,最终一位数据是前面出最初以外的异或成果,
串口收数据的时分原本就不知道收多长,他这个版别的模块没有解决这个问题, 举个比如 : 寻卡的指令是AA BB 02  20  22   ,AA  BB最初,22是前面02和20的异或成果。引荐咱们运用其他协议的。

-------------------------------------------------------------------------------------------------  
原理图以及PCB图
-------------------------------------------------------------------------------------------------   
首要规划电路图,IO口没几个的其实

*****************************************

****************************************

说下图里边的过错,驱动继电器的三极管咱们用8050,然后是PCB上,液晶倒数第二脚没接VCC,呈现的问题便是液晶有数据不显现,后来发现,原理图里边没有接,抑郁了,咱们能够从头画

-------------------------------------------------------------------------------------------------  
驱动12864
-------------------------------------------------------------------------------------------------   

*************************************
没有用户,等候形式
**************************************

*************************************
读到卡了,显现名字,学号,钱包
*************************************

**************************************
跟着流量计脉冲个数增加,单片机进行计费,一起进行扣款操作,操作完毕显现当时余额
**********************************************************************

*************************************
用户移走卡,蜂鸣器长鸣一声,提示卡已移走
*********************************************************************

-------------------------------------------------------------------------------------------------  
上位机(改动名字,充值,初始化等操作,依赖于模块) 用C#写的哈!
-------------------------------------------------------------------------------------------------  


**************************************
没挑选串口前一切的都是灰色,表明不行操作
**************************************

***************************************
挑选串口后,按钮可操作,更改框能够进行改写
****************************************

**************************************
单击读卡按钮后的显现
*************************************
注:下面操作几个就点开端履行即可,这儿不赘述,上位机源代码在文章最终
-------------------------------------------------------------------------------------------------  
射频卡通讯设备   (和上位机调配运用)
-------------------------------------------------------------------------------------------------   

*****************************************************************************
上面黄色的纸是打印的,双面胶贴上去,内部是一个USB转TTL,还有个射频卡读写卡模块。
******************************************************************************
-------------------------------------------------------------------------------------------------  
程序部分
-------------------------------------------------------------------------------------------------  
++++++++++++++++++++++++++++++++++++++++++++++++++
注:个人觉得本次程序写得很废物,忘各位看官大神海涵,正在提高自我中,不过仍是完成了功用吧,初学单片机的坛友请不要仿照。惧怕影响你们,诚心的。
+++++++++++++++++++++++++++++++++++++++++++
//        search card and get card serial number
uchar xdata ComSearchCard[5]  = {0xAA,0xBB,0x02,0x20};//寻卡,回来AA BB 06 20 92 BF 72 59 20
//        read block No.x
uchar xdata ComReadBlock[13]  = {0xAA, 0xBB, 0x0a, 0x21, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};//读哪一块第六位便是0x0几。
//        read block No.8
//uchar ComReadBlock6[13]  = {0xAA, 0xBB, 0x0a, 0x21, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
//        write block No.8 with 0x01 to 0x0f
uchar xdata ComWriteBlock[29] = {0xAA, 0xBB, 0x1a, 0x22, 0x00, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//0xff是暗码
                                                   0x02, 0x00, 0x01, 0x01, 0x00, 0x07, 0x00, 0x01,//
                                                   0x04, 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00};//要写的数据
//         initialize block No.8 as a purse with value: 0x12345678
uchar xdata ComIntiPurse[17]  = {0xAA, 0xBB, 0x0e, 0x23, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//初始化钱包。分区5为钱包                             
                                                   0xff, 0xff, 0x00, 0x00};
//        read purse value of block No.5
uchar xdata ComReadPurse[13]  = {0xAA,0xBB,0x0a, 0x24, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};//读取分区5的钱包  回来四字节的数据
//        purse in block No.5 increase with value "2"
uchar xdata ComIncrPurse[17]  = {0xAA,0xBB,0x0e, 0x25, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //增加钱包的余额
                                                   0x01, 0x00, 0x00, 0x00};//要增加的值
//        purse in block No.5 decrease with value "1"
uchar xdata ComDecrPurse[17]  = {0xAA,0xBB,0x0e, 0x26, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//扣费
                                                   0x01, 0x00, 0x00, 0x00};//要削减的值
//  halt the card selected
uchar xdata ComHaltCard[5]    = {0xAA,0xBB,0x02,0x28};//
//  the purse final value after INC & DEC
/********************************************************************
*
*             接纳从IC卡回来的数据 。用数组存储
*  
***********************************************************************/
uchar xdata ICSearchCard[9]={0};//5-7位是卡的序列号
uchar xdata ICReadBlock[21]={0};
uchar xdata ICWriteBlock[5]={0};
uchar xdata ICIntiPurse[5]={0};
uchar xdata ICReadPurse[9]={0};
uchar xdata ICIncrPurse[5]={0};
uchar xdata ICDecrPurse[5]={0};
uchar xdata ICHaltCard[5]={0};
/*****************************提取数据的数组*********************/
uchar xdata user_block8[12]={0}; //学号
uchar xdata user_card[4]={0};  //卡号
uchar xdata user_cash[4]={0}; //现金
uchar xdata user_name[6]={0}; //名字

/////////////////////////////////////////////
以上是要用到指令数组,处理数组,显现数组等等
////////////////////////////////////////////

这个是指令挑选进口函数,注释写得很具体,咱们自己去看哈,又不明白的能够跟帖。然后便是12864显现的函数,还有串口什么的初始化。
扣费的时分需求留意下
***************************************************
EX0 = 0;
countflag = 0;//脉冲标志清零
feetemp = 0x01;//这儿是扣的金额
feecount = feecount + feetemp;//核算运用总额,需求显现也能够显现的
ComDecrPurse[12] = feetemp;//写入扣钱金额
j = Command_choic(7);//100个脉冲削减一分钱
*******************************************************************************
然后个数的问题,在外部中止里边去修正下就好了,主张咱们运用宏界说直接能够在顶部修正即可
**************************************************************************
   count++;
   if (count == 1) //这儿更改脉冲个数
   {                                         
      countflag = 1;
          count = 0;
   }
********************************************************************************
注:本次为什么运用双串口单片机是有原因的,由于一边要和模块通讯,一边要打印数据出来调查是否正确,所以要运用两个串口,当然我用的串口2和模块去通讯,这也是为什么用12C5A60S2的原因哈

上位机的程序也是烂得很有品尝各位看官见谅了,真实不由得,你们就批斗吧!
上位机代码就不拿上来献丑了,在附件里,咱们有爱好的能够看看,有BUG的,我自己发现了一个。欠好意思说啦

-------------------------------------------------------------------------------------------------------------------
建立管道体系,对饮水机进行改装模仿,(实际上淋浴体系应该比饮水机好改)
-------------------------------------------------------------------------------------------------------------------

*********************************************************************************
热水管道体系,前面是流量计,后边是电磁阀
*******************************************************************************


*************************************
热水冷水建立行将完毕
************************************

*******************************************
差不多了,冷水管道也好了,拐了几道弯啊
**********************************************

****************************************
接上操控体系,那个小的是射频卡读写模块
****************************************


***************************************
最终便是这个屌丝姿态,
****************************************
------------------------------------------------------------------------------------
体系现在存在的缺乏与缺点
------------------------------------------------------------------------------------

1.流量计我选用的四分,成果其实饮水机的流量没那么大,四分流量计选用如图所示好久才有一个反响,感觉仍是意外法神的,
没办法,估量要改成2分的,可是咱们记住电磁阀必定要用四分的,由于2分电磁阀过不鸟水,便是感觉堵着,我直接用嘴吹都吹不动,很吃力,然后便是后期我要么自己改成2分,要么整个增压的,否则不能正常作业
2.如您所见,丑恶之极,表明找不到地方装置。
3.程序写得有些乱
4.主张:           a,主张咱们写程序留意部分
                         b,写程序多用枚举和结构体,便利,高效
                         c,做这个东西之前,我认为自己想得很周到,没想到一路出问题,特别是饮水机压强和电磁阀里边的软垫子需求必定的压力才能够敞开,表明无尽的蛋疼

好吧,就到这儿了,立刻周末端,祝咱们周末愉快,下面是共享给咱们的东西,假如您对这个办理体系有什么定见或是批判,望帅哥美人们不吝赐教!小生在此谢过!
------------------------------------------------------------------------------------
附件在此!看官们,回复下给点儿定见呗!谢谢
------------------------------------------------------------------------------------

************************************************
都在里边了,原理图,上位机,源代码,射频卡材料什么的
************************************************
射频卡流量办理体系发布.zip (10.18 MB, 下载次数: 744)
参加人数 19下载币 +1 奉献 +73 刀币 +290 收起 理由
茅草屋 + 8 + 10 很给力!
黄世仁 + 130 最佳原创帖
ynqjzzh + 10 + 10 精品文章
727462808 + 4 这是练过的吗?这么强壮
ozhaojie + 10
数电menmenchaig + 10 + 10 高科技,支撑一下
兄弟当头GX + 10 + 10
LC丶 + 5 + 10
农民三拳 + 2 + 5
流星也会永久 + 10 精品文章

检查悉数评分总评分 : 下载币 +1 奉献 +73 刀币 +290

保藏
保藏43
共享
共享
支撑
支撑0
对立
对立0

精彩谈论333

跳转到指定楼层
2#
叶嘉飞 宣布于 2013-12-12 21:34:52 | 只看该作者
抢沙发   嘻嘻  看看
3#
西瓜 宣布于 2013-12-12 21:46:45 | 只看该作者
32个赞······强哥好棒·····
4#
大闽江电子 宣布于 2013-12-12 21:47:23 | 只看该作者
不错啊   楼主很强啊
5#
 楼主| 虫子先生 宣布于 2013-12-12 21:50:52 | 只看该作者
大闽江电子 宣布于 2013-12-12 21:47
不错啊   楼主很强啊

过奖了,有许多问题觉得,期望你们觉得那里有问题就批判指正
6#
木头风火轮 宣布于 2013-12-12 21:57:06 | 只看该作者
刷饭卡吊水???这个曾经在成都有所专科校园里边才智过, 他们是刷卡用热水洗澡
7#
 楼主| 虫子先生 宣布于 2013-12-12 21:58:32 | 只看该作者
木头风火轮 宣布于 2013-12-12 21:57
刷饭卡吊水???这个曾经在成都有所专科校园里边才智过, 他们是刷卡用热水洗澡

能够滴,可是他们是算时刻滴
8#
夜曲cjx 宣布于 2013-12-12 22:01:08 | 只看该作者
话说这个做确实实很有用,不过咱们校园的沐浴是流量计费的
9#
 楼主| 虫子先生 宣布于 2013-12-12 22:02:46 | 只看该作者
夜曲cjx 宣布于 2013-12-12 22:01
话说这个做确实实很有用,不过咱们校园的沐浴是流量计费的

嗯嗯,咱们校园是挤时刻啊,觉得很不合适啊
10#
无悔 宣布于 2013-12-12 22:19:14 | 只看该作者
不错,记下了,今后研讨!!!!!!!!!!
您需求登录后才能够回帖 登录 | 注册

本版积分规矩

重视咱们
我国电子DIY官方微信

客服电话:000-000-0000

客服邮箱:[email protected]

周一至周五 9:00-18:00

公司地址:深圳市南山区美丽湾大厦B座

Powered by Discuz! X3.4@ 2001-2013 Comsenz Inc.