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

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

?? ds1302.c

?? DS1302DEMO運行程序
?? C
字號:
//ICC-AVR application builder : 2004-9-7 15:48:55
// Target : M16
// Crystal: 1.0000Mhz

#include <iom16v.h>
#include <macros.h>

void port_init(void)
{
 PORTA = 0xFF;
 DDRA  = 0x00;
 PORTB = 0xFF;
 DDRB  = 0x00;
 PORTC = 0xff; //m103 output only
 DDRC  = 0xFF;
 PORTD = 0xFF;
 DDRD  = 0x00;
}

//call this routine to initialise all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 port_init();

 MCUCR = 0x00;
 GICR  = 0x00;
 TIMSK = 0x00; //timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialised
}

/*********************************************************************/
/* 實時時鐘模塊 時鐘芯片型號:DS1302 */
/*********************************************************************/
#define	T_CLK 0
#define	T_IO  1
#define	T_RST 7
/******************************************************************** */

#define	SETBIT(x,y) (x|=(1<<y))      //set bit y in byte x
#define	CLRBIT(x,y) (x&=(~(1<<y)))   //clear bit y in byte x
#define	CHKBIT(x,y) (x&(1<<y))       //check bit y in byte x
/******************************************************************** */


void nop(void)
{
 char i;
 for (i=0;i<1;i++)
  ;
}

void initialize_1302(void)
{
 write_1302(0x8e,0x00);
 write_1302(0x90,0xA5);
 write_1302(0x80,0x00);
}
/********************************************************************
* 名稱: ds1302_write_a_byte
* 說明:
* 功能: 往DS1302寫入1Byte數(shù)據(jù)
* 調用:
* 輸入: ucDa 寫入的數(shù)據(jù)
* 返回值: 無
***********************************************************************/
void ds1302_write_a_byte(unsigned char ucDa)
{
    unsigned char i;
    for(i=8; i>0; i--)
    {
	    CLRBIT(PORTC,T_CLK);
		if (ucDa&1) SETBIT(PORTC,T_IO);
		    else CLRBIT(PORTC,T_IO);
		SETBIT(PORTC,T_CLK);
		ucDa>>=1;
    }
}

/********************************************************************
*
* 名稱: unsigned char ds1302_read_a_byte
* 說明:
* 功能: 從DS1302讀取1Byte數(shù)據(jù)
* 調用:
* 輸入:
* 返回值: t
***********************************************************************/
unsigned char ds1302_read_a_byte(void)
{
    unsigned char i,t;
	CLRBIT(DDRC,T_IO);
	CLRBIT(PORTC,T_IO);
    for(i=8; i>0; i--)
    {
        t>>=1;
		SETBIT(PORTC,T_CLK);
		nop();
		CLRBIT(PORTC,T_CLK);
		nop();
		if(CHKBIT(PINC,T_IO))t|=0x80;
	}
    SETBIT(DDRC,T_IO);
	return(t);
}


/********************************************************************
* 名稱: write_1302
* 說明: 先寫地址,后寫命令/數(shù)據(jù)
* 功能: 往DS1302寫入數(shù)據(jù)
* 調用: ds1302_write_a_byte()
* 輸入: ucAddr: DS1302地址, ucDa: 要寫的數(shù)據(jù)
* 返回值: 無
***********************************************************************/
void write_1302(unsigned char ucAddr, unsigned char ucDa)
{
    //DDRC=0xff;
    CLRBIT(PORTC,T_RST);     //T_RST=0
	//;;nop();
	CLRBIT(PORTC,T_CLK);	 //T_CLK=0;
	//;;nop();
	SETBIT(PORTC,T_RST);	 //T_RST=1

    ds1302_write_a_byte(ucAddr); /* 地址,命令 */
	CLRBIT(PORTC,T_CLK);
    ds1302_write_a_byte(ucDa); /* 寫1Byte數(shù)據(jù)*/
	CLRBIT(PORTC,T_CLK);      //T_CLK=1
	//;;nop();
	CLRBIT(PORTC,T_RST);	  //T_RST=0
}

