|
- ///////////////////////////////////////////////////////////////////
- /*名稱:單片機讀取DS1302時鐘芯片 /
- /*作者:周光明 /
- /*時間:2010年12月3日 /
- /*功能: /
- /* /
- /* /
- ///////////////////////////////////////////////////////////////////*/
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define xiemiao 0x80
- #define xiefen 0x82
- #define xieshi 0x84
- #define xieri 0x86
- #define xieyue 0x88
- #define xiezhou 0x8a
- #define xienian 0x8c
- #define dumiao 0x81
- #define dufen 0x83
- #define dushi 0x85
- #define duri 0x87
- #define duyue 0x89
- #define duzhou 0x8b
- #define dunian 0x8d
- #define baohu 0x8e
- uchar bdata CDIO;
- sbit DCE=P2^2;
- sbit DIO=P2^1;
- sbit SCLK=P2^0;
- sbit CDIO_7=CDIO^7;
- /*----------------------------------寫入DS1302--------------------*/
- xieds1302(uchar dizhi,shuju)
- {
- uchar i,temp;
- DCE=0;
- SCLK=0;
- DIO=0;
- DCE=1;
- for(i=0;i<8;i++) //送地址
- {
- SCLK=0;
- temp=dizhi;
- DIO=(bit)(temp&0x01);
- dizhi>>=1;
- SCLK=1;
- }
- for(i=0;i<8;i++) //送數據
- {
- SCLK=0;
- temp=shuju;
- DIO=(bit)(temp&0x01);
- shuju>>=1;
- SCLK=1;
- }
- DCE=0;
- }
- /*----------------------------------從DS1302讀出--------------------*/
- duds1302(uchar dizhi)
- {
- uchar i,temp;
- DCE=0;
- SCLK=0;
- DIO=0;
- DCE=1;
- for(i=0;i<8;i++) //送地址
- {
- SCLK=0;
- temp=dizhi;
- DIO=(bit)(temp&0x01);
- dizhi>>=1;
- SCLK=1;
- }
- for(i=0;i<8;i++) //讀數據
- {
- CDIO_7=DIO;
- SCLK=1;
- CDIO>>=1;
- SCLK=0;
- }
- DCE=0;
- temp=CDIO;
- return(temp);
- }
- //////////////////////////////////////////////////
-
復制代碼
|
|