ds1302_万年历.doc

上传人:cl****1 文档编号:545958815 上传时间:2023-11-09 格式:DOC 页数:12 大小:48.51KB
返回 下载 相关 举报
ds1302_万年历.doc_第1页
第1页 / 共12页
ds1302_万年历.doc_第2页
第2页 / 共12页
ds1302_万年历.doc_第3页
第3页 / 共12页
ds1302_万年历.doc_第4页
第4页 / 共12页
ds1302_万年历.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《ds1302_万年历.doc》由会员分享,可在线阅读,更多相关《ds1302_万年历.doc(12页珍藏版)》请在金锄头文库上搜索。

1、/*系统名称:电子万年历日期:2008,7,18功能描述:LCD12864串行模式显示,DS1302读取时间年月份,18B20 读取温度*/#include #include #include #define uchar unsigned char#define uint unsigned int/*-LCD12864相关声明-*/#define com 0#define dat 1sbit cs =P16;sbit sid=P14;sbit sck=P12;uchar code TAB1=电字钟w418781840;/第一行初始化.uchar code TAB2=20 年 月 日; /第二行

2、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=P24; /* 实时时钟的时钟线引脚*/sbit T_IO=P25; /* 实时时钟的数据线*/sbit T_RST=P26; /* 实时时钟的复位线引脚*/uchar bdata datbyte;sbit

3、 datbyte0=datbyte0;sbit datbyte7=datbyte7; /*-18B20相关声明-*/uchar dis116;sbit DQ=P10; /*DS18B20温度检测*/ /*-键盘相关声明-*/sbit key=P32; /功能键sbit key1=P33; /只有加1键uchar sum,keyflag=0; /调用时,分,秒,标志,调用键盘处理标志./*-以下为LCD12864相关函数-*/* 函数名称:void delay1ms(uint x)函数功能: 延时1MS*/void delay1ms(uint x)uint i,j;for(i=0;ix;i+)f

4、or(j=0;j120;j+); /*函数名称:void w_12864byte(uchar byte)函数功能: 写字节*/void w_12864byte(uchar byte)uchar i;for(i=0;i8;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;i8;i+)temp1=temp11;sck = 0;sck = 1; sck = 0;if(s

5、id) temp1+;for(i=0;i8;i+)temp2=temp21;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),0while(0x80&r_12864byte(); /*函数名称:void w_12864(bit dat_com,uchar byt)函数功能: 写入函

6、数*/void w_12864(bit dat_com,uchar byt)uchar temp;if(dat_com=0) /为零,写入指令 temp=0xf8; /11111,RS(0),RW(0),0else /否则,写入数据temp=0xfa; /11111,RS(1),RW(0),0 cs=1;c_12864busy();w_12864byte(temp);w_12864byte(byt&0xf0); /写入高四位w_12864byte(byt4); /写入低四位cs=0;/*函数名称:void init_12864(void)函数功能:初始化12864*/void init_128

7、64(void)w_12864(com,0x30); /基本指令功能.w_12864(com,0x0c); /显示打开,关光标,反白关.w_12864(com,0x01); /清屏指令.w_12864(com,0x06); /AC自动加一/*-以下为DS1302相关函数-*/*函数名称:void w_1302byte(uchar date)函数功能:写一个字节(上升沿)*/void w_1302byte(uchar date) uchar i; datbyte=date;for(i=0;i=1;/*函数名称:uchar r_1302byte(void)函数功能:读一个字节(下降沿)*/ucha

8、r r_1302byte(void) uchar i;datbyte=0;for(i=0;i=1;return(datbyte);/*函数名称:void write_1302(uchar addr,uchar date)函数功能: 指定位置写数据*/ void write_1302(uchar addr,uchar date) T_RST=0;T_CLK=0;T_RST=1;w_1302byte(addr);w_1302byte(date);T_CLK=0;T_RST=0; /*函数名称:uchar read_1302(uchar addr)函数功能: 指定位置读数据*/ uchar read_1302(uchar addr) uchar dat1,dat2,temp;T_RST=0;T_CLK=0;T_RST=1;w_1302byte(addr);temp=r_1302byte();T_RST=0;T_CLK=0;dat1=temp/16;dat2=temp%16;temp=dat1*10+dat2;return(temp); /*函数名称:void init_1302(void)函数功能: 初始化*/void

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号