当前位置:文档之家› 基于51单片机的音乐播放器

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

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

单片机课程设计报告

题目音乐播放器

专业班级电气1201 学号 XXXXXXXX 学生姓名 XXX 指导教师付文秀老师

学院名称机械与电气工程系

完成日期: 2014年 5月22日

目录

一、概述:_____________________________________________________________ 2

二、实验目的:_________________________________________________________ 2

三、实验设计:_________________________________________________________ 2

四、调试与仿真:_______________________________________________________ 6

五、板子外观:________________________________________________________ 16

六、设计及调试中的体会:______________________________________________ 17

一、概述:

现当今,单片机的应用无处不在。利用单片机控制的万年历也多不胜举。时钟芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛。它有功能多﹑价格优﹑外围电路简单的特点,备受音乐爱好者及音乐芯片制造商的青昧。本实验,用80C51单电机及少数外围实现音乐播放器功能,并伴有彩灯闪烁。

C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。C 语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可靠性,便于改进和扩展,从而研制出规模更大、性能更完备的系统。因此,用C语言进行8051单片机程序设计是单片机开发与应用的必然趋势。

设计时采用Keil C软件编程,用protues软件仿真,核心器件采用灵活性高且价格低廉的A T89C51芯片。设计完成后系统可播放自编歌曲,同时发光二极管随着歌曲的不同而闪烁。

本课程设计的目的是学习运用C语言开发单片机应用软件,了解为将来从事单片机应用系统的开发打下坚实的基础。

二、实验目的:

(1)强化、加大深度和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;

(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的下手能力;

⑶过对课题设计方案的分析、选择、比较、熟悉单片机用系统研发、研制的过程,软硬件设计的方法、内容及步骤。

三、实验设计:

3.1、设计电路图:

3.2、设计思路:

总体原理:

乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。

片机产生不同频率脉冲信号的原理:

(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。

(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下

例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。

计数脉冲值与频率的关系公式如下:

N=Fi/2/Fr

(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率)

(3)其计数值的求法如下:

T=65536-N=65536-Fi/2/Fr

计算举例:

设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。

T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr

低音DO的T=65536-500000/262=63627

中音DO的T=65536-500000/523=64580

高音DO的T=65536-500000/1047=65059

(5)每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节

拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。

(6)移调

一般的歌曲,有3/8、2/4、3/4、4/4等节拍类型,但不管有几拍,基本上是在C调下演奏的。如果是C调,则音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。但是,并不是所有的歌曲都是在C调下演奏的,还有D调、E调、F调、G调等。D调是将C调各音符上升一个频率实现的,即C调下的音名D在D调下唱Do,C调下的音名E在D调下唱Re,C大调的音名F在D调下上升高半音符F#唱Mi,C调下的音名G在D调下唱Fa,C调下的音名C在D调下上升高伴音C#符唱Ti。这种唱法称为移调。

3.3、音乐代码库的建立方法:

(1)先找出乐曲的最低音和最高音范围,然后确定音符表T的顺序。

(2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。

(3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。

(4)音符节拍码00H为音乐结束标记。

3.4、实验器件介绍:

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示

AT89C51外形图及引脚序列

主要特性:

?与MCS-51 兼容

?4K字节可编程闪烁存储器

?寿命:1000写/擦循环

?数据保留时间:10年

?全静态工作:0Hz-24MHz

?三级程序存储器锁定

?128×8位内部RAM

?32可编程I/O线

?两个16位定时器/计数器

?5个中断源

?可编程串行通道

?低功耗的闲置和掉电模式

?片内振荡器和时钟电路

管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示

表2.1 P3口被选功能

口管脚备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

四、调试与仿真:

Keil C51单片机软件开发系统:

1. 系统的整体结构

C51工具包的整体结构中,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

2. 采用KEIL 开发的89c51单片机应用程序步骤:

(1)在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的A T89C51)

(2)用uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。

(3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。

(5)对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的ROM中。

Proteus的操作:

1.硬件电路图的接法操作:

(1).放置选择(删除)元器件

(2).移动元器件

(3).缩放视图

(4).连接导线

(5).仿真,调试

2. 单片机系统PROTEUS设计与仿真过程:

Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过Proteus来完成的。其过程一般也可分为三步:

(1)在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。简称Proteus电路设计。

(2)在Keil平台上进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*.hex)。简称Proteus源程序设计和生成目标代码文件。

(3)在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。它在相当程度上反映了实际单片机系统的运行情况。简称Proteus仿真。

五、源程序代码及注释:

/*-----------------------------------------------

名称:音乐盒

日期:2014.5.22

------------------------------------------------*/

#include

/*------------------------------------------------

硬件端口定义

------------------------------------------------*/

sbit SPK=P2^0; //定义音乐输出端口

sbit key1=P3^2; //定义按键用于暂停

sbit key2=P3^3; //定义按键用于切换

unsigned char W=0,T; //用于选择音乐

unsigned char Timer0_H,Timer0_L,Time;

void delay5ms(void) //误差0us

{

unsigned char a,b;

for(b=185;b>0;b--)

for(a=12;a>0;a--);

}

void delay500ms(void) //误差0us

{

unsigned char a,b,c;

for(c=205;c>0;c--)

for(b=116;b>0;b--)

for(a=9;a>0;a--);

}

//世上只有妈妈好数据表音谱,高中低音,音长code unsigned char MUSIC[102]={ 6,2,3, 5,2,1, 3,2,2,

5,2,2, 1,3,2, 6,2,1, 5,2,1,

6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,

6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,

5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,

2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0

};

//送别数据表音谱,高中低音,音长

code unsigned char MUSIC1[174]={ 5,2,2, 3,2,1, 5,2,1, 1,3,4,

6,2,2, 1,3,2, 5,2,4,

5,2,2, 1,2,1, 2,2,1, 3,2,2, 2,2,1, 1,2,1,

2,2,8,

5,2,2, 3,2,1, 5,2,1, 1,3,3, 7,2,1,

6,2,2, 1,3,2, 5,2,4,

5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1,

1,2,8,

6,2,2, 1,3,2, 1,3,4,

7,2,2, 6,2,1, 7,2,1, 1,3,4,

6,2,1, 7,2,1, 1,3,1, 6,2,1, 6,2,1, 5,2,1, 3,2,1, 1,2,1,

2,2,8,

5,2,2, 3,2,1, 5,2,1, 1,3,3, 7,2,1,

6,2,2, 1,3,2, 5,2,4,

5,2,2, 2,2,1, 3,2,1, 4,2,3,

7,1,1,

1,2,8

};

//新年好数据表音谱,高中低音,音长

code unsigned char MUSIC2[90]={ 1,2,1, 1,2,1, 1,2,2, 5,1,2,

3,2,1, 3,2,1, 3,2,2, 1,2,2,

1,2,1, 3,2,1, 5,2,2, 5,2,2,

4,2,1, 3,2,1, 2,2,4,

2,2,1, 3,2,1, 4,2,2, 4,2,2,

3,2,1, 2,2,1, 3,2,2, 1,2,2,

1,2,1, 3,2,1, 2,2,2, 5,1,2,

7,1,1, 2,2,1, 1,2,4

};

//童年数据表音谱,高中低音,音长

code unsigned char MUSIC3[423]={ 5,1,1, 5,1,1, 3,1,1, 5,1,2, 3,1,1, 5,1,2,

6,1,1, 6,1,1, 1,2,1, 6,1,2, 6,1,1, 1,2,2,

2,2,1, 2,2,1, 3,2,1, 2,2,2, 5,1,1, 6,1,1, 5,1,1,

1,2,1, 1,2,1, 5,1,1, 1,2,1, 1,2,1, 1,2,2, 1,2,1,

1,2,1, 5,1,2, 1,2,1, 6,1,1, 5,1,1, 3,1,1, 2,1,1,

1,1,2, 3,1,1, 5,1,1, 5,1,2, 5,1,1, 3,1,1,

6,1,1, 6,1,1, 1,2,1, 6,1,1, 6,1,1, 6,1,1, 6,1,1, 5,1,1,

1,2,2, 1,2,1, 1,2,1, 1,2,1, 6,1,1, 1,2,1, 6,1,1,

5,1,2, 0,2,1, 3,1,1, 6,1,1, 1,2,1, 6,1,1, 5,1,1,

3,1,1, 2,1,1, 3,1,1, 5,1,1, 5,1,2, 5,1,1, 3,1,1,

6,1,1, 6,1,1, 1,2,1, 6,1,1, 6,1,1, 6,1,1, 6,1,1, 5,1,1,

1,2,2, 1,2,1, 1,2,1, 1,2,1, 6,1,1, 6,1,1, 1,2,1,

2,2,2, 0,2,1, 5,1,1, 2,2,1,

5,2,1, 2,2,2,

5,2,1, 5,2,2, 5,2,1, 5,2,1, 5,2,1, 3,2,1, 2,2,1,

1,2,1, 1,2,2, 6,1,1, 6,1,1, 1,2,1, 6,1,1, 1,2,1,

2,2,1, 2,2,1, 2,2,1, 2,2,1, 2,2,1, 1,2,1, 3,2,1, 2,2,1,

2,2,8,

3,2,1, 3,2,2, 3,2,1, 3,2,2, 2,2,2,

1,2,1, 1,2,2, 1,2,1, 2,2,1, 1,2,1, 6,1,1, 5,1,1,

5,1,1, 5,1,2, 5,1,1, 6,1,1, 5,1,1, 2,2,1, 3,2,1,

1,2,8,

1,2,1, 5,1,2, 1,2,1, 6,1,1, 5,1,1, 3,1,1, 2,1,1,

1,2,6, 0,2,2

};

// 音阶频率表高八位

code unsigned char FREQH[]={

0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,

0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i

0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,

0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,

} ;

// 音阶频率表低八位

code unsigned char FREQL[]={

0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,

0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i

0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,

0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,

};

/*------------------------------------------------

uS延时函数,含有输入参数unsigned char t,无返回值

unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编,大致延时

长度如下T=tx2+5 uS

------------------------------------------------*/

void DelayUs2x(unsigned char t)

{

while(--t);

}

/*------------------------------------------------

mS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编

------------------------------------------------*/

void DelayMs(unsigned char t)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

/*------------------------------------------------

节拍延时函数

各调1/4节拍时间:

调4/4 125ms

调2/4 250ms

调3/4 187ms

------------------------------------------------*/

void delay(unsigned char t)

{

unsigned char i;

for(i=0;i

DelayMs(250);

TR0=0;

}

/*------------------------------------------------

定时器0中断

------------------------------------------------*/

void TIM0_ISR() interrupt 1

{

TR0=0;

SPK=!SPK;

TH0=Timer0_H;

TL0=Timer0_L;

TR0=1;

}

/*------------------------------------------------

歌曲处理函数

------------------------------------------------*/

void Song()

{

TH0=Timer0_H;//赋值定时器时间,决定频率

TL0=Timer0_L;

TR0=1; //打开定时器

delay(Time); //延时所需要的节拍

}

/*------------------------------------------------

主函数

------------------------------------------------*/

void led(unsigned char a);

void main(void)

{

unsigned int i;

unsigned char k;

TMOD|=0x01; //置定时器0工作方式1

EA=1; //打开全局中断

ET0=1; //打开定时器0 中断

EX0=1; //打开外部中断0 中断

IT0=1; //设置为下降沿中断

EX1=1; //打开外部中断1 中断

IT1=1; //设置为下降沿中断

PX1=1; //设置外部中断1 为高优先级

while(1)

{

//i=0;

if(W==0)

{

T=W;

for(i=0;i<100;i=i+3)

{ //音乐数组长度,唱完从头再来

led(MUSIC[i]);

k=MUSIC[i]+7*MUSIC[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC[i+2]; //节拍时长

// i=i+3;

Song();

if(T!=W)

break;

}

}

if(W==1)

{

T=W;

for(i=0;i<174;i=i+3)

{ //音乐数组长度,唱完从头再来

led(MUSIC1[i]);

k=MUSIC1[i]+7*MUSIC1[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC1[i+2]; //节拍时长

// i=i+3;

Song();

if(T!=W)

break;

}

}

if(W==2)

{

T=W;

for(i=0;i<90;i=i+3)

{ //音乐数组长度,唱完从头再来

led(MUSIC2[i]);

k=MUSIC2[i]+7*MUSIC2[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC2[i+2]; //节拍时长

// i=i+3;

Song();

if(T!=W)

break;

}

}

if(W==3)

{

T=W;

for(i=0;i<423;i=i+3)

{ //音乐数组长度,唱完从头再来

led(MUSIC3[i]);

k=MUSIC3[i]+7*MUSIC3[i+1]-1;//去音符振荡频率所需数据

Timer0_H=FREQH[k];

Timer0_L=FREQL[k];

Time=MUSIC3[i+2]; //节拍时长

// i=i+3;

Song();

if(T!=W)

break;

}

}

}

}

// 频谱函数

void led(unsigned char a)

{

switch(a)

{

case 0:P1=0xff;break;

case 1:P1=0x7f;break;

case 2:P1=0x7e;break;

case 3:P1=0x7c;break;

case 4:P1=0x78;break;

case 5:P1=0x70;break;

case 6:P1=0x60;break;

case 7:P1=0x40;break;

case 8:P1=0x00;break;

}

}

// 外部中断0 中断服务程序用于暂停

void zhongduan0() interrupt 0

{

delay5ms(); //按键去抖

if(!key1)

{

while(!key1); //松手检测

while(key1&&T==W); //检测按键是否按下

delay5ms(); //按键去抖

while(key1&&T==W); //检测按键是否按下

while(!key1&&T==W); //松手检测

}

}

// 外部中断1 中断服务程序

void zhongduan1() interrupt 2

{

delay5ms(); //按键去抖

if(!key2)

{

if(W==3)

W=0;

else

W++;

while(!key2); //松手检测

delay500ms();

}

}

五、板子外观:

六、设计及调试中的体会:

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为自动化专业的学生来说掌握单片机的开发技术是十分重要的。

我的题目是音乐播放器硬软件的设计,对于我们这些工科学生来说,这是一次考验。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好。这次课程设计通过自己的努力,同学的帮助,还有老师的辛勤指导下,最终顺利完成了。

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUES仿真。 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数

值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图: 二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

51首广播背景音乐

1.转]广播电台常用51首背景音乐~绝对是... 4月18日22:41 <共1张照片> 钢琴:《Kiss The Rain 雨的印记》(Yiruma) a《Tears眼泪》(The Daydream)《YOU&ME》(The Daydream)《天空之城》钢琴版 Carrying You《Merry Christmas》 https://www.doczj.com/doc/f99594978.html,wrence(坂本龙一)(最近发现湖南台周笔畅的勇往 直前的广告背景配乐就是这首) 钢琴: 《Kiss The Rain 雨的印记》(Yiruma) a 《Tears眼泪》(The Daydream) 《YOU&ME》(The Daydream) 《天空之城》钢琴版 Carrying You 《Merry Christmas》 https://www.doczj.com/doc/f99594978.html,wrence(坂本龙一)(最近发现湖南台周笔畅的勇往直前的广告背景配乐就是这首) 《流动的城市》林海 《月光边境》林海 《迷失》林海 《远方的寂静》林海 《Canon In D》帕海贝尔 《鸟之诗》钢琴版

小提琴: 《流浪者之歌》萨拉萨蒂 《天空之城》久石让 《小百合》(《云之彼端约定的地方》中的曲子)《Ave Maria圣母颂》舒伯特 《D大调卡农》帕海贝尔 《斗牛士之歌》萨拉萨蒂 《D大调第一华丽波兰舞曲》维尼亚夫斯基 《24首随想曲》帕格尼尼 《G小调恰空》维塔利 大提琴 《天鹅》圣桑(优雅的天鹅) 《G大调第1号无伴奏大提琴组曲之前奏曲》巴赫(很经典)《降B大调第九大提琴协奏曲》博凯里尼 《西西里舞曲》福雷(非常有旋律性,好听的曲子啊) 单簧管 《单簧管波尔卡》波兰民谣 《浪漫曲》圣桑(温柔的) 小号 《亚麻色头发的少女》德彪西 《双鹰旗下进行曲》瓦格纳(进行曲) 《阿莱城的姑娘之法朗多尔》比才(较有气势)

基于51单片机的简易计算器制作

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

51首电台常用背景音乐

51首电台常用背景音乐(无损珍藏) ★51首经典背景音乐★ 此版本是无损格式,相对于MP3更值得珍藏 ★1.豪勇七蛟龙(The Magnificent Seven)★ 大型颁奖晚会最喜欢用的背景音乐,伯恩斯坦作曲 ★2.故乡的原风景★ 《神雕侠侣》多次引用,哀伤感人。出自扶桑作曲家宗次郎1991年的专辑《木道》 ★3.渔舟唱晚,CCTV《天气预报》主题曲★ 据说是迄今为止中央电视台唯一没有改变过的背景音乐,《天气预报》一直使用它。《渔舟唱晚》(即天气预报背景音乐),是当年在上海颇有名气的电子琴演奏家浦琪璋根据同名民族乐曲改编演奏的。此曲因为被黄金档节目央视的《天气预报》采用为背景音乐而受到了广大中国人民的喜爱 ★4.简单的礼物(Simple Gifts)★ 美国VOA广播电台(美国之音)的SPECIAL ENGLISH(慢速音乐)节目的背景音乐 ★5.雪的梦幻(Snowdreams)★ 这首《雪的梦幻》(Snowdreams)出自班德瑞的春野这张专辑。相当经典的纯音乐,被电台和电视台使用的次数已经无法统计,常在一些情感类(尤其爱情,有一点淡淡的哀伤)的播讲中充当背景音乐 ★6.童年(Childhood Memory)★ 这首《童年》(Childhood Memory)出自班德瑞的《日光海岸》这张专辑。确实曲如其名,让人回想起过去的时光,听了有种想哭的冲动……Long笛与黑管永远是管乐重梦幻组合,叠轻柔的钢琴上,顺记忆穿针引线,副歌中穿插一段凝人和声,是整首曲子接在主题后经营出来的高潮,刚巧呼应着全程串场风铃声,两者在编曲中分工架起,迷雾般的帷幕,带人回溯到孩提时代那段年幼无助但却也无忧无虑的时刻。可惜的是,像这样的甜蜜回忆,一旦成人,能分享的人也所剩无多了 ★7.宋家王朝(THE SOONG SISTER)★ 这首《宋家王朝》出自扶桑作曲大师喜多郎之手,个人感觉既恢弘又凄婉,港台的电视剧多爱用此背景音乐,比如李若彤版《神雕侠侣》 ★8.你的笑颜(Your Smile)★ 这首曲子出自班德瑞的《仙境》这张专辑,似乎常被用电台作为午夜节目的背景音乐。相对于其它几首情感节目的背景音乐,这首曲子并不显得特别悲伤和哀婉,但是一样会触到你的神经

基于51单片机的计算器设计

目录 第一章引言 (3) 1.1 简述简易计算器 (3) 1.2 本设计主要任务 (3) 1.3 系统主要功能 (4) 第二章系统主要硬件电路设计 (4) 2.1 系统的硬件构成及功能 (4) 2.2 键盘电路设计 (5) 2.3 显示电路设计 (6) 第三章系统软件设计 (7) 3.1 计算器的软件规划 (7) 3.2 键盘扫描的程序设计 (7) 3.3 显示模块的程序设计 (8) 3.4 主程序的设计 (9) 3.5 软件的可靠性设计 (9) 第四章调试 (9) 第五章结束语 (10) 参考文献 (11) 附录源程序 (11)

第一章引言 1.1 简述简易计算器 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢? 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器, 使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 1.2 本设计主要任务 以下是初步设定的矩阵键盘简易计算器的功能: 1.扩展4*6键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试

51单片机简易计算器程序

#include <reg51.h>#include <intrins.h> #include <ctype.h> #include <stdlib.h> #define uchar unsigned char #define uint unsigned int uchar operand1[9], operand2[9]; uchar operator; void delay(uint); uchar keyscan(); void disp(void); void buf(uint value); uint compute(uint va1,uint va2,uchar optor); uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xff}; uchar dbuf[8] = {10,10,10,10,10,10,10,10}; void delay(uint z) { uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--); } uchar keyscan() { uchar skey; P1 = 0xfe; while((P1 & 0xf0) != 0xf0) { delay(3); while((P1 & 0xf0) != 0xf0) { switch(P1) { case 0xee: skey = '7'; break; case 0xde: skey = '8'; break; case 0xbe: skey = '9'; break; case 0x7e: skey = '/'; break; default: skey = '#'; }

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

50首经典背景音乐

50首经典背景音乐,每一首都将我们的心情渲染得淋漓尽致。 引导语:如果你爱音乐,请你找个星期天戴好耳机调好音量听完这50首广播电台常用的背景音乐,每一首都能将我们的心情渲染得淋漓尽致。绝对是你曾经苦苦寻找的歌! 1、豪勇七蛟龙(The Magnificent Seven) 大型颁奖晚会最喜欢用的背景音乐,地球人都知道。伯恩斯坦作曲。 2、故乡的原风景 (神雕侠侣)多次引用,哀伤感人。出自扶桑作曲家宗次郎1991年的专辑(木道)。 3、渔舟唱晚——CCTV(天气预报)主题曲 据说是迄今为止中间电视台唯一没有改变过的背景音乐,(天气预报)一直使用它。(渔舟唱晚)(即天气预报背景音乐),是当年在上海颇有名气的电子琴演奏家浦琪璋根据同名民族乐曲改编演奏的。她原来是上海乐团的独奏演员,是从“小荧星”艺术团毕业的,在艺术上颇有成就,曾与上海轻音乐乐团合作过许多脍炙人口的曲子,如(幸福的傣乡)等等。音乐界的屠巴海经常与她合作。

这首曲子完成后,浦琪璋便退出乐界。但此曲却因为被黄金档节目央视的(天气预报)采用为背景音乐而受到了广大中国人民的喜爱。当年浦琪璋用“雅马哈”三排键盘的音乐会电子琴改编演奏这首曲子时,也没有想到此曲会成为黄金时段节目的黄金背景音乐,更想不到它会影响到那么多国人。 4、简单的礼物(Simple Gifts) 像是美国VOA广播电台(美国之音)的SPECIAL ENGLISH(慢速音乐)节目的背景音乐,只不过电台版的速度要比这个快一些。 5、雪的梦幻(Snowdreams) 这首(雪的梦幻)出自班德瑞的春野这张专辑。相当经典的纯音乐,被电台和电视台使用的次数已经无法统计,常在一些情感类(尤其爱情,有一点淡淡的哀伤)的播讲中充当背景音乐。 6、童年(Childhood Memory) 这首(童年)出自班德瑞的(日光海岸)这张专辑。确实曲如其名,让人回想起过去的时光,听了有种想哭的冲动……长笛与黑管永远是管乐重梦幻组合,叠轻柔的钢琴上,顺记忆穿针引线,副歌中穿插一段凝人和声,是整首曲子接在主题后经营出来的高潮,刚巧呼应着全程串场风铃声,两者在编曲中分工架起,迷雾般的帷幕,带人回溯到孩提时代那段年幼无助但却也无忧无虑的时刻。可惜的是,像这样的甜蜜回忆,一旦成人,能分享的人也所剩无多了。 7、宋家王朝(THE SOONG SISTER) 出自扶桑作曲大师喜多郎之手,个人感觉既恢弘又凄婉,港台的电视剧多爱用此背景音乐,比如李若彤版(神雕侠侣)。 8、你的笑颜(Your ?mile) 这首曲子出自班德瑞的(仙境)这张专辑,似乎常被用电台作为午夜节目的背景音乐。相对于其它几首情感节目的背景音乐,这首曲子并不显得特别悲伤和哀婉,但是一样会触到你的神经。 9、春野(ONE DAY IN SPRING) 出自班德瑞的专辑(春野),常被用作节目开头的曲子或是新闻、起床曲的开头背景音乐。是一首非常舒缓柔美的经典乐。

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图:

二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示:

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

51首常用的背景音乐

51首经典背景音乐(最近做视频搜集) 作者: 章杰钦 1.豪勇七蛟龙(The Magnificent Seven)★ 大型颁奖晚会最喜欢用的背景音乐,伯恩斯坦作曲 ★2.故乡的原风景★ 《神雕侠侣》多次引用,哀伤感人。出自扶桑作曲家宗次郎1991年的专辑《木道》★3.渔舟唱晚,CCTV《天气预报》主题曲★ 据说是迄今为止中央电视台唯一没有改变过的背景音乐,《天气预报》一直使用它。《渔舟唱晚》(即天气预报背景音乐),是当年在上海颇有名气的电子琴演奏家浦琪璋根据同名民族乐曲改编演奏的。此曲因为被黄金档节目央视的《天气预报》采用为背景音乐而受到了广大中国人民的喜爱 ★4.简单的礼物(Simple Gifts)★ 美国VOA广播电台(美国之音)的SPECIAL ENGLISH(慢速音乐)节目的背景音 乐 ★5.雪的梦幻(Snowdreams)★ 这首《雪的梦幻》(Snowdreams)出自班德瑞的春野这张专辑。相当经典的纯音乐, 被电台和电视台使用的次数已经无法统计,常在一些情感类(尤其爱情,有一点淡淡的哀伤)的播讲中充当背景音乐 ★6.童年(Childhood Memory)★ 这首《童年》(Childhood Memory)出自班德瑞的《日光海岸》这张专辑。确实曲如其名,让人回想起过去的时光,听了有种想哭的冲动……Long笛与黑管永远是管乐重 梦幻组合,叠轻柔的钢琴上,顺记忆穿针引线,副歌中穿插一段凝人和声,是整首曲子接在主题后经营出来的高潮,刚巧呼应着全程串场风铃声,两者在编曲中分工架起,迷雾般的帷幕,带人回溯到孩提时代那段年幼无助但却也无忧无虑的时刻。可惜的是,像这样的甜蜜回忆,一旦成人,能分享的人也所剩无多了 ★7.宋家王朝(THE SOONG SISTER)★ 这首《宋家王朝》出自扶桑作曲大师喜多郎之手,个人感觉既恢弘又凄婉,港台的电视剧多爱用此背景音乐,比如李若彤版《神雕侠侣》

基于51单片机的数字计算器的设计

《单片机技术及其应用》课程设计报告 专业:通信工程 班级:09312班 姓名:某某某 学号:09031069 指导教师: 二0一二年六月十八日

目录 1设计目的 (1) 2 设计题目描述与要求 (1) 3 设计过程 (2) 4硬件总体方案及说明 (6) 5 软件总体方案及设计流程 (9) 6 调试与仿真 (13) 7 心得体会 (14) 8 指导老师意见 (15) 9 参考文献 (16) 附录一 (16) 附录二 (21)

基于51单片机的数字计算器的设计 1设计目的 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资料的方法。 本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74ls164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件进行编程,并用proteus仿真。 2 设计题目描述与要求 基于AT89C51数字计算器设计的基本要求与基本思路: (1)扩展4*4键盘,其中10个数字,5个功能键,1个清零 (2)使用五位数码管接口电路

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

经典的电视节目和影视剧常用51首背景音乐

经典地电视节目和影视剧常用主题音乐 .豪勇七蛟龙() 大型颁奖晚会最喜欢用地背景音乐,地球人都知道.伯恩斯坦作曲. .故乡地原风景 《神雕侠侣》多次引用,哀伤感人.出自扶桑作曲家宗次郎年地专辑《木道》. 《天气预报》主题曲 据说是迄今为止中间电视台唯一没有改变过地背景音乐,《天气预报》一直使用它.《渔舟唱晚》(即天气预报背景音乐),是当年在上海颇有名气地电子琴演奏家浦琪璋根据同名民族乐曲改编演奏地.她原来是上海乐团地独奏演员,是从“小荧星”艺术团毕业地,在艺术上颇有成就,曾与上海轻音乐乐团合作过许多脍炙人口地曲子,如:《幸福地傣乡》等等.音乐界地屠巴海经常与她合作.这首曲子完成后,浦琪璋便退出乐界.但此曲却因为被黄金档节目央视地《天气预报》采用为背景音乐而受到了广大中国人民地喜爱.当年浦琪璋用“雅马哈”三排键盘地音乐会电子琴改编演奏这首曲子时,也没有想到此曲会成为黄金时段节目地黄金背景音乐,更想不到它会影响到那么多国人. .简单地礼物()美国广播电台(**)地(慢速音乐)节目地背景音乐吗?太熟悉了,只不过电台版地速度要比这个快一些. .雪地梦幻() 这首《雪地梦幻》()出自班德瑞地春野这张专辑.相当经典地纯音乐,被电台和电视台使用地次数已经无法统计,常在一些情感类(尤其爱情,有一点淡淡地哀伤)地播讲中充当背景音乐.

.童年() 这首《童年》()出自班德瑞地《日光海岸》这张专辑.确实曲如其名,让人回想起过去地时光,听了有种想哭地冲动……笛与黑管永远是管乐重梦幻组合,叠轻柔地钢琴上,顺记忆穿针引线,副歌中穿插一段凝人和声,是整首曲子接在主题后经营出来地高潮,刚巧呼应着全程串场风铃声,两者在编曲中分工架起,迷雾般地帷幕,带人回溯到孩提时代那段年幼无助但却也无忧无虑地时刻.可惜地是,像这样地甜蜜回忆,一旦成人,能分享地人也所剩无多了. .宋家王朝() 这首《宋家王朝》出自扶桑作曲大师喜多郎之手,个人感觉既恢弘又凄婉,港台地电视剧多爱用此背景音乐,比如李若彤版《神雕侠侣》. .你地笑颜() 这首曲子出自班德瑞地《仙境》这张专辑,似乎常被用电台作为午夜节目地背景音乐.相对于其它几首情感节目地背景音乐,这首曲子并不显得特别悲伤和哀婉,但是一样会触到你地神经. .春野() 《春野》()出自班德瑞地专辑《春野》,常被用作节目开头地曲子或是新闻、起床曲地开头背景音乐.是一首非常舒缓柔美地经典乐. .安妮地仙境(’’ ) 《安妮地仙境》()出自班德瑞地《仙境》这张专辑,柔美而有力度,适合朗诵配乐.

基于51单片机的简易计算器设计

河南##############学校 毕业设计(论文) 基于51单片机的简易计算器 系部: 自动控制系 专业: 电气自动化 班级: 自083 姓名: 崔 # # 学号: 091415302 指导老师: 许 # 二零一二年五月八日

基于51单片机的简易计算器 摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现多位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词:MCS-51;8051单片机;计算器;加减乘除

Based on the simple calculator 51 SCM Abstract The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design ", "the MCS-51 series single chip computer and its application" course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions. Key words: MCS-51;8051 single chip microcomputer;Calculator;Add, subtract, multiply and divide:

51单片机简易计算器代码

#include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit busy=P0^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } char i,j,temp,num; long a,b,c; //a,第一个数b,第二个数c,得数 uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table[]={7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0}; uchar code table1[]={7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0 x2b-0x30}; //按键显示编码表 sbit lcden=P2^2; sbit lcdwrite=P2^1; sbit lcdrs=P2^0; //lcd的写指令 void write_com(uchar com) { lcdrs=0; lcden=0; P0=com; delay(1); lcden=1; delay(1); lcden=0; } //lcd的写数据 void write_date(uchar da) { lcdrs=1; lcden=0; P0=da; delay(1); lcden=1; delay(1); lcden=0; } //初始化

void init() //初始化 { uchar num; num=-1; lcdwrite=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); delay(500);//延时0.5s write_com(0x01); i=0; j=0; a=0; //第一个参与运算的数 b=0; //第二个参与运算的数 c=0; flag=0; //flag表示是否有符号键按下, fuhao=0; // fuhao表征按下的是哪个符号 } void keyscan() // 键盘扫描程序 { P3=0xfe; if(P3!=0xfe) { delay(10); //延迟20ms if(P3!=0xfe) { temp=P3&0xf0; switch(temp) { case 0xe0:num=0; break; case 0xd0:num=1; break; case 0xb0:num=2; break; case 0x70:num=3; break; } } while(P3!=0xfe); if(num==0||num==1||num==2)//如果按下的是'7','8'或'9 { if(j==1)//确认一次计算完毕,清屏 { write_com(0x01);

相关主题
文本预览
相关文档 最新文档