文章編號(hào):1962-5913(2008)13-0089-02
摘要:本文結(jié)合實(shí)驗(yàn)教學(xué)需要,介紹了用8255設(shè)計(jì)LED顯示器接口實(shí)驗(yàn)的過程。
關(guān)鍵詞:微機(jī)原理及應(yīng)用;8255;LED;接口
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B
“微機(jī)原理及應(yīng)用”是工科類專業(yè)的基礎(chǔ)課,該課程比較抽象,因此實(shí)驗(yàn)教學(xué)起著至關(guān)重要的作用。通過實(shí)驗(yàn)學(xué)生可以對(duì)比較抽象的命令、程序、輸入輸出接口電路加深理解?,F(xiàn)在仍有許多高校使用北京理工達(dá)盛科技有限公司的8086實(shí)驗(yàn)箱,但由于受到實(shí)驗(yàn)條件的限制,往常的做法是在有限的課堂時(shí)間內(nèi)安排一些旨在驗(yàn)證理論知識(shí)的實(shí)驗(yàn)內(nèi)容,較少涉及運(yùn)用理論知識(shí)去解決實(shí)際問題。這樣的實(shí)驗(yàn)教學(xué)不利于發(fā)揮學(xué)生的學(xué)習(xí)主動(dòng)性,不利于培養(yǎng)學(xué)生解決實(shí)際問題的能力。如何改革傳統(tǒng)的實(shí)驗(yàn)教學(xué),如何培養(yǎng)學(xué)生的實(shí)際應(yīng)用能力,本文舉一個(gè)實(shí)例,需要教師利用現(xiàn)有的條件設(shè)計(jì)一些綜合實(shí)驗(yàn),讓學(xué)生獨(dú)立地去解決這些問題,從中培養(yǎng)能力。希望本文能起到穿針引線的作用。
1設(shè)計(jì)LED顯示器接口實(shí)驗(yàn)
8086實(shí)驗(yàn)指導(dǎo)書顯示器接口實(shí)驗(yàn)使用的是8279的顯示輸出功能,實(shí)驗(yàn)內(nèi)容是在6位LED上循環(huán)顯示8。8086實(shí)驗(yàn)指導(dǎo)書8255并行口實(shí)驗(yàn)使用的是8255芯片,讀開關(guān)量、輸出、LED燈顯示,實(shí)驗(yàn)講義上都給出了電路原理圖以及參考程序,學(xué)生往往是照著實(shí)驗(yàn)指導(dǎo)書上連接好線路,輸入?yún)⒖汲绦?,進(jìn)行程序調(diào)試。大部分時(shí)間花在了實(shí)驗(yàn)的驗(yàn)證上,這樣缺乏主動(dòng)性和創(chuàng)新性,什么都是現(xiàn)成的。能否在此基礎(chǔ)上拓展一下,用8255芯片來實(shí)現(xiàn)顯示器接口實(shí)驗(yàn),這樣既可取代8279,又可加深對(duì)8255的理解和使用。
實(shí)驗(yàn)任務(wù):使用8255芯片的PA口作為段寄存器,PB口做為位寄存器,使用6位數(shù)碼管從右向左逐位顯示0~G,即顯示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、G。
連線編程:由學(xué)生自己獨(dú)立連接并獨(dú)立編程實(shí)現(xiàn),在編程過程中加深對(duì)硬件的理解、命令以及涉及的技巧。
2LED 顯示器接口實(shí)驗(yàn)程序代碼
codesegment
org100h
aa1: mov dx,04a6h ‘8255控制端口地址,大于255用dx做橋梁,小于255直接由端口地址傳值
moval,80h ‘8255工作方式控制字
outdx,al
leabx,data ‘取偏移地址與bx相加
aa3:movch,0‘顯示數(shù)字0-------9 ,其中ch內(nèi)容在變
aa4:movah,0feh‘即1111 1110 為0時(shí)亮,須注意PB0與led接法,燈旋轉(zhuǎn)方向
movsi,6‘6個(gè)led
aa2:moval,ch
xlat ‘查表地址轉(zhuǎn)換指令:=MOV AL,[BX+AL]
movdx,04a0h ‘A口送字形,注意其端口地址
outdx,al
moval,ah
movdx,04a2h‘B口控制哪一位亮
outdx,al
rolah,1 ‘1111 1110 循環(huán)左移
movdi,0ffffh
aa5:decdi
jnzaa5 ‘延時(shí),不為0,則decdi ,為0,則dec si
decsi
jnzaa2 ‘si不為0,則aa2——decsi ,為0,則 incch
incch
cmpch,12‘ch的值 從0-18
jnzaa4 ‘循環(huán)
jmpaa3‘又從0開始到 F
datadb 3fh,06h,5bh,4fh,66h,6dh
db 7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h,73h,88h,00h
codeends
endaa1
說明:
在實(shí)驗(yàn)教學(xué)中如何培養(yǎng)能力?首先設(shè)計(jì)出較好的題目。例如用8255實(shí)現(xiàn)LED顯示器接口實(shí)驗(yàn),這個(gè)實(shí)驗(yàn)題目書上沒有,要求利用實(shí)驗(yàn)箱上現(xiàn)成的器件來實(shí)現(xiàn)。首先學(xué)生要思考的是如何連接8255、8086、LED等器件—也就是電路原理圖,然后自己編程,并不斷地嘗試調(diào)試程序。在調(diào)試過程中、熟悉一條條命令、一個(gè)個(gè)語(yǔ)句,或許更換一個(gè)個(gè)思路,直到問題解決為止。一個(gè)較好綜合實(shí)驗(yàn),光靠實(shí)驗(yàn)課上的時(shí)間是遠(yuǎn)遠(yuǎn)不夠的,這就要求實(shí)驗(yàn)室對(duì)學(xué)生全天開放,在過程中要求學(xué)生獨(dú)立實(shí)驗(yàn)、獨(dú)立調(diào)試、獨(dú)立驗(yàn)證。老師更多的是啟發(fā)、引導(dǎo),不進(jìn)行示范。鼓勵(lì)學(xué)生相互討論,鼓勵(lì)在做好基礎(chǔ)實(shí)驗(yàn)后,通過假設(shè)出現(xiàn)另一種實(shí)驗(yàn)結(jié)果來改動(dòng)程序,培養(yǎng)學(xué)生舉一反三能力。例如本實(shí)驗(yàn)右循環(huán)顯示程序又如何改動(dòng),漢字顯示程序又如何改動(dòng)等。實(shí)驗(yàn)教學(xué)的根本目的就是培養(yǎng)學(xué)生解決問題的能力,其解決途徑都是運(yùn)用儲(chǔ)備的知識(shí),發(fā)揮主觀能動(dòng)性與經(jīng)驗(yàn),再加上個(gè)人的靈感。求解是一個(gè)復(fù)雜且綜合的過程,課堂教學(xué)只可能講授求解的知識(shí)和經(jīng)驗(yàn),而無法表現(xiàn)其求解的精髓。也就是說真正的求解能力是“教”不會(huì),“學(xué)”不會(huì)的,只能在求解的實(shí)踐中“練”會(huì)。因此,教學(xué)中培養(yǎng)求解能力的根本途徑是引出問題,設(shè)計(jì)較好的實(shí)驗(yàn)題目,激勵(lì)學(xué)生的主動(dòng)性,讓學(xué)生自己動(dòng)手解決問題。
3結(jié)束語(yǔ)
本文實(shí)現(xiàn)了LED顯示器接口實(shí)驗(yàn)。又如A/D實(shí)驗(yàn):使用ADC0809芯片,按查詢方式采樣三路A/D轉(zhuǎn)換數(shù)據(jù),用簡(jiǎn)單輸入口(74LS244)查詢EOC信號(hào)。而D/A實(shí)驗(yàn)是使用DAC0832芯片,編程以產(chǎn)生兩種波形(鋸齒波、三角波)并用示波器來觀察。也可以將兩個(gè)實(shí)驗(yàn)合二為一,改進(jìn)一下設(shè)計(jì)為一個(gè)綜合實(shí)驗(yàn),實(shí)驗(yàn)任務(wù):使輸入給DAC0832的數(shù)據(jù)由0開始每次逐加一,用發(fā)光二極管(LI1-LI8)以二進(jìn)制數(shù)方式顯示D/A與A/D轉(zhuǎn)換結(jié)果,獨(dú)立連接硬件、獨(dú)立編寫程序?qū)崿F(xiàn)。這就需要教師或?qū)W生們自己如何利用現(xiàn)有的實(shí)驗(yàn)條件,多設(shè)計(jì)一些綜合或新穎的實(shí)驗(yàn),從而增加更多的實(shí)踐環(huán)節(jié),培養(yǎng)自己能力。