📄 ds1302_main.c
字号:
//时钟电路DS1302试验程序
//使用1602液晶显示
#include "iom16v.h"
#include "ds1302.h"
#include "1602.h"
uchar aa[]={'-'};
//时钟数据
unsigned char time_data[8] = {0x21,0x11,0x11,0x12,0x18,0x52,0x00,0x02};
//在16M延时1ms的延时函数
void s_1ms(unsigned int ms)
{
unsigned int aa;
for(;ms>=1;ms--)
{
for(aa=0;aa<=2000;aa++)
{;}
}
}
//主函数
void main()
{
unsigned char temp;
//端口初始化
PORTA = 0xFF;
DDRA = 0xFF;
PORTB = 0xF0;
DDRB = 0xFF;
PORTC = 0x7F;
DDRC = 0x80;
PORTD = 0x00;
DDRD = 0xFF;
s_1ms(20);
//1602液晶初始化
LcdInit();
//时钟芯片DS1302初始化
ds1302_init();
s_1ms(10);
//写入初始的时间
ds1302_write_time(time_data);
while (1) {
s_1ms(100);
//读出时钟数据
ds1302_read_time(time_data);
//显示年份
WriteNum(1,3,2); //2
WriteNum(1,4,0); //0
temp = (time_data[1] >> 4) ;
WriteNum(1,5,temp);
temp = (time_data[1] & 0x0F);
WriteNum(1,6,temp);
WriteChar(1,7,2,aa);
temp = (time_data[2] >> 4);
WriteNum(1,8,temp);
temp = (time_data[2] & 0x0F);
WriteNum(1,9,temp);
WriteChar(1,10,2,aa);
temp = (time_data[3] >> 4);
WriteNum(1,11,temp);
temp = (time_data[3] & 0x0F);
WriteNum(1,12,temp);
temp = (time_data[4] >> 4);
WriteNum(2,4,temp);
temp = (time_data[4] & 0x0F);
WriteNum(2,5,temp);
WriteChar(2,6,2,aa);
temp = (time_data[5] >> 4);
WriteNum(2,7,temp);
temp = (time_data[5] & 0x0F);
WriteNum(2,8,temp);
WriteChar(2,9,2,aa);
temp = (time_data[6] >> 4);
WriteNum(2,10,temp);
temp = (time_data[6] & 0x0F);
WriteNum(2,11,temp);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -