电子发声设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微机原理与接口技术》
实验报告
学院:
专业:
班级学号:
学生姓名:
实验日期:
指导老师:
五邑大学计算机学院制表
实验八
一、实验名称:电子发声设计实验
二、实验目的:
学习8253定时/计数器使蜂鸣器发声的编程方法。
三、实验内容:
设根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
四、实验设备:
PC微型计算机一台,TD-PITE实验装置或TD-PITC实验装置一套
五、实验步骤:
1、参考下图,连接实验线路;
2、编写程序,经编译、连接无误后装入系统;
3、运行程序,听扬声器发出的音乐是吾正确;
4、固化程序,然后脱机运行程序。
六、实验结果
编制并调试通过的80X86汇编程序代码如下:
;=================================================================
; 电子发声设计实验
;=================================================================
; 端口定义
IOY0 EQU 06C0H
MY8254_COUNT0 EQU IOY0+00H ;8254计数器0端口地址
MY8254_COUNT1 EQU IOY0+02H ;8254计数器1端口地址
MY8254_COUNT2 EQU IOY0+04H ;8254计数器2端口地址
MY8254_MODE EQU IOY0+06H ;8254控制寄存器端口地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表
DW 495,495,624,742,833,833,833,742,624
DW 624,495,556,495,556,624,495,416,416,371
DW 495,833,742,624,624,495,556,495,556,833
DW 742,624,624,742,833,990,742,624,624,495
DW 556,495,556,624,495,416,416,371,495,0
TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表
DB 6, 2, 4, 4, 12, 1, 3, 6, 2
DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4
DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4
DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4
DB 6, 2, 4, 4, 6, 2, 4, 4, 12
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8254_MODE ;初始化8254工作方式
MOV AL,36H ;定时器0、方式3
OUT DX,AL
BEGIN: MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址
MOV DI,OFFSET TIME_LIST ;装入时间表起始地址
PLAY: MOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H
MOV AX,4240H
DIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率
MOV DX,MY8254_COUNT0
OUT DX,AL ;装入计数初值
MOV AL,AH
OUT DX,AL
MOV DL,[DI] ;取出演奏相对时间,调用延时子程序
CALL DALL Y
ADD SI,2
INC DI
CMP WORD PTR [SI],0 ;判断是否到曲末?
JE BEGIN
JMP PLAY
DALL Y PROC ;延时子程序
D0: MOV CX,0010H
D1: MOV AX,0FF0H
D2: DEC AX
JNZ D2
LOOP D1
DEC DL
JNZ D0
RET
DALL Y ENDP
CODE ENDS
END START
整个实验记录的实验结果如下:
扬声器发出乐曲《友谊地久天长》
七、分析讨论
这是《接口与通信》课程的第一个实验,虽然还有点陌生,但基本熟悉了80X86汇编语言的程序设计方法,通过DOS系统中断INT21H 9号功能调用,掌握了字符串在屏幕上的显示方法。通过二进制→BCD码转换程序的设计和上机调试,掌握了二→十进制转换的基本原理和汇编语言实现方法,只是这里针对的2字节二进制数,对于多字节二进制数如何实现,还需进一步学习。…………(不少于200字)
蓝色字为学生实验后自己填写