标题:
基于AT89c51单片机的音乐闹钟Proteus仿真+代码设计
[打印本页]
作者:
wwllaowang
时间:
2018-11-27 19:10
标题:
基于AT89c51单片机的音乐闹钟Proteus仿真+代码设计
基于51芯片用proteus仿真制作的音乐闹钟,四个按键用来设置时间,和整定闹钟时间,如果要做实物的话,记得参考源码的io口,也可修改
附件包括了源码和仿真图,当然如果有开发板的话最好,做实物的话记得参考源码的io口
说明:
用的是1602lcd显示屏;
本项目是天空之城的纯音乐,如果要其他的音乐代码可以找我要,也可以网上找;
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(12.57 KB, 下载次数: 35)
下载附件
2018-11-28 00:43 上传
0.png
(39.88 KB, 下载次数: 28)
下载附件
2018-11-28 00:43 上传
单片机源码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P3^5; //定义lcd口
sbit lcden=P3^4;
sbit s1=P3^0;
sbit s2=P3^1;
sbit s3=P3^2;
sbit s4=P3^3;
sbit speaker=P2^2;
sbit led=P2^3;
uchar count,s1num,num1,num2,timer0h,timer0l,time;
uint i;
char sec,hour,min,ahour,amin,asec;
uchar code table[]="Time:13:59:58 ";
uchar code table2[]="Alarm: : : ";
uchar code kong[]=" ";
code unsigned char sszymmh[] = { 6,2,1, 7,2,1, 1,3,3, 7,2,1, 1,3,2, 3,3,2, 7,2,6,
3,2,1, 3,2,1, 6,2,3, 5,2,1, 6,2,2, 1,3,2, 5,2,6,
3,2,2, 4,2,3, 3,2,1, 4,2,2, 1,3,2, 3,2,5, 1,3,1,
1,3,1, 1,3,1, 7,2,3, 4,2,1, 4,2,2, 7,2,2, 7,2,6,
6,2,1, 7,2,1, 1,3,3, 7,2,1, 1,3,2, 3,3,2, 7,2,6,
3,2,1, 3,2,1, 6,2,3, 5,2,1, 6,2,2, 1,3,2, 5,2,6,
2,2,1, 3,2,1, 4,2,2, 1,3,1, 7,2,2, 1,3,3, 2,3,1,
2,3,1, 3,3,1, 1,3,5, 1,3,1, 7,2,1, 6,2,1, 6,2,1,
7,2,2, 5,2,2, 6,2,6, 1,3,1, 2,3,1, 3,3,3, 2,3,1,
3,3,2, 5,3,2, 2,3,6, 5,2,1, 5,2,1, 1,3,3, 7,2,1,
1,3,2, 3,3,2, 3,3,8, 6,2,1, 7,2,1, 1,3,2, 7,2,2,
2,3,1, 2,3,1, 1,3,3, 5,2,5, 4,3,2, 3,3,2, 2,3,2,
1,3,2, 3,3,6, 3,3,2, 6,3,4, 5,3,2, 5,3,2, 3,3,1,
2,3,1, 1,3,5, 1,3,1, 2,3,2, 1,3,1, 2,3,1, 2,3,2,
5,3,2, 3,3,6, 3,3,2, 6,3,4, 5,3,4, 3,3,1, 2,3,1,
1,3,5, 1,3,1, 2,3,2, 1,3,1, 2,3,3, 7,2,2, 0,0,0 };
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,
};
void delay1(unsigned char t)
{
unsigned char t1;
unsigned long t2;
for(t1=0;t1<t;t1++)
{
for(t2=0;t2<5000;t2++)
{
;
}
}
TR0=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)
{
lcdrs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_sfm(uchar add,uchar date) //显示时间函数
{
uchar shi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+add);
write_date(0x30+shi);
write_date(0x30+ge);
}
void write_alarm(uchar add,uchar date)//显示闹钟时间函数
{
uchar shi,ge;
shi=date/10;
ge=date%10;
.......请下载附件查看剩余哦
复制代码
全部资料51hei下载地址:
基于51proteus的音乐闹钟设计.zip
(19.58 KB, 下载次数: 202)
2018-11-27 18:58 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
syf1234
时间:
2019-12-13 12:24
那4个按键具体是怎么控制时间的啊
作者:
最爱Pcy
时间:
2020-10-13 09:32
你好,这个图是怎么打开的,通过Proteus 8
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1