可编辑版
MOV BX,OFFSET DIGITAL ;数码管显示音符 ADD BX,CX MOV AL,[BX]
MOV DX,288H ;A口输出 OUT DX,AL
MOV BX,OFFSET FENPIN ;播放该音符 MOV AX,CX ADD AX,AX ADD BX,AX
MOV AX,[BX] ;计数,先低八位后高八位 MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL
CALL DELAY1 CALL DELAY1
MOV DX,28AH ;C口输入 IN AL,DX ;检测键盘是否弹起 MOV AH,AL LOOP2: CALL DELAY IN AL,DX CMP AL,AH JZ LOOP2
;初始化8253,停止播放音乐 MOV AX,0H MOV DX,283H MOV AL,36H
OUT DX,AL
JMP LOOP1
PLAY0: MOV CX,01H ;播放音乐 PLAY: PUSH CX
MOV BX,OFFSET MUSIC ;读取音符,存于CX中 ADD BX,CX MOV AL,[BX] MOV CL,AL MOV CH,0H
MOV BX,OFFSET DIGITAL ;数码管显示 ADD BX,CX MOV AL,[BX] MOV DX,288H OUT DX,AL
Word完美格式
可编辑版
MOV BX,OFFSET FENPIN ;播放该乐符 MOV AX,CX ADD AX,AX ADD BX,AX
MOV AX,[BX] ;计数,先低八位后高八位 MOV DX,280H OUT DX,AL MOV AL,AH OUT DX,AL POP CX MOV AX,90H
LOOP3: CALL DELAY1 ;延时,持续播放 DEC AX
JNZ LOOP3
;乐曲未结束时,CX加1 INC CX
CMP CX,28H ;共40个音符 JNZ JUM JMP LOOP1 JUM: JMP PLAY
EXIT: MOV AL,0 MOV DX,288H OUT DX,AL MOV AX,4C00H INT 21H
CODE ENDS END START
五、实验结果
按小键盘的0时,播放预置音乐同时数码管显示相应的音符;按小键盘的1~8时,分别发出do,re,mi,fa,so,la,si,高音do,数码管显示按下的音符;按小键盘的9时,熄灭数码管,回到dos键 。 六、实验总结
8253计数初值、输入频率和输出频率的关系是本实验重点。
输出频率 = 输入频率 / 8253计数初值,由此可以确定不同音阶的计数初值。
七、 实验收获与心得体会
通过本次实验,同时练习了并口通信和计数器的应用。8255作为并行接口可以完成CPU和键盘和数码管的通信,数据由CPU送入8255相应端口,再由8255送入与端口相连的外设。8253主要作为计时器产生制定频率的方波信号,驱动喇叭发出不同频率的声音。基本掌握了8253的使用方法,对8253的工作方式及初始化过程有了进一步的理解。
Word完美格式
可编辑版
实验十六 串行通讯8251 一、实验目的
1、了解串行通讯的基本原理。
2、掌握串行接口芯片8251的工作原理和编程方法。
二、实验原理和内容
1、 按图连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。
2、编程: 从键盘输入一个字符,将其ASCII码加 1 后发送出去,再接收回来在屏幕上显 示,(或将内存制定区域内存放的一批数据通过8251A的TXD发送出去,然后从RXD接收
回来,并在屏幕上或数码管上显示出来。)实现自发自收。
3、接线: CLK0 /8254 接 1M时钟 GATE0 /8254 接 +5V
0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接 Y0 /IO地址 CS /8251 接 Y7 /IO地址 RXD /8251 接 TXD /8251
扩展:双机通信,将发送端用小键盘发送数据,接收端用数码管显示接收的数据。
连线:将发送端的TXD与接收端的RXD,将发送端的RXD与接收端的TXD,(即交叉连接),并将两台接口板的地连在一起。其余与上面连线相同。
Word完美格式
可编辑版
三、硬件接线图与软件程序流程图
1、硬件接线图
2.软件流程图
Word完美格式
可编辑版
N TxRDY为1吗 从8251控制口读状态字 初始化8251 初始化8253 开始 显示提示 Y Y 是ESC吗 从键盘接收字符 N 是ESC吗 将键入字符ASC码加1 通过8251数据端口发送字符 从8251控制端口读入状态字 N DxRDY为1吗 Y 从8251数据口接收数据 Word完美格式