[工學(xué)]Proteus軟件的單片機(jī)仿真ATM_第1頁(yè)
[工學(xué)]Proteus軟件的單片機(jī)仿真ATM_第2頁(yè)
[工學(xué)]Proteus軟件的單片機(jī)仿真ATM_第3頁(yè)
[工學(xué)]Proteus軟件的單片機(jī)仿真ATM_第4頁(yè)
[工學(xué)]Proteus軟件的單片機(jī)仿真ATM_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、內(nèi)蒙古工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書摘要基于proteus軟件的單片機(jī)自動(dòng)取款機(jī)(atm)仿真系統(tǒng)設(shè)計(jì),硬件電路需要單片機(jī)開發(fā)板和12864液晶顯示器,能夠?qū)崿F(xiàn)自動(dòng)取款的全部功能。通過在在計(jì)算機(jī)上用c語(yǔ)言編程來將生成文件下載到單片機(jī)控制其它外圍器件工作。但是在eda新技術(shù)的引入使得系統(tǒng)的開發(fā)成本降低而且靈活性增強(qiáng),在proteus軟件中都可以找到上述硬件元件,通過電路圖連接完全可以實(shí)現(xiàn)仿真功能。在keil軟件環(huán)境下通過c語(yǔ)言編程,編譯調(diào)試后生成單片機(jī)下載的hex(十六進(jìn)制)文件,硬件電路圖是在proteus軟件中進(jìn)行建模。通過proteus和keil結(jié)合建立的虛擬系統(tǒng)實(shí)現(xiàn)聯(lián)合仿真,單片機(jī)實(shí)時(shí)控制1

2、2864lcd實(shí)現(xiàn)漢字的顯示,掃描鍵盤從而達(dá)到用戶與atm的信息交換,使得atm系統(tǒng)設(shè)計(jì)變?yōu)楝F(xiàn)實(shí)。atm系統(tǒng),是一個(gè)有數(shù)據(jù)庫(kù)組成的應(yīng)用系統(tǒng)。用戶的初始信息通過e2prom存放,這樣免去了掉電丟失數(shù)據(jù)的弊端。系統(tǒng)功能有用戶在atm上提取現(xiàn)金、查詢賬戶余額、修改密碼、賬戶凍結(jié)、密碼保護(hù)、自動(dòng)存款及轉(zhuǎn)賬功能。可以仿真實(shí)現(xiàn)最基本的銀行服務(wù)。關(guān)鍵詞:atm;51單片機(jī);proteus;keil;12864lcd;e2prom;虛擬仿真abstractautomatic teller machine system is based on proteus 51-microcontroller.hardwar

3、e circuit includes microcontroller developer board and 12864lcd display. all features of atm can be well worked on it. programming on pc then download created file to 51-microcontroller to control outer circuit. however, with the introduction of eda, new technology, which lower the cost of system ex

4、ploration and enhance flexibility. programing with c language, compiling and debugging under the environment of keil software,creating a hex file which will be downloaded by microcontroller later. hardware schematic diagrams are established with proteus software. according to the combination of prot

5、eus and keil , making a virtual system , successfully achieve united simulation. microcontroller controls 12864lcd to display chinese words, scans keyboard to exchange information between customer and atm, which makes virtual atm system becoming reality.atm system includes databases, which are used

6、for the storage of customers initial information, leading to emerge from the disadvantage of data lost when power cuts. the functions of atm are as follows: withdraw cash, search client and remaining modify password, client freezed, password protection, automatic deposit and transfer client. this sy

7、stem simulates to realize the banks fundamental services. keywords:atm;51microcontroller;proteus;keil;12864lcd;e2prom;virtual simulation目錄引言1第一章 proteus軟件的單片機(jī)atm系統(tǒng)31.1 proteus軟件的atm概述31.2 proteus軟件的atm安全性分析31.3 proteus軟件的atm穩(wěn)定性分析31.4 proteus軟件的atm主要功能分析3第二章 proteus軟件仿真的硬件系統(tǒng)設(shè)計(jì)52.1 mcs-51系列單片機(jī)52.1.1 a

8、t89c51單片機(jī)52.1.2 單片機(jī)應(yīng)用系統(tǒng)硬件設(shè)計(jì)52.2 串行傳輸52.3 i2c串行總線62.4 e2prom82.5 12864液晶顯示模塊102.5.1引腳功能102.5.2 12864ddram存儲(chǔ)器102.5.3 顯示控制控制方法112.6 蜂鳴器122.7 鍵盤122.7.1 鍵的識(shí)別122.7.2 鍵盤掃描流程圖132.8 atm硬件原理圖13第三章 proteus單片機(jī)仿真軟件系統(tǒng)設(shè)計(jì)153.1 c-51簡(jiǎn)介153.1.1 c-51具有特點(diǎn)153.1.2 c-51具有優(yōu)點(diǎn)153.1.3 c-51獨(dú)特地方153.2 atm自動(dòng)取款機(jī)系統(tǒng)流程163.3 程序介紹163.4 p

9、ctolcd2002掃描軟件173.5 proteus軟件193.5.1 proteus概述193.5.2 proteus具有特點(diǎn)193.5.3虛擬工具箱203.6 keil軟件213.6.1概述213.6.2創(chuàng)建工程22第四章 proteus軟件仿真結(jié)果23第五章 結(jié)論25參考文獻(xiàn)26附錄27謝辭34內(nèi)蒙古工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書引言隨著大規(guī)模集成電路的發(fā)展,組成微型計(jì)算機(jī)的各個(gè)功能部件:中央處理器、ram、rom、eprom、并行串行輸入輸出i/o接口電路、定時(shí)器/計(jì)數(shù)器集、中斷控制等部件成到一塊半導(dǎo)體芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)8。由于它具有功能強(qiáng)、體積小、功耗低、價(jià)格便宜、工作可

10、靠、使用方便靈活等特點(diǎn),因此特別適合工業(yè)控制或控制類有關(guān)的數(shù)據(jù)處理系統(tǒng),愈來愈廣泛的應(yīng)用到自動(dòng)控制、智能化儀表以及家用電器等各個(gè)領(lǐng)域。由于其結(jié)構(gòu)及應(yīng)用特點(diǎn),不同于通用的微型計(jì)算機(jī),它的執(zhí)行命令時(shí)間是可以計(jì)算出時(shí)間。目前生產(chǎn)單片機(jī)的廠商很多intel、motorola、philips等公司,產(chǎn)品達(dá)上百種,雖然其名稱各異但原理大同小異。單片機(jī)在智能儀表方面的應(yīng)用有,利用單片機(jī)改造原有的測(cè)量控制儀表,促進(jìn)儀表像數(shù)字化、智能化方向發(fā)展。a/d轉(zhuǎn)換器的集成,通過單片機(jī)軟件的編寫程序來控制溫度、壓力、流量、濃度等的測(cè)量顯示。而且還具有復(fù)雜運(yùn)算、誤差修正、線性化、零點(diǎn)漂移處理、數(shù)字濾波等功能。其實(shí)具有很強(qiáng)的

11、靈活性和實(shí)踐性。proteus就是一款很好的單片機(jī)仿真軟件,通過學(xué)習(xí)這款軟件不僅能夠掌握一些硬件電路還能更深刻的理解單片機(jī),從而達(dá)到理論與實(shí)踐相結(jié)合。增強(qiáng)感性認(rèn)識(shí),在仿真的同時(shí)培養(yǎng)動(dòng)手能力,創(chuàng)新能力和綜合知識(shí)運(yùn)用。而且仿真技術(shù)的發(fā)展帶來很大的經(jīng)濟(jì)效益。例如在航空工業(yè)方面,采用仿真技術(shù)使大型客機(jī)的設(shè)計(jì)和研制周期縮短20%?,F(xiàn)代仿真技術(shù)應(yīng)用于各個(gè)工程領(lǐng)域,對(duì)于社會(huì)經(jīng)濟(jì)等系統(tǒng),很難在真實(shí)的系統(tǒng)上進(jìn)行實(shí)驗(yàn)。因此,利用仿真技術(shù)來研究這些系統(tǒng)就具有更為重要的意義。而51單片機(jī)又是最基礎(chǔ)的所以要扎實(shí)掌握原理,加上eda軟件的鼎力相助,使得學(xué)習(xí)單片機(jī)變得更有意思。keil軟件可以實(shí)現(xiàn)匯編和c語(yǔ)言的編程,剛學(xué)單

