电子日历工程文件(包括源代码、keil文件、protues仿真等)https://static.assets-stash.eet-china.com/album/old-resources/2009/6/13/98492303-9e8d-4064-aaff-11f6f70f375c.rar
电子日历实验报告(含原理图、程序分析、效果图等)https://static.assets-stash.eet-china.com/album/old-resources/2009/6/13/cc28411a-0dfd-4738-a09c-92890cc7bb93.rar
原理图如下:
以下为该电子日历的main函数:
/******使用LCD1602、DS1302时钟芯片、DS18B20温度传感器完成该日历*******/
#include<reg52.h>
//以下的顺序不能任意放
#define uint unsigned int //宏定义
#define uchar unsigned char
#include"LM016L.h"
#include"DS1302.h"
#include"DS18B20.h"
#include"KeyScan.h"
#include"MODE.h"
#include"OPEN.h"
////////以下为几个标志位///////////
// flag,select,alarm,temperature,limit
/*分别为模式标志位、功能选择标志位、闹钟、温度正负标志位以及温度上限值 (整型)
其中alarm有三种状态:0为禁止进入,1为允许进入,2为正在闹钟模式下 */
void open(); //上电显示
void KeyScan(); //键盘扫描
void SetTime_Mode(); //调时
void SetRing_Mode(); //闹钟设置
void SetTemp_Mode(); //温度上限设置模式
/******************************日历主函数************************************/
void main()
{
init(); //初始化LCD
Set_RTC(l_tmpdate1);//初始化时钟芯片
open(); //上电显示函数
write_com(0x01); //清屏
while(1)
{
time_date(); //时间处理
KeyScan(); //键盘扫描
if(ring_time[1]==l_tmpdate[1]&&ring_time[2]==l_tmpdate[2]&&flag==0&&alarm!=0)//判断是否到闹钟设置的时间,是的话执行相应动作
{
uchar i;
alarm=2; //正在闹钟响应模式下
if(ring_time[0]==l_tmpdate[0])//相等的那一时刻清屏,循环清屏会导致闪烁
write_com(0x01);
led=0; //小灯闪烁
delay(100);
led=1;
write_com(0x80+0x01); //写入“Time To Get Up”
for(i=0;i<14;i++)
{
write_date(ringtable);
}
if(l_tmpdate[0]==0x59) //自动退出闹钟模式时清屏
write_com(0x01);
continue; //跳出本次的While循环
}
if(flag==0) //正常显示模式下
{
tempchange(); //温度转换命令
display(l_tmpdisplay,8);//显示时间
Temp_Display(); //显示温度
deal(); //温度处理
}
if(flag==1) //功能选择模式下
{
uchar i;
write_com(0x80+0x4); //选择菜单
for(i=0;menu[select]!='\0';i++)
{
write_date(menu[select]);
}
if(select==0) //调试模式
{
SetTime_Mode();
}
if(select==1) //闹钟设置
{
SetRing_Mode();
}
if(select==2) //设置温度上限
{
SetTemp_Mode();
}
}
}
}
/***************END***********END******************************/
用户1083801 2011-1-17 16:40
用户235074 2010-8-19 17:29
用户235074 2010-8-19 17:27
用户235074 2010-8-19 17:16
用户259978 2010-4-8 23:20
用户1228096 2010-1-30 09:42
daheng 2009-12-1 20:17
用户1367325 2009-11-10 21:43
用户395791 2009-7-2 09:44
用户550735 2009-6-29 23:53