已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8255并行接口 B口 (端口地址0x61) 音乐程序设计 1.PC机的扬声器驱动系统 与门 8254的2号 定时器 7 6 5 4 3 2 1 0 1.193MHz输入脉冲 11 1 8255并行接口 B口的第 0 位为1时,定时器开始工作,产生音频信号。 8255并行接口 B口的第 1 位为1时,与门打开,音频信号送到扬声器。 控制扬声器发声 8254是可编程的定时器,有0号、1号、2号共3个可独 立编程的16位定时器,还有一个控制字寄存器。 2号定时器工作在方波频率发生器方式,即输出方波信号。 输出方波的频率为:1193180Hz / 计数初值。 向2号定时器写入不同的计数初值,可控制输出方波的频率 。 控制字寄存器的I/O端口地址是 0x43 0号定时器的I/O端口地址是 0x40 1号定时器的I/O端口地址是 0x41 2号定时器的I/O端口地址是 0x42 计数初值是16位的,要分两次写入2号定时器,先写低8位 ,再写高8位。 8位端口输入函数 inportb( ) 函数原型: unsigned char inportb(int portid); 功能: 从地址为 portid 的8位端口输入一个字节(8位), 所读的值是该函数的返回值,由头文件 dos.h 说明。 用法: #include unsigned char b; b = inportb(端口地址); 8位端口输出函数 outportb( ) 函数原型: void outportb(int portid ,unsigned char value); 功能:向地址为 portid 的8位端口输出一个字节 (8位),其值为 value,由头文件 dos.h 说明。 用法: #include outportb(端口地址,无符号字符型数据或变量); 音符的定义 音频信号的频率范围是 202000Hz,音乐中使用的频率一 般为1311976Hz , 包括中央C调及其前后的4个八度的音程。 音符与频率的关系如下表所示。 音符频率音符频率音符频率音符频率 C131C262C523C1047 D147D294D587D1175 E165E330E659E1319 F175F349F698F1397 G196G392G784G1568 A220A440A880A1760 B247B494B988B1976 音长的定义 音长即一个音符持续的时间。 N1 表示全音符 N2 表示半音符 N4 表示4分音符 N8 表示8分音符 N16 表示16分音符 用C语言定义音乐 2. 32 1 . 6 |5 35 6 .1| 1 2 3 4 5 6 7 C0 D0 E0 F0 G0 A0 B0 第一小节: D0,N4+N8 , E0,N16 , D0,N16 , C0,N4+N8 , A0,N8 第二小节: G0,N4 , E0,N8 , G0,N8, A0,N4+N8 , C0,N8 源程序 #include #include #include #include #include #include #define N1 64 #define N2 32 #define N4 16 #define N8 8 #define N16 4 #define END 0 enum NOTES C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247, C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494, C1=523,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988, C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1976 ; typedef enum NOTES SONG; SONG song=D0,N4,E0,N8,D0,N8,C0,N4,A10,N4,G10,N8,E10,N8, G10,N8,A10,N8,C0,N2,A10,N4,A10,N8,C0,N8,G10,N8,A0,N8, E0,N8,G0,N8,D0,N2,E0,N4,D0,N8,E0,N8,G0,N4,E0,N4,G0,N8, E10,N8,G10,N8,A10,N8,C0,N2,A10,N4,A10,N8,C0,N8,A10,N8, A10,N8,D10,N8,E10,N8,G10,N2,D0,N4,D0,N4,G0,N4,A0,N8, G0,N8,F0,N2,G0,N2,A0,N4,G0,N8,E0,N8,D0,N8,E0,N8,C0,N8, A10,N8,D0,N2,E0,N4,G0,N8,E0,N8,G0,N4,E0,N4,G10,N8,E10,N8, G10,N8,A10,N8,C0,N4,A10,N4,A10,N8,C0,N8,D0,N8,A10,N8, C0,N8,E0,N8,D0,N1,END,END; main() int note=0, fre , dur , control; clock_t goal; while(songnote!=END) fre=songnote; dur=songnote+1; if(kbhit() break; if(fre) /*若频率值fre非0*/ outportb(0x43,0xb6); /*初始化2号定时器 */ fre=(unsigned)(1193180L/fre); /*计算计数初值 */ outportb(0x42,(char)fre); /*先写计数初值的低8位*/ outportb(0x42,(char)(fre8); /*再写计数初值的高8位*/ control=inportb(0x61); /*读0x61的状态*/ outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/ goal=(clock_t)dur+clock( ); while(goalclock( ); if(dur) outportb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省A10联盟2025届高三上学期11月段考语文试卷(含答案)
- 《创意中国龙》课件2024:弘扬民族精神传承文化根脉
- 保安工作总结计划成人用品行业保安工作的隐私保护
- 2024年折叠筷子:课堂演示与环保的完美结合
- 2023年9月15日中级注册安全工程师-安全生产法律法规真题
- 人教部编版《道德与法治》二年级上册第3课《欢欢喜喜庆国庆》精美课件(第2课时)
- 红色扁平化抗美援朝精神冰雕精神党课课件教育(冰雕连)
- 智能卫浴用品制造业的账务处理-记账实操
- 老旧小区安装电梯后费用分担协议-物业管理
- 2024版《工程制图》教案:探索与创新
- 学校财务处理程序制度
- 塔里木河流域胡杨林生态恢复成效评估
- 环境保护Theenvironmentalprotection英语演讲课件
- 2023年事故序列模型介绍
- 儿童免疫性疾病课件
- 中图版八年级地理上册《世界气候》复习课件
- 无损检测通用作业指导书
- 2023年中考语文复习:150个文言实词-课件(共183张PPT)
- 车辆维修服务方案先进性
- GB/T 17639-2023土工合成材料长丝纺粘针刺非织造土工布
- 发行企业债法律尽职调查之访谈问题清单
评论
0/150
提交评论