#include <REGX52.H>
void lcd_initial();
char LCD_commend(unsigned char com);
void LCD_write(unsigned char word);
void DS1302_initial();
char DS1302_read(unsigned char commend);
char DS1302_commend(unsigned char commend,Data);
sbit RS=P2^6;
sbit RW=P2^5;
sbit E=P2^7;
sbit DB=P0;
sbit DS1302_SCLK=P3^6;
sbit DS1302_IO=P3^4;
sbit DS1302_CE=P3^5;
void DS1302_initial()
{
DS1302_CE=0;
DS1302_SCLK=0;
}
char DS1302_commend(unsigned char commend,Data)
{
int i;
DS1302_CE=1;
for(i=0;i<8;i++)
{
DS1302_IO=commend&(0x01<<i);
DS1302_SCLK=1;
DS1302_SCLK=0;
}
for(i=0;i<8;i++)
{
DS1302_IO=Data&(0x01<<i);
DS1302_SCLK=1;
DS1302_SCLK=0;
}
DS1302_CE=0;
}
char DS1302_read(unsigned char commend)
{
char i,date=0x01;
DS1302_CE=1;
for(i=0;i<8;i++)
{
DS1302_IO=commend&(0x01<<i);
DS1302_SCLK=0;
DS1302_SCLK=1;
}
for(i=0;i<8;i++)
{
if(DS1302_IO)
{
date|=0x01<<i;
DS1302_SCLK=1;
DS1302_SCLK=0;
}
}
DS1302_CE=0;
return date;
}
void lcd_initial()
{
LCD_commend(0x38);
LCD_commend(0x0F);
LCD_commend(0x30);
//LCD_commend(0x01);
LCD_commend(0x80);
//LCD_commend(0x02);
}
char LCD_commend(unsigned char com)
{
int i=2;
E=0;
RS=0;
RW=0;
P0=com;E=1;
while(--i);
E=0;
}
void LCD_write(unsigned char word)
{
int i;
RS=1;
RW=0;
P0=word;E=1;
while(--i);
E=0;
}
void main()
{char c;
int i;
char a[]="RTC";
lcd_initial();//lcd初始化
DS1302_initial();//DS1302初始化
DS1302_commend(0x80,0x03);
c=DS1302_read(0x81);
LCD_write(c);
}
有问题,功能无法实现
最新推荐文章于 2024-10-05 16:49:49 发布