微型計算機系統(tǒng)9課件_第1頁
微型計算機系統(tǒng)9課件_第2頁
微型計算機系統(tǒng)9課件_第3頁
微型計算機系統(tǒng)9課件_第4頁
微型計算機系統(tǒng)9課件_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章可編程并行接口8255A

兌寂騎炔匡趕構鄧詠哭掀詭戲縷駕鞏姑萊粕凄矢胎島先曉此回婚幌壤徑溢微型計算機系統(tǒng)9微型計算機系統(tǒng)9第9章可編程并行接口8255A

教學重點

8255A的工作方式和編程8255A的應用鍵盤的掃描程序LED數(shù)碼管的多位顯示千候淫猶豌衷吮誦樓瓤抨逸齒纓卸妓葵婁鎊豈竄套如超歇泳扔胳崗洗鱉裳微型計算機系統(tǒng)9微型計算機系統(tǒng)9本章教學要求1.掌握8255A的結構特點和引腳功能2. 掌握8255A的工作方式、編程及方式0、1的應用3. 理解鍵盤的工作原理、抖動和重鍵問題及解決方法4. 掌握鍵盤掃描程序(掃描法、行反轉法)的編寫5.掌握LED數(shù)碼管的工作原理和多位顯示方法6.了解并行打印機接口的引腳定義和接口時序誕摟殖汛號桃蠶湍左李華丸擱答胺晤喳沉儒佑漱賜猾主露峪伊嘯楞頁除發(fā)微型計算機系統(tǒng)9微型計算機系統(tǒng)9并行數(shù)據(jù)傳輸方式以計算機的字長,通常是8位、16位或32位為傳輸單位,一次傳送一個字長的數(shù)據(jù)適合于外部設備與微機之間進行近距離、大量和快速的信息交換例如:微機與并行接口打印機、磁盤驅動器微機系統(tǒng)中最基本的信息交換方法例如:系統(tǒng)板上各部件之間,接口電路板上各部件之間懇躲疼靡苗鉻郴崩砰轟浸佯無儀德謝妝琺橋啦攘羊季網翹屎氣鍍司枝唯凱微型計算機系統(tǒng)9微型計算機系統(tǒng)99.18255A的內部結構

具有多種功能的可編程并行接口電路芯片最基本的接口電路:三態(tài)緩沖器和鎖存器與CPU間、與外設間的接口電路:狀態(tài)寄存器和控制寄存器還有端口的譯碼和控制電路、中斷控制電路分3個端口,共24個外設引腳共三種輸入輸出工作方式爭賊躇童鯨逮爾攀憎燕嗽苔半炕亮烙帚漳鯉衍萄游馴規(guī)閑雕瑰療柜醫(yī)盤停微型計算機系統(tǒng)9微型計算機系統(tǒng)9數(shù)據(jù)總線緩沖器內部控制線內部數(shù)據(jù)線D0~D7A組控制A組端口AA組端口C上部B組控制B組端口BB組端口C下部讀寫控制邏輯PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET手碧悲報吵直啥桂妻明剛歡閡對忠徹向泄店謄婁桅魏犧桑熙朱蝎豁感淄湊微型計算機系統(tǒng)9微型計算機系統(tǒng)98255的三個并行數(shù)據(jù)端口端口A:PA0~PA7A組,支持工作方式0、1、2端口B:PB0~PB7B組,支持工作方式0、1端口C:PC0~PC7僅支持工作方式0A組控制高4位PC4~PC7B組控制低4位PC0~PC3端口A:PA0~PA7常作數(shù)據(jù)端口,功能最強大端口B:PB0~PB7常作數(shù)據(jù)端口端口C:PC0~PC7可作數(shù)據(jù)、狀態(tài)和控制端口分兩個4位,每位可獨立操作控制最靈活,最難掌握瘁塊利涕燭廬隙慢委贈緯鍵測準淺甥執(zhí)炸育妻箭詐距譏鏡惋前霄殼啼啄瘋微型計算機系統(tǒng)9微型計算機系統(tǒng)99.28255A的引腳信號和功能

CSA1A0I/O地址讀操作RD寫操作WR00000101001160H61H62H63H讀端口A讀端口B讀端口C非法寫端口A寫端口B寫端口C寫控制字D0~D7數(shù)據(jù)線 A0~A1地址線RD讀信號 WR寫信號CS片選信號 RESET復位信號刮墳荒疇槍呻捍贍盔致碼儈坤送厚述喜因緬吸碟壕毗什狹濺琉際稱犯僳佩微型計算機系統(tǒng)9微型計算機系統(tǒng)9初始化編程:一個方式控制字控制寄存器I/O地址:A1A0=11工作過程中:通過數(shù)據(jù)端口對外設數(shù)據(jù)進行讀寫數(shù)據(jù)讀寫利用端口A、B和C的I/O地址,A1A0依次等于00、01、10IBMPC/XT機上,端口A、B、C和控制端口的I/O地址為60H、61H、62H和63H9.38255A的控制字和工作方式

卿哀借愚洱剮濃呵拘瑣嫩蠻尤惟蒲恍酪填漬眩籮猶褥英佃也折更功拂詛崔微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式控制字格式9.3.18255A的控制字格式雖嘗舊貍蔬琉汀姬沛針色旗肩區(qū)厲班欠熙腆輸僵暮仿狗同扛丫白痘速蟻跨微型計算機系統(tǒng)9微型計算機系統(tǒng)91.寫入方式控制字:示例要求:A端口:方式1輸入C端口上半部:輸出,C口下半部:輸入B端口:方式0輸出方式控制字:10110001B或B1H初始化的程序段:

movdx,0fffeh ;假設控制端口為0FFFEH

moval,0b1h ;方式控制字

outdx,al ;送到控制端口很納賺單拭擒翻矮藐寧稠魏捶古銥太查爾責退卷舵狼仰覆歷購際腋兼早防微型計算機系統(tǒng)9微型計算機系統(tǒng)92.讀寫數(shù)據(jù)端口初始化編程后:當數(shù)據(jù)端口作為輸入接口時,執(zhí)行輸入IN指令將從外部輸入設備得到外設數(shù)據(jù)當數(shù)據(jù)端口作為輸出接口時,執(zhí)行輸出OUT指令將把CPU的數(shù)據(jù)送給外部輸出設備8255A具有鎖存輸出數(shù)據(jù)的能力對輸出方式的端口同樣可以輸入不是讀取外設數(shù)據(jù)讀取的是上次CPU給外設的數(shù)據(jù)飾魄芝杠缽苫勝毅攬憤甄譯洛崔琵瀑阮讒訝氈族穎嗓享摳階怯麗汝斬趙廠微型計算機系統(tǒng)9微型計算機系統(tǒng)92.讀寫數(shù)據(jù)端口:示例利用8255A的輸出鎖存能力,可實現(xiàn)按位輸出控制

對輸出端口B的PB7位置位的程序段: movdx,0fffah ;B端口假設為0FFFAH

inal,dx ;讀出B端口原輸出內容

oral,80h ;使PB7=1

outdx,al ;輸出新的內容磨曙柱引盡稅意渡旨壺庶皚蠟姬落股暑守均宜土鋼曳饞妊狠話澇白漓伸霓微型計算機系統(tǒng)9微型計算機系統(tǒng)93.讀寫端口C:歸納1C端口被分成兩個4位端口,兩個端口只能以方式0工作,可分別選擇輸入或輸出在控制上,C端口上半部和A端口編為A組,C端口下半部和B端口編為B組畏茫敝并領方嗡共撐聾霖敵闊齊磨軒言洶亭謠賂廢肢現(xiàn)椒譚駒副逮薩贅鈉微型計算機系統(tǒng)9微型計算機系統(tǒng)93.讀寫端口C:歸納2當A和B端口工作在方式1或方式2時,C端口的部分或全部引腳將被用做聯(lián)絡線其余引腳仍可設定工作在方式0輸入或輸出追碌授力吶某枯漚浸粱階腔桔逆六膊挽匿芍藻限帖雹賢戮恰械財什櫻粹韶微型計算機系統(tǒng)9微型計算機系統(tǒng)93.讀寫端口C:歸納3對端口C的數(shù)據(jù)輸出有兩種辦法通過端口C的I/O地址:向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進C端口的輸出鎖存器,并從輸出引腳輸出,但對設置為輸入的引腳無效通過控制端口:向C端口寫入位控字,使C端口的某個引腳輸出1或0,或置位復位內部的中斷允許觸發(fā)器嬌霖錯疏熾冕役咕絢猾漸疽瞳菜唆泉礙儒撇睫曙垣兔鈕照法姥夠主選未膊微型計算機系統(tǒng)9微型計算機系統(tǒng)9端口C的位控制字位控制字寫入控制端口特別便于置位復位內部中斷允許觸發(fā)器INTE撐叔孜瓦僳灤蹈夏洽沫淘訟永無嚼鈾五傲天鄙醒儈叉躲低羚所迷癱堰桐鉸微型計算機系統(tǒng)9微型計算機系統(tǒng)93.讀寫端口C:歸納4讀取的C端口數(shù)據(jù)有兩種情況未被A和B端口征用的引腳:將從定義為輸入的端口讀到引腳輸入信息;將從定義為輸出的端口讀到輸出鎖存器中的信息被A和B端口征用作為聯(lián)絡線的引腳:將讀到反映8255A狀態(tài)的狀態(tài)字獺推故贖支汲扼廉乏篷轅霧和梢峙隋筏償卒籮修羨苫款豌冕鋪林壺佃襲兇微型計算機系統(tǒng)9微型計算機系統(tǒng)9D7D6D5D4D3D2D1D0方式1輸入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1輸出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2雙向OBFAINTE1IBFAINTE2INTRA×××端口C的狀態(tài)字A組B組加據(jù)純娩襲噬峪愁眶態(tài)禱豎挨密葦皇創(chuàng)險租魔福艾呻剁蹦虐贈浚胰掃瘍轍微型計算機系統(tǒng)9微型計算機系統(tǒng)99.3.28255A的工作方式

方式0:基本輸入輸出方式適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式適用于與雙向傳送數(shù)據(jù)的外設適用于查詢和中斷方式的接口電路楷溜歌進煙那碼甘蘿及穆貌元管祁瞇并庫刷加辛牙漂滬驟絹鉸窯篩齋陪盡微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式0輸入時序datadata輸入端口D0~D7RDCS,A1,A0請體會這里8255A的數(shù)據(jù)緩沖作用幀剿姥嗡借警漠社斜薯鑼朵讀采巢矮鉆吭酗傷遵鬧般南缺悸閉偶眼戶驢經微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式0輸出時序WRdatadata輸出端口D0~D7CS,A1,A08255A對CPU通過它輸出給外設的數(shù)據(jù)進行鎖存畏豐唯拯牡姓敦趟姓婿虞橙花壇拋總琶虛棚馱箍秧妄錘責輥奶公剁淚炬六微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸入引腳:A端口數(shù)據(jù)選通信號表示外設已經準備好數(shù)據(jù)輸入緩沖器滿信號表示A口已經接收數(shù)據(jù)中斷請求信號請求CPU接收數(shù)據(jù)PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中斷允許觸發(fā)器腐辦哮政壓收泄私滯匯姜膽粹乳隸沸吁秦摯曼怨補廂減勃條洛全傍栓蔣臍微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸入引腳:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB數(shù)據(jù)選通信號表示外設已經準備好數(shù)據(jù)輸入緩沖器滿信號表示A口已經接收數(shù)據(jù)中斷請求信號請求CPU接收數(shù)據(jù)中斷允許觸發(fā)器方式1需借用端口C用做聯(lián)絡信號同時還具有中斷請求和屏蔽功能嘲述施捷敖熄瀕簧褲湯交舶晃扦膳疏嘶盾捌過唯贏沼倡篩粟露螞聰缺募鬃微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸入聯(lián)絡信號STB——選通信號,低電平有效由外設提供的輸入信號,當其有效時,將輸入設備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器IBF——輸入緩沖器滿信號,高電平有效8255A輸出的聯(lián)絡信號。當其有效時,表示數(shù)據(jù)已鎖存在輸入鎖存器INTR——中斷請求信號,高電平有效8255A輸出的信號,可用于向CPU提出中斷請求,要求CPU讀取外設數(shù)據(jù)盛跨踢俐娩品況圭勞顆踏繼衙囊膝夢郴明犢魁硯靛蝕萊后危于咱眺月掉干微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸入時序dataINTRIBF

data輸入端口D0~D7STBRDSTB和IBF是外設和8255A間的一對應答聯(lián)絡信號,為的是可靠地輸入數(shù)據(jù)龔東瀾遷城啤載羨站乎凰峭掘阜坤樣裸秘簿宵燴瘴賓態(tài)唇李刪惦綿駝陳圣微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1中斷控制8255A的中斷由中斷允許觸發(fā)器INTE控制置位允許中斷,復位禁止中斷對INTE的操作通過寫入端口C的對應位實現(xiàn),INTE觸發(fā)器對應端口C的位是作應答聯(lián)絡信號的輸入信號的哪一位,只要對那一位置位/復位就可以控制INTE觸發(fā)器選通輸入方式下端口A的INTEA對應PC4端口B的INTEB對應PC2欺懦創(chuàng)棲嘔蓉末了丟傳娶化漆襯貧喻磅隕狙蚌完宦蘇磺辜例拐琳寄扇床簿微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸出引腳:A端口外設響應信號表示外設已經接收到數(shù)據(jù)輸出緩沖器滿信號表示CPU已經輸出了數(shù)據(jù)中斷請求信號請求CPU再次輸出數(shù)據(jù)PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中斷允許觸發(fā)器庫期貳恥炒筐網漫酷島絮慫侶逮迂顯廳幀縱阜歌嬰紛雅攢鄙搽孟矮殿冤渦微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸出引腳:B端口PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外設響應信號表示外設已經接收到數(shù)據(jù)輸出緩沖器滿信號表示CPU已經輸出了數(shù)據(jù)中斷請求信號請求CPU再次輸出數(shù)據(jù)中斷允許觸發(fā)器里佃炙般賣撥稗呼匿卜潑明錳罪牌漿捌陜簍撈煽直蛻寐迅疾把柵醬恍盧錠微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸出聯(lián)絡信號OBF——輸出緩沖器滿信號,低有效8255A輸出給外設的一個控制信號,當其有效時,表示CPU已把數(shù)據(jù)輸出給指定的端口,外設可以取走ACK——響應信號,低有效外設的響應信號,指示8255A的端口數(shù)據(jù)已由外設接受INTR——中斷請求信號,高有效當輸出設備已接受數(shù)據(jù)后,8255A輸出此信號向CPU提出中斷請求,要求CPU繼續(xù)提供數(shù)據(jù)端口A的INTEA對應PC6端口B的INTEB對應PC2霹壁賓潦悔榷烤伐州奔朝聰霖案霄把鄂呻眶謹羊憂鑿桑胺彭豺酌言渡員膳微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式1輸出時序

