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

📄 ds1302.c

📁 单片机汇编例程学习,大量的汇编例程
💻 C
字号:
#include <Intrins.h>#include <At89x51.h>#include "constant.h"#include "function.h"#include "variable.h"#include "chinese_const.h"sbit a0=ACC^0;sbit a1=ACC^1;sbit a2=ACC^2;sbit a3=ACC^3;sbit a4=ACC^4;sbit a5=ACC^5;sbit a6=ACC^6;sbit a7=ACC^7;//#define DS1302_CLK P1_4//#define DS1302_IO P1_5//#define DS1302_RST P1_6void Reset_Ds1302(void){   DS1302_CLK=0;   DS1302_RST=0;	 _nop_();	 DS1302_RST=1;}void Ds1302_Write_Byte(unsigned char byte){	ACC=byte;	DS1302_IO=a0;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a1;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a2;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a3;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a4;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a5;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a6;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();	DS1302_IO=a7;_nop_();DS1302_CLK=0;_nop_();DS1302_CLK=1;_nop_();}unsigned char Ds1302_Read_Byte(void){	DS1302_IO=1;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a0=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a1=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a2=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a3=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a4=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a5=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a6=DS1302_IO;	DS1302_CLK=1;_nop_();DS1302_CLK=0;_nop_();a7=DS1302_IO;	return ACC;}unsigned char Ds1302_Read_Register(unsigned char address){unsigned char i;	Reset_Ds1302();	Ds1302_Write_Byte(address);	i=Ds1302_Read_Byte();  DS1302_RST=0;	DS1302_CLK=0;	return i;}void Ds1302_Write_Register(unsigned char address,unsigned char content){	Reset_Ds1302();	Ds1302_Write_Byte(address);	Ds1302_Write_Byte(content);  DS1302_RST=0;	DS1302_CLK=0;}void Ds1302_Ini(void){	Ds1302_Write_Register(0x8e,0x00);//Ds1302 write enable:10001110,0	Ds1302_Write_Register(0x80,0x50);//Ds1302 sec,same as enable osc	Ds1302_Write_Register(0x82,0x58);//Ds1302 min	Ds1302_Write_Register(0x84,0x23);//Ds1302 hour	Ds1302_Write_Register(0x86,0x19);//Ds1302 day	Ds1302_Write_Register(0x88,0x12);//Ds1302 month	Ds1302_Write_Register(0x8a,0x5);//Ds1302 week	Ds1302_Write_Register(0x8c,0x04);//Ds1302 year	Ds1302_Write_Register(0x8e,0x80);//Ds1302 write disable:10001110,0}void Ds1302_Demo(void){unsigned char sec,min,hour,day,month,week,year;	EA=0;	Reset_Ds1302();	Ds1302_Write_Byte(0xbf);	sec=Ds1302_Read_Byte();	min=Ds1302_Read_Byte();	hour=Ds1302_Read_Byte();	day=Ds1302_Read_Byte();	month=Ds1302_Read_Byte();	week=Ds1302_Read_Byte();	year=Ds1302_Read_Byte();	EA=1; 	DS1302_RST=0;	DS1302_CLK=0;	Write_Command(LCD_LINE3_ADDR);//for lcd display 	Write_Data(NumberToCode[2]);	Write_Data(NumberToCode[0]);		Write_Command(LCD_LINE3_ADDR+1);	Write_Data(NumberToCode[(year&0xf0)>>4]);	Write_Data(NumberToCode[year&0x0f]);	  	Lcd_Display_Char(3,3,'Y');	Write_Command(LCD_LINE3_ADDR+3);	Write_Data(NumberToCode[(week&0xf0)>>4]);	Write_Data(NumberToCode[week&0x0f]);		Write_Command(LCD_LINE4_ADDR);	Write_Data(NumberToCode[(month&0xf0)>>4]);	Write_Data(NumberToCode[month&0x0f]);		Write_Command(LCD_LINE4_ADDR+1);	Write_Data('-');	Write_Data(NumberToCode[(day&0xf0)>>4]);		Write_Command(LCD_LINE4_ADDR+2);	Write_Data(NumberToCode[day&0x0f]);	Write_Data(' ');		Write_Command(LCD_LINE4_ADDR+3);	Write_Data(NumberToCode[(hour&0xf0)>>4]);	Write_Data(NumberToCode[hour&0x0f]);		Write_Command(LCD_LINE4_ADDR+4);	Write_Data(':');	Write_Data(NumberToCode[(min&0xf0)>>4]);	Write_Command(LCD_LINE4_ADDR+5);	Write_Data(NumberToCode[min&0x0f]);		Write_Data(':');	Write_Command(LCD_LINE4_ADDR+6);	Write_Data(NumberToCode[(sec&0xf0)>>4]);	Write_Data(NumberToCode[sec&0x0f]);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -