?? time.c
字號:
/***********************time**********************/
#include "ADUC812.h"
#include "stdio.h"
#include "absacc.h"
#include "plcd_bus.c"
#include "i2c.c"
unsigned char buffer[8],p;
void delayms(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<50;j++);
}
}
void readtime(void)
{
unsigned char i;
I2C_start();
I2C_Send_byte(0x65);
if(I2C_Cack()==1)
{
I2C_stop();
}
for(i=0;i<8;i++)
{
buffer[i]=I2C_Receive_byte();
if(i!=8)
{
I2C_ack();
}
else
{
I2C_nack();
}
}
I2C_stop();
}
void load (void)
{
unsigned char i;
I2C_start();
I2C_Send_byte(0x64);
if(I2C_Cack()==1)
{
I2C_stop();
}
I2C_Send_byte(0xe0);
if(I2C_Cack()==1)
{
I2C_stop();
}
I2C_Send_byte(0x00);
if(I2C_Cack()==1)
{
I2C_stop();
}
I2C_Send_byte(0x30);
if(I2C_Cack()==1)
{
I2C_stop();
}
for(i=1;i<8;i++)
{
I2C_Send_byte(buffer[i]);
if(I2C_Cack()==1)
{
I2C_stop();
}
}
I2C_stop();
}
void time0(void) interrupt 1
{
TH0 = 100;
TL0 = 0;
p++;
readtime();
if(buffer[7] != 0xff)
{
display_data(2,0,buffer[7]); //year//
display_data(7,0,buffer[6]); //month//
display_data(12,0,buffer[5]); //day//
display_data(14,2,buffer[4]); //week//
display_data(4,4,buffer[3]); //hour//
display_data(7,4,buffer[2]); //min//
display_data(10,4,buffer[1]); //sec//
}
}
void main(void)
{
char far dumy;
//unsigned char year,month,day,week,hour,min,sec;
SCON = 0x52;
TMOD=0x21;
TH1=0xfd;
TL1=0xfd; //** 9600 baud **//
TR1=1; //** start timer 1 **//
TI=1;
EA=1;
TMOD = 0x21;
TH0 = 100;
TL0 = 0;
ET0 = 1;
EA = 1;
left_command(lcd_off);
right_command(lcd_off);
lcd_left_clear();
lcd_right_clear();
left_command(lcd_on);
right_command(lcd_on);
display_ascii(0,0,"20 Y M D");
display_ascii(9,2,"Week 1");
display_ascii(4,4," : : ");
TR0 = 1;
while(1)
{
if( RI == 1 )
{
TR0 = 0;
buffer[7]=0x03; //year
buffer[6]=0x11; //mon
buffer[5]=0x28; //day
buffer[4]=0x05; //week
buffer[3]=0x17; //hour
buffer[2]=0x08; //min
buffer[1]=0x00; //sec
load();
}
TR0 = 1;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -