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