亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ds1302 c51驅動程序.txt

?? c51經典子程序代碼全集
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
        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 ReadSec(void)    // 從RTC中讀出秒字節
{
    return ReadRTC_Byte(0);
}

unsigned char ReadMin(void)    // 從RTC中讀出分字節
{
    return ReadRTC_Byte(1);
}

unsigned char ReadHr(void)    // 從RTC中讀出時字節
{
    return ReadRTC_Byte(2);
}

unsigned char ReadDate(void)    // 從RTC中讀出日字節
{
    return ReadRTC_Byte(3);
}

unsigned char ReadMonth(void)    // 從RTC中讀出月字節
{
    return ReadRTC_Byte(4);
}

unsigned char ReadDay(void)    // 從RTC中讀出星期字節
{
    return ReadRTC_Byte(5);
}

unsigned char ReadYear(void)    // 從RTC中讀出年字節
{
    return ReadRTC_Byte(6);
}

void WriteSec(unsigned char number)    // 向RTC中寫入秒字節
{
    WriteRTC_Byte(0,number);
}

void WriteMin(unsigned char number)    // 向RTC中寫入分字節
{
    WriteRTC_Byte(1,number);
}

void WriteHr(unsigned char number)    // 向RTC中寫入時字節
{
    WriteRTC_Byte(2,number);
}

void WriteDate(unsigned char number)    // 向RTC中寫入日字節
{
    WriteRTC_Byte(3,number);
}

void WriteMonth(unsigned char number)    // 向RTC中寫入月字節
{
    WriteRTC_Byte(4,number);
}

void WriteDay(unsigned char number)    // 向RTC中寫入星期字節
{
    WriteRTC_Byte(5,number);
}

void WriteYear(unsigned char number)    // 向RTC中寫入年字節
{
    WriteRTC_Byte(6,number);
}

void WriteControl(unsigned char number)    // 向慢速充電控制寄存器寫入控制字節
{
    WriteRTC_Byte(8,number);
}

void EnableWP(void)    // 禁止寫保護
{
    WriteRTC_Byte(7,0);
}

void DisableWP(void)    // 允許寫保護
{
    WriteRTC_Byte(7,0x80);
}

void main(void)
{
    unsigned char sec,min,hr,date,month,day,year,number;
    unsigned char data buffer1[32] = 
{32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,5
8,59,60,61,62,63};
    unsigned char data buffer2[8] = {45,45,15,13,3,2,01,0};
    ReadRTC(buffer2,8);
    EnableWP();
    
    WriteControl(0xaa);
    
    WriteRam(buffer1,32);
    WriteRTC(buffer2,8);
    DisableWP();
    ReadRam(buffer1,32);
    ReadRTC(buffer2,8);
    sec = ReadSec();
    min = ReadMin();
    hr = ReadHr();
    date = ReadDate();
    month = ReadMonth();
    day = ReadDay();
    year = ReadYear();
    ACC = 0;
}
/*注意事項:
1.每次上電,必須把秒寄存器高位(第7位)設置為0,時鐘才能走時。
2.如果需要寫入數據和時鐘日歷信息,必須把“寫保護”寄存器設置成為0,方法入下:
    EnableWP();    
3.使能“慢速充電”,方法如下:
    WriteControl(0xaa);
*/

/*
    內部時鐘日歷地址圖,始終日歷用BCD碼儲存
    0:秒
    1:分
    2:小時
    3:日期
    4:月份
    5:星期
    6:年
    7:寫保護寄存器
    8:慢速充電寄存器
*/ 

不勝感激!!但是還有問題想探討一番! [digital_king ] [19次] 01-5-24 下午 03:17:37 
真是雪中送碳呀!但是有一事不明,
我開始編得時候,也用了Acc,但是導師說不能用這個通用的累加寄存器,用之前還要將
原先的斷點保護起來!不知道,存不存在這個問題!??
謝謝你!
我的郵箱是greer@21cn.com  qq是10461207,歡迎和我聯系!  

