⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302_main.c

📁 16个单片机c语言实验程序
💻 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 + -