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