12、片機(jī)學(xué)的是匯編語(yǔ)言,感受是命令比較多而且很接近硬件,可移植性差。單片機(jī)c語(yǔ)言相比匯編語(yǔ)言是高級(jí)語(yǔ)言,很大提高編程速度而且對(duì)硬件了解不是很高。編程環(huán)境接近visual c+ 6.0,不同就是需要建立工程然后添加c文件,可以進(jìn)行軟件仿真,斷點(diǎn)設(shè)置,全速運(yùn)行,單步運(yùn)行,程序中的延時(shí)函數(shù)是通過軟件仿真調(diào)試成功。仿真atm自動(dòng)取款機(jī),要實(shí)現(xiàn)的功能是就像銀行那里的功能,基本功能有存款,修改密碼,查詢余額,轉(zhuǎn)帳和自動(dòng)存款。程序思想就是源于校園的自動(dòng)取款機(jī)的流程而設(shè)計(jì)。插卡后輸入密碼然后進(jìn)行一系列業(yè)務(wù)處理最后退卡完成交易。硬件電路設(shè)計(jì)有12864lcd對(duì)漢字進(jìn)行顯示,并且掌握了漢字編碼原理,用軟件生成見后邊軟

13、件介紹。iic總線對(duì)e2prom的數(shù)據(jù),指令的寫入和讀出程序編寫。鍵盤掃描程序用的是c語(yǔ)言實(shí)現(xiàn)的??傊际抢胏語(yǔ)言進(jìn)行控制,程序設(shè)計(jì)比較大時(shí)流程圖的作用就顯得十分重要,將每個(gè)函數(shù)寫成塊這樣就可以輕松調(diào)用不至于亂,例如顯示子函數(shù),鍵盤掃描子函數(shù)等。 51單片機(jī)掌握好有助于以后的pic,dsp,arm,fpga,cpld和嵌入式系統(tǒng)的學(xué)習(xí),目前來看單片機(jī)在自動(dòng)控制領(lǐng)域應(yīng)用是非常廣泛的,單片機(jī)的前景是十分光明。第一章 proteus軟件的單片機(jī)atm系統(tǒng)1.1 proteus軟件的atm概述proteus軟件仿真atm系統(tǒng),atm是由cpu控制的持卡人自我服務(wù)型的金融專用設(shè)備。該系統(tǒng)是一個(gè)較典型的

14、銀行存取款模擬系統(tǒng),并采用軟件仿真其效果,使用者被假定為銀行信用卡用戶,系統(tǒng)應(yīng)該具有安全、穩(wěn)定、功能齊全的特點(diǎn)。滿足銀行自動(dòng)取款機(jī)一般功能和服務(wù)。atm自動(dòng)取款機(jī)系統(tǒng),是一個(gè)有終端機(jī),atm系統(tǒng),數(shù)據(jù)庫(kù)組成的應(yīng)用系統(tǒng)。系統(tǒng)功能有用戶在atm上提取現(xiàn)金、查詢賬戶余額、修改密碼及轉(zhuǎn)賬功能。atm自動(dòng)取款機(jī)系統(tǒng)向用戶提供一個(gè)方便、簡(jiǎn)單、及時(shí)、隨時(shí)隨地可以隨心所欲存取款的互聯(lián)的現(xiàn)代計(jì)算機(jī)化的網(wǎng)絡(luò)系統(tǒng)??梢源蟠鬁p少工作人員,節(jié)約人力資源的開銷,同時(shí)由于手續(xù)程序減少也可以減輕業(yè)務(wù)員的工作負(fù)擔(dān),有效地提高了整體的工作效率和精確度。 減少了用戶辦理業(yè)務(wù)的等待時(shí)間,用戶可以隨時(shí)隨地可以隨心所欲存取款,并且操作簡(jiǎn)

15、單易懂。當(dāng)今信息時(shí)代,時(shí)間就是金錢,提高了用戶的辦理效率。1.2 proteus軟件的atm安全性分析銀行存取款機(jī)的數(shù)據(jù)涉及到取款機(jī)內(nèi)儲(chǔ)存的三名用戶,數(shù)據(jù)量較大且對(duì)保密性的需求很高,所以要通過設(shè)置密碼等手段確保數(shù)據(jù)在用戶未用正確密碼登錄時(shí)不能被隨意的刪減和修改。并用單片機(jī)定時(shí)器設(shè)置用戶交易是的時(shí)間,如果超過50s則自動(dòng)退到輸入密碼頁(yè)面。1.3 proteus軟件的atm穩(wěn)定性分析系統(tǒng)用單片機(jī)實(shí)現(xiàn)對(duì)鍵盤、lcd、e2prom、蜂鳴器實(shí)時(shí)控制,功能比較健全,硬件系統(tǒng)的單片機(jī)采用12mhz晶振,lcd刷新頻率也很高。軟件系統(tǒng)雖然龐大但經(jīng)過嚴(yán)格的分塊編寫并長(zhǎng)時(shí)間調(diào)試程序,當(dāng)然少不了老師的指導(dǎo),完全符合

