资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
/*系统名称:电子万年历日期: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 年 月 日; /第二行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 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+)for(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(sid) 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)函数功能: 写入函数*/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_12864(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)函数功能:读一个字节(下降沿)*/uchar 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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号