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

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

?? rtc.c

?? 單片機與時鐘芯片ds1302接口程序
?? C
字號:
/*******************************************************************************
*  標題:  藍海微芯LJD-SY-5200單片機開發系統演示程序                            *
*  文件:  RTC.C                                                                *
*  日期:  2006-7-25                                                            *
*  版本:  1.0                                                                  *
*  作者:  藍海微芯                                                             *
*  網站: http://www.ljd-2008.com                                              *
********************************************************************************
*  描述:                                                                       *
*        通過8位數碼管顯示當前的時間包括時分秒,通過時間設置鍵可對當前的時間    *
*      進行設置。共有兩個設置按鍵按鍵1和按鍵2;按鍵1為選定鍵。按鍵1首次被      *
*      按下時鐘停止走時并且秒時間開始閃爍,此時可通過按鍵2對秒時間進行設置,   *
*      按鍵2按下一次秒時間數值加一。當按鍵1第二次被按下時分時間被選中并不停    *
*      地閃爍,此時通過按鍵2可對分時間進行設置,按鍵2按下一次分時間加一。      *
*      按鍵第三次被按下時小時時間被選中并且不停的閃爍,此時通過按鍵2可對小     *
*      時時間進行設置,按鍵2每按下一次小時時間加一。按鍵1第四次被按下后時間    *
*      設置結束,時鐘從設定的時間開始走時。                                    *     
*                                                                              *
*                                                                              *
********************************************************************************
* 【版權】 Copyright(C)微芯科技 http://www.bluemcu.com    All Rights Reserved  *          
* 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息!                  *
*******************************************************************************/
#include <reg52.h>
#include<stdio.h>
#include<absacc.h>
#include<intrins.h>


/*如果使用鍵盤中斷請定義
#define  USE_KEY  */

#define  uchar  unsigned char
#define  uint   unsigned int

sbit     T_CLK      = P1^1;   /*實時時鐘時鐘線引腳 */
sbit     T_IO       = P1^0;   /*實時時鐘數據線引腳 */
sbit     T_RST      = P1^4;   /*實時時鐘復位線引腳 */

sbit     P1_3       = P1^3;
sbit     P1_5       = P1^5;
sbit     ACC0       = ACC^0;
sbit     ACC7       = ACC^7;

uchar M;
uchar N;
uchar key_flag;

/*void   RTInputByte(uchar);       /* 輸入 1Byte */
/*uchar  RTOutputByte(void);       /* 輸出?1Byte */
/*void   W1302(uchar, uchar);
/*uchar  R1302(uchar);
/*void   Set1302(uchar *);         /* 設置時間 */
/*void   Get1302(uchar curtime[]); /* 讀取1302當前時間 */
uchar SClock[3];
/********************************************************************
函 數 名:RTInputByte()
功    能:實時時鐘寫入一字節
說    明:往DS1302寫入1Byte數據 (內部函數)
入口參數:d 寫入的數據
返 回 值:無  
設    計:藍海微芯          
***********************************************************************/
void RTInputByte(uchar d)
{
  uchar i;
  ACC = d;
  for(i=8; i>0; i--)
  {
    T_IO = ACC0;           /*相當于匯編中的 RRC */
    T_CLK = 1;
    T_CLK = 0;
    ACC = ACC >> 1;
  }
}
/********************************************************************
函 數 名:RTOutputByte()
功    能:實時時鐘讀取一字節
說    明:從DS1302讀取1Byte數據 (內部函數)
入口參數:無  
返 回 值:ACC
設    計:藍海微芯           
***********************************************************************/
uchar 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);
}
/********************************************************************
函 數 名:W1302()
功    能:往DS1302寫入數據
說    明:先寫地址,后寫命令/數據 (內部函數)
調    用:RTInputByte() , RTOutputByte()
入口參數:ucAddr: DS1302地址, ucData: 要寫的數據
返 回 值:無
設    計:藍海微芯         
***********************************************************************/
void W1302(uchar ucAddr, uchar ucDa)
{
  T_RST = 0;
  T_CLK = 0;
  T_RST = 1;
  RTInputByte(ucAddr);       /* 地址,命令 */
  RTInputByte(ucDa);         /* 寫1Byte數據*/
  T_CLK = 1;
  T_RST = 0;
}
/********************************************************************
函 數 名:R1302()
功    能:讀取DS1302某地址的數據
說    明:先寫地址,后讀命令/數據 (內部函數)
調    用:RTInputByte() , RTOutputByte()
入口參數:ucAddr: DS1302地址
返 回 值:ucData :讀取的數據
設    計:藍海微芯           
***********************************************************************/
uchar R1302(uchar ucAddr)
{
  uchar ucData;
  T_RST = 0;
  T_CLK = 0;
  T_RST = 1;
  RTInputByte(ucAddr);             /* 地址,命令 */
  ucData = RTOutputByte();         /* 讀1Byte數據 */
  T_CLK = 1;
  T_RST = 0;
  return(ucData);
}
/********************************************************************
函 數 名:Set1302()
功    能:設置初始時間
說    明:先寫地址,后讀命令/數據(寄存器多字節方式)
調    用:W1302()
入口參數:pClock: 設置時鐘數據

地址格式為: 秒 分 時 日 月 星期 年
7Byte (BCD碼)1B 1B 1B 1B 1B  1B  1B
返 回 值:無
設    計:藍海微芯           
***********************************************************************/
void Set1302(uchar *pClock)
{
  uchar i;
  uchar ucAddr = 0x80;
  W1302(0x8e,0x00);           /* 控制命令,WP=0,寫操作?*/
  for(i =3; i>0; i--)
  {
    W1302(ucAddr,*pClock);    /* 秒 分 時 日 月 星期 年 */
    pClock++;
    ucAddr +=2;
  }
  W1302(0x8e,0x80);           /* 控制命令,WP=1,寫保護?*/
}
/********************************************************************
函 數 名:Get1302()
功    能:讀取DS1302當前時間
說    明:
調    用:R1302()
入口參數:ucCurtime: 保存當前時間地址。
當前時間格式為: 秒 分 時 日 月 星期 年
7Byte (BCD碼)   1B 1B 1B 1B 1B  1B  1B
返 回 值:無
設    計:藍海微芯           
***********************************************************************/
void Get1302(uchar ucCurtime[])
{
  uchar i;
  uchar ucAddr = 0x81;
  for (i=0; i<3; i++)
  {
    ucCurtime[i] = R1302(ucAddr);	/*格式為: 秒 分 時 日 月 星期 年 */
    ucAddr += 2;
  }
}
/********************************************************************
函 數 名:ds1302主程序
功    能:讀取ds1302的時間值并通過數碼管進行顯示
說    明:
調    用:
入口參數:
返 回 值:
設    計:藍海微芯           
***********************************************************************/
void SET_RTC(void)
{
  Get1302(&SClock);			/*把當前的時間值讀取到數組SClock[3]中去*/
  SClock[0]|=0x80;			/*使ds1302的時間停止運行*/
  Set1302(SClock);			

//  ch451_key = 0xff;
  key_flag++;
  if(key_flag==4)
  {
    key_flag = 0;
//    ch451_write(0x600);
    SClock[0]&=0x7f;
    Set1302(SClock);
  }
  switch(key_flag)
  {
    case 1: 
    //ch451_write(0x6C0);		/*讓秒顯示位進行閃爍*/
    break;
    case 2:	
    //ch451_write(0x618);		/*讓分顯示位進行閃爍*/
    break;
    case 3: 
    //ch451_write(0x603);		/*讓小時顯示位進行閃爍*/
    break;
    default:break;
  }
}
/********************************************************************
函 數 名:SET_TIME()
功    能:根據按鍵值&按鍵被按下的次數作相應的處理
說    明:
調    用:
入口參數:
返 回 值:
設    計:藍海微芯           
***********************************************************************/
void SET_TIME(void)
{
  switch(key_flag)
  {	
    case 1:				
    SClock[0]&=0x7f;
//    ch451_bcd(SClock[0]);       /*將秒顯示位的十位和個位進行分離*/
    N++;                        /*秒值加一*/
    if(N==10)
    {
      N = 0;
      M++;
      if(M==6)
      {
        M = 0;
      }
    }
    M<<=4;
    SClock[0] = M|N|0x80;
    W1302(0x8e,0x00);           /*控制命令,wp=0,可以進行寫操作*/
    W1302(0x80, SClock[0]);     /*將修改過的秒值寫到ds1302中*/
//    ch451_key=0xff;
    break;
    case 2:			
//    ch451_bcd(SClock[1]);       /*將分顯示位的十位和個位進行分離*/
    N++;                        /*分值加一*/
    if(N==10)
    {
      N = 0;
      M++;
      if(M==6)
	  {
        M = 0;
      }
    }
    M<<=4;
    SClock[1] = M|N;
    W1302(0x8e,0x00);          /*控制命令,wp=0,可以進行寫操作*/
    W1302(0x82, SClock[1]);    /*將修改過的分值寫到ds1302中*/
//    ch451_key=0xff;
    break;
    case 3: 
//    ch451_bcd(SClock[2]);      /*將小時顯示位的十位和個位進行分離*/
    N++;                       /*小時值加一*/
    if(N==4)
    {
      if(M==2)                 /*小時十位為2時個位最大值不能超過3*/
      {
        M = 0;
        N = 0;
      }
    }
    if(N==10)
    {
      N = 0;
      M++;
    }
    M<<=4;
    SClock[2] = M|N;
    W1302(0x8e,0x00);           /*控制命令,wp=0,可以進行寫操作*/	
    W1302(0x84,SClock[2]);      /*將修改過的分值寫到ds1302中*/
//    ch451_key=0xff;
    break;
    default:break;
  }
//  ch451_key = 0xff;
}
/********************************************************************
函 數 名:ds1302主程序
功    能:讀取ds1302的時間值并通過數碼管進行顯示
說    明:
調    用:
設    計:藍海微芯           
***********************************************************************/					
main()
{
  uchar WClock[3]={0x00,0x01,0x02};
  uchar RClock[3];
  uchar ds_hour;
  uchar ds_min;
  uchar ds_sec;

  P1_3 = 1;
  P1_5 = 1;
  Set1302(WClock);                  /*對ds1302顯示的時間初值進行設定*/
//  ch451_init();                     /*對ch451進行初始化*/
//  ch451_write(0x403);               /*關看門狗開鍵盤顯示*/
//  ch451_write(0x580);               /*以譯碼方式進行顯示*/
//  ch451_write(CH451_DIG5|0x12);     /*數碼管的第2位顯示"-"*/
//  ch451_write(CH451_DIG2|0x12);     /*數碼管的第7位顯示"-"*/
//  ch451_key = 0xff;
  key_flag  = 0;
  EA  = 1;
  EX1  =1;
			
  while(1)
  {
//    if(ch451_key==0x5A)	            /*判斷設置按鍵是否按下*/
//    {
//      SET_RTC();
//    }
//    if((key_flag!=0)&&(ch451_key==0x59))/*判斷修改時間鍵是否被按下*/
//    {
//      SET_TIME();
//    }
    Get1302(&RClock);                /*獲取當前時間值*/
    ds_sec  = RClock[0]&0x7f;        /*得到當前時間秒值*/
    ds_min  = RClock[1];             /*得到當前時間分值*/
    ds_hour = RClock[2];             /*得到當前時間小時值*/
		
//    ch451_bcd(ds_hour);              /*對小時值進行轉化*/
//    ch451_write(CH451_DIG0|M);       /*寫小時高位*/
//    ch451_write(CH451_DIG1|N);       /*寫小時低位*/

//    ch451_bcd(ds_min);               /*對分鐘值進行轉化*/
//    ch451_write(CH451_DIG3|M);       /*寫分鐘高位*/
//    ch451_write(CH451_DIG4|N);       /*寫分鐘低位*/

//    ch451_bcd(ds_sec);               /*對秒值進行轉化*/
//    ch451_write(CH451_DIG6|M);       /*寫秒值高位*/
//    ch451_write(CH451_DIG7|N);       /*寫秒值低位*/
  }
}
/*********************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产夜色精品鲁鲁99| 51精品视频一区二区三区| 丰满少妇在线播放bd日韩电影| 麻豆精品视频在线| 免费不卡在线观看| 青青草原综合久久大伊人精品 | 亚洲三级在线播放| 亚洲欧美日韩在线播放| 亚洲免费观看高清完整版在线观看| 18成人在线观看| 亚洲精品va在线观看| 夜夜爽夜夜爽精品视频| 午夜免费欧美电影| 免费观看30秒视频久久| 激情久久久久久久久久久久久久久久| 久久91精品国产91久久小草| 国产精品一区二区男女羞羞无遮挡| 国产精品亚洲а∨天堂免在线| 成人在线视频一区二区| 99久久精品国产观看| 一本到一区二区三区| 欧美日韩国产综合草草| 日韩欧美国产综合| 久久久美女艺术照精彩视频福利播放| 欧美国产禁国产网站cc| 亚洲黄网站在线观看| 天天色综合天天| 激情图片小说一区| 东方欧美亚洲色图在线| 日本高清不卡视频| 在线综合亚洲欧美在线视频| 欧美mv日韩mv国产网站| 欧美国产精品一区| 亚洲一区二区三区四区中文字幕| 日韩影院在线观看| 国产精品18久久久久久vr| 91麻豆免费观看| 欧美久久久久久久久| 久久在线观看免费| 亚洲美女一区二区三区| 麻豆精品一区二区av白丝在线| 成人高清免费观看| 欧美精品日韩综合在线| 久久午夜老司机| 亚洲激情在线播放| 精品一区精品二区高清| 色天使久久综合网天天| 精品国产精品网麻豆系列| 亚洲男人的天堂在线aⅴ视频| 日韩经典中文字幕一区| 成人免费高清在线| 这里只有精品电影| 最新不卡av在线| 美女脱光内衣内裤视频久久网站| 成人精品一区二区三区中文字幕| 欧美人动与zoxxxx乱| 国产精品天天看| 蜜桃av一区二区| 91黄色激情网站| 国产亚洲欧美一区在线观看| 午夜a成v人精品| 91美女精品福利| 国产亚洲婷婷免费| 蜜臀精品久久久久久蜜臀| 91蜜桃在线观看| 国产视频一区不卡| 日韩精品色哟哟| 色综合久久综合中文综合网| 久久精品一区八戒影视| 日本成人在线看| 91国模大尺度私拍在线视频 | 美女视频黄频大全不卡视频在线播放 | 国产成人av电影在线播放| 欧美日韩一区视频| 亚洲欧美另类久久久精品2019| 激情伊人五月天久久综合| 制服视频三区第一页精品| 一区二区三区不卡视频| 成人激情文学综合网| 久久色.com| 视频在线观看一区| 色婷婷精品久久二区二区蜜臂av| 中文字幕高清不卡| 国产一区美女在线| 日韩亚洲欧美成人一区| 亚洲一区二区av电影| 91欧美一区二区| 中文字幕亚洲一区二区va在线| 国产精品亚洲视频| 精品99999| 久久9热精品视频| 欧美一级高清片在线观看| 婷婷夜色潮精品综合在线| 欧美在线观看一区| 一区二区三区四区在线免费观看| 99久久99久久久精品齐齐| 国产精品二三区| 成人ar影院免费观看视频| 欧美国产国产综合| 波多野结衣一区二区三区| 久久精品在线免费观看| 国产高清成人在线| 国产日韩成人精品| 不卡的av网站| 日韩美女视频19| 中文字幕一区二区三区四区不卡 | 国产真实乱子伦精品视频| 日韩欧美综合在线| 狠狠色丁香婷婷综合久久片| 久久蜜桃香蕉精品一区二区三区| 国产麻豆午夜三级精品| 国产午夜精品一区二区三区四区| 国产成人精品一区二区三区网站观看| 中文字幕二三区不卡| 91在线视频免费观看| 伊人一区二区三区| 欧美日韩在线三级| 欧美96一区二区免费视频| 久久久夜色精品亚洲| 成人免费观看视频| 亚洲国产中文字幕| 91精品国产91热久久久做人人| 麻豆一区二区三区| 国产日韩欧美高清| 91色视频在线| 亚洲成人激情社区| 精品少妇一区二区| 成人国产精品视频| 亚洲一二三四在线| 日韩欧美卡一卡二| 成人动漫在线一区| 午夜精品福利视频网站| 日韩色在线观看| 粉嫩绯色av一区二区在线观看| 亚洲伦理在线精品| 日韩色在线观看| 97久久精品人人爽人人爽蜜臀| 一级精品视频在线观看宜春院| 日韩一级大片在线观看| 高清在线不卡av| 亚洲成人免费视频| 国产欧美综合色| 欧美视频在线一区| 国产一区二区三区电影在线观看| 自拍偷拍亚洲综合| 日韩欧美国产精品| 91啪九色porn原创视频在线观看| 日韩不卡手机在线v区| 日本一区二区电影| 91麻豆精品国产91久久久更新时间| 国产高清久久久久| 亚州成人在线电影| 国产精品美女一区二区三区| 欧美一区二区视频观看视频| www.久久久久久久久| 日韩成人免费在线| 亚洲视频你懂的| 精品成人免费观看| 欧美日韩国产综合草草| 成人动漫一区二区在线| 久久精品国产一区二区三 | 蜜桃久久av一区| 亚洲免费观看高清完整版在线观看 | 亚洲欧美色一区| 久久久久国产一区二区三区四区 | 欧美亚洲一区三区| 国产**成人网毛片九色| 免费的国产精品| 亚洲精选视频在线| 久久久久国产精品人| 69av一区二区三区| 一本大道av伊人久久综合| 国内精品国产三级国产a久久| 亚洲a一区二区| 亚洲欧美视频一区| 国产精品亲子伦对白| 精品三级在线看| 91精品国产福利在线观看| 色激情天天射综合网| 国产69精品一区二区亚洲孕妇| 日韩av电影免费观看高清完整版| 亚洲欧美另类在线| 中文字幕中文字幕一区二区| 精品91自产拍在线观看一区| 欧美一区二区三区白人| 欧美性猛交xxxx乱大交退制版| av成人免费在线| 国产成人日日夜夜| 狠狠色综合日日| 久久99九九99精品| 免费成人美女在线观看.| 亚洲福利视频一区二区| 一区二区三区小说| 一区二区三区四区激情| 亚洲视频免费在线观看| 亚洲欧美色图小说| 有码一区二区三区| 亚洲一区二区三区三| 亚洲妇熟xx妇色黄| 亚洲成a人片在线不卡一二三区|