基于AT89C51的IC卡智能水表設計
摘要:IC卡智能水表以AT89C51為控制核心,實現IC卡的讀寫,液晶顯示的控制,電磁閥的控制,脈沖的提取,同時具有安全保護電路、記憶單元電路、通信接口電路,完成整個水表信號的讀、寫處理,監(jiān)控水表工作的功能。在設計中編程語言使用了C51,并采用模塊化設計方法,不僅易于編程和調試,也可減小軟件故障率和提高軟件的可靠性。本系統(tǒng)具有性能優(yōu)良、穩(wěn)定可靠的優(yōu)點。
關鍵詞:AT89C51;IC卡;液晶顯示;記憶模塊
為適應國家用水制度的改革,研究和利用現代化智能技術對自來水實行自動控制,減輕供水管理部門因“先供水后收費”造成的資金壓力,減少每月抄表、收費所帶來的麻煩和因收費問題帶來的糾紛,用現代科學技術手段改變自來水管理體制的落后現狀,勢在必行?;趩纹瑱C的IC智能水表不但可以提高供水部門的工作效率,而且在技術上為節(jié)約用水、合理用水創(chuàng)造了條件,由于這些特點,基于單片機的IC智能水表得到了越來越廣泛的應用。
1 總體系統(tǒng)設計
該系統(tǒng)系統(tǒng)硬件電路主要由IC卡讀寫電路、液晶顯示控制電路、電磁閥控制電路、脈沖提取電路、安全保護電路、記憶單元電路、通信接口電路組成,以AT89C51為核心控制芯片,完成整個水表信號的讀、寫處理,監(jiān)控水表工作的功能。它能方便地讀取IC卡的數據,并控制電磁閥和液晶顯示器的工作,同時還可以將水表的數據存入E2ROM進行永久保存并可通過串口送至表外的數據終端,大大地提高了該水表的智能化的功能。系統(tǒng)硬件方框總圖如圖1所示。
2 硬件組成與原理
硬件設計是整個系統(tǒng)的基礎,要考慮的方方面面很多,除了實現模擬路燈控制系統(tǒng)基本功能以外,主要還要考慮如下幾個因素:1)系統(tǒng)穩(wěn)定度;2)器件的通用性或易選購性;3)軟件編程的易實現性;4)系統(tǒng)其它功能及性能指標,因此只有合理的硬件設計才能更好的與軟件控制相結合,從而達到整體性好,人性化強、可靠性高的優(yōu)點。
2.1 控制電路
控制電路實質是單片機最小系統(tǒng)??刂齐娐肥窍到y(tǒng)的核心,考慮到程序的大小選用了AT89C51單片機。它由晶體振蕩電路以及輕觸按鍵構成復位電路構成,主要是實現對外圍電路的控制功能,使各模塊電路正常有序的工作。
晶體震蕩電路結合單片機內部的電路,產生單片機所必須的時鐘頻率,作用是為系統(tǒng)提供基本的時鐘信號。
單片機復位電路的作用是使單片機的復位操作使單片機進入初始化狀態(tài),本設計中用的是按鍵電平復位,即當電路已在運行當中時,按下復位鍵后松開,即能使RST為一段時間的高電平,從而實現復位的操作。
2.2 IC卡讀寫電路
控制電路實質是單片機最小系統(tǒng)。它主要完成了對射頻卡(MIFARE 1卡)的讀寫操作。H6152讀寫器對射頻卡進行讀寫后通過串口電平轉換電路將RS232電平轉換為單片機所識別的TTL電平,從而實現了使用AT89C51單片機來控制射頻卡的讀寫過程。硬件電路由單片機模塊、串口電平轉換模塊和H6152讀寫模塊3部分電路組成。
2.3 液晶顯示電路
顯示電路用于在人機接口中反饋信息,主要由液晶模塊構成。硬件設計中選用了低功耗CMOS技術實現的帶KS0108B控制器的GXM12864全點陣圖形式液晶,AT89C51的P0口直接與液晶模塊的數據總線DB0~DB7相連;P2口的0、1、3、5、6引腳分別和液晶模塊的/CSB、/CSA、E、R/W、D/I相連,在單片機程序執(zhí)行過程中,對它們作相應的控制。通過編程可實現對液晶顯示屏的任意位置的顯示、滾動顯示和反顯等功能。
2.4 記憶單元電路
本系統(tǒng)采用美國ATMEL公司的低功耗CMOS串行EEPROM芯片AT24C01是,它內含256x8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數多(大于10 000次)、寫入速度快(小于10 ms)等特點。利用單片機AT89C51與24C01進行I2C通信,實現對某一地址內數據的讀/寫校驗操作。
2.5 電磁閥控制電路
電磁閥選用脈沖式電磁閥,這種電磁閥在開啟時只需在其控制線AB兩端加一正向脈沖(幅度DC12 V寬度大于20 ms),水閥一旦開啟則會自動保持。當關斷時則在AB兩端加一反向脈沖,水閥就會關閉。因為這種電磁閥開啟后不需給電磁閥持續(xù)供電,所以它的功耗非常低,因而特別適合用在IC卡水表中作為水表開啟送水或欠費停水的執(zhí)行單元。電路設計上采用多路模擬開關組合成一組雙刀雙擲開關,在AT89C51的控制下,將正脈沖或負脈沖加到電磁閥的控制線AB兩端。
2.6 其他模塊電路
2.6.1 脈沖提取電路
脈沖提取電路,用于提取IC卡水表的計量脈沖??稍谠械睦鲜綕袷剿砑尤氪裴樅透苫晒?,磁針隨著用水的流動而旋轉使得干簧管動作發(fā)出開關信號,作為計量信號。也可以利用干式磁傳水表已有的開關信號輸出,作為計量信號。
2.6.2 安全保護電路
安全保護電路,利用AT89C51可編程的I/O中斷口接到水表的外封裝上實現保護。使封裝完好時I/O線相當于接地,為低電平,一旦封裝被非法打開,I/O線就不與地連接,其電平變?yōu)楦唠娖?,此時CPU將發(fā)生安全保護中斷,立即關斷電磁閥中斷供水。這樣就能有效地防止私拆或惡意破壞水表的事件發(fā)生。
2.6.3 通信接口電路
通信接口電路,利用AT89C51的串行通信口,選用MAX2338芯片形成485接口電路。外部數據讀取設備可通過水表的485接口,將水表的數據讀出,實現自動抄表功能。
3 系統(tǒng)軟件設計
軟件是本系統(tǒng)的靈魂。軟件采用模塊化設計方法,不僅易于編程和調試,也可減小軟件故障率和提高軟件的可靠性。同時,對軟件進行全面測試也是檢驗錯誤排除故障的重要手段。這里我們選用了移值性好、結構清晰、能進行復雜運算的C語言來實現編程。程序設計中,主要包括IC卡讀寫模塊、液晶顯示模塊、記憶單元處理模塊等幾個模塊。
3.1 IC卡讀寫模塊
單片機控制卡片讀寫器H6152,對非接觸式IC卡進行讀寫的程序流程圖,如圖2所示。
3.2 液晶顯示模塊
單片機控制液晶顯示器件GXM12864,欲顯示以用水量和剩余水量的程序流程圖如圖3所示。
3.3 記憶單元處理模塊
本設計利用單片機與24C01進行I2C通信,實現對某一地址內數據的讀/寫校驗操作。這里假設地址0x02內裝的是水表顯示的已用和剩余水量的數據。默認是讀取其數據,當然也可以設置為其他地址了。其程序流程圖如圖4所示。
4 結論
本設計通過51單片機控制H6152系列讀寫模塊對Mifarel IC智能卡進行讀寫操作,控制液晶顯示等模塊,設計出使用戶先買水后用水的一種智能化水表,使水費收取工作邁向自動化。其設計主要包括IC卡讀寫、液晶顯示、記憶單元、電磁閥控制4個模塊。
評論