版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、音乐倒是计时器一、设计要求利用STC89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。同时输出控制一个继电器吸合,继电器驱动一个3W的大功率LED灯,亮度可以由单片机控制从50%100%连续可调。定时闹钟的基本功能如下。字符型LCD(162)显示器。显示格式为“TIME分分:秒秒”。用4个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。1、程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1K4动作如下。
2、K1可调整倒计数的时间160分钟。K2 设置倒计数的时间为5 分钟,显示“ 0500 ”。K3设置倒计数的时间为10分钟,显示“1000”。K4设置倒计数的时间为20分钟,显示“2000”。2、复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键则在LCD上显示出设置画面。此时,若:a. 按操作键K2增加倒计数的时间1分钟。b. 按操作键K3减少倒计数的时间1分钟。c. 按操作键K4设置完成。二、系统硬件说明2.1 :音乐倒是计时器要实现一种由单片机控制的带LCD显示的倒数计时器,单片机工作于12MHz时钟频率,使用其定时/计数器T0,改变计数值TH0和TL0可以产生不同频率的脉冲信号。
3、该设计具有5个功能按键,用户可以通过这些按键设置定时时间和选择控制定时,倒计数为零时,可通过扬声器将音乐播放出来。系统结构图如下图所示2.2 AT89C52AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。主要特性:兼容MCS51指令系统8k可反复擦写(1000次)FlashROM32个双向I/O口-256
4、x8bit内部RAM 3个16位可编程定时/计数器中断时钟频率0-24MHZ 2个串行中断可编程UART串行通道 2个外部中断源共8个中断源 2个读写中断口线3级加密位 低功耗空闲和掉电模式2.3 电路原理图如下:V3U2 d D- QNDJH&处 Fl ? WXTJIL1 Q-M?K-E.TZ HTS kTXE 8JKTHLOT;Pl 1TTFSPLZ P3J ph P12曲 Pi.'SKJlX? PJ 1TKB P=二国前 MlI'InTI F3-T0KImmPCImKMIJOEMII既接s常«XT.1L1 nAlJ>uL A *731 ?AJ2PJ
5、1* AI1TU AiaTi2 上曾k1 A9rXQVCC.U z4 JEl逗T?=: 14LQ31«>:-可编辑修改-2.4 电路仿真图如下:三、系统软件设计音乐倒数计时器软件设计关键是实现音乐的播放。利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器(SOUNER)中,使其发出频率不同的声音。本设计中单片机晶振为11.0592MHz,通过计算各音阶频率,可得1、2、3、4、5、6、7共7个音应赋给定时器的初值为64580、64684、64777、64820、64898、64968、65030。通过K1K5开关进行控制时间设置来完成其基本功能,当倒计时为
6、零时,通过通过蜂鸣器放出一段音乐。3.1 系统基本流程图如下:开始LCD初始化K5是否按下N计时结束Y开始计时K6是否按下Music3.2 部分程序如下:#include<reg52.h>#include<intrins.h>#definetime100#defineuintunsignedint#defineucharunsignedcharuintflag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;intt=0,flag6=0;ucharnum,j,i,k=0,time_H,time_L,times,m
7、,n,p;ucharcodetable="TIME00:00"ucharcodeFREQH=0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,/低音12345670xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,/1,2,3,4,5,6,7,!0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,/高音12345670xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF;/超高音1234567ucharcodeFREQL=0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,/低音1234
8、5670x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,/1,2,3,4,5,6,7,i0xEE,0x44,0x6B,0xB4,0xF4,0x2D,/高音2345670x47,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,
9、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,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;sbitkey1=P3A3;sbitkey2=P3A4;sbitkey3=P3A5;sbitkey4=P3A6;sbitkey5=P3A7;sbitP1_0=P1A0;sbitRS=P2A5;sbitRW=P2A6;sbitE=P2A7;sbitled_red=P1A3;voidwrite_time
10、(uintaddr,uintdate);voiddelay(uintz)/延时函数/uintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);voiddelay1(unsignedchard)/us延时while(-d);voiddelay2(unsignedchard)/延时1mSwhile(d-)delay1(245);delay1(245);voiddelay3(uchard)/延时125ms,4/4拍for(m=0;m<d;m+)delay2(125);TR1=0;voidSong()TH1=time_H;/赋值定时器时间,决定频率TL1=ti
11、me_L;TR1=1;/打开定时器delay3(times);/延时所需要的节拍voidwrite_com(ucharcom)/1602写命令函数/RS=0;P0=com;delay(5);E=1;delay(10);E=0;voidwrite_date(uchardate)/1602写数据函数/RS=1;P0=date;delay(5);E=1;delay(10);E=0;voidKEY1()/按键1/while(flag1)if(key2=0)delay(time);if(key2=0)if(minute<60)minute=minute+1;write_time(7,minute)
12、;if(key3=0)delay(time);if(key3=0)if(minute>0)minute=minute-1;write_time(7,minute);if(key4=0|key5=0)delay(150);if(key4=0|key5=0)flag1=0;flag=1;TR0=1;voidKEY2()/按键2/minute=5;write_time(7,minute);while(flag2)if(key5=0)delay(time);if(key5=0)flag2=0;flag=1;TR0=1;voidKEY3()/按键3minute=10;write_time(7,mi
13、nute);while(flag3)if(key5=0)delay(time);if(key5=0)flag3=0;flag=1;TR0=1;voidKEY4()minute=20;write_time(7,minute);while(flag4)if(key5=0)delay(150);if(key5=0)flag4=0;flag=1;TR0=1;voidwrite_time(uintaddr,uintdate)uintge,shi;ge=date%10;shi=date/10;/ 按键 4/lcd1602 初始化write_com(0x80+addr);write_date(0x30+sh
14、i);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;/flag5=1voidinit()P3=0xff;RW=0;write_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;
15、TR0=1;EA=1;flag0=1;for(num=0;num<12;num+)write_date(tablenum);delay(20);voidstart()/按键初始化if(key1=0)delay(time);if(key1=0)flag0=0;flag1=1;KEY1();if(key2=0)delay(time);if(key2=0)flag0=0;flag2=1;KEY2();if(key3=0)delay(time);if(key3=0)flag0=0;flag3=1;KEY3();if(key4=0)delay(150);if(key4=0)flag0=0;flag
16、4=1;KEY4();/ 倒计程序的子初始化程序voidwrite_time0()minute=minute-1;write_time(7,minute);write_time(10,59);flag=0;/ 倒计程序voidcounter()while(flag6)led_red=led_red;if(flag=1)write_time0();t=0;flag6=0;second=second-1;write_time(10,second);if(k=1&&second=0)if(minute>0)minute=minute-1;write_time(7,minute);if(second=0)k=1;second=59;intmain()init();while(1)while(flag0)start();counter();while(flag5)TMOD=0x10;/置定时器1工作方式1EA=1;/打开全局中断ET1=1;/打开定时1中断while(1i=0;while(i<140)/音乐数组长度,循环播放-可编辑修改-/ 去音符振
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【东北师大版劳动实践】六年级上册第二单元第3课《漂流的图书·“漂流”吧图书》
- 开题报告:职业院校混合所有制产业学院发展的关键瓶颈与突破路径研究
- 季华路西延道路绿化工程施工组织设计方案
- 开题报告:新时代香港青少年中华民族共同体意识及其培育研究
- 农业科技创新与成果转化合作合同
- 《幼儿园教育活动目标设计与实践》周考卷1答
- 2024年中班教案社会《我升中班啦》
- 2024年xyz科技公司关于虚拟现实产品研发合同
- 《全面的骨科讲义》课件
- 2024常用施工监理协议格式范本版B版
- 流行病学厦门大学中国大学mooc课后章节答案期末考试题库2023年
- 信息安全专业大学生职业生涯规划书
- 国开2023秋《幼儿园教育质量评价》形考任务123 大作业参考答案
- 酒类文化传承与品牌建设策略研究
- 烧烤行业面临的机遇与挑战
- 课本剧西门豹治邺剧本
- 2023安徽合肥城市轨道交通校园招聘笔试参考题库(共500题)答案详解版
- 爱色丽SP系列测色仪操作演示
- 《矛盾冲突处理》课件
- 社会工作概论智慧树知到课后章节答案2023年下东莞城市学院
- 网络传播法规(自考14339)复习必备题库(含答案)
评论
0/150
提交评论