已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广州发展新能源集团股份有限公司校园招聘备考题库完整答案详解
- 2026重庆市九龙坡区统计局统计调查公益性岗位招聘1人备考题库带答案详解(完整版)
- 2026云南玉溪易门兴福村镇银行招聘工作人员3人备考题库参考答案详解
- 2026北京协和医院检验科王瑶团队合同制科研助理招聘1人备考题库含答案详解(新)
- 2026中国地质调查局烟台海岸带地质调查中心招聘备考题库(第二批)附答案详解(典型题)
- 2026广西柳州市融水苗族自治县汪洞招聘专职禁毒社工的3人备考题库及答案详解(有一套)
- 2026年湖南吉首市教育和体育局下属学校引进12名急需紧缺学科教师备考题库及答案详解1套
- 2026江西省江铜铜箔科技股份有限公司第二批次春季校园招聘10人备考题库有答案详解
- 2026浙江宁波市慈城镇人民政府招聘合同制人员11人备考题库及答案详解(易错题)
- 2026广东佛山顺德区职工解困基金会选聘专职秘书长人选的1人备考题库及答案详解(考点梳理)
- TSG 08-2026 特种设备使用管理规则
- 2026年兴趣小组计划
- 国开2026年春季《形势与政策》专题测验1-5答案
- 传承五四薪火 谱写青春华章新时代青年的使命与担当
- 2026年南通职业大学单招综合素质考试题库带答案详解(模拟题)
- 2026年郑州城市职业学院单招职业适应性测试模拟测试卷附答案解析
- 贵州茶叶出口贸易存在的问题及对策研究
- 肉毒毒素培训课件
- 2026年国家发展和改革委员会直属单位第一批公开招聘考试笔试备考试题及答案解析
- GB/T 26610.4-2022承压设备系统基于风险的检验实施导则第4部分:失效可能性定量分析方法
- 不锈钢企业质量手册
评论
0/150
提交评论