-
大小: 251KB文件类型: .rar金币: 2下载: 0 次发布日期: 2024-01-20
- 语言: 其他
- 标签:
资源简介
STC89C52+LCD12864+18B20+1302的万年历,已编译成功,可直接移植
代码片段和文件信息
/*---------------------------------------------------------------------------
黄历电子智能时钟程序
单 片 机:STC89C52RC
晶 振:12MHz
时钟芯片:DS1302
液 晶 屏:LCM-12864-ST7920
功能描述: 大数字显示时间;能显示农历、温度和设置闹铃;有整点报时功能
红外遥控和按键都能设置时间和闹铃
时 间:2011年2月2日修改完成今天大年三十算是给自己的礼物吧!呵呵...
说 明:LCM12864使用并口连接方式PSB、RST接高电平
修改日志:
------------------------------------------------------------------------------*/
/*-------------------------------头文件---------------------------------------*/
#include
#include
#include “LCD12864.h“
#include “DS1302.h“
#include “DS18B20.h“
#include “nongli.h“
#include “displaytime.h“
#include “zk.h“
#include “bell.h“
#include “HW.H“
#include “delay.h“
#define uint unsigned int
#define uchar unsigned char
/*--------------------定义按键-----------------------------------------------*/
sbit K1 = P1^0; //K1-设置
sbit K2 = P1^1; //K2-确认、返回
sbit K3 = P1^2; //K3-加
sbit K4 = P1^3; //K4-减
//K5=P1^4K5-控制闹钟的打开与关闭在“hw.h“中定义
/*---------------------函数声明------------------------------*/
void ds_w0(void);
void ds_w(void);
void Conver_week(bit cuchar yearuchar monthuchar day);
/*-----------------------------定义全局变量------------------------------*/
bit w=0; //调时标志位
unsigned char yymoddxqhhmmssmonth_moonday_moonweektiangandizhimoontemp1moontemp2;//定义时间映射全局变量(专用寄存器)
signed char addressitemitem0maxmini;
unsigned char clk_ala[2]={0x000x00};//闹钟数据存放初始值为00:00
unsigned char hourminutetime;//用于闹铃的设置
/*-----------------------------日期、时间设置函数-----------------------------*/
void tiaozheng(void){
yy = read_clock(0x8d);//调用1302时钟数据中的年数据,从地址0x8d中
mo = read_clock(0x89);//调用1302时钟数据中的月数据,从地址0x89中
dd = read_clock(0x87);//从1302芯片中读取日数据,从地址0x87中
week = read_clock(0x8b);//从1302芯片中读取星期数据,从地址0x8b中
//----------------------------------
lcm_w_test(00x80);
lcm_w_word(“20“);//显示内容字符20
lcm_w_test(1(yy/16)+0x30);//函数参数1,代表本行写数据,YY/16+0X30得出年十位数字的显示码地址,送显示
lcm_w_test(1yy%16+0x30);//函数
lcm_w_word(“年“);
//----------------------------------
lcm_w_test(1(mo/16)+0x30);
lcm_w_test(1mo%16+0x30);//与16取余数,得到月份的个位数,加0x30得到该数字的液晶内定显示码送显示
lcm_w_word(“月“);//调用字符显示函数,显示文字 月
//----------------------------------
/*
lcm_w_test(00x88);//第一个参数0,表示本行写入LCM的是指令,指定显示位置88H(第三行左端)
lcm_w_word(“星期“);//调用字符显示函数,显示文字 星期
lcm_w_test(1mo%16+0x30);//与16取余数,得到月份的个位数,加0x30得到该数字的液晶内定显示码送显示
*/
//----------------------------------
lcm_w_test(1(dd/16)+0x30);
lcm_w_test(1dd%16+0x30);//第一个1参数,表示本行写数据,日数据与16取余得个位数,加0x30得到显示码
lcm_w_word(“日“);//显示字符 日
//----------------------------------
if(read_clock(0x85) != hh){//如果程序中的小时与1302芯片中的不同,
hh = read_clock(0x85);//刷新程序中的小时数据
}
lcm_w_test(00x91);//第一个参数0,表示本行写入LCM的是指令,指定显示位置88H(第三行左端)
lcm_w_test(1(hh/16)+0x30);//显示十位
lcm_w_test(1hh%16+0x30);//显示个位
lcm_w_word(“时“);
//----------------------------------
if(read_clock(0x83) != mm){//如果1302芯片中的分钟数据与程序中的分钟变量不相等
mm = read_clock(0x83);//刷新程序中的分钟数据
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1133 2011-02-17 17:19 12864 1302大数字显示时钟\bell.h
文件 1358 2011-02-02 02:13 12864 1302大数字显示时钟\delay.h
文件 6297 2011-02-17 14:57 12864 1302大数字显示时钟\displaytime.h
文件 3332 2011-01-30 22:38 12864 1302大数字显示时钟\DS1302.h
文件 2476 2011-02-01 14:45 12864 1302大数字显示时钟\DS18B20.h
文件 3334 2011-02-03 21:36 12864 1302大数字显示时钟\HW.H
文件 60025 2011-02-17 17:19 12864 1302大数字显示时钟\Hzxin
文件 23004 2011-02-17 17:19 12864 1302大数字显示时钟\Hzxin.hex
文件 63783 2011-02-17 17:19 12864 1302大数字显示时钟\Hzxin.M51
文件 1919 2011-02-17 17:19 12864 1302大数字显示时钟\Hzxin.Opt
文件 8149 2011-02-17 17:19 12864 1302大数字显示时钟\Hzxin.plg
文件 1983 2010-11-04 14:25 12864 1302大数字显示时钟\Hzxin.Uv2
文件 1610 2011-02-17 17:19 12864 1302大数字显示时钟\Hzxin_Opt.Bak
文件 2102 2010-10-12 21:46 12864 1302大数字显示时钟\Hzxin_Uv2.Bak
文件 9665 2011-02-03 02:56 12864 1302大数字显示时钟\LCD12864.h
文件 13725 2011-02-17 17:19 12864 1302大数字显示时钟\main.c
文件 25648 2011-02-17 17:19 12864 1302大数字显示时钟\main.LST
文件 73585 2011-02-17 17:19 12864 1302大数字显示时钟\main.OBJ
文件 11604 2010-10-11 23:21 12864 1302大数字显示时钟\nongli.h
文件 3644 2010-11-30 00:41 12864 1302大数字显示时钟\rs.h
文件 27427 2011-02-03 02:56 12864 1302大数字显示时钟\zk.h
文件 56789 2011-02-08 14:46 12864 1302大数字显示时钟\实物图1.jpg
文件 118371 2011-02-08 21:44 12864 1302大数字显示时钟\实物图2.jpg
目录 0 2011-02-17 17:23 12864 1302大数字显示时钟
----------- --------- ---------- ----- ----
520963 24
- 上一篇:labview串口波形显示
- 下一篇:lyapunov指数计算方法
评论
共有 条评论