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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ds1302.c

?? AVR單片機(jī)c語言的開發(fā)板程序
?? C
字號:
#include <avr/io.h>
#include <avr/delay.h>
#include "DS1302.h"
#include "spi.h"

//讀寫操作位
#define CMD_READ			0x01
#define CMD_WRITE			0x00

//時(shí)鐘 命令
#define CMD_SECOND			0x80	//秒
#define CMD_MINUTE			0x82	//分
#define CMD_HOUR			0x84	//時(shí)
#define CMD_DAY				0x86	//日
#define CMD_MONTH			0x88	//月
#define CMD_WEEK			0x8A	//星期 DATE
#define CMD_YEAR			0x8C	//年
#define CMD_CONTROL			0x8E	//控制(寫保護(hù))
#define CMD_TRICKLE_CHARGE	0x90	//涓流充電
#define CMD_CLOCK_BURST		0xBE	//連續(xù)讀取
//時(shí)鐘配置常量
#define CFG_CLOCK_HALT		0x80	//停止時(shí)鐘控制位    SECOND	bit7
#define CFG_12_24			0x80	//12/24小時(shí)值選擇位 HOUR		bit7 
#define CFG_AM_PM			0x20	//AP/PM位          HOUR		bit5 
#define CFG_PROTECT			0x80	//寫保護(hù)控制位      CONTROL	bit7 
#define CFG_UNPROTECT		0x00	//寫保護(hù)控制位      CONTROL	bit7 
//涓流充電控制常量
#define CFG_TC_D1R2			0xA5	//high 1 Diode +2K Resistors  
#define CFG_TC_D2R8			0xAB	//low  2 Diodes+8K Resistors  
#define CFG_TC_DISABLED		0x00	//Disabled(TCS<>1010 or DS=00 or RS=00)
//RAM 命令
#define CMD_RAM_BASE		0xC0	//RAM0~RAM30<<1 地址需左移一位 
#define CMD_RAM_BURST		0xFE	//連續(xù)讀取

//M16管腳定義
#define DS1302_CE			1		//PA1 必須設(shè)為輸出 ----DS1302 pin5
//宏定義
#define EnDS1302 PORTA|= (1<<DS1302_CE)	// 置CE為高電平,使能SPI接口
#define DiDS1302 PORTA&=~(1<<DS1302_CE)	// 置CE為低電平,關(guān)閉SPI接口

unsigned char sWEEK[]="Wr 1 2 3 4 5 6Su";
unsigned char CURDATE[7];

/*-----------------------------------------------------------------------
Single_SPI    : 使用SPI接口讀寫數(shù)據(jù)到DS1302
 
輸入?yún)?shù):	command:	命令選擇;
			wdata:		寫入的數(shù)據(jù);
返回值		rdata:		讀回的數(shù)據(jù);	
   (SPI的收發(fā)是同時(shí)進(jìn)行的)
-----------------------------------------------------------------------*/
unsigned char Single_SPI(unsigned char command,unsigned char wdata)
{
	unsigned char rdata;
    EnDS1302;							// 使能LCD
    _delay_us(10);
    spi_rw(command);		 			// 傳送命令到SPI寄存器
    _delay_us(10);    rdata = spi_rw(wdata);			 	// 傳送數(shù)據(jù)到SPI寄存器    DiDS1302;							// 關(guān)斷LCD SPI通訊
    _delay_us(10);
    return rdata;
}

/*-----------------------------------------------------------------------
Burst_SPI    : 使用SPI接口讀寫一批數(shù)據(jù)到DS1302
 
輸入?yún)?shù):	CMD:		選擇Clock/RAM,選擇讀寫
			lenth:		數(shù)據(jù)長度
			pwdata:		寫入數(shù)據(jù)的緩沖區(qū);
			prdata:		讀回?cái)?shù)據(jù)的緩沖區(qū);	
   (SPI的收發(fā)是同時(shí)進(jìn)行的)
讀CLOCK的數(shù)據(jù)從SECOND寄存器開始,到CONTROL寄存器,最大8字節(jié)
寫CLOCK的數(shù)據(jù)必須一次寫完8個字節(jié)
讀寫RAM的數(shù)據(jù)從 RAM0地址開始,到RAM30地址,最大31字節(jié)
-----------------------------------------------------------------------*/
void Burst_SPI(unsigned char CMD,unsigned char len,
						unsigned char *pwdata,unsigned char *prdata)
{
    EnDS1302;								// 使能SPI通訊
    _delay_us(10);	spi_rw(CMD);							// 傳送命令到SPI寄存器
    _delay_us(10);    
    while (len--)
    {    	*prdata++=spi_rw(*pwdata++);		// 傳送數(shù)據(jù)到SPI寄存器
	};
	DiDS1302;								// 關(guān)斷SPI通訊
    _delay_us(10);}

