综合实验报告 714/2007 POP DI KEY IN AL. 6OH TEST AL. 80H JNZ NEXT 判断是否一直有按键,若停止按键则停止发音 CALL DELAY ;否则延时 PUSH SI SHL SIOIH MOV BPOFFSET TIMEI ADD WORD PTR DS: BP+SI, 20H POP SI 次延时时间加20H JMP KEY NEXT MOVALAH MOV DX288H OUT DX.AL 恢复8255A的A端口值 INC SI RE BEEP ENDP 流程图如下: 6/18
综合实验报告 7/4/2007 POP DI KEY AL,60H H ;判断是否一直有按键,若停止按键则停止发音 T TIME1 ,20H 间加 20H AL,AH ;恢复 8255A 的 A 端口值 P 流程 : IN TEST AL,80 JNZ NEXT CALL DELAY ;否则延时 PUSH SI SHL SI,01H MOV BP,OFFSE ADD WORD PTR DS:[BP+SI] POP SI ;一次延时时 JMP KEY、 NEXT: MOV MOV DX,288H OUT DX,AL INC SI RET BEEP END 图如下: 6/18
综合实验报告 714/2007 开始 8253初始化 取AL中音符字符 取相应分频系数 设置8253计数器 设8255A的A端口 延时变量值加20H 允许输出波形 计数器SI加一 调用延时程序 直按键? N 恢复A端口 禁止8253输出 结束 7/18
综合实验报告 7/4/2007 开始 8253 初始化 取 AL 中音符字符 取相应分频系数 设置 8253 计数器 设8255A的A端口 允许输出波形 一直按键? 调用延时程序 延时变量值加 20H 计数器 SI 加一 Y N 恢复 A 端口 禁止 8253 输出 结束 7/18