?? ds1302 c51驅(qū)動程序.txt
字號:
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
ACC = number;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_clk = 1;
}
unsigned char WriteRTC_Byte(unsigned char address,unsigned char number) // 向
RTC中寫入一個字節(jié)
{
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_rst = 1;
ACC = address;
ACC <<= 1;
ACC |= 0x80;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
ACC = number;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_clk = 1;
}
void ReadRam(unsigned char data * buffer,unsigned char size) // 從Ram中讀出多
個字節(jié)
{
register unsigned char a,b;
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_rst = 1;
ACC = 0xff;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = 1;
for(a=0;a<size;a++)
{
ACC_0 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_1 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_2 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_3 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_4 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_5 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_6 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_7 = ds1302_dat;
b = ACC;
*(buffer+a)=b;
ds1302_clk = 1;
ds1302_clk = 0;
}
ds1302_rst = 0;
ds1302_clk = 1;
}
void ReadRTC(unsigned char data * buffer,unsigned char size) // 從RTC中讀出多
個字節(jié)
{
register unsigned char a,b;
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_rst = 1;
ACC = 0xbf;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = 1;
for(a=0;a<size;a++)
{
ACC_0 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_1 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_2 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_3 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_4 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_5 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_6 = ds1302_dat;
ds1302_clk = 1;
ds1302_clk = 0;
ACC_7 = ds1302_dat;
b = ACC;
*(buffer+a)=b;
ds1302_clk = 1;
ds1302_clk = 0;
}
ds1302_rst = 0;
ds1302_clk = 1;
}
void WriteRam(unsigned char data * buffer,unsigned char size) // 向Ram中寫入多
個字節(jié)
{
register unsigned char a;
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_rst = 1;
ACC = 0xfe;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
for(a=0;a<size;a++)
{
ACC = *(buffer+a);
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
}
ds1302_rst = 0;
ds1302_clk = 1;
}
void WriteRTC(unsigned char data * buffer,unsigned char size) // 向RTC中寫入多
個字節(jié)
{
// 注意:連續(xù)寫RTC只能是8個字節(jié)一起寫
register unsigned char a;
ds1302_clk = 0;
ds1302_rst = 0;
ds1302_rst = 1;
ACC = 0xbe;
ds1302_dat = ACC_0;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_1;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_2;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_3;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_4;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_5;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_6;
ds1302_clk = 1;
ds1302_clk = 0;
ds1302_dat = ACC_7;
ds1302_clk = 1;
ds1302_clk = 0;
for(a=0;a<size;a++)
{
ACC = *(buffer+a);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -