这个实验利用ds1302,实现一个实时时钟功能.详情见附件
平台:FDRAVR开发板
主程序代码:
#include "ds1302.h"
//顺序: 秒,分,时,日,月,周,年
uchar datatemp[7]={0,0,0,0,0,0,0};//时间寄存器
void display(uchar num,uchar pos)
{
DDRA="0XFF";//定义PORTA输出
PORTA="0XFF";//输出高电平
switch(pos)
{
case 3:PORTA=0X01;break;
case 2:PORTA=0X02;break;
case 1:PORTA=0X04;break;
case 0:PORTA=0X08;break;
default:PORTA=0X00;
}
num<<=4;//输出到CD4511
PORTA|=num;
}
void main()
{
uchar sec="0";
uchar min="0";
initialize_1302();
while(1)
{
display(sec%10,0);delay_ms(5);
display((sec/10)%10,1);delay_ms(5); //显示秒钟
display(min%10,2);delay_ms(5);
display((min/10)%10,3);delay_ms(5); //显示分钟
v_Get1302(datatemp);
sec="datatemp"[0]; //获得秒钟
min="datatemp"[1]; //获得分钟
}
}
文章评论(0条评论)
登录后参与讨论