基于Proteus和Keil μVision 3 LED顯示控制系統(tǒng)設(shè)計
摘要:為了實現(xiàn)基于Proteus和Keil μVision3軟件聯(lián)調(diào)環(huán)境下利用單片機AT89C51芯片采用串口通信模式及鍵盤輸入同步中斷控制方式,設(shè)計了一種LED顯示控制系統(tǒng)。由仿真結(jié)果表明,在該模式開發(fā)環(huán)境下,有利于各個環(huán)節(jié)參數(shù)變量的調(diào)節(jié)設(shè)定,使得系統(tǒng)軟件開發(fā)更加容易實現(xiàn),大大提高了代碼開發(fā)周期和進度,簡化了開發(fā)流程。
關(guān)鍵詞:Proteus;Keil;LED;AT89C51
LED顯示控制系統(tǒng)設(shè)計是采用單片機AT89C51作為主控制器,采用LED行列陣顯示及鍵盤同步中斷請求顯示的2種模式,實現(xiàn)串口通信并進行2種模式下的切換控制。系統(tǒng)成功地實現(xiàn)對I/O口通道控制以及鍵盤的中斷請求等功能控制。系統(tǒng)仿真環(huán)境的搭建是基于Proteus與Keil μVision 3軟件在聯(lián)合開發(fā)平臺中調(diào)試完成的。在調(diào)試的過程中,可以從多個方面直接觀察程序運行情況和電路工作分析,簡化了理論程序和設(shè)計實驗等過程,大大減少了代碼的開發(fā)周期,降低了硬件成本。
1 Keil μVision 3與protues簡介
Keil μVision 3是美國Keil Software公司出品的C51系列兼容單片機C語言軟件開發(fā)系統(tǒng),其生成目標代碼的效率非常高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。
Proteus是英國Labcenter electonics公司研發(fā)的電子設(shè)計自動化(EDA)系統(tǒng),主要由ISIS電路設(shè)計與仿真平臺、Peospite模/數(shù)混合仿真器、VSM單片機/嵌入式系統(tǒng)協(xié)同仿真和ARES PCB設(shè)計構(gòu)成。在編譯調(diào)試方面,支持Keil μVision 3和MPLAB等第三方開發(fā)工具。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)開發(fā)框架
LED顯示控制系統(tǒng)設(shè)計由系統(tǒng)原理設(shè)計、系統(tǒng)代碼開發(fā)、硬件電路模擬仿真、軟硬件聯(lián)合調(diào)試、實物移植等組成。其中,代碼開發(fā)仿真模擬通過Proteus軟件與Keil μVision 3軟件之間相互聯(lián)合仿真進行設(shè)計。系統(tǒng)開發(fā)設(shè)計框架如圖1所示。
2.2 硬件結(jié)構(gòu)設(shè)計
系統(tǒng)硬件由單片機AT89C51系統(tǒng)和行列陣LED顯示模塊、上位機、串行顯示鍵盤模塊、晶振電路和存儲器模塊等構(gòu)成。系統(tǒng)硬件結(jié)構(gòu)如圖2所示。
[!--empirenews.page--]
硬件模塊主要完成的功能有:顯示屏的驅(qū)動,是通過與上位機間的串口通信接收文件信息并保存,通過行列驅(qū)動器控制完成LED的驅(qū)動。串行顯示鍵盤,為實現(xiàn)鍵盤輸入與顯示屏輸出實現(xiàn)同步,進行串口輸出模式切換,完成對LED的驅(qū)動,但由于系統(tǒng)中并行口的I/O資源不夠,而串行口又沒有其他作用,通過用數(shù)據(jù)鎖存模塊74LS164來擴展并行I/O口,節(jié)約單片機資源。將AT89C51串行通信口輸出的串行數(shù)據(jù)譯碼在其并口線上輸出,將顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待串行中斷即可。
2.2.1 LED顯示模塊
顯示部分采用動態(tài)掃描方式,實現(xiàn)漢字、圖像、數(shù)字字符等數(shù)據(jù)信息的控制以及顯示等功能。采用行掃描方式,當選通第1行LED點陣時,對應(yīng)列數(shù)據(jù),由于74HC595器件的特殊性,通過將每個器件的串行數(shù)據(jù)輸入引腳14與下一個器件的串行數(shù)據(jù)輸出引腳9級聯(lián),可以把需要顯示的數(shù)據(jù)信息依次存入74HC595器件內(nèi),通過其鎖存器功能將數(shù)據(jù)鎖存,待40列數(shù)據(jù)都存入74HC595器件內(nèi)時,把輸出有效引腳13置為低電平,則40列數(shù)據(jù)一起輸出,達到一行顯示的效果。依次類推,實現(xiàn)整個顯示屏的顯示功能。
2.2.2 串行顯示鍵盤
該模塊用于與人機交互和顯示,行列式鍵盤即矩陣式鍵盤,由行和列組成,在每個行列的交叉點上放置一個按鍵。包括8只控制LED的位驅(qū)動晶體管,控制數(shù)碼顯示的數(shù)據(jù)由控制燈亮滅信號和控制位顯示的控制信號兩部分組成。
2.2.3 串口通信
串口接口通過RS 232實現(xiàn)上位機與單片機傳輸信息。當模塊進入串行傳輸方式,上位機通過同步時鐘線SCLK和串行數(shù)據(jù)線完成數(shù)據(jù)的傳輸。在AT89C51片選引腳CS為高電平時,主機時鐘線上的時鐘信號才能被液晶顯示模塊接受,當引腳CS為低電平時,顯示模塊內(nèi)部寄存器將被復位,即終止數(shù)據(jù)傳輸。
2.3 軟件設(shè)計
整個系統(tǒng)軟件設(shè)計語言采用C語言,進行中斷控制,其中代碼開發(fā)編寫測試則通過Keil μVision 3軟件與Proteus軟件之間完成。
軟件實現(xiàn)代碼流程如圖3所示。
[!--empirenews.page--]
由于軟件開發(fā)代碼復雜,現(xiàn)給出鍵盤輸入程序部分代碼如下:
[!--empirenews.page--]
3 Proteus與Keil軟件的聯(lián)調(diào)設(shè)置
系統(tǒng)采用Keil μVision 3與Proteus聯(lián)調(diào)的方式來實現(xiàn)。首先需要安裝Keil驅(qū)動軟件vdmagdi.exe,然后Keil目錄下的bin中的VDM51. dll拷貝到Proteus下面的bin中,打開Keil UVision 3軟件,創(chuàng)建項目,并單擊option for targetl,在打開對話框,選擇output選項卡,在creat hex file前面打勾,以便產(chǎn)生HEX文件,同時在debug選項卡中選擇proteus vsmsimulator,將Keil生成.HEX文件如圖4所示。
在Proteus軟件中,雙擊AT89C51單片機,在其屬性下面的Program file中加載由Keil μVision 3產(chǎn)生的.HEX文件,然后點擊ok退出,同時在debug菜單下面選擇use remote debug monitor,這樣就完成了Proteus與Keil的聯(lián)調(diào)準備工作如圖5所示。
4 結(jié)語
LED顯示系統(tǒng)以AT89C51單片機為基礎(chǔ),利用RS 232和單片機的接口轉(zhuǎn)換模塊,實現(xiàn)與PC機的數(shù)據(jù)傳輸,可以隨時更新顯示內(nèi)容。同時,采用鍵盤輸入串口中斷模式與驅(qū)功LED同步顯示,并實現(xiàn)了兩者的模式切換,同時采用C語言和匯編語言混合編程,和基于Keil與Proteus聯(lián)調(diào)仿真的開發(fā)模式,使系統(tǒng)的功能更容易實現(xiàn)且具有較好的移植性。