基於8255A接口芯片的跑馬燈程序


目前這段時間,微機原理這門課上到了接口部分;開始接觸到基於接口芯片的匯編編程,這個星期五上機實驗完成后。考慮了一下老師說的跑馬燈程序,感覺邏輯上實現不是很復雜

於是去實現了一下,但是沒跑起來;於是最后請到了終極大BOSS。據說今年帶五個班微機課第一次敲代碼的老師,來指導了一下;使用DEBUG直接實現了跑馬燈

遂把老師的指導和自己的想法整理出來。

首先我們需要了解什么是接口電路

我們知道計算機有很多的外部設備,但是呢外部設備不可能自己工作;需要有人給它分配工作,這個時候只能由我們的CPU出馬了;話說外設少的時候CPU還能干得過來,但是當外設一多起來

不同的外設有不同的功能時。CPU就會忙不過來了,這個時候我們應該怎么處理這個問題呢?想想我們現實生活中的大公司里面的那些老板是怎么管理自己公司的,是不是大多數老板都是請人負責具體的業務

自己只做戰略方針上面的決策啊,同樣我們的CPU也是啊,忙不過來就需要請人了;這個時候應該請誰呢——接口電路就應運而生了,他幫助我們CPU處理外設傳遞的數據和控制外設工作

所以啊,當老師講到這里的時候我就在想。CPU的發展歷程感覺好像一個公司的發展史啊,剛開始的時候公司還很弱下;啥事都要老板自己親自動手,當公司發展起來之后啊;老板只負責最重要的部分,其他方面就由具體部門負責人負責。

廢話不多說,下面上一張神圖:

這是我粗略的根據所學的一些知識畫出來的,可能不甚熟悉;但大體的結構基本如下:

關於8255A芯片的一些簡介

有ABC三個端口分別為PA0-7,PB0-7...PC0-7

控制端口A0和A1

其中C端口有時候做一個拆分。將芯片分為兩組控制組,然后C端口的高4位和A端口的組成A控制組,B端口的和C端口的低四位構成B控制組

基本情況就是這樣,關於8255A更具體的一些引腳;請查閱API

關於跑馬燈程序的思路

我們將A端口或者B端口連接到開關或者是數據輸入的那一頭,將另外一個端口連接到數據輸出或者LED的這一頭;

然后獲取控制端口的地址,在控制端口中設置由A還是B端口輸出;然后將數據輸入其中的一位設置為LED燈亮,其余為全滅。

然后在輸出斷,將輸入端的數據輸出;這樣就可以控制其中一個小燈。再將輸入端中的值做循環一位。然后跳轉到程序的開始形成一個死循環

再在其中加上一點點延時程序(延時程序的時間必須要足夠長)這樣就能夠實現跑馬燈的效果了

下面我們看一下電路圖

跑馬燈程序代碼:

PORTA=300H
PORTB=301H
PORTC=302H
CONTROL=303H
CG SEGMENT 'CODE'
ASSUME CS:CG
BEGIN: MOV DX,CONTROL
MOV AL,82H
OUT DX,AL
MOV DX,PORTB
MOV AL,0FEH
OUT DX,AL
XYZ: MOV DX,PORTB
out DX,al
ROL AL,1
l2 mov cx,2000
mov bx,300
l1: dec bx
jnz l1
LOOP l2
jmp xyz

 

 

以上就是這個星期學習的一點個人心得,QAQ這個周末還是很慵懶的度過去了;不知道為啥一到周末就沒有一點點動力去接着敲代碼了。真是不應該,以后得改變改變。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM