基于单片机的音乐门铃设计内容摘要:
=2个时钟周期 =12 个振荡周期 指令周期 每行一条指令所占用的全部时间。 一个指令周期通常由 1~4 个机器周期组成。 AT89S52 系统中,有单周期指令、双周器指令等。 如:外接晶振频率为 f=12MHz,则四个基本周期的具体数值为: 振荡周期 =1/12181。 s 时钟周期 =1/6181。 s 机器周期 =1181。 s 指令周期 =1~4181。 s 放大器 通常我们用的三极管,其放大倍数都是不相同的,我们选择放大器时,可以用万用表进行测出其放大系数: S9014A 的放大倍数在 60~ 150 之间, S9014B 放大倍数在 100~ 300 之间,S9014C 在 200~ 600 间, S9014D 在 400~ 1000 间。 且 A、 B、 C 类放大器实际测量一般都是偏向大数的, D 类多为中间值。 我在这次设计中,根据需要我选用了S9014C 型放大器。 其结构示意图如图 34: 图 34 三极管 S9014C 该三极管为 NPN 型结构,以上是 NPN 型三极管示意图,它是由两个 N 型半 16 导体和中间一块 P 型 半导体构成。 由图可见发射区和基区之间形成的 PN 结为发 射极,而集电区和基区构成的 PN 结为集电极,三个引脚分别为发射极 E、基极 B、集电极 C。 扬声器 这次设计我选用了 8 欧姆 、 的扬声器。 其价格便宜、使用方便、易于 安装等特点,在 很多行业都应用广泛。 (例如:电子门铃、在学校的实验器材室 也很多,收音机等也会用到这类器材) 电源部分 音乐门铃所需要的电源很小,仅仅需要 5V 的电源足矣,还可以使用 5V的蓄电池提供。 只要将电源的正极同单片机的 Vcc 接口直接连接,然后将电源的负极和单片机的 Vss 接口直接连接就可以了。 硬件电路图 硬件电路图见附表 A 17 软件的编写及分析 设计的原理 根据我们所学的有关单片机的知识,我们可以利用中断系统来控制音乐门铃,控制音乐的播放 程序。 同时加内部晶振工作原理,就可以使其它信号转换为电信号输出,这样来实现整个系统的工作。 当有人按下门铃时,音乐程序开始运行,扬声器就立马响起音乐,在音乐响起时,当再有键按下时,且不受影响。 当一首音乐播放完,按下门铃,且在播放第二首音乐。 当主人来应答时,如果他不希望音乐继续播放可以按下控制停止按钮。 信号传给单片机时,无论门铃是否在播放音乐,都要执行该程序。 设计的设定参数 要实现一个设计的正常运行,必须给他设定必要的参数,就必须正确的选择控制寄存器,我在设计中选择了特殊功能寄存器 TMOD,其地址 为 89H,由他来决定 T0 和 T1 的工作方式,在使用定时器 /计数器之前,要根据需要,对他进行初始化。 TMOD 的各个位定义如表 41 所示: 表 41 TMOD 的各个位定义 D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 T1 T0 其中高四位表示控制定时器 T1,低四位控制定时器 T0。 M M0:工作方式选择位。 定时器 /计数器具有 4 种工作方式,由 MM0 位来定义,如表 42 所示: C/T:选择计数器或定时器的功能,决定哪一个脉冲源计数, C/T=1 为计数器的功能, C/T=0 是定时器的功能, GATE:选通控制, GATE=0,由软件控制TR0 和 TR1 位启动定时器,定时计数器启停仅受 TR1 的控制; GATE=1,由外部中断引脚 INT0()和 INT1()输入电平分别控制 T0 和 T1 运行。 18 表 42 定时器 /计数器工作方式 本设计中选用 T0 方式 1 来控制音乐程序,设计中的主要参数有: C/T=0、 GATE=0、 M M0 等于 1 或 0。 由于执行音乐程序和停止程序需要开关控制,所以中会用到中断系统,在单片机中会用到三类五个中断源,其中两个为外部中断请求 INT0 和 INT1,由( 和 输入),两个为片内定时器 /计数器 T0 和 T1 的溢出中断请求 YF0 和 TF1,另外一个为片内串行口中断请求 TI 和 RI。 这次设计中我用到了外部中断源 INT1()口控制停止程序的运行,用定时器 T0( ) 口控制音乐程序的运行。 在上述过程中我已经阐述过,当音乐程序运行时若有停止信号输入时,且运行程序,这就需要中断优先级的判断,中断优先级越高的就会先运行。 中断优先级寄存器( IP)如表 43 所示。 表 43 中断位地址分布 IP / / / PS PT1 PX1 PT0 PX0 位地址 BFH BEH BDH BCH BBH BAH B9H B8H 因为设计中外部中断 1 为高优先级,所以 PX1=1。 系统流程图 流程图如图 41 所示: M1 M0 工作方式 功能说明 0 0 方式 0 13 位定时器 /计数器 0 1 方式 1 16 位定时器 /计数器 1 0 方式 2 可自动再装入的 8 位定时器 /计数器 1 1 方式 3 把定时器 /计 数器 0 分成 2 个 8 位的计数器 ,关闭定时器 /计数器 19 图 41 系统设计流程图 音乐程序 对 TMOD 赋初始值 将第一首音乐的节拍码赋予 (30H)中 将音符的简谱码赋予 DPTR 中 查表取值 =0? A=0。 播放第 (30H)首 将后面的音乐节拍码赋予 (30H ) Y Y NY NY 开始 20 音乐程序的设计原理 如果使用单片机控制音乐,那么它所控制的只能是单音频率,所以用单片机演奏乐曲只需要弄清楚两个概念即可。 也就是“音调”和“节拍”这两个概念。 音调表示一个音符唱多高的频率,节奏表示一个音唱多长的时间。 音乐中所说的音调就是说, 7这十二个音调,它的分度基本上是以对数关系来划分的,所以,我们只要知道了十二个音符的音高,也就是基本音调的频率,我们就可以根据倍频程的关系得到其他 基本音调的频率。 通常采用的方法就是通过单片机的定时器定时中断,将单片机上的对应交流喇叭的 I/O 来回取反,或者说来回取零、置位,从而让交流喇叭发出声音。 为了让单片机控制不同的声音,不同频率的音乐,我们要将定时器预置不同的定时值才可以实现。 关于音乐的节奏,我们还可以举例来说明。 在一张乐谱中,我们经常会看到一些表达式,用来表示节拍的。 如 C=44 ,其中 44 就是表示接拍的。 “新年好”大家一定很熟悉的,其中有一段简谱是这样的: 1=C ︱ 3 3 3 1︱ 1 3 5 5︱ ,其中的 3 3 3 为一拍, 1 各为一拍, 1 3 5 为一拍, 5 为一拍,一共四拍。 其中既有四分音符,又有八分音符。 那么一般来说一拍应该唱多长呢。 如果乐曲没有说明,一拍时常大约为 400~ 500ms。 我以一拍 400ms 为例,则当以四分音符为节拍,四分音符时长为 400ms,八分音符时长为 200ms,十六分音符时长为 100ms。 因此在单片机上控制一个音符唱多长,可采取循环延时的方式来控制实现,首先,我们应确定一个基本时长的延时程序。 如果它是以十六分音符的时长为一个基本延时时间, 那么,对于一个音符,十六分音符只需调用一次延时程序,如果它为八分音符,则需要调用两次延时程序,如果它为四分音符,就需要调用四次延时程序,其他的可以以此类推。 按照这样的方法,对音符音调和节拍的确定方法,我们就可以在单片机上进行音乐演奏了。 音乐程序的编写原理 要在单片机上演奏音乐,我们还需要搞清楚它的原理。 单片机演奏的原理是,通过控制定时器的定时来产生不同的方波,驱动交流喇叭发音后就发出不同音节 21 的声音;再利用延时来控制发音时间的长短,即可控制音调中的节拍,把乐谱中的音符和相应的节拍变换为定时常数或 延时常数,做成数据表格存放在储存器中,有程序查表得到定时常数或延时常数,分别用以控制定时器产生方波的频率和发出该频率方波持续的时间。 当延迟时间到时,再查一下音符的定时长数和延时常数,依次进行下去的话,就可以自由演奏出悦耳动听的音乐了。 下面我就以12MHz 晶振为例,里列出高低音符与单片机计时器 T0 相关的计数值,如表 44所示: 表 44 音符、频率、简谱码关系 音符 频率( HZ) 简谱码( T 值) 音符 频率( HZ) 简谱码( T值) 低 1 DO 262 63628 4 FA 740 64860 1 DO 277 63731 中 5 SO 784 64898 低 2 RE 294 63835 5 SO 831 64934 2 RE 311 63928 中 6 LA 880 64968 低 3 M 330 64021 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 4 FA 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 1 DO 1109 65085 5 SO 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400 2 RE 1245 65134 6 466 64463 高 3 M 1318 65157 低 7 SI 494 64524 高 4 FA 1397 65178 中 1 DO 523 64580 4 FA 1480 65198 1 DO 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 5 SO 1661 65235 2 RE 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283 我们还可以为这些音符建立一个表格,有助于单片机通过查表的方式获得相 22 关音符的相应的数据: TABLE: DW 63628,63835,64021,64103,64260,64400,64524 DW 63731,63928,0,64185,64331,64463 DW 64580,64684,64777,64820,64898,64968,65030 DW 64633,64732,0,64860,64934,64994 DW 65058,65110,65157,65178,65217,65252,65283 DW 65085,6 5134,0,65198,65235,65268 DW 0 用定时器 T0 方式 1 来产生歌谱中各音符对应频率的方波,由 输出驱动交流喇叭发声。 节拍的控制可以调用延时子程序 DELAY(延时 100ms)的次数来实现,现以每拍 40。基于单片机的音乐门铃设计
相关推荐
道1)CS=“1”(频道2)13VDD电源电源(+3~+5V)14VSS地电源地15ANT2I/O天线端16ANT1I/O天线端17VSS地电源地(0V)18PWR_UP输入节电控制PWR_UP=1发射模式PWR_UP=0待机模式19TXEN输入发射/接收控制TXEN=“1”发射TXEN=“0”接收20XC2输出晶振输出表26 nRF401的电气特性测试条件:VDD=+3V DC, VSS=0V
示系统学生姓名 张友轩 香即悯对挟慨苏抨斋崖番茧夜蒲此弦刷胶祈惜阿散凌更肪兑敞呸恳蕉捷聊攫锣购斧介景媒精藏届还临绵婴弥吐枪首挥亡肠肪堂订抖剁架椽莉氛坎设 LED 驱动控制芯片 TM1629 .......................................................... 10 基于单片机的锂离子电池 电量检测系统设计 (本科毕业论文 ) 河 南 科 技 学
BAD O O RR S TS C L KI OD O O R C O N T A C TR WR SEP 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7 B E E PF I R E A L A R MRSTR S TX T A L 21 8X T A L 11 9A L E3 0E A3 1P S E N2 9R S T9P 0
Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,使用接近于传统 c 语言的语法来开发,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用 ,而且大大的提高了工作效率和项目开发周期 ,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。 KEILC51 标准 C 编译器为 8051 微控制器的软件开发提供了 C语言环境
能器 电声换能器 驱动电路 8 3 超声波硬件 设计方案 按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、显示模块、超声波发射模块、接收模块共 四个模块组成。 单片机使用 51系列 的 C8051F410 单片机,该单片机工作性能稳定,同时也是在单片机课程设计中经常使用到的控制芯片。 发射电路由单片机输出端直接驱动超声波发送。 接收电路使用三极管组成的放大电路,该电路简单
方便,计算处理也较简单,并且在测量精度方面也能达到要求。 由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。 在精密的液位测量中需要达到毫米级的测量精度,但是目前国内的 超声波测距专用集成电路都是只有厘米级的测量精度。 通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用温度传感器进行声波传播速度的补偿后