欢迎来到天天文库
浏览记录
ID:35244379
大小:189.03 KB
页数:13页
时间:2019-03-22
《汇编语言产生警报声程序设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、产生警报声程序设计目录产生警报声程序设计1目录11绪论21.1设计目的和意义21.2背景知识交代21.3设计内容21.4程序设计说明32程序设计32.1程序设计原理32.2设计环境与工具32.3发声程序设计主要步骤32.4程序流程图43程序运行与调试53.1程序源码53.2截图12结语13参考文献13131绪论1.1设计目的和意义在广泛使用的微型机系统中,外部设备是以实现人际交换和机间通信为目的的一些机电设备。计算机系统通过硬件接口以及I/O控制程序对外部设备进行控制,使其能协调地、有效地完成输入输出工作。在对外部设备的控制过程中,主机不可避免地,有时甚至要很频繁地对设备接
2、口进行联络和控制,因此,能直接控制硬件的汇编语言就成了编写高性能I/O程序最有效的程序设计语言。本实验通过编写一个控制主板蜂鸣器发声的程序来掌握编写I/O程序的基本思想与方法。1.2背景知识交代I/O接口部件中一般有三种寄存器:一是用作数据缓冲的数据寄存器;二是用作保存设备和接口的状态信息,提供CPU对外设进行测试的状态寄存器;三是用来保存CPU发出的命令以控制接口和设备的操作的命令寄存器,这些寄存器都分配有各自的端口号,CPU就是通过不同的端口号来选择各种外部设备的。在自然中,各种声音都是通过振动产生的。人耳能听到的频率大概在20Hz~20KHz范围内。查阅相关资料,可以
3、得到如下常见警报声的频率表:车型音调名称音响频率(Hz)重复变调周期(s)警车紧急调频调6000-50~15000+500.333~0.385双音转换调f1:800±50f2:1000±500.455~0.556消防车连续调频调6000-50~15000+503.000~5.000救护车慢速双音转换调f1:800±50f2:1000±501.667~2.500工程抢险车单音断鸣高800±500.455~0.5561.3设计内容产生急速上滑报警音响,要求变化率可控,由键盘输入控制值。按“Q”键退出。131.4程序设计说明根据1.2中所述,常见警报声的频率基本是固定的,分别作不
4、同的用途,因此本程序中规定警报声的频率从20Hz~1500Hz。变化率的改变则是通过每次选择不同的频率增量来实现。而不同的频率增量已经提前存储在程序中,提供给用户的是选择几种比较感性的选项:非常慢,慢速,常速,快速以及非常快。2程序设计2.1程序设计原理计算机的发声原理:在计算机内部有一个可编程时间间隔定时器8253/54(Programmableinternaltimer,PIT),它能根据程序提供的计数值和工作模式,产生各种形状和各种频率的计数/定时脉冲,提供给系统的各个部件使用。例如,提供计时信号给系统日时期,提供刷新定时信号给动态存储器,对分时系统产生时间片等。它还
5、可以产生不同频率的脉冲作为扬声器的声源。2.2设计环境与工具DOS操作系统编辑工具EDIT.EXE汇编工具MASM.EXE(5.0)连接工具LINK.EXE调试工具DEBUG.EXE2.3发声程序设计主要步骤1.在8253/54中的43端口送一个控制字0B6H(10110110B),该控制字对定时器2进行初始化,使定时器2准备接收计数初值。2.在8253/54中的42H端口(Timer2)装入一个16位的计数值(533H*896/频率),以建立要产生的声音频率。3.把输出端口61H的0、1两位置1,发出声音。132.4程序流程图133程序运行与调试3.1程序源码;*****
6、*************************************;Programmer:孔祥振;Date:2010/1/3-2010/1-6;Function:Togeneratealarmsoundthatcan;becontrolled.;Press'Q'toexit;******************************************;******************************************datassegmentmessinfo1db'———Pleaseinput1~5,whichrepresentsthecha
7、nginglevelofthealarm,———','$'messveryslowdb'
8、1.veryslow
9、','$'messslowdb'
10、2.slow
11、','$'messnormaldb'
12、3.normal
13、','$'messfastdb'
14、4.fast
15、','$'messveryfastdb'
16、5.veryfast
17、','$'messQdb'
18、Q.Exit
19、','$'messinfo2db'————————————————————————————————————','$'messinputdb'Pleas
此文档下载收益归作者所有