<noscript id="jftie"></noscript>
    <style id="jftie"><mark id="jftie"><dfn id="jftie"></dfn></mark></style>
  1. <span id="jftie"></span>
    • 国产成人精品久久一区二区,韩国精品久久久久久无码,国产精品国产高清国产av,欧美99久久无码一区人妻a片,亚洲高清码在线精品av,午夜人妻久久久久久久久,伊人热热久久原色播放www ,亚洲女教师丝祙在线播放
      你的位置:首頁 > 測試測量 > 正文

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      發布時間:2013-12-20 責任編輯:mikeliu

      【導讀】相信許多上學的小朋友們都知道學校澡堂的按時間收費的不公平性,洗澡又不是打電話,好不合理!而按流量收費就基本是公平了好多,于是乎,有極客的DIY大神在飲水機上做了實驗,真的是奇思妙想無極限!快來看看吧!

      先來個全家福!!!

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      IC卡的特點:

      a、存儲容量大。磁卡的存儲容量大約在200個字符;IC卡的存儲容量根據型號不同,小的幾百個字符,大的上百萬個字符。

      b、安全保密性好,不容易被復制,IC卡上的信息能夠隨意讀取、修改、擦除,但都需要密碼。

      c、CPU卡具有數據處理能力。在與讀卡器進行數據交換時,可對數據進行加密、解密,以確保交換數據的準確可靠;而磁卡則無此功能。

      d、使用壽命長,可以重復充值。

      e、IC卡具有防磁、防靜電、防機械損壞和防化學破壞等能力,信息保存年限長,讀寫次數在數萬次以上。

      思路:

      首先讀取IC卡,將IC卡存儲的信息顯示出來,如果顯示成功,則打開電磁閥,開啟外部中斷計數脈沖,根據脈沖個數進行相應的扣款操作。比如每10個脈沖扣相應的金額,完成扣款后同時返回余額,并顯示出來。寫一個上位機對姓名,錢包,學號等進行更改。
      [page]

      材料:

      2個EHY射頻卡讀寫模塊     串口協議    用于讀寫射頻卡

      2個STC12C5A60S2單片機    選他是因為是雙串口,并且速度還不

      繼電器                      控制電磁閥
      若干三極管 8050 8550          

      若干驅動蜂鳴器,繼電器   LED          

      2個7805穩壓           

      2個12864液晶          

      2個流量計               一熱一冷(熱的是銅材質的)

      2個電磁閥               一熱一冷(熱的是銅材質的)

      原理圖以及PCB圖

      首先設計電路圖,IO口其實沒幾個

      以及PCB圖

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      圖里面的錯誤:

      1、驅動繼電器的三極管大家用8050,

      2、PCB上,液晶倒數第二腳沒接VCC,導致液晶有數據不顯示,后來發現,原理圖里面沒有接,可以重畫。

      驅動12864

      沒有用戶,等待模式。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!
      [page]

      讀到卡了,顯示姓名,學號,錢包。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      隨著流量計脈沖個數增長,單片機進行計費,同時進行扣款操作,操作完畢顯示當前余額。


      用戶移走卡,蜂鳴器長鳴一聲,提示卡已移走。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      上位機(改變姓名,充值,初始化等操作,依賴于模塊) 用C#寫語言編寫。
      [page]

      沒選擇串口前所有的都是灰色,表示不可操作。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      選擇串口后,按鈕可操作,更改框可以進行改寫。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      單擊讀卡按鈕后的顯示。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!
      [page]

      程序部分

      //        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}; //姓名

      以上是要用到命令數組,處理數組,顯示數組等.。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      這個是命令選擇入口函數,注釋寫得很詳細,大家自己去看哈。然后就是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;
         }
      *********************************************************************
      [page]

      為什么使用雙串口單片機?

      因為一邊要和模塊通信,一邊要打印數據出來觀察是否正確,所以要使用兩個串口.

      為什么用12C5A60S2的原因:

      用串口2和模塊去通信.

      搭建管道系統,對飲水機進行改裝模擬,(實際上淋浴系統應該比飲水機好改)

      熱水管道系統,前面是流量計,后面是電磁閥。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      極客DIY:射頻卡流量管理系統,竟然這么玩?!
      [page]

      熱水冷水搭建即將結束。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      冷水管道也好了,拐了幾道彎。
      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      極客DIY:射頻卡流量管理系統,竟然這么玩?!
      [page]

      接上控制系統,那個小的是射頻卡讀寫模塊。

      最后就是這個樣子。

      極客DIY:射頻卡流量管理系統,竟然這么玩?!

      不足與缺陷:

      1.流量計選用的四分,建議改成2分,但是電磁閥一定要4分的。

      2.如您所見,丑陋之極,表示找不到地方安裝。

      3.程序寫得有些亂。

      建議:
                
      a、建議大家寫程序注意部分

      b、寫程序多用枚舉和結構體,方便,高效

      c、飲水機壓強和電磁閥里面的軟墊子需要一定的壓力才可以開啟,需要考慮周全。

      相關閱讀:

      DIY:自制車用超級電容器【附原理圖】
      告別黑暗,牛人自制“搖一搖”手電筒
      實用DIY:將USB鼠標集成到PCI接口里


      特別推薦
      技術文章更多>>
      技術白皮書下載更多>>
      熱門搜索
      ?

      關閉

      ?

      關閉

      主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠888奇米| 男男车车的车车网站w98免费| 国产日产欧洲无码视频无遮挡| 在教室伦流澡到高潮hnp视频 | 国产aⅴ无码久久丝袜美腿 | 国产成人综合日韩精品无码不卡| 国产农村黄aaaaa特黄av毛片| 高清人人天天夜夜曰狠狠狠狠| 国产极品美女到高潮| 国产aⅴ无码久久丝袜美腿| 久久香蕉综合色一综合色88 | 人妻无码人妻有码中文字幕在线| 浪荡女天天不停挨cao日常视频| 制服丝袜美腿一区二区| 在线天堂资源www在线中文| 狼友网精品视频在线观看| 亚洲精品字幕| 国产精品青草久久久久福利99| 国偷自产一区二区免费视频| 成人网站国产在线视频内射视频 | 激情综合色五月丁香六月亚洲| 亚洲国产精品久久青草无码| 天天天天躁天天爱天天碰2018| 使劲快高潮了国语对白在线| 成人毛片无码一区二区三区 | 精品国产av一区二区果冻传媒 | 92电影网午夜福利| 大伊香蕉精品一区视频在线| 欧美最猛性xxxxx大叫| 国产黑色丝袜在线观看片不卡顿 | 中文字幕日产无码| 国产偷国产偷亚洲清高孕妇| 久久99国产精品二区| 一区二区三区国产亚洲网站| 国产精品a久久777777| 日韩新无码精品毛片| 动漫精品视频一区二区三区| 无码国产精品成人| 欧美成人天天综合在线| 亚洲国产精品无码久久98| 强奷乱码中文字幕|