基于单片机的音乐倒数计时器的设计

基于单片机的音乐倒数计时器的设计
基于单片机的音乐倒数计时器的设计

B U1

B EE P

B Q18550

VCC

B R14K7

P 21

音乐倒数计数器设计

1.1 主要元件介绍

1、 蜂鸣器

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机等电子产品中作发声器件。它主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器又分为有源蜂鸣器和无源蜂鸣器。其主要差别在于有源蜂鸣器和无源蜂鸣器对输入信号的要求不一样,有源蜂鸣器工作的理想信号是直流电,无源蜂鸣器工作的理想信号是方波,直流电情况下是不会工作的。

在我们的开发板上使用的是无源电磁式蜂鸣器,其工作的原理为三极管 BQ1 的基极经限流电阻BR1后由单片机的P2.1引脚控制,当P2.1输出高电平时,三极管 BQ1截止,没有电流流过蜂鸣器内部线圈,蜂鸣器不发声;当P2.1输出低电平时,三极管 BQ1 导通,有电流流过蜂鸣器内部线圈,蜂鸣器发出声。所以让P2.1引脚不断地输出方波,三极管BQ1 就会不断地导通和截止,使无源蜂鸣器发出声音。因此,可以通过程序控制P2.1引脚电平来使蜂鸣器发音与关闭。

图3-1 蜂鸣器原理图

2、 数码管

数码管显示输出是单片机系统中最常用的一种显示输出,主要用于单片机控制中的数据输出和状态信息显示。

我们所焊接的单片机采用8位数码管动态扫描显示,可以简化硬件电路、方

便软件编程和减少电源的功耗。其具体的电路原理图如下所示。

P

图3-2 数码管原理图

数码管动态扫描原理:从数码管动态扫描显示电路的原理可知,对于8位数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。

由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。

虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。

1.2设计原理

利用AT89C51单片机结合数码管显示设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事了。

我的设计思想是用4个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。

程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下:

K1—可调整倒计数的时间1~60分钟。

K2—设置倒计数的时间为5分钟,显示“0500”。

K3—设置倒计数的时间为10分钟,显示“1000”。

K4—设置倒计数的时间为20分钟,显示“2000”。

复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键则在LCD上显示出设置画面。此时,若:

a. 按操作键K2—增加倒计数的时间1分钟。

b. 按操作键K3—减少倒计数的时间1分钟。

c. 按操作键K4—设置完成。

图3-3 音乐倒数计时器程序软件流程图1.3实现方法

1、单元电路设计

1)单片机ATS89C52

ATS89C52单片机的时钟方式分为内部方式和外部方式。内部方式就是在单片机的引脚18、19外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。

用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容可以增加电路的稳定性,可以抗噪声增加稳定性,不容易死机。

2)数码管显示

在本次设计中使用的是数码管显示,用的是数码管动态扫描的方法。其原理已经在前面介绍过。以ATS89C52的 P0口控制其位选,以P1口控制段选,数码管显示的时间间隔能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。

3)按键控制

按键控制是指控制程序执行时数据的输入或是特殊功能的设置及操作,使用STC89C52 P3端口的P3.2,P3.3,P3.4,P3.5 4条输入口,由程序来控制,平时输入端为高电平,当有按键按下则相对位会呈现低电平,进过轮流扫描判断输入端是否为低电平,便可知道按下的是哪一个按钮。

4)蜂鸣器控制

STC89C52的P2端口的第1位是蜂鸣器的驱动位,持续送出工作脉冲可以推动喇叭发出哔的声响,当工作频率越高时,声音越清脆,工作频率低时,声音则较低沉。在程序中改变单片机P2.1引脚的输出频率,就可以调整蜂鸣器的音调,可产生各种不同音调的声音。改变P2.1引脚的输出电平的占空比,则可以控制蜂鸣器的声音大小。

5)电源输出

J1为+5V电源输入,当电源开通后电源指示灯LED将亮起,用以指示电源供给正常。定时器在倒数时间到达后蜂鸣器会发出音乐旋律,告诉我们时间到了,该做应该做的事了。

2、控制程序

利用单片机定时器设计时间计时处理,其分秒控制利用定时器0计时中断程序每个10ms中断一次当做一个计数,每中断一次则计数加1,当计数100次时,表示1s到了,秒变量加1,同理再判断是否1min钟到了,若计数到了则将相关变量清除为0。单片机定时器负责定时的技术,不会因为案件处理而中断时间描述的增加,时,分,秒数据是存在变量内并写入数码管而显示相关时间的。