16、設(shè)計(jì)思想。只要是用戶的合理操作軟件系統(tǒng),系統(tǒng)都應(yīng)給出合理正確的回應(yīng),并滿足用戶的愿望,而不是出現(xiàn)令用戶感到意外的系統(tǒng)錯(cuò)誤或系統(tǒng)崩潰。1.4 proteus軟件的atm主要功能分析開機(jī)時(shí)顯示“中國(guó)農(nóng)業(yè)銀行請(qǐng)輸入插入磁卡”,當(dāng)用戶將磁卡插入時(shí)(低電平有34效)屏幕顯示“請(qǐng)輸入密碼”??ㄒ幻艽a為“123456”;卡二密碼為“654321”,卡三密碼為“111111”全部初始化到外部存儲(chǔ)器中。初始密碼當(dāng)然可以在程序中由串行數(shù)據(jù)來修改。用戶密碼存放到e2prom中,仿真開始后用戶可以自己隨便設(shè)置六位數(shù)字號(hào)碼,但是只要proteus軟件仿真結(jié)束后,密碼又變?yōu)槌跏蓟瘯r(shí)的密碼。輸入密碼通過和讀取e2prom中

17、密碼對(duì)比一致時(shí)才能登錄成功。允許用戶選擇業(yè)務(wù)、修改密碼,查詢,對(duì)用戶由于疏忽錄入的非法數(shù)據(jù),能夠及時(shí)提示并更正,倘若密碼錯(cuò)誤次數(shù)大于三次則該用戶將被凍結(jié)。登陸成功界面以后共有四個(gè)個(gè)選項(xiàng),查詢、改密、取款、取款分別對(duì)應(yīng)p12、p10、p13、p11按鍵。分別按下相應(yīng)的按鍵則選擇相應(yīng)的功能或者進(jìn)入該鍵下的子菜單。每一屏都有退出按鍵可以返回到上一層目錄中。查詢子菜單中有如下功能鍵,余額查詢,轉(zhuǎn)賬,和自動(dòng)存款,選定p12后,進(jìn)入查詢界面,用戶輸入查詢條件,系統(tǒng)規(guī)則地在界面顯示查詢結(jié)果,且顯示的數(shù)據(jù)盡量全面。如果使用自動(dòng)存款,可以選擇的金額與取款額度一樣為100,200,300 。使用轉(zhuǎn)賬業(yè)務(wù)是需用先選

18、擇要轉(zhuǎn)入的用戶,不可給自己轉(zhuǎn)帳,然后選擇金額。 取款時(shí)選定p10鍵后,進(jìn)入取款界面,用戶可以取面值100,200,300,若取款金額大于存款金額則會(huì)提示“余額不足”,若小于則會(huì)在原余額上扣除取款金額。本次給三個(gè)用戶分別存入1000,2000,3000。退出時(shí)選定p11后,進(jìn)入退出界面,系統(tǒng)會(huì)延遲5毫秒重新跳回登陸界面,供其他用戶使用。第二章 proteus軟件仿真的硬件系統(tǒng)設(shè)計(jì)2.1 mcs-51系列單片機(jī)2.1.1 at89c51單片機(jī)at89c51單片機(jī)16,集成 8位cpu、4k字節(jié)rom、128字節(jié)ram、4個(gè)8位并口、1個(gè)全雙工串行口、2個(gè)16位定時(shí)/計(jì)數(shù)器。尋址范圍64k,并有控制

19、功能較強(qiáng)的布爾處理器。最小系統(tǒng)能夠運(yùn)行起來必須包括電源、晶振、復(fù)位電路。輸出時(shí)一般用低電平這是因?yàn)榉乐乖肼暩蓴_,因?yàn)樵肼曇话愣紴楦唠娖健纹瑱C(jī)對(duì)外設(shè)備控制或?qū)纹瑱C(jī)控制其實(shí)就是通過對(duì)i/o口的控制。51系列單片機(jī)共有4個(gè)i/o口p0、p1、p2、p3 四個(gè)8位雙向輸入輸出端口,每個(gè)端口都有鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器。其中p0口為準(zhǔn)雙向i/o口,其它三個(gè)為雙向i/o口。p0中每一位為od門輸出,所以不能用作高電平驅(qū)動(dòng)外圍電路,所以用p0驅(qū)動(dòng)電路時(shí)必須加上拉電阻這樣才能輸出高電平;如果作為輸入,必須先向相應(yīng)的鎖存器寫“1”,才不會(huì)影響輸入電平。p3口還具有第二功能特點(diǎn)。2.1.2 單片機(jī)應(yīng)用系