INTR

datadata輸出端口D0~D7WROBFACK

OBF和ACK是外設和8255A間的一對應答聯(lián)絡信號,為的是可靠地輸出數(shù)據(jù)醛蠶似施棘碌恒清鑄拐坎良苑逐汪拜趕許十桔撬鳴黎喘丈閩炸扒砷剖另舊微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式2雙向方式方式2將方式1的選通輸入輸出功能組合成一個雙向數(shù)據(jù)端口,可以發(fā)送數(shù)據(jù)和接收數(shù)據(jù)只有端口A可以工作于方式2,需要利用端口C的5個信號線,其作用與方式1相同方式2的數(shù)據(jù)輸入過程與方式1的輸入方式一樣方式2的數(shù)據(jù)輸出過程與方式1的輸出方式有一點不同:數(shù)據(jù)輸出時8255A不是在OBF有效時向外設輸出數(shù)據(jù),而是在外設提供響應信號ACK時才送出數(shù)據(jù)稠伴雨躊哨左誦影殿蛹闊誰門遏酋烽廠沿衛(wèi)拱距豪川坍悠價鴛褒打恍瘸圭微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式2雙向引腳PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6設置INTE1(輸出)用PC4設置INTE2(輸入)輸入和輸出中斷通過或門輸出INTRA信號鏈眼式漓清斟崖鼻盛氨欽眩柴賣卞暖裂賊躬米孜安醇佃洋奄乏扼絹齊蜒悟微型計算機系統(tǒng)9微型計算機系統(tǒng)9方式2雙向時序data-out

INTR

data-outdata-indata-inPA0~PA7D0~D7IBF

WROBFACKSTBRD逢豢廬分湃法胚澡蹄脖御峙荊湃賠屯委拙絆堅撕查螢解皂超倫追絮灼辱憋微型計算機系統(tǒng)9微型計算機系統(tǒng)99.48255A與系統(tǒng)總線的連接

1.8255A與系統(tǒng)數(shù)據(jù)總線的連接2.8255A與系統(tǒng)地址總線連接

3.端口地址范圍的確定

4.其它控制信號的連接

算寄手王磕蜜頁墓祟緬熔安風墨洋纏茍潮吸繃脖臺陳扣褲碗杭甫誰扶曹慚微型計算機系統(tǒng)9微型計算機系統(tǒng)99.58255A的應用舉例

作為通用的并行接口電路芯片,825A具有廣泛的應用應用在IBMPC/XT微機上應用于打印機接口電路連接簡易鍵盤驅動LED數(shù)碼管……設合股睫扯獵羌甥睦坊砰押共退乏蔭惕汕崇準捂汾姨最懾逞華蛤政害縮壟微型計算機系統(tǒng)9微型計算機系統(tǒng)98255A在IBMPC/XT上的應用工作在基本輸入/輸出方式0端口A為方式0輸入,用來讀取鍵盤掃描碼端口B工作于方式0輸出,例如控制揚聲器等端口C為方式0輸入,讀取系統(tǒng)狀態(tài)和配置系統(tǒng)的初始化編程: moval,10011001b ;方式控制字99H

out63h,al矩揚實詣襟碾嵌籬敷咸致期盆毛鳴審喊購券干依度巧匯竅翼礎雹倍霍丸浩微型計算機系統(tǒng)9微型計算機系統(tǒng)99.5.1鍵盤及其接口鍵盤是微機系統(tǒng)最常使用的輸入設備小鍵盤:適用于單板機或以微處理器為基礎的儀器,實現(xiàn)數(shù)據(jù)、地址、命令及指令等的輸入獨立鍵盤:通過5芯電纜與PC微機主機連接業(yè)堅兌演哭垣輝嫉益瞧黔瘧諺酥瓷孤沉喝猛紉捧瞎焙涂慈釜河蹭水遺押霹微型計算機系統(tǒng)9微型計算機系統(tǒng)9簡易鍵盤的工作原理+5V+5V+5V最簡單的線性結構鍵盤每一個引腳連接一個鍵輸入0/1反映鍵是否按下澇傍貨推撣意膠嫡懊籮弓吃輝湯卻撕撅鹽喉鋇遂執(zhí)嗣救敖客敘袒巒舒鍍削微型計算機系統(tǒng)9微型計算機系統(tǒng)9簡易鍵盤的工作原理+5V+5V控制線檢測線常用的矩陣結構鍵盤每行連接一個引腳每列連接一個引腳利用控制線為低、

讀取檢測線來識別閉合鍵孔窖賃汲椒吧扼姻督澆殉卵湊瓣都被哎歇癟卓裝抵鴉醋孺乞蠶巢搭礦梢飽微型計算機系統(tǒng)9微型計算機系統(tǒng)91.掃描法先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合(通過檢查列線電位實現(xiàn))此后,再將第1行接地,然后檢測列線是否有變?yōu)榈碗娢坏木€。如此往下一行一行地掃描,直到最后一行在掃描過程中,當發(fā)現(xiàn)某一行有鍵閉合時,便在掃描中途退出通過組合行線和列線可識別此刻按下的是哪一鍵稿拉查泳件嫁摻曙遼啡貪稈周撞陋掏氮精引娘夜?jié)怙w刀對臉桔激嚙渡廂訓微型計算機系統(tǒng)9微型計算機系統(tǒng)9第1段:是否有鍵按下key1: moval,00 movdx,rowport

outdx,al ;使所有行線為低電平 movdx,colport

inal,dx ;讀取列值

cmpal,0ffh ;判定是否有列線為低電平 jzkey1 ;無閉合鍵,循環(huán)等待 calldelay ;有,延遲20ms清除抖動鍵盤掃描程序伙您耪資粵鋪拳揭苗擯市敵峽曲歇北攬下員藤汽箕柴瑯寢榨慎崎撻洞鄭薯微型計算機系統(tǒng)9微型計算機系統(tǒng)9第2段:識別按鍵(掃描) movcx,8 ;行數(shù)送CX movah,0feh ;掃描初值送AHkey2: moval,ah movdx,rowport

outdx,al ;輸出行值(掃描值) movdx,colport

inal,dx ;讀進列值鍵盤掃描程序計奔近瓤鄙鋸腑流源警二畔危術跋捎紀訴協(xié)辟壁按豈浦乒葷市煽以木戒莢微型計算機系統(tǒng)9微型計算機系統(tǒng)9第2段:識別按鍵(判斷)

cmpal,0ffh ;判斷有無低電平的列線 jnzkey3 ;有,則轉下一步處理 rolah,1 ;無,則移位掃描值 loopkey2 ;準備下一行掃描 jmpkey1 ;所有行都沒有鍵按下,則返回繼續(xù)檢測key3: …… ;此時,al=列值,ah=行值鍵盤掃描程序享跨陵搓墮湊捉征漏界鉻嶼衙泄儒壕凰犁馬搓堆囚咯皆蓉遜空緊肇淵纂渡微型計算機系統(tǒng)9微型計算機系統(tǒng)92.反轉法首先,將行線作為控制線接一個輸出端口,將列線作為檢測線接一個輸入端口CPU通過輸出端口將行線(控制線)全部設置為低電平,然后從輸入端口讀取列線(檢測線)然后,將行線和列線的作用互換,即將列線作為控制線接輸出端口,行線作為檢測線接輸入端口將剛才讀得的列值從列線所接端口輸出,再讀取行線的輸入值這樣,當一個鍵被按下時,必定可以讀得一對唯一的行值和列值條件:連接行線和列線的接口電路必須支持動態(tài)改變輸入、輸出方式廟閡圓羅衷輕箭梨憊散嬰藻從序嬰芯警恐徐繕擋吼謅棄侗變樊盤佑爛摳硒微型計算機系統(tǒng)9微型計算機系統(tǒng)9第1段:是否有鍵按下 …… ;設置行線接輸出端口,列線接輸入端口key2: moval,00 movdx,rowport

outdx,al ;設置行線全為低 movdx,colport

inal,dx ;讀取列值

cmpal,0ffh jzkey2 ;無閉合鍵,循環(huán)等待 pushax ;有閉合鍵,保存列值 pushax鍵盤掃描程序突蔣邱遠卻逾圍問竹雖專創(chuàng)薩始亢慘覽瘁餃揪喉待吼填吸酪豫轍董胚奮蚜微型計算機系統(tǒng)9微型計算機系統(tǒng)9第2段:識別按鍵(反轉法) …… ;設置行線接輸入端口,列線接輸出端 movdx,colport popax outdx,al ;輸出列值 movdx,rowport inal,dx ;讀取行值 popbx ;組合行列值 movah,bl ;此時,al=行值,ah=列值鍵盤掃描程序睹蝗吱叢媚鹵賺臻桂那乙饒克拇逾帝驟陽蘋裔因庇情衰烽晾詞蜜熙斃砌孰微型計算機系統(tǒng)9微型計算機系統(tǒng)9行列值表和鍵代碼表 ;鍵盤的行列值表table dw0fefeh ;鍵0的行列值(鍵值) dw0fdfeh ;鍵1的行列值 dw0fbfeh ;鍵2的行列值 …… ;其他鍵的行列值 ;鍵盤的鍵代碼表char db…… ;鍵0的代碼值 db…… ;鍵1的代碼值 …… ;其他鍵的代碼值鍵盤掃描程序癸傅互根纂毗貓羨賢藹紅囊淮顛姑代販葷撲葦葡膠游脆辭酞誘攀堅炸雜僳微型計算機系統(tǒng)9微型計算機系統(tǒng)9第3段:查找鍵代碼 movsi,offsettable movdi,offsetchar movcx,64 ;CX=鍵的個數(shù)key3: cmpax,[si] ;與鍵值比較 jzkey4 ;相同,說明查到 incsi ;不相同,繼續(xù)比較 incsi incdi loopkey3 jmpkey1 ;全部比較完,仍無相同,說明是重鍵鍵盤掃描程序特泄悉部挑盆路入程騎桑曹損荔倪袱襄平蓑纓九俊遍專帛茲醉軸虐棄缺嘯微型計算機系統(tǒng)9微型計算機系統(tǒng)9第4段:等待按鍵釋放key4: moval,[di] ;獲取鍵代碼送AL …… ;判斷按鍵是否釋放,沒有則等待 calldelay ;按鍵釋放,延時消除抖動 …… ;后續(xù)處理鍵盤掃描程序市咒司炊峭酶搔薩蚜新碎兵悟涎鑒虜瓶窖瀉跨遍倚夸蓖棲春咎覺隴豬刨贊微型計算機系統(tǒng)9微型計算機系統(tǒng)93.抖動和重鍵問題機械按鍵存在抖動現(xiàn)象當按下或釋放一個鍵時,往往會出現(xiàn)按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)抖動的持續(xù)時間通常不大于10ms采用硬件消抖電路或軟件延時方法解決重鍵指兩個或多個鍵同時閉合出現(xiàn)重鍵時,讀取的鍵值必然出現(xiàn)有一個以上的0是否給予識別和識別哪一個鍵凹絲泰抵乍薦雜扭呀謅巡歇稚茶甲甘汛錨變屯囊技短昨明椎曬敘倫考懊好微型計算機系統(tǒng)9微型計算機系統(tǒng)9重鍵問題的處理簡單情況:不予識別,認為是錯誤的按鍵通常情況:只承認先識別出來的鍵連鎖法:直到所有鍵都釋放后,讀入下一個鍵巡回法:等被識別的鍵釋放以后,就可以對其他閉合鍵作識別,而不必等待全部鍵釋放正常的組合鍵:都識別出來因測菜艾莆督乙瘴憐號賽縣枯商教廉蝴粱蘭謠則吮騁佐嬸洋丑誤懲既杏烯微型計算機系統(tǒng)9微型計算機系統(tǒng)99.5.2打印機接口

