新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于軟件開(kāi)發(fā)的LED顯示控制系統(tǒng)

基于軟件開(kāi)發(fā)的LED顯示控制系統(tǒng)

作者: 時(shí)間:2017-10-21 來(lái)源:網(wǎng)絡(luò) 收藏

  控制系統(tǒng)設(shè)計(jì)是采用單片機(jī)AT89C51作為主控制器,采用LED行列陣顯示及鍵盤(pán)同步中斷請(qǐng)求顯示的2種模式,實(shí)現(xiàn)串口通信并進(jìn)行2種模式下的切換控制。系統(tǒng)成功地實(shí)現(xiàn)對(duì)I/O口通道控制以及鍵盤(pán)的中斷請(qǐng)求等功能控制。系統(tǒng)仿真環(huán)境的搭建是基于 μVision 3軟件在聯(lián)合開(kāi)發(fā)平臺(tái)中調(diào)試完成的。在調(diào)試的過(guò)程中,可以從多個(gè)方面直接觀察程序運(yùn)行情況和電路工作分析,簡(jiǎn)化了理論程序和設(shè)計(jì)實(shí)驗(yàn)等過(guò)程,大大減少了代碼的開(kāi)發(fā)周期,降低了硬件成本。

本文引用地址:http://butianyuan.cn/article/201710/367152.htm

  1 μVision 3與protues簡(jiǎn)介

   μVision 3是美國(guó)Keil SOFtware公司出品的C51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),其生成目標(biāo)代碼的效率非常高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。

  是英國(guó)Labcenter electonICs公司研發(fā)的電子設(shè)計(jì)自動(dòng)化(EDA)系統(tǒng),主要由ISIS電路設(shè)計(jì)與仿真平臺(tái)、Peospite模/數(shù)混合仿真器、VSM單片機(jī)/嵌入式系統(tǒng)協(xié)同仿真和ARES PCB設(shè)計(jì)構(gòu)成。在編譯調(diào)試方面,支持Keil μVision 3和MPLAB等第三方開(kāi)發(fā)工具。

  2 系統(tǒng)設(shè)計(jì)

  2.1 系統(tǒng)開(kāi)發(fā)框架

  控制系統(tǒng)設(shè)計(jì)由系統(tǒng)原理設(shè)計(jì)、系統(tǒng)代碼開(kāi)發(fā)、硬件電路模擬仿真、軟硬件聯(lián)合調(diào)試、實(shí)物移植等組成。其中,代碼開(kāi)發(fā)仿真模擬通過(guò)軟件與Keil μVision 3軟件之間相互聯(lián)合仿真進(jìn)行設(shè)計(jì)。系統(tǒng)開(kāi)發(fā)設(shè)計(jì)框架如圖1所示。

  

  2.2 硬件結(jié)構(gòu)設(shè)計(jì)

  系統(tǒng)硬件由單片機(jī)AT89C51系統(tǒng)和行列陣模塊、上位機(jī)、串行顯示鍵盤(pán)模塊、晶振電路和存儲(chǔ)器模塊等構(gòu)成。系統(tǒng)硬件結(jié)構(gòu)如圖2所示。

  

  硬件模塊主要完成的功能有:顯示屏的驅(qū)動(dòng),是通過(guò)與上位機(jī)間的串口通信接收文件信息并保存,通過(guò)行列驅(qū)動(dòng)器控制完成LED的驅(qū)動(dòng)。串行顯示鍵盤(pán),為實(shí)現(xiàn)鍵盤(pán)輸入與顯示屏輸出實(shí)現(xiàn)同步,進(jìn)行串口輸出模式切換,完成對(duì)LED的驅(qū)動(dòng),但由于系統(tǒng)中并行口的I/O資源不夠,而串行口又沒(méi)有其他作用,通過(guò)用數(shù)據(jù)鎖存模塊74LS164來(lái)擴(kuò)展并行I/O口,節(jié)約單片機(jī)資源。將AT89C51串行通信口輸出的串行數(shù)據(jù)譯碼在其并口線上輸出,將顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待串行中斷即可。

  2.2.1 LED顯示模塊

  顯示部分采用動(dòng)態(tài)掃描方式,實(shí)現(xiàn)漢字、圖像、數(shù)字字符等數(shù)據(jù)信息的控制以及顯示等功能。采用行掃描方式,當(dāng)選通第1行LED點(diǎn)陣時(shí),對(duì)應(yīng)列數(shù)據(jù),由于74HC595器件的特殊性,通過(guò)將每個(gè)器件的串行數(shù)據(jù)輸入引腳14與下一個(gè)器件的串行數(shù)據(jù)輸出引腳9級(jí)聯(lián),可以把需要顯示的數(shù)據(jù)信息依次存入74HC595器件內(nèi),通過(guò)其鎖存器功能將數(shù)據(jù)鎖存,待40列數(shù)據(jù)都存入74HC595器件內(nèi)時(shí),把輸出有效引腳13置為低電平,則40列數(shù)據(jù)一起輸出,達(dá)到一行顯示的效果。依次類推,實(shí)現(xiàn)整個(gè)顯示屏的顯示功能。

  2.2.2 串行顯示鍵盤(pán)

  該模塊用于與人機(jī)交互和顯示,行列式鍵盤(pán)即矩陣式鍵盤(pán),由行和列組成,在每個(gè)行列的交叉點(diǎn)上放置一個(gè)按鍵。包括8只控制LED的位驅(qū)動(dòng)晶體管,控制數(shù)碼顯示的數(shù)據(jù)由控制燈亮滅信號(hào)和控制位顯示的控制信號(hào)兩部分組成。

  2.2.3 串口通信

  串口接口通過(guò)RS 232實(shí)現(xiàn)上位機(jī)與單片機(jī)傳輸信息。當(dāng)模塊進(jìn)入串行傳輸方式,上位機(jī)通過(guò)同步時(shí)鐘線SCLK和串行數(shù)據(jù)線完成數(shù)據(jù)的傳輸。在AT89C51片選引腳CS為高電平時(shí),主機(jī)時(shí)鐘線上的時(shí)鐘信號(hào)才能被液晶顯示模塊接受,當(dāng)引腳CS為低電平時(shí),顯示模塊內(nèi)部寄存器將被復(fù)位,即終止數(shù)據(jù)傳輸。

  2.3 軟件設(shè)計(jì)

  整個(gè)系統(tǒng)軟件設(shè)計(jì)語(yǔ)言采用C語(yǔ)言,進(jìn)行中斷控制,其中代碼開(kāi)發(fā)編寫(xiě)測(cè)試則通過(guò)Keil μVision 3軟件與Proteus軟件之間完成。

  軟件實(shí)現(xiàn)代碼流程如圖3所示。

  

  由于軟件開(kāi)發(fā)代碼復(fù)雜,現(xiàn)給出鍵盤(pán)輸入程序部分代碼如下:

  

  

  3 Proteus與Keil軟件的聯(lián)調(diào)設(shè)置

  系統(tǒng)采用Keil μVision 3與Proteus聯(lián)調(diào)的方式來(lái)實(shí)現(xiàn)。首先需要安裝Keil驅(qū)動(dòng)軟件vDMAgdi.exe,然后Keil目錄下的bin中的VDM51. dll拷貝到Proteus下面的bin中,打開(kāi)Keil UVision 3軟件,創(chuàng)建項(xiàng)目,并單擊option for targetl,在打開(kāi)對(duì)話框,選擇output選項(xiàng)卡,在creat hex file前面打勾,以便產(chǎn)生HEX文件,同時(shí)在debug選項(xiàng)卡中選擇proteus vsmsimulator,將Keil生成。HEX文件如圖4所示。

  

  在Proteus軟件中,雙擊AT89C51單片機(jī),在其屬性下面的Program file中加載由Keil μVision 3產(chǎn)生的。HEX文件,然后點(diǎn)擊ok退出,同時(shí)在debug菜單下面選擇use remote debug monitor,這樣就完成了Proteus與Keil的聯(lián)調(diào)準(zhǔn)備工作如圖5所示。

  

  4 結(jié)語(yǔ)

  由仿真結(jié)果表明,在該模式開(kāi)發(fā)環(huán)境下,有利于各個(gè)環(huán)節(jié)參數(shù)變量的調(diào)節(jié)設(shè)定,使得系統(tǒng)軟件開(kāi)發(fā)更加容易實(shí)現(xiàn),大大提高了代碼開(kāi)發(fā)周期和進(jìn)度,簡(jiǎn)化了開(kāi)發(fā)流程。



關(guān)鍵詞: LED顯示 Keil Proteus

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