资源描述:
《多功能时钟,温度,闹钟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、#include#include#include#ifndef__SOUNDPLAY_H_REVISION_FIRST__//音乐相关#define__SOUNDPLAY_H_REVISION_FIRST__//音乐相关#defineuintunsignedint#defineucharunsignedcharvoidnl();//农历/*定义全局变量---------------------------------------------------------------*/ucharsec,min,ho
2、ur,day,date,month,year,cen,r1_h,r1_m,r1_of,r2_h,r2_m,r2_of;dataucharyear_moon,month_moon,date_moon,cen_m,week;uintbt,rt,rr,rtt,rrt;bitc_moon;//农历世纪bitc;//公历世纪bitw=0;//调时标志位bitr=0;//调整闹铃/*定义12864液晶屏数据线------------------------------------------------------*/sbitLCM_RS=P1^6;//模式位,为0输入指令,为1
3、输入数据sbitLCM_RW=P1^7;//读写位,为0读,为1写sbitLCM_EN=P3^3;//使能位sbitLCM_BLA=P1^5;#defineLcd_BusP0//LCM12864数据总线/*定义DS12CR887数据线--------------------------------------------------------*/sbitDS_CS=P3^5;sbitDS_AS=P3^4;sbitDS_RW=P3^6;sbitDS_DS=P3^7;#defineDs_BusP2//DS12CR887数据总线/*定义按键----------------
4、---------------------------------------------------*/sbitK1=P1^3;//K1-设置sbitK2=P1^0;//K2-确认sbitK3=P1^2;//K3-加sbitK4=P1^1;//K4-减/*定义DS18B20数据线----------------------------------------------------------*/sbitDQ=P3^0;/*定义蜂鸣器-----------------------------------------------------------------*/
5、sbitbeep=P3^1;/*定义累加器A中的各位--------------------------------------------------------*/sbita0=ACC^0;sbita1=ACC^1;sbita2=ACC^2;sbita3=ACC^3;sbita4=ACC^4;sbita5=ACC^5;sbita6=ACC^6;sbita7=ACC^7;/**/#defineSYSTEM_OSC12000000//定义晶振频率12000000HZ#defineSOUND_SPACE4/5//定义普通音符演奏的长度分率,//每4分音符间隔unsign
6、edintcodeFreTab[12]={262,277,294,311,330,349,369,392,415,440,466,494};//原始频率表UnsignedcharcodeSignTab[7]={0,2,4,5,7,9,11};//1~7在频率表中的位置unsignedcharcodeLengthTab[7]={1,2,4,8,16,32,64};unsignedcharSound_Temp_TH0,Sound_Temp_TL0;//音符定时器初值暂存unsignedcharSound_Temp_TH1,Sound_Temp_TL1;//音长定时器初值暂
7、存/*延时程序-------------------------------------------------------------------*///延时函数1MS/次voidDelayM(uinta){uchari;while(--a!=0){for(i=0;i<125;i++);//一个;表示空语句,CPU空转。}//i从0加到125,CPU大概就耗时1毫秒}//延时函数voidDelay(intnum){while(num--);}voidInitialSound(void)//音乐相关{beep=0;Sound_Temp_TH1=(65