/********************************************************************
* 名稱: read_1302
* 說明: 先寫地址,后讀命令/數(shù)據(jù)
* 功能: 讀取DS1302某地址的數(shù)據(jù)
* 調用: ds1302_write_a_byte() , ds1302_read_a_byte()
* 輸入: ucAddr: DS1302地址
* 返回值: ucDa :讀取的數(shù)據(jù)
***********************************************************************/
unsigned char read_1302(unsigned char ucAddr)
{
    unsigned char ucDa;
	CLRBIT(PORTC,T_RST);
	//;;nop();
	CLRBIT(PORTC,T_CLK);
	//;;nop();
	SETBIT(PORTC,T_RST);


    ds1302_write_a_byte(ucAddr); /* 地址,命令 */
    ucDa = ds1302_read_a_byte(); /* 讀1Byte數(shù)據(jù) */
	CLRBIT(PORTC,T_CLK);
	//;;nop();
	CLRBIT(PORTC,T_RST);
	//;;nop();
    return(ucDa);
}

/********************************************************************
* 名稱: v_BurstW1302T
* 說明: 先寫地址,后寫數(shù)據(jù)(時鐘多字節(jié)方式)
* 功能: 往DS1302寫入時鐘數(shù)據(jù)(多字節(jié)方式)
* 調用: ds1302_write_a_byte()
* 輸入: pSecDa: 時鐘數(shù)據(jù)地址 格式為: 秒 分 時 日 月 星期 年 控制
* 8Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_BurstW1302T(unsigned char *pSecDa)
{
    unsigned char i;
    write_1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
	CLRBIT(PORTC,T_RST);
	CLRBIT(PORTC,T_CLK);
	SETBIT(PORTC,T_RST);

    ds1302_write_a_byte(0xbe); /* 0xbe:時鐘多字節(jié)寫命令 */
    for (i=8;i>0;i--) /*8Byte = 7Byte 時鐘數(shù)據(jù) + 1Byte 控制*/
    {
        ds1302_write_a_byte(*pSecDa);/* 寫1Byte數(shù)據(jù)*/
        pSecDa++;
    }
	SETBIT(PORTC,T_CLK);
	CLRBIT(PORTC,T_RST);
}

/********************************************************************
* 名稱: v_BurstR1302T
* 說明: 先寫地址,后讀命令/數(shù)據(jù)(時鐘多字節(jié)方式)
* 功能: 讀取DS1302時鐘數(shù)據(jù)
* 調用: ds1302_write_a_byte() , ds1302_read_a_byte()
* 輸入: pSecDa: 時鐘數(shù)據(jù)地址 格式為: 秒 分 時 日 月 星期 年
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: ucDa :讀取的數(shù)據(jù)
***********************************************************************/
void v_BurstR1302T(unsigned char *pSecDa)
{
    unsigned char i;
	//DDRC=0xff;
	CLRBIT(PORTC,T_RST);
	CLRBIT(PORTC,T_CLK);
	SETBIT(PORTC,T_RST);
    ds1302_write_a_byte(0xbf); /* 0xbf:時鐘多字節(jié)讀命令 */
    for (i=8; i>0; i--)
    {
        *pSecDa = ds1302_read_a_byte(); /* 讀1Byte數(shù)據(jù) */
        pSecDa++;
    }
	//DDRC=0xff;
	SETBIT(PORTC,T_CLK);
	CLRBIT(PORTC,T_RST);
}

/********************************************************************
* 名稱: v_BurstW1302R
* 說明: 先寫地址,后寫數(shù)據(jù)(寄存器多字節(jié)方式)
* 功能: 往DS1302寄存器數(shù)寫入數(shù)據(jù)(多字節(jié)方式)
* 調用: ds1302_write_a_byte()
* 輸入: pReDa: 寄存器數(shù)據(jù)地址
* 返回值: 無
***********************************************************************/
void v_BurstW1302R(unsigned char *pReDa)
{
    unsigned char i;
    write_1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
	CLRBIT(PORTC,T_RST);
	CLRBIT(PORTC,T_CLK);
	SETBIT(PORTC,T_RST);
    ds1302_write_a_byte(0xfe); /* 0xfe:寄存器多字節(jié)寫命令 */
    for (i=31;i>0;i--) /*31Byte 寄存器數(shù)據(jù) */
    {
        ds1302_write_a_byte(*pReDa); /* 寫1Byte數(shù)據(jù)*/
        pReDa++;
    }
	SETBIT(PORTC,T_CLK);
	CLRBIT(PORTC,T_RST);
}


