




已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
;*根據(jù)CHECK配置信息修改下列符號(hào)值*IOY0 EQU 9800H ;片選IOY0對(duì)應(yīng)8255的端口始地址IOY1 EQU 9840H ;片選IOY1對(duì)應(yīng)8254端口始地址;*MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址MY8254_0 EQU IOY1+00H*4 ;8254計(jì)數(shù)器0端口地址MY8254_1 EQU IOY1+01H*4 ;8254計(jì)數(shù)器1端口地址MY8254_2 EQU IOY1+02H*4 ;8254計(jì)數(shù)器2端口地址MY8254_CMD EQU IOY1+03H*4 ;8254控制寄存器端口地址STACK1 SEGMENT STACK DW 1024 DUP(?)STACK1 ENDSDATA SEGMENTMUSIC DW 1041667/624,1041667/688,1041667/760,1041667/798,1041667/884,1041667/980,1041667/1088,1041667/1148 ;頻率表DTABLE DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H LIGHT DB 01H,02H,04H,08H,10H,20H,40H,80HFREQ_LIST DW 1193180/371,1193180/495,1193180/495,1193180/495,1193180/624,1193180/556,1193180/495,1193180/556,1193180/624 ;頻率表 DW 1193180/495,1193180/495,1193180/624,1193180/742,1193180/833,1193180/833,1193180/833,1193180/742,1193180/624 DW 1193180/624,1193180/495,1193180/556,1193180/495,1193180/556,1193180/624,1193180/495,1193180/416,1193180/416,1193180/371 DW 1193180/495,1193180/833,1193180/742,1193180/624,1193180/624,1193180/495,1193180/556,1193180/495,1193180/556,1193180/833 DW 1193180/742,1193180/624,1193180/624,1193180/742,1193180/833,1193180/990,1193180/742,1193180/624,1193180/624,1193180/495 DW 1193180/556,1193180/495,1193180/556,1193180/624,1193180/495,1193180/416,1193180/416,1193180/371,1193180/495,0TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;時(shí)間表 DB 6, 2, 4, 4, 12, 1, 3, 6, 2 DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 6, 2, 4, 4, 12 MYMEMORY DW 50 DUP (0) KEYNUM DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口、C口高四位輸出,C口低4位輸入 OUT DX,ALBEGIN: CALL CLEAR ;清屏 CALL CCSCAN ;掃描按鍵 JNZ GETKEY1 ;有鍵按下則跳置GETKEY1 MOV AH,1 ;判斷PC鍵盤是否有按鍵按下 INT 16H JZ BEGIN ;無(wú)按鍵則跳回繼續(xù)循環(huán),有則退出 QUIT: MOV AX,4C00H ;返回到DOS INT 21H;取得鍵值GETKEY1:CALL FAR PTR DALLY CALL FAR PTR DALLY CALL CCSCAN ;再次掃描按鍵 JNZ GETKEY2 ;有鍵按下則跳置GETKEY2 JMP BEGIN ;否則跳回開(kāi)始繼續(xù)循環(huán)GETKEY2:MOV CH,0FEH MOV CL,00H ;設(shè)置當(dāng)前檢測(cè)的是第幾列COLUM: MOV AL,CH ;選取一列,將X1X4中一個(gè)置0 MOV DX,MY8255_C SHL AL,4 OUT DX,AL MOV DX,MY8255_C ;讀Y1Y4,用于判斷是哪一行按鍵閉合 IN AL,DXL1: TEST AL,01H ;是否為第1行 JNZ L2 ;不是則繼續(xù)判斷 MOV AL,00H ;設(shè)置第1行第1列的對(duì)應(yīng)的鍵值 JMP MAINDONEL2: TEST AL,02H ;是否為第2行 JNZ L3 ;不是則繼續(xù)判斷 MOV AL,04H ;設(shè)置第2行第1列的對(duì)應(yīng)的鍵值 JMP MAINDONEL3: TEST AL,04H ;是否為第3行 JNZ L4 ;不是則繼續(xù)判斷 MOV AL,08H ;設(shè)置第3行第1列的對(duì)應(yīng)的鍵值 JMP MAINDONEL4: TEST AL,08H ;是否為第4行 JNZ NEXT ;不是則繼續(xù)判斷 MOV AL,0CH ;設(shè)置第4行第1列的對(duì)應(yīng)的鍵值MAINDONE: ADD AL,CL ;將第1列的值加上當(dāng)前列數(shù),確定按鍵值 CMP AL,09H JZ MYTO CMP AL,08H JNZ TO CALL FAR PTR MEMORY2 JMP BEGIN MYTO: CALL FAR PTR MYMUSIC JMP BEGINTO: CALL SHOW CALL FAR PTR SPEAKERON CALL FAR PTR DALLYTEMP: CALL CCSCAN JNZ TEMP CALL FAR PTR SPEAKEROFF JMP BEGIN NEXT: INC CL ;當(dāng)前檢測(cè)的列數(shù)遞增 MOV AL,CH TEST AL,08H ;檢測(cè)是否掃描到第4列 JZ KERR ;是則跳回到開(kāi)始處 ROL AL,1 ;沒(méi)檢測(cè)到第4列則準(zhǔn)備檢測(cè)下一列 MOV CH,AL JMP COLUMKERR: JMP BEGIN;清屏CLEAR PROC NEAR ;清除數(shù)碼管顯示子程序 MOV DX,MY8255_B ;段位置0即可清除數(shù)碼管顯示 MOV AL,00H OUT DX,AL RETCLEAR ENDP;鍵盤掃描CCSCAN PROC NEAR ;掃描是否有按鍵閉合子程序 MOV AL,00H MOV DX,MY8255_C ;將4列全選通,X1X4置0 SHL AL,4 OUT DX,AL MOV DX,MY8255_C IN AL,DX ;讀Y1Y4 NOT AL AND AL,0FH ;取出Y1Y4的反值 RETCCSCAN ENDP;數(shù)碼管顯示SHOW PROC NEAR ;顯示鍵值子程序 PUSH AX PUSH AX ;以緩沖區(qū)存放的鍵值為鍵值表偏移找到鍵值并顯示 MOV AL,0F0H MOV DX,MY8255_C SHL AL,4 OUT DX,AL ;設(shè)置X1X4,選通一個(gè)數(shù)碼管 POP AX MOV BX,OFFSET DTABLE XLAT ;將鍵值作為偏移和鍵值基地址相加得到相應(yīng)的鍵值 MOV DX,MY8255_B OUT DX,AL ;寫入數(shù)碼管ADp CALL FAR PTR DALLY POP AX RETSHOW ENDP ;開(kāi)喇叭SPEAKERON PROC FAR PUSH AX MOV AL,36H MOV DX,MY8254_CMD OUT DX,AL ;初始化8254 POP AX PUSH BX PUSH SI PUSH DX MOV BX,OFFSET MUSIC SHL AL,1 MOV AH,00H MOV SI,AX MOV AX,BX+SI CALL FAR PTR MEMORY1 MOV DX,MY8254_0 OUT DX,AL MOV AL,AH OUT DX,AL POP DX POP SI POP BX RET SPEAKERON ENDP ;關(guān)喇叭 SPEAKEROFF PROC FAR PUSH AX MOV AL, 30H MOV DX,MY8254_CMD OUT DX,AL POP AXSPEAKEROFF ENDP ;延時(shí)1,DALLY PROC FAR ;軟件延時(shí)子程序 PUSH CX PUSH AX MOV CX,00FFHD1: MOV AX,00FFHD2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RETDALLY ENDP;放音樂(lè)MYMUSIC PROC FAR PUSH AX PUSH SI PUSH DI MOV AL,36H MOV DX,MY8254_CMD OUT DX,AL AGAIN2: MOV SI,OFFSET FREQ_LIST MOV DI,OFFSET TIME_LIST MYAGAIN: CMP word ptr SI,0 JZ AGAIN2 MOV AX,SI MOV DX,MY8254_0 OUT DX,AL MOV AL,AH OUT DX,AL MOV DL,DI CALL MYDALLY INC SI INC SI INC DI CALL CCSCAN JNZ MYEXIT MOV AH,01H INT 16H JZ MYAGAIN CALL FAR PTR SPEAKEROFF MOV AX,4C00H ;返回到DOS INT 21HMYEXIT: CALL FAR PTR SPEAKEROFF POP DI POP SI POP AX RETMYMUSIC ENDP ;延時(shí)二MYDALLY PROC PUSH AX PUSH CXMYD0: MOV CX,200H MYD1: MOV AX,0FFFFH MYD2: DEC AX JNZ MYD2 LOOP MYD1 DEC DL JNZ MYD0 POP CX POP AX RET MYDALLY ENDP ;錄音MEMORY1 PROC FAR PUSH BX MOV BX,KEYNUM MOV MYMEMORYBX,AX INC BX INC BX MOV KEYNUM,BX POP BX RET MEMORY1 ENDP ;放音MEMORY2 PROC FAR PUSH AX PUSH SI PUSH DI AGAIN3: MOV SI,OFFSET MYMEMORY MYAGAIN2: mov ax ,si CMP ax,0;SI,0 JZ AGAIN3 MOV AL,36H MOV DX,MY8254_CMD OUT DX,AL MOV AX,SI MOV DX,MY8254_0 OUT DX,AL MOV AL,AH OUT DX
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海邦德職業(yè)技術(shù)學(xué)院《結(jié)構(gòu)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貼片電容生產(chǎn)流程簡(jiǎn)介
- 企業(yè)環(huán)保基礎(chǔ)知識(shí)培訓(xùn)
- 護(hù)工與保潔技能培訓(xùn)大綱
- 2025廣告預(yù)訂合同范本
- 2025混凝土班組勞務(wù)合同樣本
- 2025畫(huà)冊(cè)版權(quán)、知識(shí)產(chǎn)權(quán)及注冊(cè)申請(qǐng)合同協(xié)議書(shū)范本
- 2025辦公室文明合同范本
- 2025年高考?xì)v史必修二復(fù)習(xí)提綱
- 2025實(shí)習(xí)生合同范本
- 統(tǒng)編版2024-2025學(xué)年語(yǔ)文六年級(jí)下冊(cè)期中核心素養(yǎng)評(píng)估卷有答案
- 2025年廣東省深圳市31校聯(lián)考中考二模歷史試題(原卷版+解析版)
- 個(gè)人車輛抵押協(xié)議書(shū)
- 煙草公司辦公樓物業(yè)服務(wù)方案
- 2024年全國(guó)教育大會(huì)精神全文課件
- 2024年大亞灣城投人居科技集團(tuán)招聘筆試沖刺題(帶答案解析)
- DZ∕T 0270-2014 地下水監(jiān)測(cè)井建設(shè)規(guī)范
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計(jì)技術(shù)規(guī)程
- 【更新版】深信服資格認(rèn)證考試題庫(kù)大匯總(含答案)
- 慶陽(yáng)市北部城區(qū)控制性詳細(xì)規(guī)劃—說(shuō)明書(shū)
- (完整版)BrownBear繪本附配音課件
評(píng)論
0/150
提交評(píng)論