📄 c51_check.c
字号:
/*********************************************************/
/*DS1202.C: DS1202 real time clock chip BIOS--c51_check.c*/
/*单片机各功能测试程序 */
/*********************************************************/
/* Bit Address Assignment*/
sbit RTC_RST= 0x95; /* P1.5 */
sbit RTC_CLK= 0x96; /* P1.6 */
sbit RTC_DIO= 0x97; /* P1.7 */
void RtcDelay(void); /* Photo type of routine */
void RtcDelay()
{
xdata unsigned char i;
for (i=0;i<50;i++);
}
void RtcWrite(char, char); /* Photo type of routine */
void RtcWrite(char command, char byte_data)
{
xdata unsigned char i;
command=((command<<1)&0xfe)|0x80;
RTC_CLK= 0;
RtcDelay();
RTC_RST= 0;
RtcDelay();
RTC_RST= 1;
RtcDelay();
for (i=0;i<8;i++)
{
RTC_CLK=0;
RtcDelay();
RTC_DIO=((command>>i) & 0x01);
RtcDelay();
RTC_CLK=1;
RtcDelay();
}
for (i=0;i<8;i++)
{
RTC_CLK=0;
RtcDelay();
RTC_DIO=((byte_data>>i)& 0x01);
RtcDelay();
RTC_CLK=1;
RtcDelay();
}
RTC_RST=0;
RtcDelay();
RTC_CLK=0;
RtcDelay();
RTC_RST=1;
RtcDelay();
RTC_CLK=1;
RtcDelay();
RTC_RST=0;
RtcDelay();
RTC_CLK=0;
RtcDelay();
}
char RtcRead(char); /* Photo type of routine */
char RtcRead(char command)
{
xdata unsigned char i,j;
command=(command<<1)|0x81;
RTC_CLK=0;
RtcDelay();
RTC_RST= 0;
RtcDelay();
RTC_RST= 1;
RtcDelay();
for (i=0;i<8;i++)
{
RTC_CLK=0;
RtcDelay();
RTC_DIO=((command>>i) & 0x01);
RtcDelay();
RTC_CLK=1;
RtcDelay();
}
RTC_DIO=1;
RTC_CLK=0;
RtcDelay();
for (i=0;i<8;i++)
{
RTC_CLK=1;
RtcDelay();
if (RTC_DIO==1)
j=(j>>1)|0x80;
else
j=(j>>1)&0x7f;
RTC_CLK=0;
RtcDelay();
}
RTC_RST=0;
RTC_DIO=0;
RtcDelay();
return (j);
}
void RtcSetup(char, char); /* Photo type of routine */
void RtcSetup(char command, char byte_data)
{
RtcWrite(0x07,0x00);
RtcWrite(command,byte_data);
RtcWrite(0x07,0x80);
}
1999-10-20
《单片机编程世界》
返回
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -