文档介绍:

TC键盘模拟钢琴发声设计报告.docxTC键盘模拟钢琴发声"设计报告

设计任务要求

用PC键盘模拟钢琴发声

1 .使PC机成为一架可以弹奏的“钢琴:当按下数字1时,依次发出1 ,2, 3, 4, 5,

6 , 7 , i八个音调,按下ESC则推出“钢琴”状态。

要求:通过给8253定时器装入不同的计数值,可以使不同的频率的波形,经过放大器 放大作用,便可驱动扬声器发岀不同频率的音调。要使音调持续一段时间,只要插入一 段延时程序之后再,再将扬声器切断。

要使计算机成为可以弹奏的钢琴,需要建立一张表,使键入字符与频率构成一个对应关 系

键入字符

1

2

3

4

L

6

7

8

音符

1

2

3

4

5

6

7

8

频率值

524

588

660

698

784

880

988

1048

方案论证比较

由于任务的限制,设计只能以计算机系统为基础。由于计算机主板上有各种任务需要

的芯片,机箱有扬声器,直接利用计算机中的各个芯片完成设计。在汇编编程中,有分歧的

就是在设定各个音符频率时,是在程序中使用链表还是直接在程序中赋值。介于只有8个音 符需要定义,数量较少,所以仅在程序中定义,而避免使用链表这种技巧以减低编程难度。

系统原理说明

扬声器的控制

IBM-PC/XT机喇叭发声驱动电路由系统内的8255-5并行接口芯片的PB端口最 低二位来控制,PBO来控制8253-5定时/计数器的定时计数;PB1控制喇叭 接通和断开,以此来发声。8255-5的PB 口地址为61 H ; 8255-5通道2的 端口地址为42 H , 8253-5的控制端口地址为43 H。

8255-5 芯片 PB 口 :

在TBM-PC/XT机的BIOS中有BEEP过程(祥见TBM-PC/XT机技术手册附A ), 在编程时把8253-5的计数器2的控制字设为B6H ,使它工作在方波输出方 式,计数器初值为533 H (即1331 D ),输出方波频率为:

19 X 10 A 6

F 0 = = 894 ( Hz)

1331

如果改变计数器初值,就可以得到任意频率的方波输岀,用X表示计数器的 初值,产生的任意频率用f表示则:

1. 19 X 10 A 6( Hz)

N =

f (Ilz)

将N值送入8253-5计数器2的初值寄存器中,运行程序时,就能从喇叭

里听到不同频率的声音。

经计算:音符1,2,3,4,5,6,7,1所对应的N值分别为,2271 , 2204 , 1803 ,

1705 , 1518 , 1352 , 1204 , 1135

发声的持续时间以10 ms为单位,可以用一段延时程序来实现:

MOV CX, 2801

D10MS:L00P D10MS

因为MOV指令为4 T状态,LOOP指令为17 T状态(产生转移);或5 T状 态(不产生转移),设TBM-PC/XT机主频为4. 77 MHz ,则每个T状态为210 ns ,故:

[17( n-l)+5+4] X 210 X 10 A (-9)=0.01

因此:n二2801

这样就可以使喇叭发岀所需频率和持续时间的声音。

本程序设置声音延时为5000x10ms = 0. 5s

