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

正文內(nèi)容

單片機(jī)常用外圍設(shè)備接口電路(編輯修改稿)

2025-03-22 15:34 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 其中 0111( D7~ 4)為 SAA1064器件地址, D3~ 1為 A2A1A0尋址字節(jié), 末位 D0為 R/W; SADR為片內(nèi)寄存器地址; COM為控制命令。 解 : VSAA: MOV MTD,00H 。置 SAA1064控制命令寄存器 COM片內(nèi)子地址 MOV 31H,01000111B。置控制命令字 ,動(dòng)態(tài)顯示 ,驅(qū)動(dòng)電流 12mA MOV NUMB,6 。置發(fā)送數(shù)據(jù)數(shù) :SADR+COM+data1~ 4=6 SAA1: MOV RO,51H 。將 51H~ 54H顯示符數(shù)據(jù)移至 32H~ 35H LCALL MOVB 。 MOV SLA,01110000B。置 SAA1064(1)寫尋址字節(jié) SLAW LCALL WRNB 。發(fā)送給 SAA1064(1) SAA2: MOV R0,55H 。將 55H~ 58H顯示符數(shù)據(jù)移至 32H~ 35H LCALL MOVB 。 MOV SLA,01110110B。置 SAA1064(2)尋址字節(jié) SLAW LCALL WRNB 。發(fā)送給 SAA1064(2) RET 。 MOVB: MOV R1,32H 。顯示符數(shù)據(jù)移至 32H~ 35H子程序 MOVB1:MOV A,R0 。讀出 MOV R1,A 。存入 INC RO 。指向下一讀出單元 INC R1 。指向下一存入單元 CJNE R1,36H,MOVB1 。判 4個(gè)數(shù)據(jù)移完否 ?未完繼續(xù) RET 。 【 例 97】已知 8位顯示符 (共陰編碼 )已依次存入內(nèi) RAM 51H~ 58H中 ,試按圖 910編程將其輸入 SAA1064(1),(2)動(dòng)態(tài)顯示 ,驅(qū)動(dòng)電流為 12mA。設(shè) VIIC軟件包已裝入 ROM, 。 程序設(shè)計(jì) 按鍵開關(guān)去抖動(dòng)問題 167。 92 鍵盤接口 一、 鍵盤接口概述 鍵盤的抖動(dòng)時(shí)間一般為 5~ 10ms, 抖動(dòng)現(xiàn)象會(huì)引起 CPU對(duì)一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯(cuò)誤 。 ⑴ 硬件去抖動(dòng) 消除抖動(dòng)不良后果的方法: 其中 RC濾波電路去抖動(dòng)電路簡(jiǎn)單實(shí)用,效果較好 。 ⑵ 軟件去抖動(dòng) 檢測(cè)到按鍵按下后,執(zhí)行 延時(shí) 10ms子程序后再確認(rèn) 該鍵是否確實(shí)按下,消除抖動(dòng)影響。 按鍵連接方式 ⑴ 獨(dú)立式按鍵 獨(dú)立式按鍵是每個(gè)按鍵占用一根 I/O端線 。 特點(diǎn): ① 各按鍵相互獨(dú)立,電路配置靈活; ② 按鍵數(shù)量較多時(shí), I/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜; ③ 軟件結(jié)構(gòu)簡(jiǎn)單。 適用于按鍵數(shù)量較少的場(chǎng)合 。 ⑵ 矩陣式鍵盤 I/O端線分為行線和列線,按鍵跨接在行線和列線上,按鍵按下時(shí),行線與列線發(fā)生短路 。 特點(diǎn): ① 占用 I/O端線較少; ② 軟件結(jié)構(gòu)教復(fù)雜。 適用于按鍵較多的場(chǎng)合 。 鍵盤掃描控制方式 ⑴ 程序控制掃描方式 鍵處理程序固定在主程序的某個(gè)程序段。 特點(diǎn) :對(duì) CPU工作影響小,但應(yīng)考慮鍵盤處理程序的運(yùn)行間隔周期不能太長(zhǎng),否則會(huì)影響對(duì)鍵輸入響應(yīng)的及時(shí)性。 ⑵ 定時(shí)控制掃描方式 利用定時(shí) /計(jì)數(shù)器每隔一段時(shí)間產(chǎn)生定時(shí)中斷 , CPU響應(yīng)中斷后對(duì)鍵盤進(jìn)行掃描 。 特點(diǎn) :與程序控制掃描方式的區(qū)別是,在掃描間隔時(shí)間內(nèi),前者用 CPU工作程序填充,后者用定時(shí) /計(jì)數(shù)器定時(shí)控制。定時(shí)控制掃描方式也應(yīng)考慮定時(shí)時(shí)間不能太長(zhǎng),否則會(huì)影響對(duì)鍵輸入響應(yīng)的及時(shí)性。 ⑶ 中斷控制方式 中斷控制方式是利用外部中斷源,響應(yīng)鍵輸入信號(hào)。 特點(diǎn) :克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高 CPU運(yùn)行效率,但要占用一個(gè)寶貴的中斷資源。 按鍵直接與 I/O口連接 二、 獨(dú)立式按鍵及其接口電路 【例 98】按圖 913(a)、 (b),試分別編制按鍵掃描子程序。 解:按圖 913(a)編程如下: KEYA:ORL P1,07H 。置 ~ MOV A,P1 。讀鍵值 ,鍵閉合相應(yīng)位為 0 CPL A 。取反 ,鍵閉合相應(yīng)位為 1 ANL A,00000111B。屏蔽高 5位 ,保留有鍵值信息的低 3位 JZ GRET 。全 0,無鍵閉合 ,返回 LCALL DY10ms 。非全 0,有鍵閉合 ,延時(shí) 10ms,軟件去抖動(dòng) MOV A,P1 。重讀鍵值 ,鍵閉合相應(yīng)位為 0 CPL A 。取反 ,鍵閉合相應(yīng)位為 1 ANL A,00000111B。屏蔽高 5位 ,保留有鍵值信息的低 3位 JZ GRET 。全 0,無鍵閉合 ,返回 。非全 0,確認(rèn)有鍵閉合 JB ,KA0 。轉(zhuǎn) 0鍵功能程序 JB ,KA1 。轉(zhuǎn) 1鍵功能程序 JB ,KA2 。轉(zhuǎn) 2鍵功能程序 GRET:RET KA0: LCALL WORK0 。執(zhí)行 0鍵功能子程序 RET KA1: LCALL WORK1 。執(zhí)行 1鍵功能子程序 RET KA2: LCALL WORK2 。執(zhí)行 2鍵功能子程序 RET 按圖 913(b)編程如下 : KEYB:ORL P1,07H 。置 ~ MOV A,P1 。讀鍵值 ,鍵閉合相應(yīng)位為 1 ANL A,00000111B 。屏蔽高 5位 ,保留有鍵值信息的低 3位 JZ GRET 。全 0,無鍵閉合 ,返回 LCALL DY10ms 。非全 0,有鍵閉合 ,延時(shí) 10ms,軟件去抖動(dòng) MOV A,P1 。重讀鍵值 ,鍵閉合相應(yīng)位為 1 ANL A,00000111B 。屏蔽高 5位 ,保留有鍵值信息的低 3位 JZ GRET 。全 0,無鍵閉合 ,返回 。非全 0,確認(rèn)有鍵閉合 JB ,KB0 。轉(zhuǎn) 0鍵功能程序 JB ,KB1 。轉(zhuǎn) 1鍵功能程序 JB ,KB2 。轉(zhuǎn) 2鍵功能程序 GRET:RET KB0: LCALL WORK0 。執(zhí)行 0鍵功能子程序 RET KB1: LCALL WORK1 。執(zhí)行 1鍵功能子程序 RET KB2: LCALL WORK2 。執(zhí)行 2鍵功能子程序 RET ⑴ 按鍵與并行擴(kuò)展 I/O口連接 按鍵與擴(kuò)展 I/O口連接 【例 99】按圖 914,試編制按鍵掃描子程序,將鍵信號(hào)存入內(nèi) RAM 30H。 解:編程如下: KEY99: MOV DPTR,7FFFH 。置 74373口地址 MOVX A,DPTR 。輸入鍵信號(hào) (“ 0”有效 ) MOV 30H,A 。存鍵信號(hào)數(shù)據(jù) RET 。 參閱 ,圖 86,【例 82】。 ⑵ 按鍵與串行擴(kuò)展 I/O口連接 三、 矩陣式鍵盤及其接口電路 【例 910】按圖 915及圖 916,試編制矩陣式鍵盤掃描程序。 解: KEY: MOV P1,0F0H 。行線置低電平 ,列線置輸入態(tài) KEY0: MOV A,P1 。讀列線數(shù)據(jù) CPL A 。數(shù)據(jù)取反 ,“ 1” 有效 ANL A,0F0H 。屏蔽行線 ,保留列線數(shù)據(jù) MOV R1,A 。存列線數(shù)據(jù) (R1高 4位 ) JZ GRET 。全 0,無鍵按下 ,返回 KEY1: MOV P1,0FH 。行線置輸入態(tài) ,列線置低電平 MOV A, P1 。讀行線數(shù)據(jù) CPL A 。數(shù)據(jù)取反 ,“ 1” 有效 ANL A, 0FH 。屏蔽列線 ,保留行線數(shù)據(jù) MOV R2,A 。存行線數(shù)據(jù) (R2低 4位 ) JZ GRET 。全 0,無鍵按下 ,返回 JBC F0,WAIT 。已有消抖標(biāo)志 ,轉(zhuǎn) SETB F0 。無消抖標(biāo)志 ,置消抖標(biāo)志 LCALL DY10ms 。調(diào)用 10ms延時(shí)子程序 (參閱例 ),消抖 SJMP KEY0 。重讀行線列線數(shù)據(jù) GRET: RET 。 WAIT: MOV A,P1 。等待按鍵釋放 CPL A 。 ANL A,0FH 。 JNZ WAIT 。按鍵未釋放 ,繼續(xù)等待 KEY2: MOV A,R1 。取列線數(shù)據(jù) (高 4位 ) MOV R1,03H 。取列線編號(hào)初值 MOV R3,03H 。置循環(huán)數(shù) CLR C 。 KEY3: RLC A 。依次左移入 C中 JC KEY4 。C=1,該列有鍵按下 ,(列線編號(hào)存 R1) DEC R1 。C=0,無鍵按下 ,修正列編號(hào) DJNZ R3,KEY3 。判循環(huán)結(jié)束否 ?未結(jié)束繼續(xù)尋找有鍵按下的列線 KEY4: MOV A,R2 。取行線數(shù)據(jù) (低 4位 ) MOV R2,00H 。置行線編號(hào)初值 MOV R3,03H 。置循環(huán)數(shù) CLR C 。 KEY5: RRC A 。依次右移入 C中 JC KEY6 。C=1,該行有鍵按下 ,(行線編號(hào)存 R2) INC R2 。C=0,無鍵按下 ,修正行線編號(hào) DJNZ R3,KEY5 。判循環(huán)結(jié)束否 ?未結(jié)束繼續(xù)尋找有鍵按下的行線 KEY6: MOV A,R2 。取行線編號(hào) CLR C 。 RLC A 。行編號(hào) 2 RLC A 。行編號(hào) 4 ADD A,R1 。行編號(hào) 4+列編號(hào) =按鍵編號(hào) KEY7: CLR C 。 RLC A 。按鍵編號(hào) 2 RLC A 。按鍵編號(hào) 4(LCALL+ RET共 4字節(jié) ) MOV DPTR,TABJ 。 JMP A+DPTR 。散轉(zhuǎn) ,執(zhí)行相應(yīng)鍵功能子程序 TABJ: LCALL WORK0 。調(diào)用執(zhí)行 0鍵功能子程序 RET 。 LCALL WORK1 。調(diào)用執(zhí)行 1鍵功能子程序 RET 。 ? ? LCALL WORK15 。調(diào)用執(zhí)行 15鍵功能子程序 RET
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1