/********************************************************************
* 名稱: v_BurstR1302R
* 說明: 先寫地址,后讀命令/數(shù)據(jù)(寄存器多字節(jié)方式)
* 功能: 讀取DS1302寄存器數(shù)據(jù)
* 調用: ds1302_write_a_byte() , ds1302_read_a_byte()
* 輸入: pReDa: 寄存器數(shù)據(jù)地址
* 返回值: 無
***********************************************************************/
void v_BurstR1302R(unsigned char *pReDa)
{
    unsigned char i;
	//DDRC=0xff;
	CLRBIT(PORTC,T_RST);
	CLRBIT(PORTC,T_CLK);
	SETBIT(PORTC,T_RST);
    ds1302_write_a_byte(0xff); /* 0xff:寄存器多字節(jié)讀命令 */
    for (i=31; i>0; i--) /*31Byte 寄存器數(shù)據(jù) */
    {
        *pReDa = ds1302_read_a_byte(); /* 讀1Byte數(shù)據(jù) */
        pReDa++;
    }
	//DDRC=0xff;
	SETBIT(PORTC,T_CLK);
	CLRBIT(PORTC,T_RST);
}

/********************************************************************
* 名稱: v_Set1302
* 說明:
* 功能: 設置初始時間
* 調用: write_1302()
* 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_Set1302(unsigned char *pSecDa)
{
    unsigned char i;
    unsigned char ucAddr = 0x80;
    write_1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
    for(i =7;i>0;i--)
    {
        write_1302(ucAddr,*pSecDa); /* 秒 分 時 日 月 星期 年 */

        pSecDa++;
        ucAddr +=2;
    }
    write_1302(0x8e,0x80); /* 控制命令,WP=1,寫保護?*/
}

/********************************************************************
* 名稱: v_Get1302
* 說明:
* 功能: 讀取DS1302當前時間
* 調用: read_1302()
* 輸入: ucCurtime: 保存當前時間地址。當前時間格式為: 秒 分 時 日 月 星期 年
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_Get1302(unsigned char ucCurtime[])
{
    unsigned char i;
    unsigned char ucAddr = 0x81;
    for (i=0;i<7;i++)
    {
        ucCurtime[i] = read_1302(ucAddr);/*格式為: 秒 分 時 日 月
        星期 年 */
        ucAddr += 2;
    }
	CLRBIT(PORTC,T_CLK);
}

/*  enable power charge of 1302  */




