標(biāo)題:
基于8086的電子琴程序Proteus仿真
[打印本頁(yè)]
作者:
anan111
時(shí)間:
2023-6-9 18:51
標(biāo)題:
基于8086的電子琴程序Proteus仿真
微機(jī)原理基礎(chǔ)電子琴,有8255,8253芯片
1686307648273.png
(122.69 KB, 下載次數(shù): 55)
下載附件
2023-6-9 18:49 上傳
;;;===Create By XuHe 2018 1.10===;;;
;;;===電子琴設(shè)計(jì)===;;;
DATAS SEGMENT
CTR EQU 0206H
T0 EQU 82H ;10000010B
DATAS ENDS
STACKS SEGMENT STACK
DW 128 DUP(?)
TOP EQU $-STACKS
STACKS ENDS
CODE SEGMENT PUBLIC 'CODE'
ASSUME CS:CODE,DS:DATAS,SS:STACKS
START:
;===初始化===
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
MOV SP,TOP
MOV AL,T0
MOV DX,CTR
OUT DX,AL
MOV DX,0200H
MOV AL,0FFH
OUT DX,AL
;===按鍵掃描===
K1:
MOV DX,0202H
IN AL,DX
CMP AL,0FEH
JNZ K2
MOV DI,247
JMP DDD
K2:
MOV DX,0202H
IN AL,DX
CMP AL,0FDH
JNZ K3
MOV DI,277
JMP DDD
K3:
MOV DX,0202H
IN AL,DX
CMP AL,0FBH
JNZ K4
MOV DI,311
JMP DDD
K4:
MOV DX,0202H
IN AL,DX
CMP AL,0F7H
JNZ K5
MOV DI,330
JMP DDD
K5:
MOV DX,0202H
IN AL,DX
CMP AL,0EFH
JNZ K6
MOV DI,370
JMP DDD
K6:
MOV DX,0202H
IN AL,DX
CMP AL,0DFH
JNZ K7
MOV DI,415
JMP DDD
K7:
MOV DX,0202H
IN AL,DX
CMP AL,0BFH
JNZ K8
MOV DI,466
JMP DDD
K8:
MOV DX,0202H
IN AL,DX
CMP AL,07FH
JNZ K1
MOV DI,495
JMP DDD
;有鍵按下
DDD:
MOV DX,0200H
OUT DX,AL
CALL OUTTONE
;是否彈起,按的時(shí)間長(zhǎng)短決定拍長(zhǎng)
DELAY:
MOV DX,0202H
IN AL,DX
CMP AL,0FFH
JNZ DELAY
;停止
MOV DX,0200H
MOV AL,0FFH
OUT DX,AL
CALL STOP
JMP K1
;發(fā)聲子程序
OUTTONE PROC NEAR
MOV DX,0406H
MOV AL,10010110B
OUT DX,AL
MOV DX,00H
MOV AX,5000
DIV DI
AND AX,00FFH
MOV DX,0404H
OUT DX,AL
RET
OUTTONE ENDP
;停止子程序
STOP PROC NEAR
MOV AL,10110001B
MOV DX,0406H
OUT DX,AL
MOV AX,5000
MOV DX,0404H
OUT DX,AL
MOV AL,AH
OUT DX,AL
RET
STOP ENDP
CODE ENDS
END START
復(fù)制代碼
Keil代碼與Proteus仿真下載:
8086設(shè)計(jì)--電子琴.7z
(63.2 KB, 下載次數(shù): 16)
2023-6-9 22:06 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1