ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:37.82KB ,
资源ID:9313070      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9313070.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(音乐倒数计时器单片机课程设计报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

音乐倒数计时器单片机课程设计报告.docx

1、音乐倒数计时器单片机课程设计报告音乐倒是计时器一、设计要求利用 STC89C51 单片机结合字符型 LCD 显示器设计一个简易的倒数计数器, 可用来煮 方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为 0 时,则发出一段音乐 声响, 通知倒计数终了, 该做应当做的事。同时输出控制一个继电器吸合, 继电器驱动一个 3W的大功率LED灯,亮度可以由单片机控制从 50%100%连续可调。定时闹钟的基本功能如下。字符型 LCD(16 2 )显示器。显示格式为“ TIME 分分 :秒秒”。用4 个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0 时,发出一阵音乐声。1 、

2、程序执行后工作指示灯 LED 闪动, 表示程序开始执行, 按下操作键 K1 K4 动作如下。K1 可调整倒计数的时间 160 分钟。2、复位后 LCD 的画面应能显示倒计时的分钟和秒数,此时按 K1 键则在 LCD 上显示出设 置画面。此时,若:a.按操作键 K2 增加倒计数的时间 1 分钟。b.按操作键 K3 减少倒计数的时间 1 分钟。c.按操作键 K4 设置完成。二、系统硬件说明2.1 :音乐倒是计时器要实现一种由单片机控制的带 LCD显示的倒数计时器, 单片机工作于12MHZ寸钟频率,使用其定时/计数器TO,改变计数值THO和TL0 可以产生不同频率的脉冲信号。该设计具有 5个功能按键

3、,用户可以通过这些按键设置定时时间和选择控制定时,倒计数为零时,可通过扬声器将音乐播放 出来。系统结构图如下图所示。2.2 AT89C52AT89C52有 40个引脚,32个外部双向输入/输出(I/O )端口,同时内含2 个外中断口,3个16位可编程定时计数器,2个全双工串行通信口, 2个读写口 线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在 线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写 的Flash存储器可有效地降低开发成本。主要特性:兼容MCS5指令系统 8k可反复擦写(1000次)Flash ROM32 个双向 I/O 口 2

4、56x8bit 内部 RAM3个16位可编程定时/计数器中断时钟频率0-24MHZ2个串行中断可编程UART串行通道2个外部中断源共8个中断源2个读写中断口线 3级加密位低功耗空闲和掉电模式2.3电路原理图如下T5NL:XT.1L1 沖EV:ULI-口 wKfiT*丸AL亠S:MND |KXTZ ktt7KITi nr t3 _TXD11 KF-p-0mZLrE-AL並舶PLOT;TOCP 1T7IX回抻。PLZJLD1T0.1PMg:科:PL4LDs-PQlP12iDFO舛FL*ADJ NJPLTJJliM JCTADmK/FSKAX?EaPJ 1TKDpTxliPi z nmPEXPkl:

5、fl?!TAC!Pl+TCIAi*n.fVJTIA1T2: !A 124阳wAiirxjKTAL2AlfliT-IXTJ1.1皿礼1GNDAino1乂 T3E T亟1= RE5J:n-2.4电路仿真图如下:H4電13_H VlML4UiU 片L怕1IND就t1h7干EraUlJCTALfFUAEO PBIMIFH2A02XTAlZ巾轴, PH 他 DI*PH詡眄KATlOTft vrnHi*iw町衲iJKMEAp莹阳応 鮭mn.l 订F M1W P3_uirrTI1Aoiirrt*15阴斗T1IHJ出硕J_FUF? WJGI亠J_MW 4I1iIKT三、系统软件设计音乐倒数计时器软件设计关键是

6、实现音乐的播放。利用定时计数器,通过载 入不同的计数初值,产生频率不同的方波,输入到蜂鸣器( SOUNER中,使其发出频率不同的声音。本设计中单片机晶振为 11.0592MHz通过计算各音阶频率,可得1、2、3、4、5、6、7共7个音应赋给定时器的初值为 64580、64684、 64777、64820、64898、64968、65030。通过K1K5开关进行控制时间设置来完 成其基本功能,当倒计时为零时,通过通过蜂鸣器放出一段音乐 。3.1系统基本流程图如下:开始LCD初始化时间为K3是否按下10minYr 口 才 =NK5是否按下 计时结束开始计时K6是否按下Music3.2 部分程序如下

7、:#include#include#define time 100#define uint unsigned int#define uchar unsigned charuint flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;int t=0,flag6=0;uchar num,j,i,k=0,time_H,time_L,times,m,n,p;uchar code table=TIME 00:00;uchar code FREQH=0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8低音 0xF9,0xF9,

8、0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,/1,2,3,4,5,6,7,!0xFC,0xFD,0xFD,0xFD,0xFD,0xFI高音 12345670xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xF超高/ 音uchar code FREQL=0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, /低音 12345670x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, /1,2,3,4,5,6,7,i0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, / 高音 23

9、45670x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16; /超高音 1234567uchar code MUSIC=3,2,2,3,2,2,3,2,4,3,2,2,3,2,2,3,2,4,3,2,2,5,2,2,1,2,3,2,2,1,3,2,4,4,2,2,4,2,2,4,2,3,4,2,2,4,2,2,3,2,2,3,2,2,3,2,1,3,2,1,3,2,2,2,2,2,2,2,2,1,2,2,2,2,2,5,2,3,5,1,2,5,1,2,3,2,2,2,2,2,1,2,2,5,1,3,5,1,1,5,1,1,5,1,2,3,2,2,2,2,2,1,2

10、,2,6,1,3,6,1,2,6,1,2,4,2,2,3,2,2,2,2,2,6,1,3,6,1,2,0,0,0 sbit key1=P3A3;sbit key2=P3A4;sbit key3=P3A5;sbit key4=P3A6;sbit key5=P3A7;sbit P1_0=P1A0;sbit RS=P2A5;sbit RW=P2A6;sbit E=P2A7;sbit led_red=P1A3;void write_time(uint addr,uint date);void delay(uint z) /延时函数 / uint x,y;for(x=z;x0;x-)for(y=110;

11、y0;y-);void delay1(unsigned char d) /us 延时 while(-d);void delay2(unsigned char d) / 延时 1mSwhile(d -) delay1(245); delay1(245);void delay3(uchar d) / 延时 125ms,4/4 拍for(m=0;md;m+) delay2(125);TR1=0;void Song()TH仁time_H;赋值定时器时间,决定频率 TL1=time_L;TR1=1; /打开定时器delay3(times); /延时所需要的节拍void write_com(uchar c

12、om) /1602 写命令函数 / RS=0;P0=com;delay(5);E=1;delay(10);E=0;void write_date(uchar date) /1602 写数据函数 / RS=1;P0=date;delay(5);E=1;delay(10);E=0;void KEY1() / 按键 1/while(flag1)if(key2=0)delay(time);if(key2=0)if(minute0) minute=minute -1;write_time(7,minute);if(key4=0|key5=0)delay(150);if(key4=0|key5=0) fl

13、ag1=0; flag=1; TR0=1;void KEY2() / 按键 2/minute=5;write_time(7,minute);while(flag2)if(key5=0)delay(time);if(key5=0)flag2=0;flag=1;TR0=1;void KEY3()minute=10;write_time(7,minute);while(flag3)if(key5=0)delay(time);if(key5=0) flag3=0; flag=1; TR0=1;void KEY4()minute=20;write_time(7,minute);while(flag4)i

14、f(key5=0) delay(150);if(key5=0) flag4=0; flag=1; TR0=1;/ 按键 3/ 按键 4void write_time(uint addr,uint date)uint ge,shi;ge=date%10;shi=date/10;write_com(0x80+addr);write_date(0x30+shi);write_date(0x30+ge);if(addr=7&date=0)j=1;if(j=1&addr=10&date=0) flag0=1;TR0=0;TR1=1;flag5=1;void init()P3=0xff;RW=0;writ

15、e_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x80);TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=0xfc;TL1=0x44;ET1=1;ET0=1;TR0=1;EA=1;flag0=1;for(num=0;num0) minute=minute -1;write_time(7,minute);if(second=0)k=1; second=59;int main()init();while(1)while(flag0)start();counter();w

16、hile(flag5)TMOD=0x10; /置定时器 1 工作方式 1 EA=1; / 打开全局中断ET1=1; while(1 / 打开定时 1 中断i=0;while(i140) / 音乐数组长度 ,循环播放 n=MUSICi+7*MUSICi+1-1; / 去音符振荡频率所需数据 time_H=FREQHn;time_L=FREQLn;times=MUSICi+2; / 节拍时长i=i+3;Song();return 0;void inter0() interrupt 1 / 中断 T0TH0=(65536-50000)/256;TL0=(65536-50000)%256 ;t+;if(t=20)flag6=1;/ 中断 T1void inter1() interrupt 3TR1=0;P1_0=!P1_0; TH1=time_H;TL1=time_L;TR1=1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1