void lcd_cmd(unsigned char x)
{
RW=0;
RS=0;
DATA&=0X0f;
EN=1;
DATA|=x&0Xf0;
EN=0;
Delay1KTCYx(10);
DATA&=0X0f;
EN=1;
DATA|x<<4)&0xf0);
EN=0;
Delay1KTCYx(10);
}
void lcd_data(unsigned char x)
{
RW=0;
RS=1;
DATA&=0X0f;
EN=1;
DATA|=x&0Xf0;
EN=0;
Delay1KTCYx(10);
DATA&=0X0f;
EN=1;
DATA|x<<4)&0xf0); EN=0; Delay1KTCYx(10); }
void lcd_init(void) { lcd_cmd(0x03); lcd_cmd(0x02); lcd_cmd(0x28); lcd_cmd(0x0c); lcd_cmd(0x06); lcd_cmd(0x01); }
void lcd_str(unsigned char *str) { while(*str) { lcd_data(*str);str++; } }
void get_time()
{ StartI2C(); IdleI2C(); WriteI2C(0xd0); IdleI2C(); WriteI2C(0x00);
IdleI2C(); RestartI2C(); IdleI2C(); WriteI2C(0xd1);
IdleI2C(); s=ReadI2C(); IdleI2C(); AckI2C();
IdleI2C(); m=ReadI2C(); IdleI2C(); AckI2C();
IdleI2C(); h=ReadI2C(); IdleI2C(); NotAckI2C(); IdleI2C(); StopI2C(); }
void set_time(unsigned char s,unsigned char m,unsigned char h)
{ StartI2C(); IdleI2C(); WriteI2C(0xd0); IdleI2C(); WriteI2C(0x00);
IdleI2C(); WriteI2C(s); IdleI2C(); WriteI2C(m);
IdleI2C(); WriteI2C(h); IdleI2C(); StopI2C(); }
char bcd_int(int x) { return (((x>>4)&0x0f)*10)+(x&0x0f);
}
AI giúp em giải thích đoạn code này được không ạ > Em cảm ơn
{
RW=0;
RS=0;
DATA&=0X0f;
EN=1;
DATA|=x&0Xf0;
EN=0;
Delay1KTCYx(10);
DATA&=0X0f;
EN=1;
DATA|x<<4)&0xf0);
EN=0;
Delay1KTCYx(10);
}
void lcd_data(unsigned char x)
{
RW=0;
RS=1;
DATA&=0X0f;
EN=1;
DATA|=x&0Xf0;
EN=0;
Delay1KTCYx(10);
DATA&=0X0f;
EN=1;
DATA|x<<4)&0xf0); EN=0; Delay1KTCYx(10); }
void lcd_init(void) { lcd_cmd(0x03); lcd_cmd(0x02); lcd_cmd(0x28); lcd_cmd(0x0c); lcd_cmd(0x06); lcd_cmd(0x01); }
void lcd_str(unsigned char *str) { while(*str) { lcd_data(*str);str++; } }
void get_time()
{ StartI2C(); IdleI2C(); WriteI2C(0xd0); IdleI2C(); WriteI2C(0x00);
IdleI2C(); RestartI2C(); IdleI2C(); WriteI2C(0xd1);
IdleI2C(); s=ReadI2C(); IdleI2C(); AckI2C();
IdleI2C(); m=ReadI2C(); IdleI2C(); AckI2C();
IdleI2C(); h=ReadI2C(); IdleI2C(); NotAckI2C(); IdleI2C(); StopI2C(); }
void set_time(unsigned char s,unsigned char m,unsigned char h)
{ StartI2C(); IdleI2C(); WriteI2C(0xd0); IdleI2C(); WriteI2C(0x00);
IdleI2C(); WriteI2C(s); IdleI2C(); WriteI2C(m);
IdleI2C(); WriteI2C(h); IdleI2C(); StopI2C(); }
char bcd_int(int x) { return (((x>>4)&0x0f)*10)+(x&0x0f);
}
AI giúp em giải thích đoạn code này được không ạ > Em cảm ơn
Comment