20、統(tǒng)硬件設(shè)計(jì)若單片機(jī)無(wú)片內(nèi)程序存儲(chǔ)器或存儲(chǔ)容量不夠時(shí)需要外部擴(kuò)展程序存儲(chǔ)器。數(shù)據(jù)存儲(chǔ)器利用ram構(gòu)成,存儲(chǔ)容量滿足的情況下盡可能減少芯片的擴(kuò)展。i/o接口是最復(fù)雜的部分,因?yàn)閱纹瑱C(jī)與外圍電路接口各不相同。譯碼電路使用時(shí)要盡可能簡(jiǎn)單除了可利用常規(guī)的門電路、譯碼器實(shí)現(xiàn)外還可以利用只讀存儲(chǔ)器與可編程門陣列來實(shí)現(xiàn)。如果單片機(jī)外部擴(kuò)展的器件較多負(fù)載太大,總線驅(qū)動(dòng)是必須考慮的。2.2 串行傳輸圖2-1 串行傳輸隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)的通信功能愈來愈顯得重要。計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地

21、傳送,其特點(diǎn)為傳輸線少,且可以利用電話網(wǎng)等現(xiàn)成設(shè)備,相比并行傳輸要復(fù)雜一些。2.3 i2c串行總線i2c串行總線是由philips公司推出的一種串行總線,具有多主機(jī)系統(tǒng)所需的包括總線裁決和高低速同步的高性能串行總線。i2c總線有倆根雙向信號(hào)線,即scl和sda,分別為串行時(shí)鐘信號(hào)和串行數(shù)據(jù)輸入輸出。和電路連接時(shí)要通過上拉電阻接高電平,串行總線空閑時(shí)都是高電平,各器件的scl、sda都接成線與的關(guān)系,既有一根線為低電平則整條線被拉為低電平。每個(gè)器件接到i2c總線上都有唯一的地址,就像這次我做的課題80c51單片機(jī)為發(fā)送裝置,fm24c02為接收裝置。進(jìn)行數(shù)據(jù)傳輸時(shí),時(shí)鐘信號(hào)為高電平期間數(shù)據(jù)信號(hào)線

22、必須保持穩(wěn)定,當(dāng)時(shí)鐘信號(hào)變?yōu)榈碗娖綍r(shí),數(shù)據(jù)信號(hào)才可以變化。一次完整的傳輸要有起始信號(hào)和終止信號(hào),都是由單片機(jī)發(fā)出的。scl線為高電平期間,sda線由高電平向低電平的變化表示起始信號(hào);scl線為高電平期間,sda線由低電平向高電平的變化表示終止信號(hào)。起始信號(hào)產(chǎn)生后總線處于被占用狀態(tài),終止信號(hào)產(chǎn)生時(shí)總線處于閑置狀態(tài)。數(shù)據(jù)傳輸時(shí)是一個(gè)字節(jié),一個(gè)字節(jié)傳輸,每一字節(jié)8位最高位到最低位傳送,最后還需帶一個(gè)應(yīng)答位,所以一共9位為一幀。應(yīng)答信號(hào)為低電平代表從機(jī)應(yīng)答,否則為“非應(yīng)答”。從機(jī)不應(yīng)答時(shí)則主機(jī)需向從機(jī)發(fā)送終止信號(hào),結(jié)束數(shù)據(jù)傳送。當(dāng)主機(jī)接收數(shù)據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信

23、號(hào)。這個(gè)信號(hào)是由對(duì)從機(jī)的“非應(yīng)答”來實(shí)現(xiàn)的。然后從機(jī)釋放sda線,以允許主機(jī)產(chǎn)生終止信號(hào)??偩€上的信號(hào)既包括地址信號(hào)又包括數(shù)據(jù)信號(hào),產(chǎn)生起始信號(hào)后需要發(fā)送一個(gè)地址信號(hào),與從機(jī)地址進(jìn)行匹配。地址信號(hào)為8位最后一位代表傳輸方向,“0”表示主機(jī)發(fā)送數(shù)據(jù),“1”表示主機(jī)接收數(shù)據(jù)。i2c總線尋址采用7位的尋址字節(jié),即起始信號(hào)后的第一個(gè)字節(jié)。d7d1位組成從機(jī)的地址。d0位是數(shù)據(jù)傳送方向位,為“0”時(shí)表示主機(jī)向從機(jī)輸出數(shù)據(jù),為“1”時(shí)表示主機(jī)由從機(jī)讀數(shù)據(jù)。主機(jī)發(fā)送地址時(shí),總線上的每個(gè)從機(jī)都將這7位地址碼與自己的地址進(jìn)行比較,如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)r/t位將自己確定為發(fā)送器或接收器。從機(jī)的地

