微机原理硬件实验(7)

2019-09-01 10:08

微原硬件实验

ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN:MOV AX,DATA MOV DS,AX PLAY DO,DO1,DO_T,01H PLAY RE,RE1,RE_T,01H PLAY MI,MI1,MI_T,01H PLAY FA,FA1,FA_T,01H PLAY SO,SO1,SO_T,01H PLAY LA,LA1,LA_T,01H PLAY SI_1,SI1_1,SI_T,01H PLAY DO_2,DO1_2,DO_2_T,01H MOV DX,283H MOV AL,00111110B OUT DX,AL ;8253,送出控制字,计数器0,先读最低8位,再读高八位,方式3,二进制 MOV DX,280H ;DX指向8283的0号计数器 MOV AL,0 ;蜂鸣器消音 OUT DX,AL MOV AX,4C00H INT 21H CODE ENDS END BEGIN

(二)提高部分:

DATA SEGMENT TMP DB ? ;用于存放键盘的按下记录 TMP1 DB ? TMP2 DB ? A DB ?

第31页

微原硬件实验

C1 DB ? C2 DB ? DO DB 42H ;原始分频为1M,通过改变计数器的初值储存晶振频率/音符频率的值 RE DB 90H ;因为数据线是8位宽度,所以分成两部分传送 MI DB 35H FA DB 75H SO DB 2CH LA DB 28H SI_1 DB 23H DO_2 DB 0A1H DO1 DB 0FH ;原始分频为1M,通过改变计数器的初值储存晶振频率/音符频率的值 RE1 DB 0DH MI1 DB 0CH FA1 DB 0BH SO1 DB 0AH LA1 DB 09H SI1_1 DB 08H DO1_2 DB 07H DO_T DB 06H ;储存每个音符的七段数码管显示码 RE_T DB 5BH MI_T DB 4FH FA_T DB 66H SO_T DB 6DH LA_T DB 7DH SI_T DB 07H DO_2_T DB 06H DATA ENDS

STACK SEGMENT STACK 'STACK' DB 100 DUP(?) STACK ENDS

CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK

RUN PROC MOV DX,283H MOV AL,00111110B ;初始化8253的工作状态

第32页

微原硬件实验

OUT DX,AL MOV CX,0FH

AGAIN:MOV BX,0004H AGAIN1: MOV DX,280H ;设置8253的计数器控制字 MOV AL,C1 ;C存储音符的计数初值,控制蜂鸣器 OUT DX,AL MOV AL,C2 OUT DX,AL MOV DX,289H ;设置位选通信号,用8255的B口 MOV AL,01H OUT DX,AL MOV DX,288H ;设置段选通信号,用8255的A口 MOV AL,A OUT DX,AL MOV AL,0 OUT DX,AL DEC BX CMP BX,0 JNZ AGAIN1 LOOP AGAIN MOV DX,283H MOV AL,00111110B ;初始化8253的工作状态,同上一个实验 OUT DX,AL MOV DX,280H ;设置8253的计数器控制字 MOV AL,0 ;C存储音符的计数初值,控制蜂鸣器 OUT DX,AL RET RUN ENDP

BEGIN: MOV AX,DATA MOV DS,AX MOV DX,283H MOV AL,00011110B ;初始化8283的工作状态,同上一个实验 OUT DX,AL

第33页

微原硬件实验

;读入c口的高四位输入 MOV DX,28BH MOV AL,10001000B OUT DX,AL

GOON1: MOV DX,28AH IN AL,DX MOV TMP1,AL CMP AL,00F0H JZ GOON1

;读入c口的低四位输入 MOV DX,28BH MOV AL,10000001B OUT DX,AL

GOON2:MOV DX,28AH IN AL,DX MOV TMP2,AL CMP AL,000FH JZ GOON2 OR AL,TMP1 MOV TMP,AL CMP TMP,01110111B JZ PLAY1 CMP TMP,01111101B JZ PLAY2 CMP TMP,01111110B JZ PLAY3 CMP TMP,10110111B JZ PLAY4 CMP TMP,10111011B JZ PLAY5 CMP TMP,10111101B JZ AA2 CMP TMP,10111110B JZ AA1

PLAY1:MOV AL,DO MOV C1,AL MOV AL,DO1

;设置8255的控制字

;设置A口出,C口高4位输入,低4位输出

;设置8255控制字,C口低4位输入,高4位输出

;组合高位和低位放在TMP ;DO ;RE ;MI ;FA ;SO ;LA ;SI

;记录DO的计数初值

第34页

微原硬件实验

MOV C2,AL MOV AL,DO_T ;记录DO的段选通信号 MOV A,AL CALL RUN ;调用响声及显示子程序 JMP BEGIN

PLAY2: MOV AL,RE ;记录RE的计数初值 MOV C1,AL MOV AL,RE1 MOV C2,AL MOV AL,RE_T ;记录RE的段选通信号 MOV A,AL CALL RUN JMP BEGIN

PLAY3:MOV AL,MI MOV C1,AL MOV AL,MI1 MOV C2,AL MOV AL,MI_T MOV A,AL CALL RUN JMP BEGIN

PLAY4:MOV AL,FA MOV C1,AL MOV AL,FA1 MOV C2,AL MOV AL,FA_T MOV A,AL CALL RUN JMP BEGIN

AA2: JMP PLAY6 ;因为JMP超过了最大范围,所以加了几个JMP中转 PLAY5:MOV AL,SO MOV C1,AL MOV AL,SO1 MOV C2,AL MOV AL,SO_T MOV A,AL CALL RUN JMP BEGIN AA1: JMP PLAY7

第35页


微机原理硬件实验(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考地理一轮复习 区域地理 课时提升作业(二十二)3.22 西北地

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: