1樓:可軒
;;假設8255埠a、 b、 c、方式控制口,位址為按順序排列是:
;;0306h、0307h、0308h、0309h,
;;a口方式0輸出、c口方式0輸入的方式控制字為:10001001b,
title 微機用8255a並行口i/o實驗
code segment
assume cs:code,ds:code
table db 12h,24h,35h,46h,57h
org 100h
start: mov al, 10001001b ;;方式控制字
mov dx, 0309h ;;方式控制口位址
out dx, al ;;方式控制口←方式控制字
mov bx, 5 ;;待送出的資料個數
cld ;;資料表正向遞增標誌
lea si, [table] ;;資料表指標初值
inputc: mov dx, 0308h ;;c口位址
lp1: in al, dx ;;從c口讀入乙個資料
and al, 00110100b ;;遮蔽讀入資料的0、1、3、6、7位
cmp al, 00110100b ;;比較讀入資料的2、4、5位是否全為1
jnz lp1 ;;若讀入資料的2、4、5位非全為1,繼續讀入
outa: mov dx, 0306h ;;若讀入資料的2、4、5位全為1,準備a口輸出資料
lodsb ;;al←si指標所指資料表中的乙個資料
out dx, al ;;[al]→8255的a口
call delay ;;延時,等待外設接收資料
dec bx ;;資料表待輸出的資料個數減1
jnz inputc ;;若待輸出資料個數未為0,迴圈、繼續讀入c口
finish: mov ah,4ch ;;若待輸出資料個數為0,返dos
int 21h
delay proc near ;;延時子程式定義
mov dx, 2000h
lp2: mov cx, 0ffffh
lp3: loop lp3
dec dx
jnz lp2
ret ;;延時子程式返回
delay endp
code ends
end start
2樓:圖匪拾貳
表示沒試過。你輸進去試過沒?
可程式設計並行介面8255中c口的按位操作是如何實現的
3樓:du瓶邪
1、首先用串列埠模組將乙個從pc機發來的序列資料轉換成並行資料存放到資料輸出選擇模組的dout口,至於這個八位資料是輸入到控制暫存器還是從pa/pb/pc口輸出,就由另乙個輸入輸出邏輯判斷模組來控制。
2、邏輯判斷模組根據a0-a1,wr,rd,還有控制字來判斷三個埠處於什麼工作方式,並將資料傳送(接收)至a口、b口、c口的緩衝區。
3、通過pa輸出模組、pa輸入模組、pb輸出模組、pb輸入模組、pc輸出模組將快取區中的資料根據不同的工作方式進行輸入輸出。
8個模組的作用:
1、串列埠通訊模組(rs232refcomp):由於8255埠眾多,而fpga板載i/o口不夠用,所以採用串列埠輸入的方式來給8255提供所需的資料(d0-d7)。
2、資料輸出選擇模組(dout_mux):8255a有3個8位資料埠,即埠a、埠b和埠c,通過資料輸出選擇模組來最終判斷選擇哪個埠輸出。
3、資料輸入輸出邏輯判斷模組(cntl_log):8255a的三個埠,還有乙個控制暫存器,通過資料輸出輸入邏輯判斷模組來判斷8255處於何種工作方式。
4、pa口輸出模組(portaout):用來控制pa的快取區的八位資料輸出到pa口。
5、pa口輸入模組(portain):用來控制pa口讀到的資料放到pa的快取區。
6、pb口輸出模組(portbout):用來控制pb的快取區的八位資料輸出到pb口。
7、pb口輸入模組(portbin):用來控制pb口讀到的資料放到pb的快取區。
8、pc口輸出模組(portcout):用來控制pc口的位輸出。
4樓:
8255控制字d7=1時,d6~d0為口模式控制,d7=0時控制字為pc口的位操作模式,如控制字=00h,pc0復位;控制字=01h,pc0置位;控制字=0eh,pc7復位;控制字=0fh,pc7置位;其中d6~d4沒定義,d3~d1從000b~111b分別指定pc0~pc7腳,d0位為相應的電平高低,0為低電平,1為高電平。
知道財富值被懸賞了,我的財富值會減嗎?
你懸賞了20分提問,肯定會減少20分財富值的。不過,用手機提問,自己不能設定懸賞分,提問的懸賞分是出的,不扣你的財富值。而且,在你滿意答案時,會還送你5分財富值。獲得知道財富值方法如下 1 新使用者首次登陸 5 完成帳戶的啟用 2 被為 20 懸賞分 3 推薦答案 10經驗值 10財富值 4 被贊同...
的財富值會清零嗎
不會的,知道財富值 1.新使用者首次登陸 20財富值 20經驗值,完成帳戶的啟用 2.回答被採納為最佳答案,系統自動贈送 20財富值 懸賞分財富值 3.推薦答案 20財富值 20經驗值 4.回答被贊同,也能得到一定的經驗值和財富值,這個每日是有上限的,其上限值與等級有關 5.精彩回答 10財富值 6...
財富值是怎麼累計的,我的只有200多??
你好,各種財富獲得方法如下 知道財富值 1 新使用者首次登陸 20 完成帳戶的啟用 2 被為 20 懸賞分 3 推薦答案 10經驗值 10財富值 4 精彩 10財富值 5 當選 知道之星 100財富值。文庫財富值 1 上傳文件。2 評價別人的文件 評價一次一分,每天最多加五分 評價別人的文輯也可以 ...