资源简介
proteus和keil完整的电子音乐闹钟,有原理图有程序。
代码片段和文件信息
#include
#include<1302.h>
#include
#include
#include
#include
#include
void delay(int z)
{
int xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void showCurrentTime()
{
//
Display_A_BYTE(624numericStr+(now_time[2]>>4)*16);
Display_A_BYTE(624+8numericStr+(now_time[2]&0x0f)*16);
Display_A_BYTE(624+8*2numericStr+16*10);
Display_A_BYTE(624+8*3numericStr+(now_time[1]>>4)*16);
Display_A_BYTE(624+8*4numericStr+(now_time[1]&0x0f)*16);
Display_A_BYTE(624+8*5numericStr+16*10);
Display_A_BYTE(624+8*6numericStr+(now_time[0]>>4)*16);
Display_A_BYTE(624+8*7numericStr+(now_time[0]&0x0f)*16);
}
void main()
{
LCD_Initialize();
LCD_Clear();
Display_A_WORD_String(2244welcomeStr);
delay(4000);
LCD_Clear();
//
init_ds1302();
set_ds1302(time_addinitial_time);
while(1)
{
read_ring();
if(ring_time[0]==now_time[0]&&ring_time[1]==now_time[1]&&ring_time[2]==now_time[2])
{
EndlessAlarm();
}
Display_A_WORD_String(008mottoStr[mottoIndex]);
get_ds1302();
showCurrentTime();
mainSetMenu();
}
}
void mainSetMenu()
{
flag = 0;
detect();
if(flag==3)
{
LCD_Clear();
flag = 0;
while(flag!=4)
{
detect();
Display_A_WORD_String(0244menuStr[key]);
if(key==0)
{
time_set();
}
if(key==1)
{
music();
}
if(key==2)
{
alarm();
}
if(key==3)
{
motto();
}
if(key==4)
{
show_author();
}
}
LCD_Clear();
flag=0;
}
}
void detect()
{
uchar temp;
temp=P1;
temp=temp&0x0f;
if(temp!=0x0f)
{
switch(temp)
{
case 0x0e:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
if(key==0)
{
key=5;
}
key--;
flag=1;
write_order(0x01);
break;
case 0x0d:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
key++;
flag=2;
if(key==5)
{
key=0;
}
write_order(0x01);
break;
case 0x0b:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
flag=3;
write_order(0x01);
break;
case 0x07:
while(temp!=0x0f)
{
temp=P1;
temp=temp&0x0f;
}
flag=4;
write_order(0x01);
break;
}
}
}
void motto()
{
flag=0;
detect();
if(flag==3)
{
flag=0;
LCD_Clear();
key = mottoIndex;
while(flag!=4)
{
detect();
Display_A_WORD_String(208mottoStr[key]);
if(flag==3)
{
mottoIndex = key;
flag = 4;
}
}
key=3;
LCD_Clear();
flag=0;
}
}
void alarm()
{
flag=0;
detect();
if(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-05-27 15:42 电子音乐闹钟\
文件 1960 2012-04-07 20:53 电子音乐闹钟\1302.h
文件 24777 2012-04-08 16:22 电子音乐闹钟\Character.h
文件 19 2012-04-08 17:55 电子音乐闹钟\ExtDll.iex
文件 111031 2012-04-08 22:01 电子音乐闹钟\Last Loaded MusicAlarmClock.DBK
文件 111029 2012-04-10 21:59 电子音乐闹钟\MusicAlarmClock.DSN
文件 1481 2013-05-27 15:42 电子音乐闹钟\MusicAlarmClock.PWI
文件 5115 2002-04-16 14:32 电子音乐闹钟\STARTUP.A51
文件 11665 2012-04-17 09:11 电子音乐闹钟\STARTUP.LST
文件 749 2012-04-17 09:11 电子音乐闹钟\STARTUP.OBJ
文件 4074 2012-04-08 15:48 电子音乐闹钟\SoundPlay.h
文件 45982 2012-04-17 09:11 电子音乐闹钟\dds
文件 18543 2012-04-17 09:11 电子音乐闹钟\dds.LST
文件 52119 2012-04-17 09:11 电子音乐闹钟\dds.M51
文件 54063 2012-04-17 09:11 电子音乐闹钟\dds.OBJ
文件 1380 2012-05-08 11:54 电子音乐闹钟\dds.Opt
文件 2232 2012-04-08 21:22 电子音乐闹钟\dds.Uv2
文件 1007 2012-04-08 21:02 电子音乐闹钟\dds.Uv2.Opt
文件 2226 2012-04-08 21:02 电子音乐闹钟\dds.Uv2.Uv2
文件 6615 2012-04-17 09:11 电子音乐闹钟\dds.c
文件 441 2012-04-08 17:14 电子音乐闹钟\dds.h
文件 24852 2012-04-17 09:11 电子音乐闹钟\dds.hex
文件 2436 2012-04-07 00:01 电子音乐闹钟\dds.opt.bak
文件 228 2012-05-08 11:54 电子音乐闹钟\dds.plg
文件 135332 2012-04-08 17:56 电子音乐闹钟\dds.uvgui.Administrator
文件 135538 2012-04-08 17:48 电子音乐闹钟\dds.uvgui_Administrator.bak
文件 11822 2012-04-08 17:56 电子音乐闹钟\dds.uvopt
文件 14110 2012-04-08 17:48 电子音乐闹钟\dds.uvproj
文件 1921 2012-04-17 09:33 电子音乐闹钟\dds_Opt.Bak
文件 2343 2012-03-04 20:35 电子音乐闹钟\dds_Uv2.Bak
文件 994 2012-04-08 21:02 电子音乐闹钟\dds_Uv2.Opt
............此处省略5个文件信息
- 上一篇:Delphi与仪表之间的MODBUS通讯
- 下一篇:黑页源码给力!
评论
共有 条评论