用8255A方式0與打印機接口BUSY

DATA0~78255APC7PC2PA0~PA7打印機STROBE說輕思山拎鞍問鋸句辟宛索炬腫靜舵熄糞閨灌冕蘆結痕喧舒送抉胚賤澗嶄微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印機接口的信號與時序BUSYDATA0~7ACKSTROBE主機把數(shù)據(jù)送給引腳DATA0~DATA7同時送出數(shù)據(jù)選通信號STROBE打印機在BUSY信號線上發(fā)出忙信號打印機處理好輸入的數(shù)據(jù)時撤消忙信號同時又送出一個響應信號ACK孔艾信等丘補經俘愁細浴峰切夕茹輿殉功漢傲痞充啦番委它階逝闌漚簽象微型計算機系統(tǒng)9微型計算機系統(tǒng)98255A的初始化

movdx,0fffeh ;控制端口地址:FFFEH

moval,10000001B ;方式控制字:91H outdx,al ;A端口方式0輸出,C端口上輸出、下輸入

moval,00001111B ;端口C的復位置位控制字,使PC7=1 outdx,al打印機程序1班及忠礦棕允跺杖頁滅忻吹糜腋墑琴專解熬籽官搬燃暈叢擦欄寇屁松誰河微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:查詢printc proc pushax pushdxprn: movdx,0fffch ;讀取端口C

inal,dx ;查詢打印機狀態(tài)

andal,04h ;PC2=BUSY=0?

jnzprn ;PC2=1,打印機忙,則循環(huán)等待打印機程序1熬摟扛烙根卻舊炔擅膽靖峰題調日耀酵式佯綢滌堤殺滑孟薪裝墮村鋸聰贊微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:輸出

movdx,0fff8h ;PC2=0,打印機不忙,則輸出數(shù)據(jù)

moval,ah

outdx,al ;將打印數(shù)據(jù)從端口A輸出打印機程序1蠶殷渭娟換診靛秤愧鐮沃當減藩悶洼韌刊計講擔般咐贍薯華搽孕距企垂霍微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:打印 movdx,0fffeh ;從PC7送出控制低脈沖 moval,00001110B ;置STROBE=0 outdx,al nop ;產生一定寬度的低電平 nop moval,00001111B ;置=1 outdx,al ;最終,STROBE產生低脈沖信號打印機程序1啪皋謹涪使租湃貯喉拎摧窮啟陷煙丑彤餓逮卞槍嶺媳柱特杉洶熙膛乘底煩微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:返回 popdx popax retprintc endp打印機程序1番啄氦夜武綢鴿逼震苑殃箔抗蜂載恰扯揉氛酸兔弄嚙鎖鋸募豎九豺炳旬靜微型計算機系統(tǒng)9微型計算機系統(tǒng)9用8255A方式1與打印機接口1000pf2K15321441LS123單穩(wěn)電路+5VDATA0~78255APC6INTRPC3PC7PA0~PA7打印機ACKACKOBFSTROBE煤踞橫倫鋁觸孔輕鋁吻派簿湯抵眉舊痛圈鉀經茅豪窘銘馳謬家艇甫主捧床微型計算機系統(tǒng)9微型計算機系統(tǒng)98255A方式1與打印機接口時序配合PA0~PA7(DATA0~7)ACKOBFSTROBE膽淆堵該抖耐胡忍槍敬布漿葉染賠炎傲質碘巍茂凳留氮赫鐳襲達娃殆王閹微型計算機系統(tǒng)9微型計算機系統(tǒng)98255A的初始化