24、址由固定部分和可編程部分組成。在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī),從機(jī)地址中可編程部分決定了可接入總線該類器件的最大數(shù)目。比方說一個(gè)從機(jī)的7位地址有4位是固定位,那么3位是可編程位,由排列組合可知,這時(shí)僅能尋址8個(gè)同樣的器件。典型程序如下:起始信號(hào) 終止信號(hào) void i2cstart(void) void i2cstop(void) sda = 1; sda = 0;delay(5); delay(5);scl= 1; scl = 1; delay(5); delay(5);sda = 0; sda = 1; delay(5); delay(5); i2c應(yīng)答信號(hào)void respons

25、() uchar i; scl=1; delay_2(); while(sda=1)&(i250)i+; scl=0; delay_2();i2c初始化void ic_init() scl=1; delay_2(); sda=1; delay_2();向i2c寫單個(gè)數(shù)據(jù)void write_byte(uchar date) uchar i,temp;temp=date;for(i=0;i8;i+) temp=temp1; scl=0; delay_2(); sda=cy; delay_2(); scl=1; delay_2(); scl=0; delay_2(); sda=1; delay_2

26、(); i2c讀單個(gè)數(shù)據(jù)uchar read_byte() uchar i,k;scl=0;delay_2();sda=1;delay_2();for(i=0;i8;i+) scl=1;delay_2();k=(k=1則表示卡插入狀態(tài)。主程序都是在chakc=1的情況下編寫的。例如chakc=3時(shí)為業(yè)務(wù)選擇頁(yè)面程序。首先判斷當(dāng)chakc=3時(shí),調(diào)用顯示函數(shù)顯示將業(yè)務(wù)選擇頁(yè)面顯示到lcd上。鍵盤檢測(cè)時(shí),當(dāng)取卡鍵keysanf_rk1()子程序掃描到該鍵按下時(shí),只進(jìn)行初始化;當(dāng)取款keysanf_rk2()子程序掃描到該鍵按下時(shí)時(shí)就轉(zhuǎn)到取款頁(yè)面子程序完成?。划?dāng)查詢鍵keysanf_lk2()子程序

27、掃描到該鍵按下時(shí),程序轉(zhuǎn)到查詢頁(yè)面子程序完成查詢?nèi)蝿?wù);當(dāng)修改密碼keysanf_lk1()子程序掃描到該鍵按下時(shí),程序鉆到修改密碼頁(yè)面完成修改密碼任務(wù)。鍵在每個(gè)頁(yè)面都有不同的定義,rk1bz代表鍵的狀態(tài)當(dāng)為1時(shí)是表示按下鍵,每次執(zhí)行完任務(wù)后都要將其拉低。if(chakc=3) display_ywxuanze();keysanf_rk1();if(rk1bz=1) init();keysanf_rk2();if(rk2bz=1) chakc=4;rk2bz=0;keysanf_lk2();if(lk2bz=1) chakc=7;lk2bz=0;keysanf_lk1();if(lk1bz=1)

28、 chakc=9;lk1bz=0;表3-1程序功能簡(jiǎn)介if(chakc=0)磁卡沒插入程序if(chakc=2)磁卡插入輸入密碼程序if(chakc=3)業(yè)務(wù)選擇程序if(chakc=4)取款程序if(chakc=5)準(zhǔn)備鈔票程序if(chakc=6)等待取走鈔票程序if(chakc=7)查詢程序if(chakc=8)顯示余額程序if(chakc=9)改密程序if(chakc=10)密碼錯(cuò)誤程序if(chakc=11)磁卡卡凍結(jié)程序if(chakc=12)修改密碼成功程序if(chakc=13)余額不足程序if(chakc=14)自動(dòng)存款程序if(chakc=15)轉(zhuǎn)帳程序3.4 pctolc

29、d2002掃描軟件漢字就需要編碼軟件生成代碼,下面就介紹一下pctolcd2002軟件15。12864lcd顯示每個(gè)漢字需要32個(gè)8位代碼,編程使得代碼被依次掃描到ddram中,一個(gè)漢字需要256個(gè)點(diǎn)的明暗來實(shí)現(xiàn)。掃描代碼是先上半部分后下半部分。要求pctolcd2002軟件設(shè)置為先上半部分后下半部分掃描方式。此軟件還可以掃描圖片生成代碼用來在12864lcd液晶顯示,方法類似只需要程序略加修改。圖3-2 pctolcd2002界面 圖3-3 軟件設(shè)置新建一個(gè)文本在里邊輸入自己想要顯示的漢字例如“中國(guó)農(nóng)業(yè)銀行”。將字體設(shè)置為宋體小四號(hào)保存。在菜單中點(diǎn)擊模式中選擇字符模式,選擇字體中設(shè)置為宋體,

