【正文】
MOV DL, 0FFH INT 21H JZ LOP 。若沒有返回循環(huán) MOV AH,4CH 。若有返回DOS系統(tǒng) INT 21H RETMAIN ENDP。中斷服務(wù)子程序。 IRQ2: INC BX MOV AL,[BX] 。給8255的A口賦值,改變燈的狀態(tài)DEC CXAND CX,CXJZ AGAIN 。若CX=0,則重新開始循環(huán) MOV DX, A8255 OUT DX, AL IN AL,21H 。屏蔽IR2中斷 OR AL, 04H MOV DX, 21H OUT DX, AL STI IRET CODE ENDS END START五、出現(xiàn)的問題及解決方法由于剛開始,我的知識儲備有限,對所學(xué)的知識還不是太扎實,所以我起初的設(shè)計思路沒有考慮到開中斷、屏蔽中斷、等待中斷等,比較簡單但很笨拙,表面上看上去也沒什么錯誤,但是在經(jīng)人指點后發(fā)現(xiàn)自己還有很多知識方面的欠缺,于是我查閱了很多資料,請教了其他同學(xué),在有了些準(zhǔn)備后才換了這種新的思路。起初的設(shè)計跟這個不太一樣,只用一個計數(shù)器,但有很多個中斷子程序,主要是通過不斷地重置中斷向量表,重新給計數(shù)器1賦初值來實現(xiàn)定時、燈亮。六、設(shè)計心得體會 剛開始在設(shè)計時還真有點無從下手的感覺,不知道該做什么,畢竟是頭一次做這樣的設(shè)計題目,而且對8258258253等芯片的功能還不太熟。但是通過這兩周在網(wǎng)上查閱相關(guān)知識和參考一些別人寫的有點似是而非的程序,再加上點智慧才慢慢理解了一些東西,才初步有了點構(gòu)思。其實,在明白后才發(fā)現(xiàn),也沒什么太難的,只要靜下心來去想、去琢磨,總能想出點辦法來,盡管有時候想出的辦法很笨拙,但是總還有點成就感。總而言之,通過這次設(shè)計,我更深刻地掌握了8259A、8258253等幾個芯片的功能及其相關(guān)的編程,讓我對所學(xué)的知識有了更深刻的理解。參考文獻:微型計算機原理. 王忠民等 西安電子科技大學(xué)出版社微機原理與接口技術(shù)實驗指導(dǎo)與習(xí)題集 周明德主編 人民郵電出版社IB