12864显示电子万年历

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12864显示电子万年历

/***************************************************************

系统名称:电子万年历

创建人:w418781840 日期:2008,7,18

功能描述:LCD12864串行模式显示,DS1302读取时间年月份,

18B20 读取温度

****************************************************************/

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

/*------------LCD12864相关声明-----------------------------*/

#define com 0

#define dat 1

sbit cs =P1^6;

sbit sid=P1^4;

sbit sck=P1^2;

uchar code TAB1[]={"电字钟w418781840"};//第一行初始化.

uchar code TAB2[]={"20 年月日"}; //第二行

uchar code TAB3[]={"星期: : "}; //第三行

uchar code TAB4[]={"室温: ℃"}; //第四行

/*----------------------DS1302相关声明-------------------------*/

char TAB_1302[]={ 0x00,0x29,0x02, //秒:分:时.

0x18,0x06,0x06,0x08}; //日:月:星期:年.

uchar code TAB_XQ[]={"一二三四五六日"};//把DS1302数字日期转换为中文字符. sbit T_CLK=P2^4; /* 实时时钟的时钟线引脚*/

sbit T_IO=P2^5; /* 实时时钟的数据线*/

sbit T_RST=P2^6; /* 实时时钟的复位线引脚*/

uchar bdata datbyte;

sbit datbyte0=datbyte^0;

sbit datbyte7=datbyte^7;

/*--------------18B20相关声明-------------------------------*/

uchar dis1[16];

sbit DQ=P1^0; /*DS18B20温度检测*/

/*----------键盘相关声明-------------------------------------*/

sbit key=P3^2; //功能键

sbit key1=P3^3; //只有加1键

uchar sum,keyflag=0; //调用时,分,秒,标志,调用键盘处理标志. /*--------------以下为LCD12864相关函数--------------------------*/ /**************************************************************

函数名称:void delay1ms(uint x)

函数功能: 延时1MS

***************************************************************/

void delay1ms(uint x)

{

uint i,j;

for(i=0;i

for(j=0;j<120;j++);

}

/**************************************************************

函数名称:void w_12864byte(uchar byte)

函数功能: 写字节

**************************************************************/

void w_12864byte(uchar byte)

{

uchar i;

for(i=0;i<8;i++)

{

sck=0;

byte<<=1;

sid=CY;

sck=1;

}

}

/**************************************************************

函数名称:uchar r_12864byte(void)

函数功能: 读字节

***************************************************************/ uchar r_12864byte(void)

{

uchar i,temp1,temp2;

temp1 = 0;

temp2 = 0;

for(i=0;i<8;i++)

{

temp1=temp1<<1;

sck = 0;

sck = 1;

sck = 0;

if(sid) temp1++;

}

for(i=0;i<8;i++)

{

temp2=temp2<<1;

sck = 0;

sck = 1;

sck = 0;

if(sid) temp2++;

}

return ((0xf0&temp1)+(0x0f&temp2));

}

/************************************************************** 函数名称:void c_12864busy( void )

函数功能: 检测忙函数

**************************************************************/ void c_12864busy( void )

{

do

w_12864byte(0xfc); //11111,RW(1),RS(0),0 while(0x80&r_12864byte());

}

/************************************************************** 函数名称:void w_12864(bit dat_com,uchar byt)

函数功能: 写入函数

相关文档
最新文档