万年历12864程序.doc
文本预览下载声明
#include REG52.h
#include string.h
#include intrins.h
#define uint unsigned int
#define uchar unsigned char
/******************************LCM12864**************************************/
#define LCM_data P2
sbit LCM_RS=P0^7; //定义12864液晶RS端,寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit LCM_RW=P0^6; //定义12864液晶RW端,读/写信号 H:读 L:写
sbit LCM_EN=P0^5; //定义12864液晶LCDEN端, 片选信号 下降沿触发,锁存数据
sbit LCM_PSB=P0^4; //定义12864液晶PSB端, H:并行 L:串行
sbit LCM_RST=P0^3; //定义12864液晶RST端, H:不复位 L:
//****************************************************************************/
sbit beep = P3^6;
sbit BL = P0^1; //定义背光控制口
/*****************************************************************************/
//温度传感器定义
sbit DQ = P3^7; //ds18B20
/*****************************************************************************/
//键盘引脚定义
sbit KEY_1 = P3^0; //确认
sbit KEY_2 = P3^1; //设置
sbit KEY_3 = P3^2; //加
sbit KEY_4 = P3^3; //减
//定义DS1302时钟接口
sbit DS1302_CLK = P1^0; //实时时钟时钟线引脚
sbit DS1302_IO = P1^1; //实时时钟数据线引脚
sbit DS1302_RST = P1^2; //实时时钟复位线引脚
//定义累加器A中的各位
sbit ACC0 = ACC^0;
sbit ACC7 = ACC^7;
/*****************************************************************************/
//定义全局变量
unsigned char yy,mo,dd,xq,hh,mm,ss,e; //定义时间映射全局变量(专用寄存器)
unsigned char nz_shi=12,nz_fen=0,nz_miao=0; //闹钟时分秒变量
bit alam_on=1; //默认开启闹钟
bit c_moon;
unsigned char year_moon,month_moon,day_moon,week;
bit w = 0; //调时标志位
unsigned char menu = 0;//定义静态小时更新用数据变量
unsigned char keys = 0;//定义静态小时更新用数据变量
unsigned char timecount = 0;//定义静态软件计数器变量
unsigned char count0,BLsecond;
uchar code tab1[]=
{
--单片机万年历--
--芯片 89S/C52--
----LCM12864----
-----WELCOME----
};
/****************************************************************************/
void DelayM(unsigned int a) //延时函数 1MS/次
{
unsigned char i;
while( --a != 0)
{
for(i = 0; i 125; i++); //一个 ; 表示空语句,CPU空转从0加到125,CPU大概就耗时1毫秒?
}
}
/****************************************************************************/
//函数声
显示全部