使用AVR单片机在LCD1602上显示DS1302时间数据

时间:2021-05-24 03:51:06
【文件属性】:
文件名称:使用AVR单片机在LCD1602上显示DS1302时间数据
文件大小:7KB
文件格式:RAR
更新时间:2021-05-24 03:51:06
c语言 DS1302 /* ************************************************ * 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); //允许写保护 }
【文件预览】:
Display_DS1302
----Display_DS1302.c(3KB)
----.dep()
----Makefile(17KB)

网友评论