在主控程序循环中主要工作为扫描是否有按键,若有按键则做相应的功能处理,同时也检查所倒数的时间是否为0,若为0表示倒数的时间终了,应该执行想对应的工作了。倒数计时闹铃的动作利用时间计时处理来做秒数倒数,当所设置的时间为0,则蜂鸣器不断发出音乐声。

音乐声的产生也是由定时器来产生固定频率的方波信号推动压电喇叭,发出旋律。因为定时器原先已利用设计时间计时处理了,为了能在设计来做音乐旋律的控制,在此设计定义一个音乐演奏标志,若音乐演奏标志为0则执行中断程序中计时程序的部分程序,若音乐演奏标志为1则执行音乐发生控制程序。因此只要适当的运用程序设计技巧,计时中断程序中可以做许多种不同的工作,而这些工作是需要特定一段时间久必须要被触发而被执行的程序。

主要程序

void init_timer()

{ TMOD=0x01;

TH0=(65535-10000)/256;

TL0=(65535-10000)%256;

EA=1;

ET0=1;

TR0=1; }

void main()

{ int i,menu=0,j,k;

init_timer();

ET0=0;

TR0=0;

fen=0;

miao=0;

tt=0;

while(kaishi==1)

{ if(tt==0)

{ if(miao==0)

{ miao=60;

fen--;}

tt=99;

miao--; }

str[0]=tab[tt%10];

str[1]=tab[tt/10];

str[2]=0xbf;

str[3]=tab[miao%10];

str[4]=tab[miao/10];

str[5]=0xbf;

str[6]=tab[fen%10];

str[7]=tab[fen/10];

for(i=0;i<8;i++)

{ P1=0xff;

P0=str[i];

P1=duan[i];

delay(1);

P1=0xff;}

if(fen==0&&miao==0&&tt==0)

{ kaishi=0;

music=1; } }

while(music==1)

{ j = 0; time = 1;

while(time)

{k = sszymmh[j] + 7 * sszymmh[j + 1] - 1;

timer0h = FREQH[k];

timer0l = FREQL[k];

time = sszymmh[j + 2];

j += 3; song(); }

if(k4==0) {while(k4==0);music=0;fen=0;miao=0;tt=0;} } } } void itc_timer() interrupt 1

{ if(music==0&&kaishi==1)

{ TH0=(65535-10000)/256;

TL0=(65535-10000)%256;

tt--; }

if(music==1&&kaishi==0)

{ TR0 = 0;

speaker = !speaker;

TH0 = timer0h;

TL0 = timer0l;

TR0 = 1; }

}

AT89C51单片机设计的音乐倒数计数器

塔里木大学《单片机原理与外围电路》课程论文基于单片机设计的音乐倒数计数器 姓名:古再丽努尔·阿卜来提 学号: 5021212125 班级:通信工程16-1

摘要:单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。 单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬的能力。 本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。用4个按键操作来设置当前想要倒计数的时间。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。应用Proteus的ISIS软件和Keil uVision3来实现该计数器的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。 该多功能计数器可以应用于一般的生活和工作中,也可以通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。 关键词:AT89C51,计数器,键盘控制,LCD显示,protues,Keil 。

目录 1绪论 (4) 1.1课题背景及研究意义 (4) 1.2国内外现状 (4) 1.3课题的设计目的 (4) 1.4课题的主要工作 (4) 2系统概述 (5) 2.1方案论证 (5) 2.2系统设计原理 (5) 3系统硬件设计 (5) 3.1主控电路设计 (5) 3.2LCD液晶显示器接口电路设计 (6) 4系统软件设计 (6) 4.1主程序设计 (6) 4.2硬件调试 (8) 4.3仿真结果 (16) 结论 (16) 参考文献 (17) 系统整体电路.......................................................................................... 错误!未定义书签。全部程序清单. (8) - III -

单片机电子时钟程序

程序开始 ORG 0000H AJMP MAIN ORG 000BH AJMP CLOCK ORG 0100H 主程序开始: MAIN: MOV SP,#70H MOV 6EH,#00H ;显示缓存器初始值设定 MOV 6DH,#00H MOV 6CH,#00H MOV 6BH,#00H MOV 6AH,#00H MOV 69H,#00H MOV 50H,#00H ;秒,分,小时初始值设定 MOV 51H,#00H MOV 52H,#00H MOV DPTR,#0F003H ;8255端口定义,PA,PB为输出 MOV A,#80H MOVX @DPTR,A MOV 4FH,#00H MOV TMOD,#01H ;定时器T0及TL0,TH0初始值设定 MOV TH0,#3CH MOV TL0,#0B0H SETB EA ;开总中断 SETB ET0 ;开定时器中断 SETB TR0 循环程序开始,并显示时间: START: MOV A,50H LCALL BCD MOV 6AH,A ;显示秒十位 MOV 69H,B ;显示秒个位 MOV A,51H LCALL BCD MOV 6CH,A ;显示分十位 MOV 6BH,B ;显示分个位 MOV A,52H LCALL BCD ;调用十六进制至BCD码转换子程序 MOV 6EH,A MOV 6DH,B LCALL DIS ;调用显示子程序 LCALL KEY ;调用键盘子程序 AJMP START ;主程序结束

