BYTE read7279(BYTE Command) /*HD7279读函数*/ {
Send_Byte(Command); return(Receive_Byte()); }
/*HD7279发送字节函数*/
void Send_Byte(BYTE Data_Out) {
BYTE i;
Long_Delay(); for(i=0;i<8;i++) {
if(Data_Out&0x80) Set_Bit(HD7279_Data); else Clear_Bit(HD7279_Data); Set_Bit(HD7279_Clk); Short_Delay();
Clear_Bit(HD7279_Clk); Short_Delay();
Data_Out=Data_Out<<1; }
Clear_Bit(HD7279_Data); }
BYTE Receive_Byte(void) /*HD7279接收字节函数*/ {
BYTE i,Data_In;
Set_Bit(HD7279_Data); Long_Delay(); for(i=0;i<8;i++) {
Set_Bit(HD7279_Clk); Short_Delay();
Data_In=Data_In<<1; if(HD7279_Data)
Data_In=Data_In|0x01; Clear_Bit(HD7279_Clk); Short_Delay(); }
Clear_Bit(HD7279_Data); return(Data_In);
}
/*日期显示*/
void discalendar(void) {
write7279(DECODE0,day); write7279(DECODE0+1,day/10);
write7279(DECODE0+2,month); write7279(DECODE0+3,month/10);
write7279(DECODE0+4,year); write7279(DECODE0+5,(year/10)); write7279(DECODE0+6,(year/100)); write7279(DECODE0+7,year/1000); }
/*时间显示*/ void distime(void) {
write7279(DECODE0, second); write7279(DECODE0+1,second/10);
write7279(UNDECODE+2,0x01);
write7279(DECODE0+3,minute); write7279(DECODE0+4,minute/10);
write7279(UNDECODE+5,0x01);
write7279(DECODE0+6,hour); write7279(DECODE0+7,hour/10); }