//檢測DS1302
unsigned char check_RTC(void)
{
	unsigned char i;
    Single_SPI(CMD_CONTROL|CMD_WRITE,CFG_UNPROTECT);//寫允許
    Single_SPI(CMD_RAM_BASE|CMD_WRITE,0xA5);		//寫RAM0
    Single_SPI(CMD_CONTROL|CMD_WRITE,CFG_PROTECT);	//寫保護(hù)
    i=Single_SPI(CMD_RAM_BASE|CMD_READ,0);			//讀取RAM0
    if(i==0xA5)	return 1;
    else 		return 0;
}

//初始化DS1302
void init_RTC(char *init_data)
{
	unsigned char temp[8];
	
    DiDS1302;
	
	DDRA|= (1<<DS1302_CE);

    Single_SPI(CMD_CONTROL|CMD_WRITE,CFG_UNPROTECT);				//寫允許
    Burst_SPI(CMD_CLOCK_BURST|CMD_WRITE,8,init_data,&temp[0]);	//初始化時(shí)間
    Single_SPI(CMD_TRICKLE_CHARGE,CFG_TC_D1R2);						//涓流充電選擇
    Single_SPI(CMD_CONTROL|CMD_WRITE,CFG_PROTECT);					//寫保護(hù)
}

//壓縮BCD碼轉(zhuǎn)換成ASCII碼
void BCDtoASCII(unsigned char cBCD,unsigned char *pstr)
{
	unsigned char i,j;
	i=cBCD>>4;
	j=cBCD&0x0F;
	*pstr++=i+0x30;
	*pstr=j+0x30;
}
//BCD碼0~7轉(zhuǎn)換成漢字'一'~'日'
void decodeWEEK(unsigned char WEEK,unsigned char *pstr)
{
	unsigned char i;
	i=WEEK;
	i&=0x07;
	i=i<<1;
	*pstr++=sWEEK[i++];
	*pstr=sWEEK[i];
}
//讀取當(dāng)前時(shí)間并解釋
void read_date(char *s_cur_date)
{
	Burst_SPI(CMD_CLOCK_BURST|CMD_READ,7,0,CURDATE);	//讀取當(dāng)前時(shí)間
	BCDtoASCII(CURDATE[6],s_cur_date + 2);					//年 ,00~10
	BCDtoASCII(CURDATE[4],s_cur_date + 6);					//月 ,01~12
	BCDtoASCII(CURDATE[3],s_cur_date + 10);					//日 ,01~31(28/30/31)
	BCDtoASCII(CURDATE[2],s_cur_date + 14);					//時(shí) ,00~23
	BCDtoASCII(CURDATE[1],s_cur_date + 18);					//分 ,00~59
	BCDtoASCII(CURDATE[0],s_cur_date + 22);					//秒 ,00~59
	decodeWEEK(CURDATE[5],s_cur_date + 31);					//星期 ,1~7 一~日
}



/*-----------------------------------------------------------------------
delay_nms		:長延時(shí)函數(shù)(GCC內(nèi)部延時(shí)函數(shù)的延時(shí)過短)
 
輸入?yún)?shù): t 		:延時(shí)時(shí)間 ms
-----------------------------------------------------------------------*/
void delay_nms(unsigned int t)
{
    while (t--)
        _delay_ms(1);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区精品| 国产精品第四页| 日韩精品成人一区二区在线| 欧美日韩国产系列| 爽好久久久欧美精品| 日韩精品一区二区三区在线| 国产一区亚洲一区| 欧美极品xxx| 亚洲欧美日韩国产另类专区| 91猫先生在线| 肉肉av福利一精品导航| 精品理论电影在线观看| 国产ts人妖一区二区| 亚洲日本成人在线观看| 666欧美在线视频| 国产精品99久久久久久宅男| 亚洲人成亚洲人成在线观看图片| 欧美日韩成人综合天天影院| 蜜臀久久99精品久久久久久9| 日本高清不卡在线观看| 91国产福利在线| 日本亚洲电影天堂| 在线91免费看| 麻豆成人免费电影| 国产精品九色蝌蚪自拍| 日韩福利视频导航| 国产精品91xxx| 成人av手机在线观看| 亚洲男人的天堂av| 欧美一区二区三区婷婷月色| 成人免费毛片片v| 天涯成人国产亚洲精品一区av| www久久久久| 精品视频资源站| 国产精品18久久久久久久久久久久| 悠悠色在线精品| 久久嫩草精品久久久精品| 欧美在线高清视频| 国产suv精品一区二区6| 图片区日韩欧美亚洲| 国产精品沙发午睡系列990531| 欧美男女性生活在线直播观看| 懂色av中文字幕一区二区三区| 视频一区视频二区中文字幕| 日韩一区在线播放| 久久精品视频免费观看| 欧美乱妇20p| 91免费版在线看| 懂色av一区二区在线播放| 蜜臂av日日欢夜夜爽一区| 亚洲在线中文字幕| 综合av第一页| 中文字幕国产精品一区二区| 欧美成人乱码一区二区三区| 欧美性受xxxx| 色综合天天做天天爱| 豆国产96在线|亚洲| 久久精品国产99| 水蜜桃久久夜色精品一区的特点| 一区二区三区久久| 亚洲女同一区二区| 中文字幕一区二区在线观看| 久久精品视频网| 久久久影视传媒| 精品欧美一区二区在线观看| 69堂成人精品免费视频| 欧美高清视频www夜色资源网| 色诱视频网站一区| 在线视频欧美区| 一本色道久久综合狠狠躁的推荐| 波多野结衣亚洲一区| 国产+成+人+亚洲欧洲自线| 国产综合久久久久久久久久久久| 日韩不卡一二三区| 免费在线看一区| 久久精品国产网站| 国产自产视频一区二区三区| 国产专区综合网| 国产一区二区三区香蕉| 韩国女主播成人在线| 国产美女av一区二区三区| 国产一区二区按摩在线观看| 国产一区二区三区免费| 成人夜色视频网站在线观看| 不卡av免费在线观看| 99精品热视频| 色欧美88888久久久久久影院| 色婷婷综合久久久久中文一区二区| 91网站最新地址| 一本大道久久精品懂色aⅴ| 欧美色中文字幕| 日韩欧美亚洲一区二区| 久久久久九九视频| 亚洲视频一区二区免费在线观看 | 久久99精品久久久久| 久久精品国产成人一区二区三区| 精品亚洲国产成人av制服丝袜| 久久精品国产一区二区| 成人黄色软件下载| 色成人在线视频| 欧美日本精品一区二区三区| 精品欧美久久久| 中文字幕亚洲在| 亚洲成人av在线电影| 蜜桃视频在线观看一区二区| 国产成人亚洲综合a∨婷婷| 色国产精品一区在线观看| 欧美一区三区二区| 国产精品三级av在线播放| 亚洲国产一区二区三区| 麻豆精品视频在线观看| av亚洲精华国产精华精| 欧美日韩国产欧美日美国产精品| 日韩三级高清在线| 亚洲色图都市小说| 蜜桃久久av一区| 色美美综合视频| 亚洲精品在线电影| 亚洲国产中文字幕| 成人动漫一区二区在线| 91精品国产福利在线观看| 国产精品美女久久久久久久久 | 97久久精品人人澡人人爽| 欧美高清性hdvideosex| 国产调教视频一区| 日日骚欧美日韩| 91亚洲国产成人精品一区二三| 91麻豆精品久久久久蜜臀| 亚洲女同一区二区| 国产91高潮流白浆在线麻豆 | 亚洲成年人网站在线观看| 国产一区二区三区精品视频| 日本高清无吗v一区| 国产三级三级三级精品8ⅰ区| 午夜影视日本亚洲欧洲精品| 国产宾馆实践打屁股91| 日韩免费观看高清完整版| 亚洲综合一区二区| 成人午夜av电影| 337p粉嫩大胆色噜噜噜噜亚洲| 午夜天堂影视香蕉久久| 99久久伊人网影院| 久久精品一区二区三区不卡牛牛| 亚洲成人av资源| 欧美亚洲日本一区| 亚洲欧洲一区二区在线播放| 国产成人av电影在线| 久久一二三国产| 国内一区二区视频| 日韩精品一区二区三区视频 | 中文av一区二区| 精品在线亚洲视频| 日韩限制级电影在线观看| 亚洲va欧美va人人爽午夜 | 欧美日韩三级一区二区| 亚洲美女区一区| a级精品国产片在线观看| 欧美韩国日本综合| 国产激情91久久精品导航 | 国产蜜臀av在线一区二区三区| 狠狠色丁香婷婷综合| 日韩欧美亚洲国产另类| 免费成人在线网站| 日韩欧美你懂的| 麻豆一区二区三| 精品久久久三级丝袜| 蜜桃av一区二区在线观看| 日韩欧美一区二区免费| 另类欧美日韩国产在线| 日韩欧美成人一区| 美女www一区二区| 欧美精品一区二区高清在线观看| 麻豆国产精品视频| 久久综合精品国产一区二区三区| 久久er精品视频| 久久午夜老司机| 国产成人a级片| 亚洲男人电影天堂| 欧美久久久久免费| 免费av网站大全久久| 久久亚洲免费视频| 成人ar影院免费观看视频| 亚洲乱码国产乱码精品精可以看| 在线免费观看日本欧美| 首页综合国产亚洲丝袜| 欧美一级国产精品| 国产盗摄一区二区| 亚洲女同ⅹxx女同tv| 欧美丰满少妇xxxbbb| 国内精品久久久久影院色| 国产精品美女久久久久久久久久久| 99久久精品免费| 视频一区二区三区在线| 欧美精品一区二区三区高清aⅴ| 国产91精品露脸国语对白| 一区二区久久久| 日韩精品资源二区在线| 99麻豆久久久国产精品免费优播| 亚洲国产你懂的| 久久婷婷色综合|