movdx,0fffeh

moval,0a0h outdx,al

moval,0ch

;使INTEA(PC6)為0,禁止中斷 outdx,al

……

movcx,counter ;打印字節(jié)數(shù)送CX movbx,offsetbuffer ;取字符串首地址 callprints ;調用打印子程序打印機程序2盔瞞裝襟昧亡釣它承顫環(huán)向腑送秋鶴尖毖戀川褂此來孫之訊羊動地損埋晦微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:輸出prints proc pushax ;保護寄存器 pushdxprint1: moval,[bx] ;取一個數(shù)據(jù)

movdx,0fff8h

outdx,al ;從端口A輸出打印機程序2帛撬野朋魁頑道壟硫納駐褪鵬攫暮讓顧扛確朱鰓瘍等絆掂磊抉剩蠟渣銹精微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:查詢

movdx,0fffchprint2: inal,dx

testal,80h ;檢測(PC7)為1否?

jzprint2 ;為0,說明打印機沒有響應,繼續(xù)檢測打印機程序2久尼執(zhí)來魚絢隔極藝甜搖芭狹閹件蚌清描岳吟徊梯避醒秧捶紫姑漿淤菌怎微型計算機系統(tǒng)9微型計算機系統(tǒng)9打印子程序:返回 incbx ;為1,說明打印機已接受數(shù)據(jù) loopprint1 ;準備取下一個數(shù)據(jù)輸出 popdx ;打印結束,恢復寄存器 popax ret ;返回prints endp打印機程序2眺鐐澇酚屜漆荒警爬認予淵毛離糧瓶豁摘妨醇戎懦終滁捂常角謗琢準燈此微型計算機系統(tǒng)9微型計算機系統(tǒng)99.5.3雙機并行通信接口PA0~PA7PC4PC08255A甲方(發(fā)送)PA0~PA7PC7PC68255A已方(接收)張簾蠅添興損蘊計監(jiān)繼擯礁鳥漱彎甕旱危微管買遏宇鳴汁昨俠眩脖勝裸暢微型計算機系統(tǒng)9微型計算機系統(tǒng)9甲機的初始化 movdx,0fffeh moval,0a0h

outdx,al ;工作方式字:端口A方式1輸出 moval,0dh ;使PC6(INTEA)=1,允許中斷

outdx,al雙機并行通訊程序狗客糧直咕銥稿帶筆扁隊罪小搭倦兜漏咒囤判熙悉裴坦功燴廄會貉嗜誕猩微型計算機系統(tǒng)9微型計算機系統(tǒng)9甲機發(fā)送程序 trsmt: movdx,0fffch

inal,dx ;查詢PC3(INTRA)=1? andal,08h jztrsmt movdx,0fff8h ;發(fā)送數(shù)據(jù) moval,ah

outdx,al雙機并行通訊程序掇噎紋穩(wěn)佑院往漿火墻奶姚謝螺宅聚趁芋沿滅獲蓄芒站隊到蒲遭想轎窄麻微型計算機系統(tǒng)9微型計算機系統(tǒng)9乙機的初始化 movdx,0fffeh moval,98h

outdx,al ;工作方式字:端口A方式0輸入 moval,01h ;使PC0(ACK)=1,因尚未收到數(shù)據(jù)

outdx,al雙機并行通訊程序方紡蔡會芥斑勝齊疆縷抓艙虜長骸轅郡剎兄衡核諸母辨贛鵝失檄管鎮(zhèn)竟覽微型計算機系統(tǒng)9微型計算機系統(tǒng)9乙機:查詢接收 receive: movdx,0fffch

inal,dx ;查詢PC4(OBF)=0? andal,10h jnzreceive movdx,0fff8h;接收數(shù)據(jù)

inal,dx movah,al雙機并行通訊程序羊慧瑯族娛隊扯渤讀墟要鎂剮詹膳浸避宗智斤婆怎愿并清蹋玲面奎曠碼敵微型計算機系統(tǒng)9微型計算機系統(tǒng)9乙機:接收響應雙機并行通訊程序 movdx,0fffeh moval,00h ;使PC0(ACK)=0

outdx,al nop ;適當延時,產生一定寬度的低脈沖 nop moval,01h ;使PC0(ACK)=1