30、字寬和字高都設(shè)置為16,掃描方式設(shè)置為先上半部分后下半部分。圖3-4 生成漢字編碼lcd所顯示的每一個(gè)漢字都用此種方法生成。然后以數(shù)組形式存放到keil中字庫(kù)中。將來顯示函數(shù)會(huì)調(diào)用數(shù)組這樣就將漢字顯示到屏幕上。lcd分為兩種,帶字庫(kù)和不帶字庫(kù)的。帶字庫(kù)的只能顯示gb2312宋體,不帶字庫(kù)可以顯示多種字體。顯示ascii字符和1602液晶一樣,只需要將要顯示的字符送到該顯示的位置即可。3.5 proteus軟件3.5.1 proteus概述proteus是英國(guó)labcenter electronic公司開發(fā)的多功能eda軟件5,在全球廣泛使用。本次使用的是proteus 7 profession

31、al 7.8sp2它由isis(智能原理圖輸入系統(tǒng))和aers(硬刷電路板系統(tǒng))兩大部分組成。其最大特點(diǎn)就是proteus vsm(虛擬系統(tǒng)模型)實(shí)現(xiàn)混合模式的spice電路仿真。具有虛擬儀表、高級(jí)圖表仿真、微處理器軟件仿真器,第三方編譯及調(diào)試有機(jī)結(jié)合。3.5.2 proteus具有特點(diǎn)具有模擬電路、數(shù)字電路、單片機(jī)及外圍電路組成的系統(tǒng)的仿真、rs232動(dòng)態(tài)仿真、iic調(diào)試器、spi調(diào)試器、鍵盤和lcd、led、ad和da、ram和rom系統(tǒng)的仿真功能。目前支持的單片機(jī)類型有:68000系列、8051系列、avr系列、pic12系列、pic16 系列、pic18系列、z80系列、hc11系列、

32、arm7系列以及各種外圍芯片。支持最大的存儲(chǔ)器和外圍芯片。具有集單片機(jī)與spice分析于一身仿真軟件,功能強(qiáng)大。當(dāng)然軟件仿真精度有限,不可能所有器件都找得到相應(yīng)的仿真模型,但是對(duì)于單片機(jī)愛好者和簡(jiǎn)單的開發(fā)應(yīng)用是比較好的選擇。proteus是嵌入式系統(tǒng)軟硬件設(shè)計(jì)仿真平臺(tái),它的特點(diǎn)是能夠把用戶編寫的應(yīng)用程序下載到微處理器(mcu)中,并結(jié)合外界連線及模擬、數(shù)字電路對(duì)微處理器進(jìn)行系統(tǒng)邏輯功能的控制。常用的微處理器有mcs-51系列和at89系列等,proteus的使用徹底改變了傳統(tǒng)單片機(jī)的學(xué)習(xí)和開發(fā)方式,可在沒有硬件條件的基礎(chǔ)上進(jìn)行邏輯控制電路設(shè)計(jì),大幅縮短了開發(fā)周期,節(jié)約了開發(fā)成本。打開prote

33、us軟件進(jìn)行硬件原理圖的繪制,單擊device上的p在keywords里輸入選用的器件的名稱,單擊ok就將元件加到工作區(qū)中,用線將其端口連起來。畫總線時(shí)為了美觀在總線轉(zhuǎn)折處時(shí)按鍵盤上ctrl鍵就將總線按45度方向畫。硬件電路圖繪制時(shí)有時(shí)導(dǎo)線跨越幅度太大時(shí),可以采用標(biāo)號(hào)方式。相同標(biāo)號(hào)代表物理連接,使得電路圖整潔美觀。3.5.3虛擬工具箱圖3-5 proteus虛擬工具箱proteus的虛擬工具箱提供了電路測(cè)試中的常用工具和儀器,主要用于在實(shí)時(shí)仿真同時(shí)的電路參數(shù)觀測(cè),測(cè)量結(jié)果隨仿真動(dòng)態(tài)變化并顯示,可以滿足精度要求不是很高的測(cè)量分析,對(duì)于電路特性的定性分析可以起到事半功倍的效果,大大節(jié)約了測(cè)試時(shí)間和

