pro nào giúp mình biết ý nghĩa của mấy dòng code này với.
Mình đọc mà hiểu ko hết, cái này mình chỉ mới học còn gà lắm, phiền các pro giúp mình chi tiết 1 chút nhé!!
thanks nhìu
Mình đọc mà hiểu ko hết, cái này mình chỉ mới học còn gà lắm, phiền các pro giúp mình chi tiết 1 chút nhé!!
thanks nhìu
Code:
#include <AT89x52.h>
#include <Delay.h>
#include "intrins.h"
#define dataso P1_0
#define clockso P1_1
#define latchso P1_2
#define SDA P0_0
#define SCL P0_1
#define On 1
#define Off 0
// DS1307
#define psec 0x00
#define pmin 0x01
#define phour 0x02
#define pday 0x03
#define pdate 0x04
#define pmonth 0x05
#define pyear 0x06
#define pcontrol 0x07
#define stbangso 10
#define soled 10
unsigned char idata buffht[soled];
unsigned char tam1=0,tam2=0,tam3=0,tam4=0,tam5=0,tam6=0;
unsigned char i,adr_so,chiso,dem;
unsigned char gio,phut,giay,ngay,thang,nam,ngay1,ngay2,bienngay1,bienngay2,bienngay3;
unsigned int num,bienngay;
bit nhapnhay = 0;
//============= RTC DS1307 ==================
//Dien giai tu day
void start(void)
{
SCL=0;
SDA=1;
_nop_();_nop_();_nop_();
SCL=1;
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
SCL=1;
SDA=0;
_nop_();_nop_();_nop_();
SCL=0;
}
void stop(void)
{
SCL=0;
SDA=0;
_nop_();_nop_();_nop_();
SCL=1;
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
SCL=1;
SDA=1;
_nop_();_nop_();_nop_();
SCL=0;
}
bit write_data(unsigned char chr)
{
unsigned char temp,ack;
for(temp=0;temp<8;temp++)
{
SDA = (chr & 0x80);//
SCL=1;
SCL=0;
chr=chr<<1;
}
SDA=1;
SCL=1;
ack=SDA;
SCL=0;
return(ack);
}
unsigned char convertBCD(unsigned char _data)
{
unsigned char temp;
temp=(_data/10<<4)|(_data%10&0x0F);
return temp;
}
unsigned char read_data(void)
{
unsigned char temp1,temp2=0;
for(temp1=0;temp1<8;temp1++)
{
SCL=1;
temp2=temp2<<1;
temp2=temp2|((unsigned char)(SDA));//temp2 =0x01,
SCL=0;
} // ra duoc 1 byte
return(temp2);
}
void write_RTC(unsigned char address, unsigned char _data)
{
bit status;
start();
write_data(0xD0);
write_data(address);
write_data(_data);
stop();
start();
status=write_data(0xD0);
while(status)
{
start();
status=write_data(0xd0);
}
}
unsigned char read_RTC(unsigned char address)
{
unsigned char k;
start();
write_data(0xD0);
write_data(address);
start();
write_data(0xD1);
k=read_data();
stop();
return ((k>>4)*10+(k&0x0F));
}
unsigned char read_RTC_chuan(unsigned char address)
{
unsigned char k;
start();
write_data(0xD0);
write_data(address);
start();
write_data(0xD1);
k=read_data();
stop();
return k;
}
//Ket thuc o day
//////End DS1307//////////
////////////////////////////////////////////
void main (void)
{
P0=0xff;
P1=0x00;
P2=0x00;
P3=0x00;
} // of main
