文件名称:
使用AVR单片机在LCD1602上显示DS1302时间数据
开发工具:
文件大小: 7kb
下载次数: 0
上传时间: 2018-05-04
详细说明:
/* ************************************************ * File name: Display_DS1302.c * Function: 设置初始时间并从DS1302中读取时间并且在LCD21602中显示 * Description: * ************************************************/ #include #include #include #include #define SET_1(a,b) a|=(1<0; i-- ) //循环8次移位 { SCLK_0; temp = addr; if(temp&0x01;) DIO_1; //每次传输低字节 else DIO_0; addr>>= 1; //右移一位 SCLK_1; } //发送数据 for (i=8;i>0;i-- ) { SCLK_0; temp=dat; if(temp&0x01;) DIO_1; else DIO_0; dat>>=1; SCLK=1; } RST_0; } /******************************************* *函数名称: Read1302 ( ) *说 明: *功 能: 数据读取子程序 *参 数:读取的地址 *返回值 : 时间数据 *注意事项: ********************************************/ unsigned char Read1302(unsigned char addr) { unsigned char i,temp,dat1,dat2; RST_0; SCLK_0; RST_1; //发送地址 for(i=8;i>0;i-- ) //循环8次移位 { SCLK_0; temp=addr; if(temp&0x01;) DIO_1; //每次传输低字节 else DIO_0; addr>>=1; //右移一位 SCLK_1; } //读取数据 for( i=8;i>0;i--) { if(OUT) tempdate|=0x80; else tempdate&=0x70; SCLK_0; tempdate>>=1; SCLK_1; } RST_0; dat1=tempdate; dat2=dat1/16; //数据进制转换 dat1=dat1; //十六进制转十进制 dat1=dat1+dat2*10; return (dat1); } /******************************************* *函数名称: Initial() *说 明: *功 能: DS1302时间初始化 *参 数: *返回值 : 无 *注意事项: ********************************************/ void Initial(void) { Write1302 (WRITE_PROTECT,0X00); //禁止写保护 Write1302 (WRITE_SECOND,0x56); //秒位初始化 Write1302 (WRITE_MINUTE,0x34); //分钟初始化 Write1302 (WRITE_HOUR,0x12); //小时初始化 Write1302 (WRITE_PROTECT,0x80); //允许写保护 } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.