34、開發(fā)成本。3.6 keil軟件keil c51是美國(guó)keil software公司出品的51系列兼容單片機(jī)c語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比,c語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。keil提供了包括c編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境uvision將這些部分組合在一起。3.6.1概述 keil c5114軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,兼容windows系統(tǒng),另外重要的一點(diǎn),匯編語(yǔ)言雖然直觀更接近硬件,但只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之

35、高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹keil c51開發(fā)系統(tǒng)各部分功能和使用。 keil c51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)c51工具包的整體結(jié)構(gòu),uvision是在windows下運(yùn)行的版本,可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及c51編譯器編譯生成目標(biāo)文件obj。目標(biāo)文件可由lib51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)l51連接定位生成絕對(duì)目標(biāo)文件abs。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用

36、進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如eprom中。使用獨(dú)立的keil仿真器時(shí),仿真器標(biāo)配12mhz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。仿真芯片的31腳ea已接至高電平,所以仿真時(shí)只能使用片內(nèi)rom,不能使用片外rom,但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部rom其cpu的ea引腳接至低電平的目標(biāo)系統(tǒng)中使用。keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。與

37、匯編相比,c語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語(yǔ)言后再使用c來開發(fā),體會(huì)更加深刻。3.6.2創(chuàng)建工程圖3-7 keil創(chuàng)建工程界面keil使用時(shí)必須要?jiǎng)?chuàng)建一個(gè)工程,單擊project菜單選擇new uvison project,選擇atmel下的atc8951單片機(jī)。然后新建一個(gè)c文件保存。右鍵target目錄下的source group1添加c文件到工程中,在c文件中進(jìn)行程序輸入,首先將所需要的頭文件和宏定義寫入比如reg52.h、math.h、ctype.h、stdio.h、stdlib.h、absacc.h;#define uchar unsig

38、ned char, #define uint unsigned int 。各個(gè)功能函數(shù)都可以保存為h文件然后直接用頭文件包含主函數(shù)就可以實(shí)現(xiàn)調(diào)用。單擊左上角的編譯如果下邊顯示沒有錯(cuò)誤則程序編寫成功,否則編譯時(shí)通不過的。將生成hex文件打上鉤重新編譯一下,在目錄下將生成十六進(jìn)制hex文件,單片機(jī)將要添加。在proteus軟件中右鍵單擊單片機(jī),在目錄下找到生成的hex文件,單擊左下角的開始按鈕就開始仿真。第四章 proteus軟件仿真結(jié)果本次atm所編寫的功能都可以通過proteus軟件仿真實(shí)現(xiàn),以下就介紹取款這項(xiàng)功能為例來說明仿真效果。在proteus軟件中單擊開始仿真按鈕就出現(xiàn)圖4-1,開機(jī)頁(yè)

39、面為中國(guó)農(nóng)業(yè)銀行自動(dòng)取款機(jī)系統(tǒng),提示插入磁卡,可以任意選擇三張卡,以卡一為例,按鍵盤上卡一鍵后選擇卡一,顯示圖4-2要求輸入密碼畫面,密碼初始設(shè)置為123456,在鍵盤上正確輸入密碼,如果密碼錯(cuò)誤則會(huì)顯示密碼錯(cuò)誤頁(yè)面。圖4-1 開機(jī)界面 轉(zhuǎn)到業(yè)務(wù)選擇頁(yè)面時(shí),按下取款鍵 圖4-2 輸入密碼界選擇200元按鍵如下圖圖4-3 業(yè)務(wù)選擇界面 圖4-4 取款金額界面lcd顯示屏幕上會(huì)出現(xiàn)“正為你準(zhǔn)備鈔票頁(yè)面”如下圖4-5,這時(shí)需在proteus軟件按下“準(zhǔn)備鈔票鍵”。然后在proteus軟件按下“取走鈔票鍵鍵”,圖4-6所示??ㄒ坏某跏冀痤~設(shè)置為1000元,當(dāng)完成取款后,選擇查詢下的查詢余額屏幕就會(huì)顯示出“你的余額為800元”。圖4-5 準(zhǔn)備鈔票界面 圖4-6取走鈔票界面atm自動(dòng)取款的功能通過proteus軟件仿真正確實(shí)現(xiàn)。系統(tǒng)其它功能如用戶在atm上查詢賬戶余額、修改密碼、提示賬戶凍結(jié)、密碼保護(hù)、自動(dòng)存款及轉(zhuǎn)賬功能都可可以仿真實(shí)現(xiàn)。 第五章 結(jié)論

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論