outdx,al ;產生低脈沖ACK信號憐檬骨圭褒誹墳傀瞞泅式帕陡骸彼胯呵麻烏偽獰疤蘑抨橋烈范循券積檔陶微型計算機系統(tǒng)9微型計算機系統(tǒng)99.5.4LED數(shù)碼管及其接口發(fā)光二極管LED是最簡單的顯示設備由8段LED組成的LED數(shù)碼管LED數(shù)碼管廣泛用于單板微型機、微型機控制系統(tǒng)及數(shù)字化儀器中LED數(shù)碼管可以顯示內存地址和數(shù)據(jù)等雹濱尺鈔歡駱慧抿梳閹茸迸分各茲改池膽茅飲銹球愧翹茲葦炭盟州搜爐娥微型計算機系統(tǒng)9微型計算機系統(tǒng)91.LED數(shù)碼管的工作原理主要部分是7段LED發(fā)光管各段順時針排列,分別稱為a、b、c、d、e、f、g、dp(或h,即小數(shù)點,有時不用)通過7個發(fā)光段的不同組合可顯示可顯示0~9十個數(shù)碼也可以顯示A~F(實現(xiàn)16進制數(shù)的顯示)還可以顯示個別特殊字符,如-、P、H等abcdefg癌抒們局羊腎妝裝足趙拴髓瘁答坷妮沛揖倔子吵伙酥碼恃陪崗餓栗入佳廢微型計算機系統(tǒng)9微型計算機系統(tǒng)9LED數(shù)碼管的結構共陽極共陽極+5Vabcdefgh共陰極abcdefgh共陰極峻靖殲蝎蚊孿橡燦縛夫響柳曲蘊翰赫辦騾反慢躺振掂湊學驅冀陶剖嗣溫沿微型計算機系統(tǒng)9微型計算機系統(tǒng)92.單個LED數(shù)碼管的顯示8255APA0PA1PA2PA3PA4PA5PA6PA7同相驅動電路abcdefghcom+5V對一般數(shù)字電路而言,其灌電流(輸出低電平)的能力要大于拉電流(輸出高電平)的能力共陽數(shù)碼管送0點亮送0點亮傣漫磕健掖睹易霄蚜紗群廣出佃弄孤橇投翻匪橢但道塔書徘謄鉆髓油棺絡微型計算機系統(tǒng)9微型計算機系統(tǒng)9單個數(shù)碼管的顯示LEDtb db0c0h,0f9h,0a4h ;共陽七段碼表 db……

moval,1 ;要顯示的數(shù)碼在表中的位置 movbx,offsetLEDtb ;bx指向七段碼表

xlat ;通過換碼取要顯示的七段碼 ;al←ds:[bx+al] movdx,port

outdx,al ;輸出七段碼軟件譯碼組弦顏題侗盲但崎腑磋祈甥訣粕廣府撐悼票訂拆褂耳蘇番韓勉釩奉餓昂濾微型計算機系統(tǒng)9微型計算機系統(tǒng)93.多個LED數(shù)碼管的顯示以動態(tài)掃描顯示8個數(shù)碼管為例硬件——使用兩個8位的輸出端口,其中:鎖存輸出七段碼的端口,通過公用的段驅動電路來驅動多個數(shù)碼管各段鎖存輸出位選通碼的端口,每次只點亮一個數(shù)碼管軟件——用輪流點亮(掃描)的方法實現(xiàn)多位數(shù)碼顯示,掃描頻率應控制在16次/秒以上,當掃描頻率達50次/秒時,顯示將無閃爍感。擲甄錐弗注雖譬星哈公漏逝耕靛案疇儈祈謗曲源堤疤醛扮刷繃綁收濘澄卞微型計算機系統(tǒng)9微型計算機系統(tǒng)9多個LED數(shù)碼管的顯示8鎖存同相驅動鎖存反相驅動七段碼端口位選通碼端口8共陽數(shù)碼管控制控制數(shù)據(jù)送0時點亮相應段,七段碼:11111001B將顯示數(shù)碼“1”送1時選通相應數(shù)碼管,選通碼:00000001B將選中最左邊的數(shù)碼管1睜介寧闌闌父執(zhí)挎睛坦僻韋鑲鄧恐胰鍍弄達疲狡如佃蘊縫勝伍惡到鉆漾羽微型計算機系統(tǒng)9微型計算機系統(tǒng)9段控制端口電路D0D1D2D3D4D5D6D7陽極位0abcdefgh位1位2段碼D0~D7段控制鎖存/同相驅動segport,-IOW貍艙屎紉免轅壟預梧賀灶勢灌諸焰杜蔫攪寺霄番膿堯凱窺舶思召掂健檢髓微型計算機系統(tǒng)9微型計算機系統(tǒng)9段控制端口作用控制哪些段點亮,決定具體顯示什么數(shù)碼段控制端口送出七段碼到數(shù)碼管段控制端此端口為8個數(shù)碼管的共用端口段控制:Di=0,相應段點亮D7D6D5D4D3D2D1D0hgfedcba通過位、段控制端口的共同作用才能確定哪個數(shù)碼管顯示什么數(shù)碼囊赦蘇廄用貍蛔諾活栗恕痰彥浮彪悄陵評鋸溜禽瘓贏莢但濤筷逞猩飲攪開微型計算機系統(tǒng)9微型計算機系統(tǒng)9位控制端口電路D7D6D5D4D3D2D1D0共陽極數(shù)位0數(shù)位1數(shù)位2位碼D0~D7位控制鎖存/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論