BCD: MOV B,#0AH ;BCD码转换子程序 DIV AB RET CLOCK: PUSH ACC ;保护现场 PUSH PSW CLR TR0 MOV TH0,#3CH ;定时参数重新设置 MOV TL0,#0B0H SETB TR0 INC 4FH ;100ms单元加1 MOV A,4FH CJNE A,#0AH,D0 ;100ms单元=10,就秒单元加1 MOV 4FH,#00H ;100ms单元内容清0 MOV A,50H ADD A,#01H ;秒单元加1 MOV 50H,A CJNE A,#3CH,D0 ;秒单元内容=60,则秒单元清0 MOV 50H,#00H MOV A,51H ;分,时单元代码 ADD A,#01H MOV 51H,A CJNE A,#3CH,D0 MOV 51H,#00H MOV A,52H ADD A,#01H LCALL RING ;报警子程序 MOV 52H,A CJNE A,#18H,D0 MOV 52H,#00H D0: POP PSW ;出栈,退出中断子程序 POP ACC RETI RING: MOV R3,A CLR P1.0 LCALL DELL50 SETB P1.0 LCALL DELL50 DJNZ R3,RING RET 键盘子程序: KEY: JB P1.7,MSET ;秒设定子程序 LCALL DELL ;防抖动延时 JB P1.7,MSET INC 50H

课程设计简易单片机音乐播放器

课程设计 题目:基于单片机音乐演奏曲Title: instrumental music based on single chip 姓名: 学号: 系别: 专业: 年级: 指导教师: 2012年5 月25 日

摘要 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本设计以At89c2051为核心,主要由电源电路、复位电路、音频放大电路、时钟电路和数码管电路和蜂鸣器电路构成单片机奏乐附加时钟的一个小系统。电路中I/O口采用分时复用的借口技术,使AT89c2051单片机的引脚资源得以充分利用,本系统的电路简单,实现的功能强大,所用芯片比较便宜,性价比较高。 关键词:At89c2051,数码管,单片机奏乐,分时复用

目录 摘要 ........................................................... - 1 - 1.引言 (3) 2.系统整体结构 (4) 2.1系统总设计 (4) 2.2实现的功能 (4) 2.3主要芯片介绍 (4) 2.3.1 AT89c2051芯片介绍 (4) 3.系统硬件设计 (5) 3.1键盘输入模块 (5) 3.2时钟模块 (5) 3.3显示模块 (6) 3.4复位电路 (6) 3.5蜂鸣器电路设计 (7) 4.系统软件设计 (7) 4.1系统主程序流程图系 (7) 4.2 部分子程序流程图 (8) 结束语 (10) 参考文献 (10) 致谢 (11) 附录 (11)

1.引言 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。 本次设计为单片机奏乐器,硬件部分它以单片机AT89C2051为核心,由功放电路、数码管等组成。当接上电源按下开关时,就能听到优美的旋律。当然这些音乐都是通过软件编程实现的,把它存储在存储器里,根据存储容量大小决定存储音乐的数目。 [2]

音乐提示定时器(1)

目录 第1章课程设计的要求、目的 (1) 1.1课程设计的要求 (1) 1.2课程设计的目的 (1) 第2章总体设计方案 (3) 2.1 总体方案的选择 (3) 2.2总体方案的说明 (3) 第3章系统方框图与工作原理 (5) 3.1系统设计框图 (5) 3.2 基本工作原理 (5) 第4章各单元硬件设计及说明 (7) 4.1单片机的选择 (7) 4.2复位电路的设计 (7) 4.3晶振电路的设计 (8) 4.4动态显示电路 (9) 4.5音乐播放电路 (9) 第5章器件说明 (10) 5.1 单片机 (10) 5.2 LED显示器 (11) 第6章软件设计与说明 (12) 6.1 定时显示子程序 (12) 6.2 系统软件设计方案的确定 (13) 6.3 音乐定时常数的确定 (13) 第7章调试步骤、结果、使用说明 (15) 第8章设计总结 (16) 附录A:程序清单 (20)

