8086cpu電子琴仿真,帶led,源代碼可編譯。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (21.12 KB, 下載次數: 81)
下載附件
2020-1-4 21:40 上傳
單片機源程序如下:
- ;;;===Create By XuHe 2018 1.10===;;;
- ;;;===電子琴設計===;;;
- 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
- ;是否彈起,按的時間長短決定拍長
- 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
- ;發聲子程序
- 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
復制代碼
UO(I]M6(4$$FBD[K02C{SJG.png (6.63 KB, 下載次數: 70)
下載附件
2020-1-4 21:33 上傳
所有資料51hei提供下載:
電子琴.zip
(71.08 KB, 下載次數: 115)
2020-1-4 21:33 上傳
點擊文件名下載附件
8086,微機 下載積分: 黑幣 -5
|