基于Proteus的自動取款機(jī)設(shè)計(jì)與仿真
摘要:自動取款機(jī)系統(tǒng)采用高可靠性的AT89C52單片機(jī)作為核心控制芯片,采用具備I2C總線接口的FM24C02芯片完成密碼與金額的存儲,通過液晶顯示器128x64顯示運(yùn)行狀態(tài)和操作步驟。軟件設(shè)計(jì)采用具有較好移植性和可讀性的C51語言編寫程序,以便修改和增減功能。通過Proteus軟件成功實(shí)現(xiàn)了自動取款機(jī)的仿真過程。經(jīng)仿真表明,利用Proteus軟件進(jìn)行仿真設(shè)計(jì)可極大地簡化單片機(jī)程序在目標(biāo)硬件上的調(diào)試工作。
0 引言
自動取款機(jī),簡稱ATM(Automatic Teller Machine),它使用現(xiàn)代技術(shù)實(shí)現(xiàn)自動取款、修改密碼、查詢余額等操作,是業(yè)務(wù)電子化的一種機(jī)器設(shè)備,由于其便利性和實(shí)用性受到了人們的青睞。本文設(shè)計(jì)了一種自動取款機(jī)系統(tǒng),模擬自動取款機(jī)的基本功能(取款、查詢余額、修改密碼、取卡),使人們了解利用Proteus軟件來實(shí)現(xiàn)自動取款機(jī)的仿真過程。
1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)主要由微控制器模塊、液晶顯示模塊、鍵盤輸入模塊、存儲模塊、蜂鳴電路所組成。系統(tǒng)結(jié)構(gòu)如圖1所示。
微控制器模塊主要完成對整個(gè)系統(tǒng)操作過程的控制;液晶顯示模塊模擬自動取款機(jī)的人機(jī)交互界面;鍵盤輸入模塊完成對密碼的輸入及修改功能;存儲模塊完成對模擬銀行卡密碼及金額的存儲功能。
2 系統(tǒng)硬件電路設(shè)計(jì)
系統(tǒng)硬件電路仿真圖如圖2所示。微控制器采用Atmel公司的AT89C52,存儲器采用具備I2C總線接口的FM24C02芯片,液晶顯示采用LCD 128x64模塊。
液晶顯示模塊是128x64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8 192個(gè)中文漢字(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64x256點(diǎn)陣顯示RAM(GDRAM)??膳c微處理器直接相連,提供兩種界面來連接微處理器:8位并行及串行兩種連接方式。利用該模塊靈活的接口方式,可構(gòu)成全中文人機(jī)交互圖形界面。
FM24C02是2 048位的串行電可擦除只讀存儲器,內(nèi)部組織為256 B,其作用是存儲模擬銀行卡的密碼及金額。
由圖2可知,AT89C52的P0口通過上拉電阻RPt與LCD 128x64的數(shù)據(jù)端口DB0~DB7相連,使讀取或?qū)懭氲臄?shù)據(jù)顯示在液晶模塊上。P1.0~P1.5實(shí)現(xiàn)對模擬銀行卡的操作,如密碼的輸入與修改,查詢余額,取款,取卡等;P2.0,P2.1,P2.2分別接LCD 128x64的使能端,讀/寫數(shù)據(jù)控制端口及片選端口;P2.5,P2.6端口作為模擬銀行卡“CARD1”,“CARD2”按鍵輸入端,當(dāng)LCD 128x64液晶顯示界面出現(xiàn)“請插卡”時(shí),按下相應(yīng)的按鍵即表示了插入銀行卡;P3.0~P3.6端口實(shí)現(xiàn)對鍵盤的掃描,實(shí)現(xiàn)密碼的輸入、修改等功能;P3.7接蜂嗚電路,當(dāng)對模擬銀行卡操作時(shí),就會發(fā)出聲響提示操作已經(jīng)完成。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件包括主程序模塊、鍵盤輸入掃描模塊、液晶顯示模塊等。采用C51語言對系統(tǒng)的各個(gè)模塊編寫程序。系統(tǒng)程序流程如圖3所示。
3.1 主程序模塊
主程序主要用于定義全局變量,給全局變量賦初值,初始化E2PROM,從FM24C02中讀取或?qū)懭朊艽a,驅(qū)動顯示等,為整個(gè)程序提供數(shù)據(jù)。FM24C02讀/寫數(shù)據(jù)部分子程序如下:
3.2 鍵盤輸入掃描模塊
該模塊具備掃描鍵盤確定被按鍵的具體位置、判斷鍵盤上有無鍵按下、消除去抖動、判斷閉合的按鍵是否釋放等功能。
3.3 液晶顯示模塊
此模塊包括液晶初始化、命令的輸入、顯示數(shù)據(jù)的輸入。
向LCD 128x64里寫數(shù)據(jù)部分子程序如下:
4 系統(tǒng)仿真結(jié)果
本文采用具有強(qiáng)大的EDA仿真功能的Proteus軟件進(jìn)行仿真,仿真測試結(jié)果如圖4所示。
當(dāng)按下運(yùn)行的Proteus軟件中的“play”按鈕時(shí),即啟動系統(tǒng),此時(shí)LCD液晶屏顯示如圖4(a)所示的界面。按下仿真電路中“CARD1”按鍵或“CARD2”按鍵,出現(xiàn)圖4(b)所示畫面,在鍵盤輸入界面中輸入銀行卡“CARD1”或“CARD2”密碼。若在密碼輸入的過程中,出現(xiàn)錯(cuò)誤,則可按“key0”鍵進(jìn)行修改。密碼輸入完成之后,按下仿真電路圖中“key1”按鍵確定,若密碼輸入錯(cuò)誤,則出現(xiàn)圖4(c)所示界面,3 s鐘之后轉(zhuǎn)向圖4(d)所示界面,重新輸入密碼。密碼輸入錯(cuò)誤3次及以上,出現(xiàn)圖4(e)所示界面,提示“此卡已被凍結(jié)”,再按“key1”按鍵取卡;若密碼正確,則會出現(xiàn)圖4(f)所示界面。在圖4(f)所示界面下,按下“key0”按鍵選擇“修改密碼”功能,出現(xiàn)圖4(g)界面,輸入新的密碼,修改成功之后跳轉(zhuǎn)圖4(h)界面;按下“key2”按鍵選擇“查詢余額”功能,出現(xiàn)圖4(i)界面;按下“key3”按鍵選擇“取款”功能,出現(xiàn)圖4(i)界面,選擇相應(yīng)的金額按鍵按下(key0按鍵表示1 000,key2按鍵表示2 000,key3按鍵表示3 000),之后出現(xiàn)圖4(k)界面,按下“key4”按鍵取鈔,界面跳轉(zhuǎn)到圖4(1),完成取款操作。若要繼續(xù)選擇業(yè)務(wù)功能,則按下“key5”按鍵,界面重新跳轉(zhuǎn)到圖4(f)界面;若要取卡,則按下“key1”按鍵,則界面跳轉(zhuǎn)到圖4(a),對重新插入的銀行卡進(jìn)行操作。
5 結(jié)語
本文利用Proteus與Keil μVision3軟件對自動取款機(jī)系統(tǒng)進(jìn)行了仿真設(shè)計(jì)與實(shí)現(xiàn)。從仿真結(jié)果可知,利用Proteus軟件進(jìn)行仿真設(shè)計(jì)可極大地簡化單片機(jī)程序在目標(biāo)硬件上的調(diào)試工作,同時(shí)也可直觀展示系統(tǒng)的運(yùn)行界面,實(shí)現(xiàn)了自動取款機(jī)的基本功能,證明了此設(shè)計(jì)方案的可行性與正確性。