PC系列机中,8253的地址为40『4:州,其计数器2的工作模式设为模式3 ,作为方波 发生器使用CLK=1. 19MIIZ , 0UT2接至扬声器,使扬声器产生一定频率的声音。另外,还使用 8255 (其端口地址60『63H )控制计数器2的工作(接GATE2 \具体的连线方式如图6-17 所示,而图 6-18 只是在图 6-17 的基础上稍力Q改动。

设计一程序,使扬声器发岀600IIZ频率的声音,当按下ESC键(1AII )时,停止发声。分 析:8255PB :方式0、输出(设BIOS或0S已初始化好\

8253工作于模式3 ,计数初值(时间常数)二1. 19MIIZ/600IIZ二1983 ,请参看部分相关程

序。

STACK SEGMENT STACK

DW 100H DUP (0)

STACK ENDS

CODE SEGMENT

ASSUME CS: CODE, SS: STACK

MAIN PROC FAR

START:

MOV AL, 10110110B;控制字,计数器2,模式3

OUT 43H, AL

MOV AX, 1983 ;初值

OUT 42H, AL

MOV AL, AH

OUT 42H, AL 关闭窗口

IN AL, 61H ; PB状态

PUSH AX

OR AL, 0000001 IB

OUT 61H.AL ;

内容来自淘豆网www.taodocs.com转载请标明出处.

计算机钢琴汇编设计报告,TC键盘模拟钢琴发声设计报告.docx相关推荐

  1. matlab音乐键盘模拟,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真

    Matlab课程设计报告--MATLAB GUI的音乐键盘仿真 < MATLAB 实践 > 课程设计 目 录 1.设计目的-------------------3 2.题目分析------ ...

  2. 五邑大学安卓开发程序设计报告_五邑大学模拟电路课程设计报告模板.docx

    五邑大学模拟电路课程设计报告模板 模拟电路课程设计 PAGE10 / NUMPAGES10 模拟电路课程设计报告 课程题目:二阶低通滤波器和50HZ陷波滤波器 院系名称: 专业名称: 班级: 学号: ...

  3. 用计算机弹钢琴谱,flash用键盘弹钢琴,电脑钢琴谱-走啦网

    用键盘弹钢琴 好玩的flash键盘钢琴:键盘上的26个英文字母分别对应着26个钢琴键,按不同的键就能听到该键对应的钢琴声,由于完全采用钢琴原声,所以弹出来的效果很真实,就像真的在钢琴旁弹奏一样.在使用 ...

  4. c语言用键盘弹钢琴,【游戏】用键盘弹钢琴(大家都来试试吧)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 <致爱丽斯>Flash键盘钢琴谱 QPQPQNPOMHJMNJLNOJQPQPQNPOMHJMNJONMNOPQLRQPKQPOJPONNJQ ...

  5. 2017河北单招计算机试题,2017河北单招语文模拟试题一(附答案).docx

    2017河北单招语文模拟试题一(附答案) 2017河北单招语文模拟试题一(附答案)1.扩写下面一段话,使之情景更丰富,至少使用一种修辞手法.(不少于60个字)家乡的小河,奔流在村头,我的乡情就溶在那清 ...

  6. 计算机辅助药物设计 fda,计算机辅助药物设计中的分子动力学模拟.pdf

    计算机辅助药物设计中的分子动力学模拟 计算机辅助药物设计中的分子动力学模拟 肖旭东 一.分子动力学概述 随着生命科学理论和计算分析方法的快速发展,新药研究已经进入一个全新的时期,计 算机辅助药物设计正 ...

  7. 矩阵键盘简易计算机设计报告,矩阵键盘设计实验报告.doc

    南 京 林 业 大 学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课 程 机电一体化设计基础 院 系 机械电子工程学院 班 级 学 号 姓 名 指导老师 杨雨图 201 南京林业 ...

  8. 矩阵键盘简易计算机设计报告,矩阵键盘设计实验报告

    <矩阵键盘设计实验报告>由会员分享,可在线阅读,更多相关<矩阵键盘设计实验报告(21页珍藏版)>请在人人文库网上搜索. 1.南京林业大学实验报告基于 AT89C51单片机 4x ...

  9. 计算机组成原理汇编微程序,计算机组成原理课程设计(微程序设计).doc

    . . <计算机组成原理>课程设计报告 --微程序设计 指导老师: 丁 伟 学院: 计算机学院 班级: 软件 1501 姓名: 学号: 一.项目任务 本项目的任务是针对第2章所述的Open ...

最新文章

  1. TVM自定义数据类型
  2. PYTHON编程导论群问题汇总(三)
  3. Facebook 田渊栋:NeurIPS 2020 中了两篇,感觉还算不错
  4. 【Mybatis】sqlSessionTemplate.getConnection() 遇到 java.sql.SQLException: Connection is closed
  5. 如何写出让同事好维护的代码?
  6. Java HashMap与Hashtable数据结构和特点+HashSet简述
  7. 安装php独立环境,0507-php独立环境的安装与配置 Web程序 - 贪吃蛇学院-专业IT技术平台...
  8. 《spring-boot学习》-11-定时任务
  9. 理解python先编译后解释的特点
  10. 多道编程与多用户环境
  11. C语言:求两个整数的最大公约数
  12. 介绍Flex UI测试工具:FlexMonkey
  13. git小乌龟安装_ROS系统安装与体验
  14. Win10系统的背景颜色
  15. 异常检测 and GAN网络(2)
  16. mybatis基础(下)
  17. php各版本共存方法,PHP多版本共存解决方案图解
  18. Shim、Polyfill
  19. 【操作系统】内存管理
  20. 前端webap下新增后缀名字类型。前台报错404,访问不到的解决办法是:

热门文章

  1. 电子产品开发-模块开发计划
  2. 抖音新账号如何提升权重?提升抖音权重的四个方法!
  3. 用友 无法正确解析服务器,不能登录到服务器,解析服务端数据出现错误,可能服务端是8.13的先前版本?...
  4. 王通:大型网站的SEO引爆点
  5. OpenCL和CUDA全解释
  6. 控制不了体重,何以控制人生
  7. linux参数日期加一天,引用 在linux昨天(前一天)的日期
  8. 量子计算机细思极恐,宇宙或许只是一套虚拟程序,科学家:还有一种可能细思极恐!...
  9. Android授权登录新浪微博获取用户个人信息
  10. python输入直角三角形_如何使用python打印直角三角形,等边三角形,菱形,正方形...