详细的制作教程下载:http://www.51hei.com/bbs/dpj-20625-1.html
/*
制作人:伍浩荣
报时:7:00-24:00(加灯光) 之后的只有灯光提醒
两个led灯在左右两边(紫,黄)
加入节日提醒功能和温度提醒功能
按键在后面 ,背光控制键在侧面
同时按下加减键初始化时间(先加后减)。
农历显示(其他:Have a good day!)
晚安:中午 早上 提示
百度空间:http://hi.baidu.com/haorongwu/home
*/
#include
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
uchar a,miao,shi,fen,ri,yue,nian,week,keynum,temp,flagtime,ledcount,count,alarmflag,flagT/*时间分段标志*/,year1,month1,day1,lednum;
uint flag;//取温度
bit c_moon;
data uchar year_moon,month_moon,day_moon;
#define h1 0x80 //LCD第一行的初始化位置
#define h2 0x80+0x40 //LCD第二行初始化位置
sbit Gled=P1^6;//定义粉色led灯的管脚
sbit Yled=P3^7;//定义黄色led灯的管脚
//定义1602相关管脚
sbit rs=P2^7;
sbit en=P2^5;
sbit rw=P2^6;
//sbit led=P2^3;/*控制背光:15脚(串联10欧电阻)背光源正极*/
//sbit busy=P0^7;//测忙线
//DS1302芯片的管脚定义
sbit IO=P2^2;
sbit SCLK=P2^1;
sbit RST=P2^3;
sbit DQ=P2^0;/*定义DS18b20管脚*/
sbit ACC0=ACC^0;//设置累加器
sbit ACC7=ACC^7;
//按键
sbit key1=P3^0;//设置按键
sbit key2=P3^4;
sbit key3=P3^6;
sbit beep=P1^7;//蜂鸣器,用于报时
sbit lcdbusy=P0^7;
void delay(uint z)//延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void testbusy()//测忙函数
{
P0=0xff;//注意是P0组
rs=0;
rw=1;
en=1;
while(lcdbusy);//等待不忙
en=0;
}
void writecom(uchar com)//写入指令函数
{
testbusy();
P0=com;
rs=0;
rw=0;
en=1;
en=0;
}
void writedata(uchar dat)//写入数据函数
{
testbusy();//先测忙
P0=dat;
rs=1;
rw=0;
en=1;
en=0;
}
void print(uchar a3,uchar *str)//写字符串函数(没有延时)
{
writecom(a3|0x80);
while(*str!='