ds1302数码管时钟例程+多文件

本文档提供了DS1302时钟模块的C语言编程实例,包括key.c、main.c和system.c三个源文件,以及key.h头文件。通过这些文件,读者可以了解到如何在嵌入式系统中实现数码管显示和DS1302实时时钟的交互操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

key.c

#include "key.h"	 //把led.h文件包含进来
#include "system.h"	   //把timer0.h文件包含进来

uchar code smgduan[17]={
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

uchar DisplayData[8];	//定义8位数组
//---DS1302 写入和读取时分秒的地址命令---//
//---秒分时日月周年 最低位读写位;-------//
uchar code READ_RTC_ADDR[7] = {
   0x81, 0x83, 0x85, 0x87, 0x89, 0x8b,
0x8d};
uchar code WRITE_RTC_ADDR[7] = {
   0x80, 0x82, 0x84, 0x86, 0x88, 0x8a,
0x8c};
//---DS1302 时钟初始化2016  5  7 日星期六 12  00 00秒。---//
//---存储顺序是秒分时日月周年,存储格式是用 BCD 码---//
uchar TIME[7] = {
   0, 0x27, 0x23, 0x07, 0x05, 0x06, 0x16};

void Dig_Poll()	 //数码管显示
{
   
	static	uchar i;
	
	P0=0x00;//消隐
	switch(i)	 //位选,选择点亮的数码管,
	{
   
		case(0):
			LSA=1;LSB=1;LSC=1; P0=DisplayData[0];break;//显示第0
		case(1):
			LSA=0;LSB=1;LSC=1; P0=DisplayData[1];break;//显示第1
		case(2):
			LSA=1;LSB=0;LSC=1; P0=DisplayData[2];break;//显示第2
		case(3):
			LSA=0;LSB=0;LSC=1; P0=DisplayData[3];break;//显示第3
		case(4):
			LSA=1;LSB=1;LSC=0; P0=DisplayData[4];break;//显示第4 
		case(5):
			LSA=0;LSB=1;LSC=0; P0=DisplayData[5];break;//显示第5 
		case(6):
			LSA=1;LSB=0;LSC=0; P0=DisplayData[6];break;//显示第6 
		case(7):
			LSA=0;LSB=0;LSC=0; P0=DisplayData[7];break;//显示第7	
	}	

	i++;	//延时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值