當然是隨機的 [方塘] [4次] 01-5-24 下午 04:19:05 
當然是隨機的,你有設初值嗎? 

我當然設初值了!? [digital_king ] [3次] 01-5-24 下午 04:24:44 

例子 [方塘] [9次] 01-5-24 下午 06:08:27 
Sub_Write1302:
           MOV   DPTR, #Init_Date  ;把日期,時間寫入 DS1302
           MOV   R0,   #YearH
           MOV   R4,   #8
W_1302:    MOVX  A,    @DPTR
           MOV   @R0,  A
           INC   R0
           INC   DPTR
           DJNZ  R4,   W_1302
           LCALL W_1302Time        ;寫時間子程序
           LCALL W_1302Time        
           RET


當函數調用是沒有問題的 [shiaf] [11次] 01-5-24 下午 07:47:37 

DS1302 C51程序 [方塘] [23次] 01-7-1 上午 09:49:30 
/*********************************************************************/
/*                實時時鐘模塊            時鐘芯片型號:DS1302       */
/*程序設計:zhaojunjie                    日期:2001-06-08           */
/*********************************************************************/
sbit     T_CLK      = P2^7;   /*實時時鐘時鐘線引腳 */
sbit     T_IO       = P1^4;   /*實時時鐘數據線引腳 */
sbit     T_RST      = P1^5;   /*實時時鐘復位線引腳 */
/********************************************************************  
*
* 名稱: v_RTInputByte
* 說明: 
* 功能: 往DS1302寫入1Byte數據
* 調用:
* 輸入: ucDa 寫入的數據 
* 返回值: 無
***********************************************************************/
void  v_RTInputByte(uchar  ucDa)  
{                               
    uchar  i;
    ACC = ucDa;
    for(i=8; i>0; i--)
    {
          T_IO = ACC0;          /*相當于匯編中的  RRC  */
         T_CLK = 1;
         T_CLK = 0;
         ACC = ACC >> 1;   
     }     
}
/********************************************************************  
*
* 名稱: uchar uc_RTOutputByte
* 說明: 
* 功能: 從DS1302讀取1Byte數據
* 調用: 
* 輸入: 
* 返回值: ACC
***********************************************************************/
uchar uc_RTOutputByte(void)  
{                             
    uchar i;
    for(i=8; i>0; i--)
    {
         ACC = ACC >>1;       /*相當于匯編中的  RRC  */
          ACC7 = T_IO;
         T_CLK = 1;
         T_CLK = 0;
    }     
    return(ACC); 
}
/********************************************************************  
*
* 名稱: v_W1302
* 說明: 先寫地址,后寫命令/數據
* 功能: 往DS1302寫入數據
* 調用: v_RTInputByte() 
* 輸入: ucAddr: DS1302地址, ucDa: 要寫的數據
* 返回值: 無
***********************************************************************/
void  v_W1302(uchar ucAddr, uchar ucDa)
{
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    v_RTInputByte(ucAddr);      /* 地址,命令 */
    v_RTInputByte(ucDa);        /* 寫1Byte數據*/
    T_CLK = 1;
    T_RST =0;
} 
/********************************************************************  
*
* 名稱: uc_R1302
* 說明: 先寫地址,后讀命令/數據
* 功能: 讀取DS1302某地址的數據
* 調用: v_RTInputByte() , uc_RTOutputByte()
* 輸入: ucAddr: DS1302地址
* 返回值: ucDa :讀取的數據
***********************************************************************/
uchar  uc_R1302(uchar ucAddr)
{
    uchar ucDa;
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    v_RTInputByte(ucAddr);      /* 地址,命令 */
    ucDa = uc_RTOutputByte();   /* 讀1Byte數據 */
    T_CLK = 1;
    T_RST =0;
    return(ucDa);
}
/********************************************************************  
*
* 名稱: v_BurstW1302T
* 說明: 先寫地址,后寫數據(時鐘多字節方式)
* 功能: 往DS1302寫入時鐘數據(多字節方式)
* 調用: v_RTInputByte() 
* 輸入: pSecDa: 時鐘數據地址    格式為: 秒 分 時 日 月 星期 年 控制
*                 8Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B  1B
* 返回值: 無
***********************************************************************/
void  v_BurstW1302T(uchar *pSecDa)
{
    uchar  i;
    v_W1302(0x8e,0x00);       /* 控制命令,WP=0,寫操作?*/
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    v_RTInputByte(0xbe);      /* 0xbe:時鐘多字節寫命令 */
    for (i=8;i>0;i--)         /*8Byte = 7Byte 時鐘數據 + 1Byte 控制*/
    {
        v_RTInputByte(*pSecDa);/* 寫1Byte數據*/
        pSecDa++;
    }
    T_CLK = 1;
    T_RST =0;
} 
/********************************************************************  
*
* 名稱: v_BurstR1302T
* 說明: 先寫地址,后讀命令/數據(時鐘多字節方式)
* 功能: 讀取DS1302時鐘數據
* 調用: v_RTInputByte() , uc_RTOutputByte()
* 輸入: pSecDa: 時鐘數據地址          格式為: 秒 分 時 日 月 星期 年 
*                       7Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B
* 返回值: ucDa :讀取的數據
***********************************************************************/
void  v_BurstR1302T(uchar *pSecDa)
{
    uchar i;
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    v_RTInputByte(0xbf);      /* 0xbf:時鐘多字節讀命令 */
    for (i=8; i>0; i--)       
    {
        *pSecDa = uc_RTOutputByte();   /* 讀1Byte數據 */
         pSecDa++;
    }
    T_CLK = 1;
    T_RST =0;
}
/********************************************************************  
*
* 名稱: v_BurstW1302R
* 說明: 先寫地址,后寫數據(寄存器多字節方式)
* 功能: 往DS1302寄存器數寫入數據(多字節方式)
* 調用: v_RTInputByte() 
* 輸入: pReDa: 寄存器數據地址
* 返回值: 無
***********************************************************************/
void  v_BurstW1302R(uchar *pReDa)
{
    uchar  i;
    v_W1302(0x8e,0x00);       /* 控制命令,WP=0,寫操作?*/
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    v_RTInputByte(0xfe);      /* 0xbe:時鐘多字節寫命令 */
    for (i=31;i>0;i--)        /*31Byte  寄存器數據   */
    {
        v_RTInputByte(*pReDa);        /* 寫1Byte數據*/
        pReDa++;
    }
    T_CLK = 1;
    T_RST =0;
} 
/********************************************************************  
*
* 名稱: uc_BurstR1302R
* 說明: 先寫地址,后讀命令/數據(寄存器多字節方式)
* 功能: 讀取DS1302寄存器數據
* 調用: v_RTInputByte() , uc_RTOutputByte()
* 輸入: pReDa: 寄存器數據地址
* 返回值: 無
***********************************************************************/
void  v_BurstR1302R(uchar *pReDa)
{
    uchar i;
    T_RST = 0;
    T_CLK = 0;
    T_RST = 1;
    v_RTInputByte(0xff);      /* 0xbf:時鐘多字節讀命令 */
    for (i=31; i>0; i--)       /*31Byte  寄存器數據   */
    {
        *pReDa = uc_RTOutputByte();   /* 讀1Byte數據 */
         pReDa++;
    }
    T_CLK = 1;
    T_RST =0;
}
/********************************************************************  
*
* 名稱: v_Set1302
* 說明: 
* 功能: 設置初始時間
* 調用: v_W1302() 
* 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年 
*                       7Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B
* 返回值: 無
***********************************************************************/
void  v_Set1302(uchar *pSecDa)  
{
       uchar i;
    uchar ucAddr = 0x80;    
    v_W1302(0x8e,0x00);          /* 控制命令,WP=0,寫操作?*/
    for(i =7;i>0;i--)
    { 
        v_W1302(ucAddr,*pSecDa);  /* 秒 分 時 日 月 星期 年 */
    
        pSecDa++;
        ucAddr +=2;
     }
     v_W1302(0x8e,0x80);  /* 控制命令,WP=1,寫保護?*/
}
/********************************************************************  
*
* 名稱: v_Get1302
* 說明: 
* 功能: 讀取DS1302當前時間
* 調用: uc_R1302() 
* 輸入: ucCurtime: 保存當前時間地址。當前時間格式為: 秒 分 時 日 月 星期 年 
*                              7Byte  (BCD碼)        1B 1B 1B 1B 1B  1B  1B
* 返回值: 無
***********************************************************************/
void v_Get1302(uchar ucCurtime[])      
{
    uchar  i;
    uchar  ucAddr = 0x81;
    for (i=0;i<7;i++)
    {
         ucCurtime[i] = uc_R1302(ucAddr);/*格式為: 秒 分 時 日 月 
星期 年 */
         ucAddr += 2;
    }
}


 
點擊這里回復這篇貼子>>
_____________________________________________________________________________
Copyright?,C51BBS論壇 2000-2001 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷国产精品综合在线观看| 337p亚洲精品色噜噜| 欧美精品高清视频| 国产精品美女久久久久aⅴ| 日韩和欧美一区二区三区| 99久久99久久精品免费看蜜桃| 日韩女同互慰一区二区| 亚洲免费资源在线播放| 成人综合激情网| 欧美r级电影在线观看| 视频一区二区不卡| 欧美视频在线一区| 亚洲日本青草视频在线怡红院| 国产一区二区不卡老阿姨| 91精品国产综合久久婷婷香蕉| 一区二区三区在线视频免费| 成人在线综合网| 久久午夜色播影院免费高清| 蜜乳av一区二区三区| 欧美久久一二三四区| 亚洲一区在线看| 欧美视频在线不卡| 一级做a爱片久久| 在线免费观看日韩欧美| 亚洲蜜臀av乱码久久精品| 91蜜桃婷婷狠狠久久综合9色| 国产精品久久国产精麻豆99网站| 国产成人在线看| 亚洲国产成人一区二区三区| 国产高清成人在线| 国产精品国产三级国产普通话三级 | 亚洲精品国产无天堂网2021| 成人av影视在线观看| 国产精品不卡在线观看| 成人精品国产福利| 1024精品合集| 欧洲一区二区三区在线| 视频一区二区三区在线| 日韩精品专区在线影院重磅| 国产乱人伦偷精品视频免下载| 久久中文字幕电影| 成人短视频下载| 亚洲国产精品久久一线不卡| 欧美精品丝袜久久久中文字幕| 日韩成人av影视| 久久亚洲欧美国产精品乐播| 国产成人aaa| 亚洲最大成人网4388xx| 欧美精品在线一区二区| 激情五月激情综合网| 国产欧美一区二区三区网站| av高清不卡在线| 午夜精品久久久久久久| 精品乱人伦小说| av一本久道久久综合久久鬼色| 亚洲另类在线制服丝袜| 91精品国产综合久久久久久 | 日韩av在线发布| 亚洲精品一区在线观看| 成人精品国产免费网站| 亚洲高清不卡在线观看| 久久午夜国产精品| 色综合久久久网| 激情图片小说一区| 一区二区三区欧美视频| 日韩欧美综合一区| 成人永久免费视频| 亚州成人在线电影| 国产精品乱人伦| 欧美一级在线观看| 一本大道久久a久久综合婷婷| 蜜桃精品视频在线| 亚洲午夜久久久| 久久久久久97三级| 欧美日高清视频| 国产亚洲精品久| 99国产精品久久久久久久久久| 男男成人高潮片免费网站| 国产精品视频第一区| 欧美不卡在线视频| 欧美日韩国产精品自在自线| 国产大片一区二区| 老色鬼精品视频在线观看播放| 亚洲另类春色校园小说| 日本一区免费视频| 欧美成人猛片aaaaaaa| 欧美群妇大交群中文字幕| 一本一本大道香蕉久在线精品 | 国内精品伊人久久久久av影院| 亚洲成人激情av| 国产精品盗摄一区二区三区| 精品久久人人做人人爰| 欧美一卡二卡在线| 欧美福利一区二区| 欧美日韩综合色| 91福利区一区二区三区| 91亚洲国产成人精品一区二区三| 国内精品国产三级国产a久久| 青青草97国产精品免费观看| 午夜国产不卡在线观看视频| 一区二区三区在线视频免费观看 | 国产日韩欧美精品综合| 久久综合丝袜日本网| 日韩写真欧美这视频| 在线播放中文字幕一区| 欧美视频在线一区| 欧美亚洲高清一区二区三区不卡| 色综合天天综合| 日本高清不卡视频| 欧美亚洲国产怡红院影院| 欧美在线观看18| 欧美日韩电影在线播放| 欧美日韩国产123区| 欧美狂野另类xxxxoooo| 制服视频三区第一页精品| 日韩一本二本av| 久久久久久电影| 中文字幕一区二区在线播放 | 欧美中文字幕一区| 欧美日韩高清在线| 日韩欧美电影在线| 久久你懂得1024| 欧美极品xxx| 亚洲另类在线制服丝袜| 午夜日韩在线观看| 九色|91porny| 丁香婷婷深情五月亚洲| 99久久精品免费观看| 91精彩视频在线| 日韩欧美国产电影| 国产亚洲人成网站| 亚洲三级在线看| 日韩精品一区第一页| 国产不卡一区视频| 在线看国产日韩| 精品美女在线观看| 亚洲人成影院在线观看| 日韩精品乱码免费| 国产成人免费视频一区| 91视频.com| 欧美一区二区福利视频| 欧美国产综合色视频| 亚洲影院理伦片| 国产美女精品在线| 欧美在线播放高清精品| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美在线一二三| 亚洲精品在线电影| 亚洲精品老司机| 狠狠色狠狠色综合| 在线观看一区二区视频| 久久嫩草精品久久久精品一| 亚洲视频一区在线观看| 久久国产夜色精品鲁鲁99| 91网站视频在线观看| 日韩免费看的电影| 亚洲乱码国产乱码精品精可以看| 精品亚洲porn| 欧美在线视频日韩| 国产精品人成在线观看免费| 欧美aaaaaa午夜精品| 91亚洲午夜精品久久久久久| 欧美精品一区二| 亚洲成av人片一区二区梦乃| 成人av综合在线| 欧美成人精品二区三区99精品| 亚洲精品日韩专区silk| 国产一区二区三区免费在线观看| 精品视频1区2区3区| 中文字幕五月欧美| 国产精品影音先锋| 欧美一卡二卡在线| 亚洲一区二三区| 99re6这里只有精品视频在线观看| 日韩一区二区影院| 五月激情六月综合| 91福利视频网站| 国产精品免费视频网站| 国产精品一二二区| 欧美大胆一级视频| 午夜精品久久久久久| 日本黄色一区二区| 18欧美乱大交hd1984| 成人一区在线观看| 中文字幕欧美区| 韩国三级电影一区二区| 日韩欧美在线影院| 午夜精品久久久久影视| 欧美亚洲高清一区| 亚洲综合成人网| 欧美中文字幕亚洲一区二区va在线 | 亚洲欧美在线观看| 国产成人aaa| 国产女人18毛片水真多成人如厕 | 国产精品99久久久| 国产日韩欧美一区二区三区乱码 | 国内精品久久久久影院色| 精品久久人人做人人爽| 激情五月婷婷综合网| 精品成人一区二区三区四区|