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

📄 ht1380.c

📁 采用华邦79E834+HT1380+24C04实现全自动抽水将置的源程式。如要疑问可发Email到nwm-2003@163.com。
💻 C
字号:

#include "all_func.h"
#include "display.h"
#include "main_func.h"

	unsigned char Second=0;
	unsigned char Minute=0x58;
	unsigned char Hour=0x23;
	unsigned char Date=0;
	unsigned char Month=0;
	unsigned char Day=0;
	unsigned char Year=0;
	unsigned char Re_Run_T_Min=0;
	unsigned char S_Scnt=0;
bit Sec_Flag;
bit Sec_F;

void init_HT1380(void)
{
	DAT1380_PIN=1;
	CLK1380_PIN=0;
	RST1380_PIN=0;
	Writebyte_to_HT1380(WP_A,0x00);
	Writebyte_to_HT1380(SEC_A,0x00);
}
void Write_HT1380(unsigned char dabuf)
{
	unsigned char i=8;
	while(i)
	{	
		if(dabuf&0x01)DAT1380_PIN=1;
		else DAT1380_PIN=0;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		CLK1380_PIN=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		CLK1380_PIN=0;
		dabuf>>=1;
		i--;
	}
	DAT1380_PIN=1;
}

unsigned char Read_HT1380(void)
{
	unsigned char i=8;
	unsigned char dabuf=0;
	while(i)
	{	
		dabuf>>=1;
		if(DAT1380_PIN==1)dabuf|=0x80;
		CLK1380_PIN=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		CLK1380_PIN=0;
		_nop_();
		i--;
	}
	return dabuf;
}
unsigned char Readbyte_From_HT1380(unsigned char Addr)
{
	unsigned char xx=0;
	RST1380_PIN=1;
	Addr|=0x01;
	Write_HT1380(Addr);
	xx=Read_HT1380();
	RST1380_PIN=0;
	DAT1380_PIN=0;
		_nop_();
		_nop_();
	DAT1380_PIN=1;
	return xx;
}
void Enable_Write(void)
{
	RST1380_PIN=1;
	Write_HT1380(WP_A);
	Write_HT1380(0x00);
	RST1380_PIN=0;
	_nop_();
	_nop_();
}
void Disable_Write(void)
{
	RST1380_PIN=1;
	Write_HT1380(WP_A);
	Write_HT1380(0x80);
	RST1380_PIN=0;
	_nop_();
	_nop_();
}
void Writebyte_to_HT1380(unsigned char Addr,unsigned char dat)
{
	Enable_Write();
	RST1380_PIN=1;
	Write_HT1380(Addr);
	Write_HT1380(dat);
	RST1380_PIN=0;
	_nop_();
	_nop_();
	Disable_Write();
}
void Multi_Read_HT1380(void)
{
	unsigned char j=8;
	unsigned timetable[8];
	RST1380_PIN=1;
	Write_HT1380(0xbf);//send Multi-read command 0xbf
	while(j)
	{
		timetable[j-1]=Read_HT1380();
		j--;
	}
	if(Sec_Flag!=DAT1380_PIN)
	{
		Sec_Flag=DAT1380_PIN;
		Sec_time=100;
		S_Scnt++;
		if(S_Scnt>=60)
		{
			S_Scnt=0;
			if(Re_Run_T_Min!=0)Re_Run_T_Min--;
		}
		//if(Re_Run_T_Min!=0)Re_Run_T_Min--;
	}
	RST1380_PIN=0;
	DAT1380_PIN=0;
	Second=timetable[7];
	Minute=timetable[6];
	Hour=timetable[5];
	Date=timetable[4];
	Month=timetable[3];
	Day=timetable[2];
	Year=timetable[1];
	DAT1380_PIN=1;

}
void Multi_Write_HT1380(void)
{
	unsigned char Address;
	unsigned char timetable[8];
	unsigned char *p;
	unsigned char i=8;
	p=timetable;
	Enable_Write();
	timetable[0]=Second;
	timetable[1]=Minute;
	timetable[2]=Hour;
	timetable[3]=Date;
	timetable[4]=Month;
	timetable[5]=Day;
	RST1380_PIN=1;
	timetable[6]=Year;
	timetable[7]=0;
	Write_HT1380(0xbe); //send Multi-write command 0xbe
	while(i)
	{
		Write_HT1380(*p);
		i--;
		p++;
	}
	RST1380_PIN=0;
	_nop_();
	_nop_();
	Disable_Write();
}

⌨️ 快捷键说明

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