第1章课程设计的要求、目的 1.1 课程设计的要求 (1)设计要符合项目的工作原理,连线要正确,端了要不得有标号。选择合理的元件,电阻,电容等器件的参数要正确标明。原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。 (2)音乐提示定时器要求通过设计4个按键设置现在想要倒数的时间:K1--可调整倒数时间为1-60分钟,能够实现时间可调;K2—设置倒数计时时间为5分钟,显示为“0500”;K3—设置倒数计时时间为10分钟,显示为“1000”;K4—设置倒数计时时间为20分钟,显示为“2000”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时人为停止;内定倒数计时时间为5分钟,显示为0500。 (3)设计合理的晶振电路,要求系统晶振频率为11.0592MHz,时间设计要求准确、可靠,要求时间随时可调,计时随时可中断。复位电路可靠、合理,可以实现对音乐播放、时间设定、调整时间的控制,满足方便、简捷的要求。要求系统能够发出准确的音乐,流畅、无杂音,可循环播放。数码显示要稳定,无闪烁,准确,与现实时间同步。 (4)写说明书。包括原理图设计说明,程序设计说明并画出工作原理图,程序流程图并给出程序清单。 1.2 课程设计的目的 课程设计的目的有: (1)加深对基础知识的理解,进一步熟悉和掌握单片机的结构及工作原理。 (2)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。明确原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。

做出一个音乐倒数计数器

课程设计音乐倒数计数器 引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人带来的方便也是不可置否的,人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。 1 项目概述和要求

1.1 设计要求 利用数字AT89C51单片机实现倒数计数器的功能,设定时间后在LED 数码管上显示相应的时间。其功能和性能指标如下: ⑴ 字符型LCD(16×2)显示器,显示格式为“TIME 分分:秒秒”。 ⑵ 用4个按键操作来设置当前想要倒计数的时间。 ⑶ 一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。 ⑷ 程序执行后工作指示灯LCD 闪动,表示程序开始执行,按下操作键K1~K4动作如下: ● K1---可调整倒计数的时间1~60分钟。 ● K2---设置倒计数的时间为5分钟,显示“0500”。 ● K3---设置倒计数的时间为10分钟,显示“1000”。 ● K4--设置倒计数的时间为20分钟,显示“2000” ⑸ 复位后LCD 的画面应能显示倒计时的分钟和秒数,此时按K1键,则在LCD 上显示出设置画面。此时,若: ● 按K2键---增加倒计数的时间1分钟。 ● 按K3键---减少倒计数的时间1分钟。 ● 按K4键---设置完成。 1.2 设计方案 音乐倒数计数器所倒数的时间由数字显示,控制器使用单片机AT89C51。本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。当倒计数为0时,蜂鸣器就发出音乐声响等等。该计数器系统主要由计数器模块、LCD 显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。总体设计方框图如图1-1所示。 图1-1 总体设计方框图 复位电路 键盘 AT89C51 LCD1602 蜂鸣器

单片机电子时钟汇编语言程序

51单片机架构下时钟控制程序 ;KEY A A键功能程序开启/关闭定时器 ;KEYB B键功能程序时值加1 ;KEYC C键功能程序分值加1 ;KEYD D键功能程序秒值加1 ;KEYE E键功能程序12/24时值转换 ;BEEP_BL整点报时 ;P0 显示接口 ;系统初始化程序**************************************************** KEY A EQU P3.0 ;单片机控制设置 KEYB EQU P3.1 ;单片机控制设置 KEYC EQU P3.2 ;单片机控制设置 KEYD EQU P3.3 ;单片机控制设置 KEYE EQU P3.4 ;单片机控制设置 BEEP EQU P3.7 ;单片机控制设置 ORG 0000H AJMP MAIN ;转到系统初始化程序 ORG 000BH AJMP PITO ;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H ;确立堆栈区 MOV TMOD, #01H ;设定定时器0为工作方式1 MOV TL0, #0DCH ;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0 ; TR0置"0",定时关闭 SETB EA ; EA置"1",中断总允许 SETB ET0 ; ET0置"1",定时器0中断 ; 允许 MOV 30H, #10H ; 循环次数 MOV 7EH, #0AH ; P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV @R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H ; 时、分、秒值存储单元清零

基于单片机音乐演奏系统设计毕业设计

摘要 如今,单片机控制音乐播放的例子不胜枚举,音乐演奏系统也广泛的应用,而利用单片机存储音乐,控制播放,弹奏乐曲更为广泛。它有功能多﹑价格优﹑外围电路简单的特点,不仅很受音乐爱好者及音乐芯片制造商的热衷,而且是一般家庭都能承受得了的经济投入范围之内。利用单片机发声键盘操作直观简单。对于初学者来说,是很容易弹奏的。本设计为基于单片机的音乐演奏系统,设计出一种不仅要使单片机可以播放音乐关键在于还有能够弹奏自己想弹奏的音乐。 本文设计出一种基于STC89C52的简单音乐演奏系统,利用单片机技术、LM386音频功放芯片、4x4键盘、SPEAKER、以及74HC595和LED数码管实现原理图设计到电路板设计开发,并用C51高级语言进行键盘识别程序设计和音频脉冲输出程序的设计。最终能够实现乐曲演奏和自动播放音乐,并且可以通过LED数码管显示音符和音调的高低。 关键词:STC89C52;音频脉冲;键盘识别;播放音乐

Abstract At present, the examples of microcontroller control music playback is too numerous to enumerate, at the same time,the music performance system is also widely used, make the best use of microcontroller which can store music, control playback, playing music.The advantage of the music performance system contains multiple functions,excellent price,simple peripheral circuit.The features of the music performance system not only popular with music lovers and music chip manufacturers, but also accepted by general family for it price.The keyboard operation is simple under the use of microcontroller.It is easy for beginner to play. The design of music performance system based on microcontroller, it can not only play music but also play the music which we want to. This paper designs a simple music system which is based on STC89C52 which make full use of microcontroller technology, the LM386 audio amplifier chip, 4x4 keyboard, SPEAKER, 74HC595 and LED digital tube.It realizes from schematic design to circuit board design and development, and use C language accomplish keyboard identify program design and audio pulse output program design. Finally the design realizes the music play and auto play music,it can display the high or low of notes and tone through the LED digital tube . Key words: STC89C52; audio pulse; keyboard; play the music

单片机时钟程序

首先要掌握lcd1602编程,红外遥控原理,当然,单片机基本的要懂得 此程序是用stc89c52单片机,所用的IO口程序有说明。 #include #define uchar unsigned char #define uint unsigned int #define tt 46080 //设置时间间隔,对应11.0592MHZ的晶振 sbit en=P3^4; sbit rs=P3^5; //用于控制1602 sbit rw=P3^6; sbit dula=P2^6; sbit wela=P2^7; //用于控制晶体管 sbit IRIN=P3^2; //红外接收器数据线IO口 bit L=1; uchar t,key=0,hh=0,mm=0,ss=0; uchar IRCOM[4]=0; //定义数组IRCOM,分别装解码后得到的数据 //IRCOM[0] 低8位地址码 //IRCOM[1] 高8位地址码 //IRCOM[2] 8位数据码 //IRCOM[3] 8位数据码的反码 uchar code table[]="Input password"; uchar code table1[]="Welcome to use!"; uchar code table2[]="Password error!"; uchar code wish[]="Happy every day!"; uchar code time[]="00:00:00"; uchar code loading[]="Loading..."; ///////////////////////////////////////////////////// void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=112;y>0;y--); //大约是1ms,因为单片机的时钟周期为11.0592mhz。} void write_com(uchar com) { rs=0; //指令 P0=com; //写指令函数

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

CPLD单片机定时器音乐播放器

基于CPLD与51单片机的定时器与音乐播放器 马大康 06007122 万树 06007113 覃朋 06007110 2009.12

一、系统简介 本系统利用CPLD 和51单片机联合实现了倒计时器和音乐播放器的功能。作 为《电子系统设计》的课程设计,本系统充分利用了两块开发板上的资源,并实 现了可编程器件与单片机之间的串口异步通信,器件连接方便,并有良好的人机 交互界面。 二、系统结构框图与思路 图2 CPLD 内部功能模块划分及连接 经过对两块开发板板上资源的对比,我们发现,CPLD 板上的资源较为丰富, 尤其是其8个独立按键和1602液晶屏,十分适合人机交互,因此我们选择用CPLD 开发板作为主控板。单片机板上拥有4个七段数码管,显示变化的数字十分方便, 可以构成1?60分钟可变初值的倒计时器。 由于之前的实验中已经实现了在CPLD 中嵌入简易的UART,因此可以利用 CPLD 上的8个拨码开关设定倒计时器的初值,并通过异步串行通信传输给单片 机。单片机上的拨码可以实现对倒计时器进行暂停、清零。 图1 系统结构框图