void main()
{
 unsigned char buffer2[7]={0x45,0x59,0x15,0x13,0x3,0x2,0x01}; //初始數(shù)秒,分,時,日,
//月,星期,年
 unsigned char buffer3[7]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};


 init_devices();
 initialize_1302();
 v_Set1302(buffer2);
 while(1)
 {
  v_Get1302(buffer3);
 }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品在线观看免费| 欧美日韩免费一区二区三区| 99riav久久精品riav| 777奇米成人网| 国产精品久久久久久久岛一牛影视| 一区二区欧美国产| 成人国产精品免费观看视频| 91精品国产综合久久精品app| 综合欧美一区二区三区| 久久精品99久久久| 欧美网站大全在线观看| 亚洲人成人一区二区在线观看 | 国产精品免费视频观看| 肉色丝袜一区二区| 欧美精选一区二区| 亚洲视频一二三区| 成人免费不卡视频| 久久亚洲综合色一区二区三区| 婷婷六月综合网| 欧美视频在线播放| 亚洲综合色在线| 色猫猫国产区一区二在线视频| 国产精品区一区二区三区| 国产在线精品一区二区不卡了| 欧美日韩国产综合一区二区| 亚洲综合丁香婷婷六月香| 色综合久久六月婷婷中文字幕| 国产精品久久久久久久久晋中 | 粉嫩av亚洲一区二区图片| 精品国产人成亚洲区| 免费精品99久久国产综合精品| 欧美精品丝袜中出| 亚洲成av人片| 91精品免费在线| 老鸭窝一区二区久久精品| 日韩欧美的一区二区| 韩国欧美国产1区| 久久亚洲精品小早川怜子| 国产精品66部| 日本一区二区成人| 91日韩精品一区| 亚洲一二三四区| 欧美视频一二三区| 免费观看在线综合色| 久久亚洲精品小早川怜子| 国产成人丝袜美腿| 亚洲色图制服诱惑| 欧美浪妇xxxx高跟鞋交| 免费成人你懂的| 国产日韩精品一区| 99久久伊人久久99| 亚洲一区二区三区四区的| 欧美精品一卡二卡| 国产精品456| 亚洲最快最全在线视频| 欧美一区二区高清| 国产成人自拍网| 一区二区三区av电影| 欧美日韩午夜在线| 国产精品亚洲综合一区在线观看| 中文字幕在线一区免费| 欧美日韩性生活| 高清不卡一区二区在线| 亚洲在线观看免费| 久久久久久久久伊人| 91国产视频在线观看| 久久99精品国产麻豆不卡| 国产精品沙发午睡系列990531| 在线观看av一区二区| 激情深爱一区二区| 亚洲黄色小视频| 久久亚洲捆绑美女| 欧美精品欧美精品系列| 成人av综合在线| 美女一区二区久久| 一区二区成人在线视频| 久久网这里都是精品| 欧美日韩在线综合| 不卡高清视频专区| 国产在线精品一区二区夜色| 又紧又大又爽精品一区二区| 精品国产91洋老外米糕| 91久久免费观看| 丰满白嫩尤物一区二区| 免费观看30秒视频久久| 最新热久久免费视频| 久久午夜国产精品| 91精品国产福利在线观看| 99v久久综合狠狠综合久久| 久久97超碰国产精品超碰| 亚洲国产sm捆绑调教视频| 国产精品久久久久久妇女6080| ww久久中文字幕| 91精品在线观看入口| 欧美在线免费播放| 91日韩在线专区| a级精品国产片在线观看| 国产九色sp调教91| 免费视频一区二区| 日本aⅴ亚洲精品中文乱码| 亚洲已满18点击进入久久| 国产精品国产自产拍高清av王其| 久久伊人蜜桃av一区二区| 日韩一区二区三区视频| 717成人午夜免费福利电影| 欧美在线免费视屏| 欧美主播一区二区三区| 在线观看视频一区二区| 日本高清成人免费播放| 色综合亚洲欧洲| 一本到不卡精品视频在线观看| 91亚洲精品乱码久久久久久蜜桃| 99国产一区二区三精品乱码| 大美女一区二区三区| 国产99久久久国产精品免费看| 国产精品1024| 丰满亚洲少妇av| 99精品国产一区二区三区不卡| 99视频精品免费视频| 91传媒视频在线播放| 欧美视频一区在线| 欧美一区二区三区思思人| 欧美大片一区二区三区| 久久综合国产精品| 欧美国产亚洲另类动漫| 国产精品久久久久影院亚瑟| 成人欧美一区二区三区黑人麻豆 | 99精品国产视频| 欧亚洲嫩模精品一区三区| 欧美日韩成人在线| 精品国产成人系列| 国产精品久久久久永久免费观看| 亚洲精品写真福利| 天天亚洲美女在线视频| 加勒比av一区二区| 成人h精品动漫一区二区三区| 在线亚洲人成电影网站色www| 欧美精品欧美精品系列| 久久久久久久久免费| 日韩理论片中文av| 午夜久久电影网| 国产精品资源站在线| 91免费看视频| 日韩视频一区二区三区在线播放| 久久午夜免费电影| 亚洲最新在线观看| 国产精品中文欧美| 色狠狠综合天天综合综合| 欧美一区二区三区在线看| 国产欧美日韩在线| 首页国产丝袜综合| 成人av免费观看| 91精品婷婷国产综合久久性色 | 国产suv精品一区二区三区| 91丨九色porny丨蝌蚪| 日韩欧美一区在线观看| 日韩伦理免费电影| 精品一区二区三区免费播放| 色综合久久久久久久久久久| 日韩欧美亚洲一区二区| 亚洲欧美日韩一区二区 | 婷婷夜色潮精品综合在线| 国产成人免费高清| 69堂成人精品免费视频| 中文字幕在线免费不卡| 久久成人免费日本黄色| 一本久道中文字幕精品亚洲嫩| 欧美成人三级电影在线| 亚洲最新视频在线观看| 成人黄色大片在线观看| 精品成人a区在线观看| 亚洲www啪成人一区二区麻豆 | 老色鬼精品视频在线观看播放| 91丝袜高跟美女视频| 国产性色一区二区| 麻豆成人久久精品二区三区红 | 成人av在线电影| 精品少妇一区二区三区视频免付费| 日韩久久一区二区| 成人午夜精品在线| 久久久精品免费观看| 欧美在线你懂的| 亚洲一区二区在线免费观看视频| 6080日韩午夜伦伦午夜伦| 一区二区在线观看免费视频播放| www.亚洲激情.com| 在线视频亚洲一区| 中文字幕免费不卡在线| bt欧美亚洲午夜电影天堂| 中文一区在线播放| 91香蕉视频在线| 国产麻豆视频一区| 国产视频一区在线播放| 国内精品写真在线观看| 一区二区高清在线| 亚洲最新在线观看| 国内精品在线播放| 久久久亚洲综合| 国产麻豆一精品一av一免费| 精品久久久久久久人人人人传媒 |