freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]第9章應(yīng)用系統(tǒng)配置及接口技術(shù)(已修改)

2025-01-31 12:08 本頁(yè)面
 

【正文】 第九章 應(yīng)用系統(tǒng)配置及接口技術(shù) 應(yīng)用系統(tǒng)配置及接口 系統(tǒng)前向通道 : 數(shù)字量、開(kāi)關(guān)量、模擬量輸入 (A/D ) 系統(tǒng)后向通道 : 數(shù)字量、開(kāi)關(guān)量、模擬量輸出 (D/A ) 人機(jī)通道 :鍵盤、顯示器、打印機(jī)等 人機(jī)通道配置與接口技術(shù) ? 進(jìn)行人機(jī)對(duì)話。包括人對(duì)系統(tǒng)的狀態(tài)干預(yù)與數(shù) 據(jù)輸入 ,還有系統(tǒng)顯示運(yùn)行狀態(tài)與運(yùn)行結(jié)果等。 ? 鍵盤、 顯示器用來(lái)完成人機(jī)對(duì)話的人機(jī)通道。 鍵盤接口及處理程序 ?鍵盤分 編碼鍵盤 和 非編碼鍵盤 。 ?鍵盤上閉合鍵的識(shí)別由專用的硬件譯碼器實(shí)現(xiàn),并產(chǎn)生鍵編號(hào)或鍵值的稱為 編碼鍵盤 ,如 BCD碼鍵盤、 ASCII碼鍵盤等; ?靠軟件識(shí)別的稱為 非編碼鍵盤 。 ?鍵盤中的 按鍵 : 都是一個(gè)常開(kāi)開(kāi)關(guān)電路。 ?當(dāng)按鍵 K未被按下 時(shí), 高電平 ; 當(dāng)按鍵 K閉合 時(shí), 低電平 。 圖 92 按鍵電路 ? 通常按鍵在閉合及斷開(kāi)的瞬間均伴有一連串的 抖動(dòng) 。如圖所示。抖動(dòng)時(shí)間一般為 5~ 10 ms。 ? 鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次,必須去除鍵抖動(dòng)。可用 硬件 或 軟件 兩種方法消除。 ? 軟件方法去抖動(dòng) ,即檢測(cè)出鍵閉合后執(zhí)行一個(gè) 5~ 10 ms延時(shí)程序,再一次檢測(cè),如果仍保持閉合,則確認(rèn)為真正按下。當(dāng)檢測(cè)到按鍵釋放后,也要給 5~ 10 ms的延時(shí),待后沿抖動(dòng)消失后,才能轉(zhuǎn)入該鍵的處理程序。 ?鍵的消抖 1) 獨(dú)立式非編碼鍵盤接口及處理程序 ?各按鍵相互獨(dú)立地接通一條輸入數(shù)據(jù)線,如圖所示。 ?當(dāng)一個(gè)鍵 按下 時(shí),與之相連的輸入數(shù)據(jù)線即 清 0(低電平 ),平時(shí)該線為 1(高電平 )。要判別是否有鍵按下,用單片機(jī)的位處理指令十分方便。 ?優(yōu)點(diǎn) :電路簡(jiǎn)單; ?缺點(diǎn) :占用I/O線多。 圖 94 獨(dú)立連接式非編碼鍵盤 鍵盤結(jié)構(gòu) 查詢方式鍵盤的處理程序 程序清單 (設(shè)I/O為 P1口 ): START: MOV A, 0FFH ;輸入時(shí)先置 P1口為全 1 MOV P1,A MOV A, P1 ;鍵狀態(tài)輸入 PL1: JNB ,P0F ; 0號(hào)鍵按下轉(zhuǎn) P0F標(biāo)號(hào)地址 JNB , P1F; 1號(hào)鍵按下轉(zhuǎn) P1F標(biāo)號(hào)地址 JNB , P2F; 2號(hào)鍵按下轉(zhuǎn) P2F標(biāo)號(hào)地址 JNB , P3F; 3號(hào)鍵按下轉(zhuǎn) P3F標(biāo)號(hào)地址 JNB , P4F; 4號(hào)鍵按下轉(zhuǎn) P4F標(biāo)號(hào)地址 JNB , P5F; 5號(hào)鍵按下轉(zhuǎn) P5F標(biāo)號(hào)地址 JNB , P6F; 6號(hào)鍵按下轉(zhuǎn) P6F標(biāo)號(hào)地址 JNB , P7F; 7號(hào)鍵按下轉(zhuǎn) P7F標(biāo)號(hào)地址 LJMP START;無(wú)鍵按下返回 P0F: LJMP PROM0 P1F: LJMP PROM1 ;入口地址表 ┊ ┊ P7F : LJMP PROM7 PROM0: ? ; 0號(hào)鍵功能程序 LJMP START ; 0號(hào)鍵執(zhí)行完返回 PROM1: ? LJMP START ┊ PROM7: ? LJMP START 由程序可以看出,各按鍵由軟件設(shè)置了優(yōu)先級(jí), 優(yōu)先級(jí)順序依次為 0~ 7。 2) 行列式鍵盤接口及工作原理 圖 96 4 4矩陣鍵盤接口圖 為了減少鍵盤與單片機(jī)接口時(shí)所占用I/O線的數(shù)目,在鍵數(shù)較多時(shí),通常都將鍵盤排列成行列矩陣形式 ? 按鍵掃描的工作過(guò)程如下: ① 判斷鍵盤中是否有鍵按下; ② 進(jìn)行行掃描,判斷是哪一個(gè)鍵按下,若有鍵按下,則調(diào)用延時(shí)子程序去抖動(dòng); ③ 讀取按鍵的位置碼; ④ 將按鍵的位置碼轉(zhuǎn)換為鍵值(鍵的順序號(hào)) 0、 2… 、F。 ?1)判別鍵盤中有無(wú)鍵按下: 由 I/O 口向鍵盤送 (輸出 )全掃描字,然后讀入 (輸入 )列線狀態(tài)來(lái)判斷。 方法: 向行線 (水平線 )輸出全掃描字 00H,把全部行線置為“ 0”,然后將列線的狀態(tài)讀入累加器 A中。如果有按鍵按下,總有一根列線電平被拉至低電平,使列輸入不全為 1。 ?2)判斷鍵盤中哪一個(gè)鍵被按下: 通過(guò)將行線逐行置低電平后,檢查列輸入狀態(tài)實(shí)現(xiàn)的。 方法: 依次給行線送“ 0”,然后查所有列線狀態(tài),稱行掃描。如果全為 1,則所按下的鍵不在此行;如果不全為 1,則所按下的鍵必在此行,而且是在與“ 0”列線相交交點(diǎn)上的那鍵。 ?3)行掃描法識(shí)別鍵號(hào)的工作原理 : ? 將第 0行輸出低電平,其余行高電平時(shí),輸出編碼為 1110。然后讀取列,判別第 0行是否有鍵按下。若有一鍵按下,則相應(yīng)列被拉到低電平,則表示第 0行和此列相交位置上有按鍵按下。若沒(méi)有任一條列線為低電平,則說(shuō)明 0行上無(wú)鍵按下。 ? 將第 1行變?yōu)榈碗娖?,其余行高電平時(shí),輸出編碼為 1101。讀取各列 ,判別是有哪一列鍵按下方法同上。 ? 將第 2行變?yōu)榈碗娖?,其余行為高電平時(shí),輸出編碼為 1011。判別是否有哪一列鍵按下的方法同上。 ? 將第 3行變?yōu)榈碗娖剑溆嘈袨楦唠娖綍r(shí),輸出編碼為 0111。判別是否有哪一列鍵按下的方法同上。 根據(jù)行線掃描值(行碼)與列線輸入值(列碼)可唯一確定按下的鍵并獲得該鍵的位置碼(鍵碼) 例如 :行碼= 1011B;列碼= 1101B則:鍵碼 =10111101B ?4)鍵的位置碼及鍵值的譯碼過(guò)程 : ? 掃描過(guò)程后得到的行號(hào)存放在 R0,列號(hào)存放在 R2中。 ? 鍵值(號(hào))的獲得(譯碼)通常采用計(jì)數(shù)譯碼法。 根據(jù)矩陣的結(jié)構(gòu),每個(gè)按鍵值 =行號(hào) 每行按鍵數(shù) +列號(hào) 鍵號(hào)(值) =行首鍵號(hào) +列號(hào) 第 0行的鍵值為: 0行 4+列號(hào)( 0~ 3)為 0、 3; 第 1行的鍵值為: 1行 4+列號(hào)( 0~ 3)為 7; 第 2行的鍵值為: 2行 4+列號(hào)( 0~ 3)為 A、 B; 第 3行的鍵值為: 3行 4+列號(hào)( 0~ 3)為 C、 D、 E、 F。 4 4鍵盤行首鍵號(hào)為 0、 C,列號(hào)為 0, 1, 2, 3。 圖 97 4 4鍵盤掃描流程圖 ( 3) 鍵盤掃描子程序 ? 出口: 鍵值(鍵號(hào))在 A中 KEY: MOV P1 , 0F0H ;令所有行為低電平 KEY1: MOV R7 , 0FFH ;設(shè)置計(jì)數(shù)常數(shù) DJNZ R7, KEY1 ;延時(shí) MOV A , P1 ;讀取 P1口的列值 ANL A, 0F0H ;判別有鍵值按下嗎? CPL A ;求反后,有高電平就有鍵按下 JZ EKEY ;無(wú)鍵按下時(shí)退出 LCALL DEL20 ms ;延時(shí) 20 ms去抖動(dòng) SKEY: MOV A, 00 ;下面進(jìn)行行掃描, 1行 1行掃 MOV R0, A ; R0作為行計(jì)數(shù)器,開(kāi)始為 0 MOV R1, A ; R1作為列計(jì)數(shù)器,開(kāi)始為 0 MOV R3 0FEH ; R3暫存行掃描字 ,低 4位為行掃描字 SKEY2: MOV A, R3 MOV P1, A ;輸出行掃描字,高 4位全 1 NOP NOP NOP ; 3個(gè) NOP操作使 P1口輸出穩(wěn)定 MOV A, P1 ;讀列值 MOV R1,A ;暫存列值 ANL A, 0F0H ;取列值 CPL A ;高電平則有鍵閉合 S123: JNZ SKEY3 ;有鍵按下轉(zhuǎn) SKEY3 INC R0 ;行計(jì)數(shù)器加 1 SETB C ;準(zhǔn)備將行掃描左移 1位, ;形成下一行掃描字 ,C=1保證輸出行掃描字中高 4位全為 1, ;為列輸入作準(zhǔn)備,低 4位中只有 1位為 0 MOV A, R3 ; R3帶進(jìn)位 C左移 1位 RLC A MOV R3, A ;形成下一行掃描字 → R3 MOV A, R0 CJNE A, 04H, SKEY1 ;最后一行掃( 4次)完了嗎? EKEY: RET ;列號(hào)譯碼 SKEY3: MOV A, R1 JNB , SKEY5 JNB , SKEY6 JNB , SKEY7 JNB , SKEY8 AJMP EKEY SKEY5: MOV A, 00H MOV R2,A ;存 0列號(hào) AJMP DKEY SKEY6: MOV A, 01H MOV R2, A ;存 1列號(hào) AJMP DKEY SKEY7: MOV A, 02H MOV R2, A ;存 2列號(hào) AJMP DKEY SKEY8: MOV A, 03H MOV R2, A ;存 3列號(hào) AJMP DKEY ;鍵位置譯碼 DKEY: MOV A, R0;取行號(hào) ACALL DECODE AJMP EKEY ;鍵值(鍵號(hào))譯碼 DECODE: MOV A, R0 ;取行號(hào)送 A MOV B, 04H ;每一行按鍵個(gè)數(shù) MUL AB ;行號(hào) 按鍵數(shù) ADD A, R2 ;行號(hào) 按鍵數(shù) +列號(hào) =鍵值 RET 中斷掃描方式 中斷掃描工作方式,即只有在鍵盤有鍵按下時(shí)才產(chǎn)生中斷申請(qǐng); CPU響應(yīng)中斷,進(jìn)入中斷服務(wù)程序進(jìn)行鍵盤掃描,并做相應(yīng)處理 :鍵識(shí)別、鍵功能處理、消除鍵抖動(dòng) 。 3 . 鍵處理 ?求出鍵號(hào)后,按不同類型進(jìn)行處理。 ?數(shù)字鍵:存貯、顯示等 ?功能鍵:轉(zhuǎn)向相應(yīng)的 功能處理程序 功能鍵地址轉(zhuǎn)移程序: BUFF EQU 30H KEYADR: MOV A,BUFF ;鍵號(hào) → A CJNE A,# 0FH, KYARD1 AJMP DIGPRO ;等于 F,轉(zhuǎn)數(shù)字鍵處理 KYARD1: J
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1