除此之外,由于CPLD板上已有蜂鸣器,可以播放预先存入的歌曲,并通过板上的其他按键控制音斥的暂停与继续播放。介于上述分析,设计的系统结构框图如图1所示,CPLD中功能模块的划分如图2所示。 操作流程: CPLD板上: Keyl->进入倒计时器模式,设定倒计时器初值(通过8个拨码),液晶屏上显示u D-counter Set time needed M。 Key2-〉发送倒计时器初值到单片机,单片机开始倒计时,液晶屏上显示“ D-counter D-countering n Key3->进入音乐盒模式,播放音乐《喀秋莎》。 Key4->暂停音圧播放 单片机板上: 在倒讣时过程中,将拨码开关1向上拨,倒计时暂停,向下拨后继续倒计时。 在倒计时过程中,按下CPLD板上的Keyl后(此时为设定初值模式),将拨码开关2向上拨,倒计时器清零,此时可对其重新置初值。 三、功能模块的实现 1、异步串行发送模块 想要在CPLD中嵌入异步吊行通信模块,就必须对异步吊行通信协议有深入的理解,由于系统中只用到了发送模块,这里仅对发送模块的设计做介绍。 在空闲时,发送1。当发送使能WR为高电平且发送缓冲寄存器为高电平时, 向发送缓冲寄存器中写入待发送的数据。当发送移位寄存器为空时,将发送缓冲寄存器中的值置入发送移位寄存器,并将TxDone变为低电平,表示发送一个字节的周期开始,此时不能向发送寄存器中置数。发送周期开始首先发送一个低电平作为起始位,接着从数据的低位开始发送数据,发送结束后发送高电平作为结束位,并将TxDone变为高电平,表示发送一个字节结束。 整个模块的状态图如图3所示。 图3

单片机时钟程序

单片机时钟程序 #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit KEY_ADD=P3^3; //定义按键输入端口 sbit KEY_DEC=P3^4; #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9 unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempData[8]; //存储显示值的全局变量 unsigned char h,m,s; void DelayUs2x(unsigned char t);//函数声明 void DelayMs(unsigned char t); void Display(unsigned char FirstBit,unsigned char Num); void Init_Timer0(void); /*------------------------------------------------ 主函数 ------------------------------------------------*/

课程设计(论文)_基于单片机音乐倒数定时器的设计

目录 一、设计要求 (1) 二、设计目的 (1) 三、设计的具体实现 (2) 1系统概述 (2) 2单元电路设计 (3) 3软件程设计和调试 (7) 四、结论和展望 (24) 五、心得体会及建议 (25) 六、附录 (26) 七、参考文献 (27)

基于单片机音乐倒数定时器的设计 报告 一、设计要求 利用单片机结合LCD显示器设计一个倒数计时器,可以放在家中使用,例如煮方便面、煮开水或小睡片刻等,做一小段时间计时。当倒数计时为0时,则发出一段音乐,通知倒数终了,该做重要的事情了。 具体要求: ①文字型LCD(16*2)显示目前倒数的时间;显示格式为“TIME 分分:秒秒”;具有4个按键操作来设置现在想要倒数的时间;一旦按键后则开始倒数计时,当计时为零则发出一阵音乐声响,②程序执行后工作指示灯LED闪动,表示程序开始执行,七段显示器显示“0500”,按下操作键K1~K4动作如下:操作键K1,可调整倒数时间1min~60min;操作键K2,设置倒数计时时间为5min,显示“0500”;操作键K3,设置倒数计时时间为10min,显示“1000”;操作键K4,设置倒数计时时间为20min,显示“2000”,③RESET 后按下K1显示如下: UP DOWN OK TIME 04:59 倒数时间 操作键K2:增加倒数计时1min;操作键K3,减少倒数计时1min,操作键K4:设置完成。④一旦按键后则开始倒数计时,当计时为 0时则发出一段音乐,同时继电器启动 二、设计目的 1、通过该设计能提高学生分析解决问题的能力。 2、了解模拟电路及数字电路的相关知识。 3、学习单片机定时器时间计时处理、按键扫描、LCD显示及音乐旋律演奏的设计方法。

51单片机数码管时钟程序

本人初学51,编写简单时钟程序。仅供参考学习 #include #define uint unsigned int #define uchar unsigned char Uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1 }; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xef}; void delay(uint); unsigned long i,num,t=1; void main() { TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; while(1) { num=i/20;//i为秒位 if(i==1728000)//一天大概是这个秒吧,,,应该是,呵呵。就是世间到24时就归零。 i=0; //也可用下面这个部分来代替上面的。 /*if(i==20) { i=0; num++; if(num==5184000) num=0; }*/ //num=9; P2=7;//P2口为数码管控制端,我的是38译码器控制,就直接对其赋值来控制时,分,秒的显示; P0=table[i%100%10]; delay(t); P2=6; P0=table[i%100/10]; delay(t); P0=table_d[(num%60)%10]; P2=5; delay(t); P0=table[(num%60)/10]; P2=4;

