计算机硬件技术基础实验报告

上传人:自*** 文档编号:79614580 上传时间:2019-02-17 格式:DOC 页数:28 大小:282KB
返回 下载 相关 举报
计算机硬件技术基础实验报告_第1页
第1页 / 共28页
计算机硬件技术基础实验报告_第2页
第2页 / 共28页
计算机硬件技术基础实验报告_第3页
第3页 / 共28页
计算机硬件技术基础实验报告_第4页
第4页 / 共28页
计算机硬件技术基础实验报告_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《计算机硬件技术基础实验报告》由会员分享,可在线阅读,更多相关《计算机硬件技术基础实验报告(28页珍藏版)》请在金锄头文库上搜索。

1、计算机硬件技术基础实验实验报告学 校:_院 系:_学 号:_姓 名:_ 同组人员:_实验一 电子发声设计实验一,实验目的 学习用8254定时/计数器使扬声器发声的编程方法。 二,实验设备 PC微机一台、TD-PIT+ 实验系统一套。 三,实验内容 根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。 四,实验说明及步骤 一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。音符与频率对照关系如表1所示。将一段乐曲的音符对应频率的方波依次送到扬声器,就可以发出这段乐曲的声音。 表1 音符与频率对照表 (单位:Hz) 利用

2、8254的方式3“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。计数初值的计算如下: 计数初值 输入时钟 输出频率 例如输入时钟采用系统总线上CLK(1.041667MHz),要得到800Hz的频率,计数初值即为1041667/800。对于每一个音符的演奏时间,可以通过软件延时来处理。首先确定单位延时时间程序(这个要根据PC机的CPU频率做相应的调整)。然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。 单位延时时间 DALLY PROC D0: MOV CX,200H D1: MOV AX,0FFFFH D2: DEC AX JN

3、Z D2 LOOP D1 RET DALLY ENDP N个单位延时时间 (N送至DL) DALLY PROC D0: MOV CX,200H D1: MOV AX,0FFFFH D2: DEC AX JNZ D2 LOOP D1 DEC DL JNZ D0 RET DALLY ENDP 下面提供了乐曲友谊地久天长的频率表和时间表。频率表是将曲谱中的音符对应的频率值依次记录下来(B调、四分之二拍),时间表是将各个音符发音的相对时间记录下来(由曲谱中节拍得出)。 频率表:FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ; DW 495,495,6

4、24,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

5、, 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 频率表和时间表是一、一对应的,频率表的最后一项为0,作为重复的标志。根据频率表中的频率算出对应的计数初值,然后依次写入8254的计数器。将时间表中相对时间值带入延时程序来得到音符演奏时间。实验参考程序流程如图1所示。 五,实验步骤: (1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 (2) 首先运行CHECK程序,查看I/O空间始地址。 (3) 利用查出的地址参考流程图编写程序,然后编

6、译链接。 (4) 参考图2所示连接实验线路。 (5) 运行程序,听电子发声单元的扬声器发出的音乐是否正确。 图1 电子发声设计实验参考程序流程图 图2 电子发声设计实验参考接线图 ;Sound.asm;电子发声设计实验;*根据查看端口资源修改下列符号值*IOY0 EQU 9C00H;*MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY0+03H*4 ;825

7、4控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA 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,49

8、5,556,624,495,416,416,371,495,0TIME_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, 12DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS

9、,AX MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;定时器0、方式3 OUT DX,ALBEGIN:MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址 MOV DI,OFFSET TIME_LIST ;装入时间表起始地址PLAY: MOV DX,0FH ;输入时钟为1.0416667MHz,1.0416667M = 0FE502H MOV AX,0E502H DIV WORD PTR SI ;取出频率值计算计数初值,0F4240H / 输出频率 MOV DX,MY8254_COUNT0 OUT DX,AL ;装入计数初值 MOV A

10、L,AH OUT DX,AL MOV DL,DI ;取出演奏相对时间,调用延时子程序 CALL DALLY ADD SI,2 INC DI CMP WORD PTR SI,0 ;判断是否到曲末? JE BEGIN MOV AH,1 ;判断是否有按键按下? INT 16H JZ PLAYQUIT: MOV DX,MY8254_MODE ;退出时设置8254为方式2,OUT0置0 MOV AL,10H OUT DX,AL MOV AX,4C00H ;结束程序退出 INT 21HDALLY PROC ;延时子程序D0: MOV CX,200HD1: MOV AX,0FFFFHD2: DEC AX J

11、NZ D2 LOOP D1 DEC DL JNZ D0 RETDALLY ENDPCODE ENDS END START初始效果:播放了友谊天长地久修改点:FREQ_LIST 和 TIME_LIST 重新编排了了频率表和时间表的内容修改效果:发出了音乐两只老虎修改后代码:;Sound.asm;电子发声设计实验;*根据查看端口资源修改下列符号值*IOY0 EQU 0d800H;*MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT FREQ_LIST DW 262,294,330,262,262,294,330,262,330,350,393,330,350,393 ;频率表 DW 393,441,393,350,330,262,393,441,393,350,330,262 DW 294

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号