单片机课程设计—电子音调发生器
单片机课程设计报告
题目:电子音调发生器
指导老师:付文秀
李昆鹏 08223010
完成日期:2010年12月17日
单片机课程设计—电子音调发生器
- 1 -
一、设计要求
1. 利用开关K0~K7及蜂鸣器设计电子音调发生器,通过单片机P1.7输出不同频率的脉冲信号驱动蜂鸣器发出不同频率的音调。拨动开关K0~K7,蜂鸣器依次发出1234567i 音调;
2. 编程实现两首音乐,并可进行选择播放;
3. 编写程序实现当拨打开关时,数码管显示当前音符。
二、设计目的
了解计算机发出不同音调的编程方法。
三、设计原理
1. 音节由不同频率的方波产生,音节与频率的关系如表(1)所示。要产生音频方波,只要计算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器及时此半周期,每当计时到后就将输出方波的I/O 反相,然后重复计时次半周期时间再对I/O 反相,就可在I/O 脚得到此频率的方波。在ZKS-03试验仪上,产生方波的I/O 脚选用P1.7,通过跳线选择器JP1将P87C52X2的P1.7与蜂鸣器的驱动电路相连,这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。
2. 音乐的节拍是由延时实现的,如果1拍的时间为0.4秒,1/4拍是0.1秒。只要设定延时时间,就可求得节拍的时间。延时实现基本延时时间,节拍值只能是它的整数倍。
3. 每个音节相应的定时器初值X 可按下法计算:
16
1112()2f 2X fosc
*=*- 即:16
242
fosc
X f
=
-
*
其中,f 是音调频率。当晶振fosc=11.0592MHz 时,音节“1”相应的定时器初值为x ,则可得到x=63777D=F921H ,其它的可同样求得。
表(1) 音节与频率的关系
音调 频率(Hz) X(HEX) 音调 频率(Hz) X(HEX) 1 262 F921 5 392 FB68 2 294 F9E1 6 440 FBE9 3
330
FA8C
7
494
FC5B
单片机课程设计—电子音调发生器
4 349 FAD8 i 523 FC8F
四、硬件电路设计及描述
按键发音电路如下图所示:
实验电路图
电路描述:在ZKS-03实验仪上,将开关通过缓冲器74LS244与单片机的P0口相连,片选线选择CS1,相应的地址为F100。产生的方波由P1.7口输出,通过跳线与蜂鸣器的驱动电路相连,随着方波频率的变化,便可产生不同频率的音调。
五、设计方案及思路
在设计中,先分别编写出按键发音程序和选择播放音乐程序,利用转移命令进行控制,将两程序合成完整的程序,再适当的精简结构,使程序更加简洁。在完成这两项基本功能后,添加进数码显示程序。
六、软件设计流程及描述
- 2 -
单片机课程设计—电子音调发生器
程序设计流程图
七、实验源程序及注释
----------单片机课程设计----------
----------电子音调发生器----------
ORG 4000H
LJMP START
ORG 400BH ;计时器T0中断程序入口地址 LJMP INT_T0
ORG 4030H;
- 3 -
单片机课程设计—电子音调发生器
START:
SETB P3.1
SETB P3.2
SETB P1.4
SETB P1.5
SETB P1.6
CLR P1.3 ;用P1.3口驱动相应数码管显示音调 MOV TMOD,#01H ;T0方式1
CLR TR0 ;关T0
SETB ET0
SETB EA ;开中断
;按键查询程序
KEYS:
JNB P3.1,YINYUE
JNB P3.2,YINYUE ;音乐1,2控制开关开则转移到音乐程序 MOV R7,#0 ;无音乐时默认节拍为0
MOV DPTR, #0F100H ;开关输入口地址
MOVX A, @DPTR ;读开关状态
MOV B, A ;存开关结果
LCALL DL10 ;延时10MS
MOVX A, @DPTR ; 再读开关
CJNE A, B, KEYS ;是否相同,不同重新读取
MOV R0,#08H ;置计数器初值,用于查找音调
MOV A,#01H ;置比较初值 00000001B
KEY:
ANL A,B ;与开关结果相与
JZ SOUND ;结果为零则跳转到发声
RL A ;不为零则改变比较值
- 4 -
单片机课程设计—电子音调发生器
DJNZ R0,KEY ;重新比较
CLR TR0 ;开关未拨,不发声
SJMP KEYS;
SOUND:
DEC R0;
MOV A,R0;
ADD A,R0;(R0-1)*2 ;产生表格偏移量
MOV R0,A;
;按键发音程序
MOV A,R0
MOV DPTR,#PINLV ;置表格起始值
MOVC A,@A+DPTR; ;查表
MOV 21H,A ;查表结果暂存于21H单元
MOV A,R0
INC A ;A+1
MOVC A,@A+DPTR;
MOV 20H,A ;查表,将结果存入地址20H
SETB TR0 ;T0允许计时
LCALL DELAY ;调用节拍延时子程序;
JNB P3.1,BEAT
JNB P3.2,BEAT ;如果是音乐程序则跳到节拍程序 SJMP KEYS ;不是则跳到按键查询程序
INT_T0:
CLR TR0 ;T0关闭计时
CPL P1.7 ;产生波形
MOV TH0,21H
MOV TL0,20H ;重载定时器
- 5 -
单片机课程设计—电子音调发生器
SETB TR0 ;T0允许计时
RETI ;中断返回
;音乐程序
YINYUE:
MOV 35H,#00H ;产生表格偏移量
MUSIC:
MOV A,35H ;设置偏移初值
JNB P3.2,MUSIC2 ;音乐2开关开则跳到音乐2播放程序 AJMP MUSIC1 ;否则跳到音乐1播放程序
MUSIC2: MOV DPTR,#TABLE2 ;置表格2起始值
AJMP MUSIC3 ;跳过1
MUSIC1: MOV DPTR,#TABLE1 ;置表格1起始值
MUSIC3: MOVC A,@A+DPTR ; 查表
JZ STOP ;为0则跳到停止
MOV R1,A ;存取值
ANL A,#0FH ;取低四位
MOV R7,A ;存到节拍中
MOV A,R1 ;再取取值
SWAP A ;交换高四位和低四位
ANL A,#0FH ;取高四位
MOV R0,A ;存到音调中
JNZ SOUND ;跳到发音程序
CLR TR0
AJMP STOP ;为0则停止
BEAT: INC 35H ;偏移加1
AJMP MUSIC ;继续
STOP: CLR TR0 ;停止计数
MOV R7,#4
LCALL DELAY
- 6 -
单片机课程设计—电子音调发生器 AJMP START ;停止后延时0.5S重查开关
;10ms延时子程序
DL10: MOV R4, #50
DEL1: MOV R3, #100
DEL2: DJNZ R3, DEL2
DJNZ R4, DEL1
RET
;节拍延时子程序,(125*R7)ms
DELAY:
MOV R6, #250
DEL3: MOV R5, #250
DEL4: DJNZ R5, DEL4
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