单片机 利用蜂鸣器演奏音乐

实验三-利用蜂鸣器演奏音乐 一、实验目的 1.了解BlueSkyC51单片机实验板中蜂鸣器的硬件电路 2.学会利用蜂鸣器实现音乐的演奏 3.掌握蜂鸣器实现音乐演奏的编程 二、实验硬件设计及电路 1. BlueSkyC51单片机实验板 ` 2.单片机最小系统

。 3.蜂鸣器电路连接 三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以

我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。 三、实验原理 1.音调及节拍 用一个口,输出方波,这个方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,就能产生简单的音乐。一般说来,单片机演奏音乐基本都是单音频率,因此单片机奏乐只需控制音调和节拍。 (1)音调的确定 音调是由频率来确定的。通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O 口来回取反,从而让蜂鸣器发出不同频率的声音。只需将定时器给以不同的定时值就可实现。通过延时,即可发出所需要的频率。 … (2)节拍的确定 一拍的时长大约为400—500ms,每个音符的时长通过节拍来计算。详细见程序代码。 2.软件设计相关 (1)头文件 #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long sbit beep=P1^4; 译实验相关问题 ; (1)实际发音颤音重 解决方法为修改蜂鸣器的驱动频率. (2)实际节奏过快或者过慢 调整延时 四、C51程序代码(部分来源于网络) #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long ~ sbit beep=P1^4; //蜂鸣器与口连接 uchar th0_f; //中断装载T0高8位 uchar tl0_f; //T0低8位 uchar code freq[36*2]={ //音阶码表 0xf7,0xd8, //440hz , 1 //0 0xf8,0x50, //466hz , 1# //1

单片机课程设计音乐闹钟定时器

目录: 0、任务书 (2) 1、系统总体设计方案规划与选定 (2) 2、硬件设计 (5) 3、软件设计 (6) 4、调试 (8) 5、新增功能及实现方法 (8) 6、小结与体会 (9) 7、参考文献 (9) 8、附录 (10)

0.任务书 基于51单片机设计一个电子数字钟,显示时、分、秒,且具有闹钟功能。用8255接口实现4*8键盘及8位LED显示。 32个键:0~9共10个键,调时(设置当前时间)键;设定闹钟(定时)键;走时键;光标左右移动各一个键。 要求键复位后,应该最后面的LED上显示H(待命状态)。 1. 系统总体设计方案规划与选定 1.1主控制芯片选择 方案一:采用ARM微处理,做主控芯片,计算速度快,缺点;成本高,控制较复杂,不容易焊接。 方案二:采用80C51单片机做主控制器,由单片机来完成采集和信号处理等底层的核心计算,做主控芯片,成本低,易控制,易实现。 经过以上两个方案比较,在此题方案二明显优于方案一,故采用80C51单片机做主控制器。 1.2定时模块选择 方案一:采用时钟芯片DS1302。 DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录,且较单片机计时简单节约硬件资源,但存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。 方案二:采用单片机内部的定时系统,外接晶振进行分频脉冲计数。

此系统采用12MHz晶振。 由于方案二使用简单,比方案一更适用该系统设计,所以选择方案二。 1.3 LED显示及计时模块选择 方案一:74LS192计数器——74LS47七点显示译码器 74LS192芯片是一块可预置数可逆计数芯片,功能强大。将74LS192芯片CPU引脚接高电平可实现减法计数,以倒计时显示。可通过74LS47与LED共阳极数字显示器配合使用。 方案二:使用移位寄存器74HC595与译码器相连 74HC595具有8位移位寄存器和一个存储器,使用时可直接与数字显示器相连。 方案三:使用8255扩展LED显示计时模块 8255是一个可编程并行接口芯片,有一个控制口和三个8位数据口,外设通过数据口与单片机进行数据通信,各数据口的工作方式和数据传送方向是通过用户对控制口写控制字控制的。我们用到了A与B口分别进行对数码显示管的片选和段选,且B口同时作为键盘扫描模块的输入口,与数码显示模块分时复用。故采用方案三 1.4蜂鸣器的选择 方案一:电磁式蜂鸣器 电磁式蜂鸣器主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。电磁式由于音色好,所以多用于语音、音乐等设备。对于不同提示音且考虑实际,此种较好。 方案二: 压电式蜂鸣器

带有LCD显示的音乐倒数计时器

信息工程学院 课程设计报告书题目: 带有LCD显示的音乐倒数计时器 专业:计算机科学与技术 日

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制系统日新月益更新。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本次课程设计的项目是带有LED显示的音乐倒数计时器。主体使用89C52,通过几个开关进行控制,其中开关K1用于切换时间设置状态和时钟运行状态;开关K2用于切换修改时间数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定倒计时时间,并且设定好后到时间通过实验箱音频放出一段乐曲作为闹铃。 选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能 关键词:单片机课程项目计时器 89C52

摘要 ..................................................................................................................................... I 1前言 (1) 1.1课题开发背景 (1) 1.2课题研究的目的和意义 (1) 1.3课题的主要研究工作 (1) 2 系统硬件设计及说明 (3) 2.1系统组成及总体框图 (3) 2.2部分硬件方案论述 (3) 2.3硬件电路图 (4) 2.4元件清单 (4) 2.4.1 AT89C52 (4) 2.4.2 LCD1602 (5) 2.4.3按键控制单元 (6) 2.4.4 SPEAKER (7) 3系统软件设计 (8) 3.1系统总体功能流程图 (8) 3.2使用单片机实现音乐节拍 (10) 3.3使用单片机产生音频脉冲 (11) 3.4使用定时器实现定时功能 (12) 3.5程序描述 (12) 4总结与展望 (15) 参考文献 (16)

51单片机时钟程序

51单片机时钟程序 #include #define uint unsigned int #define uchar unsigned char uchar code duan[]= {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,}; uchar code we[]={0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,}; uint z; void display(uchar miao,uchar fen,uchar xiaoshi); uchar t=0,miao,fen,xiaoshi,shi1,ge1,shi2,ge2,shi,ge,a; void delay(uint z) { uint x,y; for(x=80;x>0;x--) for(y=z;y>0;y--); } void InitTimer0() { TMOD=0x01; TH0=0x3C; TL0=0x0B0; EA=1; ET0=1; TR0=1; } void Timer0Interrupt() interrupt 1 { TH0=0x3C;

TL0=0x0B0; t++; } void main() { InitTimer0(); miao=0; fen=10; xiaoshi=21; while(1) { if(t==20) { t=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; xiaoshi++; if(xiaoshi==24)

基于单片机的简易MP3

1 项目概述和要求 1.1 项目开发背景 随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。 基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。鉴于传统电子琴可以用键盘上的“1”到“A”键演奏从低So到高DO等11个音,从而可以用来弹奏喜欢的乐曲。该设计将十一个琴键改成16个,使电子琴的功能更加完美。不但可以实现对乐曲的演奏,同时还具有存储音乐、播放歌曲以及显示按键的功能。使该设计功能更加完善。 1.2 项目目的 利用AT89C51单片机自带资源,设计一款能实现弹奏和带存储功能的电子琴。 (1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。 (2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。 (3)为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。 (4)对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。 1.3设计要求 ①设计出15个音符,随意弹奏,按“0”键为音乐休止符,不发声,用它时间的长短表示休止时间的长短。 ②用功能键转换成歌曲演奏,可播放预存的音乐。 ③可存储现场弹奏的音乐。 [扩充功能]:

④采用LCD显示信息,开机时有欢迎提示符,播放时显示歌曲序号(或名称)。 ⑤显示乐曲播放时间或剩余时间。

单片机音乐倒数定时器的设计

1.基于单片机音乐倒数定时器的设计报告 2.【摘要】计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置, 与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。本设计采用AT89C51单片机对定时器的设计来实现一个简单的多功能的音乐倒计时报警器,通过三个按键可设定任意时间的倒计时报警器来满足用户的简单要求,如烧开水,煮面等简单问题。 3.【关键词】定时计数器;音乐代码;1602液晶显示

4............................................................ 目 录 5.引言 (1) 6.一、设计要求 (2) 7.二、设计目的 (2) 8.三、设计的具体实现 (2) 8.1.1.系统概述 (2) 8.1.1....................................................................................... 1.1 总体方案论证 (2) 8.1.2....................................................................................... 1.2 单片机选择方案 (3) 8.2.2.单元电路设计 (4) 8.2.1....................................................................................... 2.1 控制电路 (5) 8.2.2....................................................................................... 2.2 控制程序 (8) 8.3.3.软件程设计和调试 (7) 8.3.1....................................................................................... 3.1 延时时间的计算 (7) 8.3.2....................................................................................... 3.2 工作方式设计 (8)

相关文档
最新文档