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

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

?? lpc2292&1302.c

?? 時鐘芯片1302 用LPC21xx例程(已調試過)
?? C
字號:
 fugn 發表于 2005-6-13 20:48 ZLG-ARM ←返回版面    

原創:關于lpc2292外接ds1302時鐘芯片的驅動程序 

昨天調試好了LPC2292的外接時鐘芯片DS1302,程序如下:
希望能對大家有所幫助,也希望能給予指正
#define IN_DS1302
//#ifndef  include  "config.h"
#include  "config.h"
//#endif
/*********************************************************************/
/* 實時時鐘模塊 時鐘芯片型號:DS1302 */
/**/
/*********************************************************************/
#define   T_RST      0x00004000        /* P0.14  實時時鐘復位線引腳 */
#define   T_IO        0x00008000        /* P0.15  實時時鐘數據線引腳 */
#define   T_CLK       0x00010000        /* P0.16  實時時鐘時鐘線引腳 */
#define   T_INCON   0x00014000      /* 定義寫端口設置字   */
#define   T_OUTCON  0x0001c000      /* 定義讀端口設置字   */

void Hold(uint32  dly)
{  
   for(; dly>0; dly--);
}


void v_InitDS1302(void)
{ 
  IO0DIR = T_OUTCON;
}
/******************************************************************** 
*
* 名稱: v_RTInputByte
* 說明: 
* 功能: 往DS1302寫入1Byte數據
* 調用:
* 輸入: ucDa 寫入的數據 
* 返回值: 無
***********************************************************************/

void v_RTInputByte(uint8 ucDa) 
{ 
uint8 i;

for(i=8; i>0; i--)
{
if((ucDa&0x01) != 0)
   IO0SET = T_IO;
else
   IO0CLR = T_IO;
Hold(10);
IO0SET = T_CLK;
Hold(20);
IO0CLR = T_CLK;
Hold(10);

ucDa >>= 1;  /*相當于匯編中的 RRC */
} 
}
/******************************************************************** 
*
* 名稱: uchar uc_RTOutputByte
* 說明: 
* 功能: 從DS1302讀取1Byte數據
* 調用: 
* 輸入: 
* 返回值: ucDa
***********************************************************************/
uint8 uc_RTOutputByte(void) 
{ 
uint8 i;
uint8 ucDa=0;
IO0DIR = T_INCON;
for(i=8; i>0; i--)
{
Hold(10);

ucDa >>= 1;  /*相當于匯編中的 RRC */
if((IO0PIN&T_IO) !=0 )///////////////
    ucDa += 0x80;

IO0SET = T_CLK;
Hold(20);
IO0CLR = T_CLK;
Hold(10);
} 
IO0DIR = T_OUTCON;
return(ucDa); 
}
/******************************************************************** 
*
* 名稱: v_W1302
* 說明: 先寫地址,后寫命令/數據
* 功能: 往DS1302寫入數據
* 調用: v_RTInputByte() 
* 輸入: ucAddr: DS1302地址, ucDa: 要寫的數據
* 返回值: 無
***********************************************************************/
void v_W1302(uint8 ucAddr, uint8 ucDa)
{
IO0CLR = T_RST; /*T_RST = 0;*/
IO0CLR = T_CLK; /*T_CLK = 0;*/
Hold(40);
IO0SET = T_RST; /*T_RST = 1;*/
v_RTInputByte(ucAddr); /* 地址,命令 */
v_RTInputByte(ucDa); /* 寫1Byte數據*/
IO0SET = T_CLK; /*T_CLK = 1;*/
IO0CLR = T_RST; /*T_RST = 0;*/
Hold(40);
} 
/******************************************************************** 
*
* 名稱: uc_R1302
* 說明: 先寫地址,后讀命令/數據
* 功能: 讀取DS1302某地址的數據
* 調用: v_RTInputByte() , uc_RTOutputByte()
* 輸入: ucAddr: DS1302地址
* 返回值: ucDa :讀取的數據
***********************************************************************/
uint8 uc_R1302(uint8 ucAddr)
{
uint8 ucDa;
IO0CLR = T_RST; /*T_RST = 0;*/
IO0CLR = T_CLK; /*T_CLK = 0;*/
Hold(40);
IO0SET = T_RST; /*T_RST = 1;*/
v_RTInputByte(ucAddr); /* 地址,命令 */
ucDa = uc_RTOutputByte(); /* 讀1Byte數據 */
IO0SET = T_CLK; /*T_CLK = 1;*/
IO0CLR = T_RST; /*T_RST = 0;*/
Hold(40);

return(ucDa);
}
/******************************************************************** 
*
* 名稱: v_BurstW1302T
* 說明: 先寫地址,后寫數據(時鐘多字節方式)
* 功能: 往DS1302寫入時鐘數據(多字節方式)
* 調用: v_RTInputByte() 
* 輸入: pSecDa: 時鐘數據地址 格式為: 秒 分 時 日 月 星期 年 控制
* 8Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_BurstW1302T(uint8 *pSecDa)
{
uint8 i;
v_W1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
IO0CLR = T_RST; /*T_RST = 0;*/
IO0CLR = T_CLK; /*T_CLK = 0;*/
Hold(40);
IO0SET = T_RST; /*T_RST = 1;*/
v_RTInputByte(0xbe); /* 0xbe:時鐘多字節寫命令 */
for (i=8;i>0;i--) /*8Byte = 7Byte 時鐘數據 + 1Byte 控制*/
{
v_RTInputByte(*pSecDa);/* 寫1Byte數據*/
pSecDa++;
}
IO0SET = T_CLK; /*T_CLK = 1;*/
IO0CLR = T_RST; /*T_RST = 0;*/
Hold(40);
} 
/******************************************************************** 
*
* 名稱: v_BurstR1302T
* 說明: 先寫地址,后讀命令/數據(時鐘多字節方式)
* 功能: 讀取DS1302時鐘數據
* 調用: v_RTInputByte() , uc_RTOutputByte()
* 輸入: pSecDa: 時鐘數據地址 格式為: 秒 分 時 日 月 星期 年 
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: ucDa :讀取的數據
***********************************************************************/
void v_BurstR1302T(uint8 *pSecDa)
{
uint8 i;
IO0CLR = T_RST; /*T_RST = 0;*/
IO0CLR = T_CLK; /*T_CLK = 0;*/
Hold(40);
IO0SET = T_RST; /*T_RST = 1;*/
v_RTInputByte(0xbf); /* 0xbf:時鐘多字節讀命令 */
for (i=8; i>0; i--) 
{
*pSecDa = uc_RTOutputByte(); /* 讀1Byte數據 */
pSecDa++;
}
IO0SET = T_CLK; /*T_CLK = 1;*/
IO0CLR = T_RST; /*T_RST = 0;*/
Hold(40);
}
/******************************************************************** 
*
* 名稱: v_BurstW1302R
* 說明: 先寫地址,后寫數據(寄存器多字節方式)
* 功能: 往DS1302寄存器數寫入數據(多字節方式)
* 調用: v_RTInputByte() 
* 輸入: pReDa: 寄存器數據地址
* 返回值: 無
***********************************************************************/
void v_BurstW1302R(uint8 *pReDa)
{
uint8 i;
v_W1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/
IO0CLR = T_RST; /*T_RST = 0;*/
IO0CLR = T_CLK; /*T_CLK = 0;*/
Hold(40);
IO0SET = T_RST; /*T_RST = 1;*/
v_RTInputByte(0xfe); /* 0xbe:時鐘多字節寫命令 */
for (i=31;i>0;i--) /*31Byte 寄存器數據 */
{
v_RTInputByte(*pReDa); /* 寫1Byte數據*/
pReDa++;
}
IO0SET = T_CLK; /*T_CLK = 1;*/
IO0CLR = T_RST; /*T_RST = 0;*/
Hold(40);
} 
/******************************************************************** 
*
* 名稱: uc_BurstR1302R
* 說明: 先寫地址,后讀命令/數據(寄存器多字節方式)
* 功能: 讀取DS1302寄存器數據
* 調用: v_RTInputByte() , uc_RTOutputByte()
* 輸入: pReDa: 寄存器數據地址
* 返回值: 無
***********************************************************************/
void v_BurstR1302R(uint8 *pReDa)
{
uint8 i;
IO0CLR = T_RST; /*T_RST = 0;*/
IO0CLR = T_CLK; /*T_CLK = 0;*/
Hold(40);
IO0SET = T_RST; /*T_RST = 1;*/
v_RTInputByte(0xff); /* 0xbf:時鐘多字節讀命令 */
for (i=31; i>0; i--) /*31Byte 寄存器數據 */
{
*pReDa = uc_RTOutputByte(); /* 讀1Byte數據 */
pReDa++;
}
IO0SET = T_CLK; /*T_CLK = 1;*/
IO0CLR = T_RST; /*T_RST = 0;*/
Hold(40);
}
/******************************************************************** 
*
* 名稱: v_Set1302
* 說明: 
* 功能: 設置初始時間
* 調用: v_W1302() 
* 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年 
* 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B
* 返回值: 無
***********************************************************************/
void v_Set1302(uint8 *pSecDa) 
{
uint8 i;
uint8 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(uint8 ucCurtime[]) 
{
uint8 i;
uint8 ucAddr = 0x81;
for (i=0;i<7;i++)
{
ucCurtime[i] = uc_R1302(ucAddr);/*格式為: 秒 分 時 日 月 星期 年 */
ucAddr += 2;
}
} 

 
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品免费| 91麻豆精品国产91久久久使用方法| 亚洲一区二区三区四区五区黄 | 亚洲视频图片小说| 国产欧美一区二区三区网站| 欧美精品一区二区三区一线天视频| 欧美日本在线播放| 8x8x8国产精品| 日韩限制级电影在线观看| 欧美疯狂做受xxxx富婆| 91精品国产入口| 精品久久久久久久人人人人传媒 | 91精品国产高清一区二区三区蜜臀| 日本高清成人免费播放| 在线观看精品一区| 91精品国产综合久久婷婷香蕉| 欧美一级理论片| 久久精品一二三| 亚洲人快播电影网| 亚洲.国产.中文慕字在线| 丝袜国产日韩另类美女| 精品亚洲国产成人av制服丝袜| 精品一区二区三区视频在线观看| 国模冰冰炮一区二区| 成人午夜精品在线| 91福利视频久久久久| 亚洲欧洲美洲综合色网| 成人欧美一区二区三区| 亚洲国产色一区| 最新不卡av在线| 亚洲精品国产品国语在线app| 亚洲午夜在线电影| 免费人成在线不卡| 成人99免费视频| 欧美日韩精品系列| 国产亚洲精品精华液| 综合激情成人伊人| 首页综合国产亚洲丝袜| 成人免费va视频| 日韩一级高清毛片| 亚洲欧美激情插| 国产一区二区三区在线观看精品| 91丨porny丨首页| 精品播放一区二区| 亚洲午夜羞羞片| 国产二区国产一区在线观看| 欧美在线三级电影| 中文字幕欧美激情| 美女高潮久久久| 欧美性色欧美a在线播放| 久久精品亚洲国产奇米99| 午夜精品久久一牛影视| 成人av在线电影| 欧美成人r级一区二区三区| 亚洲人成伊人成综合网小说| 激情五月播播久久久精品| 日本二三区不卡| 国产精品网曝门| 精品在线播放免费| 欧美一区二区黄色| 天天影视色香欲综合网老头| 99久久国产综合精品女不卡| www激情久久| 九一九一国产精品| 日韩欧美中文字幕精品| 天天影视涩香欲综合网| 欧美日韩一区二区三区高清 | 日韩欧美一级二级三级久久久| 亚洲欧美日韩国产综合在线| 成人手机在线视频| 日本一区二区三区免费乱视频| 国产一区在线视频| 日韩亚洲欧美成人一区| 日韩国产高清影视| 91精品蜜臀在线一区尤物| 亚洲黄色免费电影| 在线观看日韩电影| 亚洲va天堂va国产va久| 欧美色中文字幕| 日精品一区二区三区| 欧美二区乱c少妇| 日本成人超碰在线观看| 欧美一级国产精品| 久久精品国产澳门| 久久综合丝袜日本网| 国产一区二区免费视频| 久久久久久久综合| 丁香五精品蜜臀久久久久99网站 | 日韩欧美一区在线观看| 美女一区二区久久| 精品粉嫩aⅴ一区二区三区四区| 精品一区精品二区高清| 久久精品在线免费观看| 国产成人免费视频网站高清观看视频 | 91日韩精品一区| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲一区视频在线观看视频| 精品视频在线看| 免费一区二区视频| 国产日本欧洲亚洲| 91麻豆精东视频| 午夜视频在线观看一区二区| 日韩欧美亚洲国产另类| 国产精品一二三四| 国产精品网曝门| 欧美日韩高清一区二区三区| 伦理电影国产精品| 国产精品热久久久久夜色精品三区 | 久久婷婷综合激情| 99精品国产一区二区三区不卡| 亚洲一区二区三区视频在线播放| 777亚洲妇女| 国产99久久久久| 日韩国产欧美在线观看| 国产精品污污网站在线观看 | 九九精品视频在线看| 国产精品高潮久久久久无| 欧美日韩激情一区二区| 高清在线观看日韩| 婷婷开心久久网| 国产精品国产精品国产专区不片| 欧美优质美女网站| 国产乱人伦偷精品视频不卡 | 国产九色sp调教91| 亚洲一区二区三区小说| 久久精品网站免费观看| 欧美理论片在线| av网站一区二区三区| 久久成人久久鬼色| 一区二区久久久| 欧美国产精品一区二区| 91精品一区二区三区久久久久久| 99久久精品国产精品久久| 韩国成人福利片在线播放| 一区二区免费看| 国产精品久久久久四虎| 精品国产91乱码一区二区三区| 91传媒视频在线播放| 成人毛片视频在线观看| 久久福利视频一区二区| 亚洲成av人影院在线观看网| 国产精品毛片a∨一区二区三区| 精品区一区二区| 欧美乱妇15p| 欧美日韩国产另类一区| 91美女精品福利| 成人av网站在线| 高潮精品一区videoshd| 国内欧美视频一区二区| 蜜臀久久99精品久久久久久9| 亚洲成人第一页| 亚洲成人tv网| 亚洲第一狼人社区| 亚洲第一二三四区| 天天做天天摸天天爽国产一区| 夜夜爽夜夜爽精品视频| 亚洲精品视频在线观看免费| 亚洲女厕所小便bbb| 亚洲人成小说网站色在线| 亚洲欧洲日韩一区二区三区| 国产精品日日摸夜夜摸av| 国产精品久久毛片a| 国产精品传媒在线| |精品福利一区二区三区| 中文字幕在线播放不卡一区| 亚洲情趣在线观看| 亚洲国产精品嫩草影院| 午夜av一区二区三区| 日产国产欧美视频一区精品| 青青草伊人久久| 国产精品自在欧美一区| 国产成人一区在线| 91在线免费看| 欧美婷婷六月丁香综合色| 欧美一区二区免费视频| 久久先锋影音av| 亚洲欧美日韩系列| 日韩不卡一区二区| 国产aⅴ综合色| 色综合久久久久久久久| 欧美亚洲国产一卡| 欧美哺乳videos| 国产精品国产三级国产有无不卡| 亚洲精品中文在线影院| 首页国产欧美久久| 国产黄人亚洲片| 欧美视频三区在线播放| 精品久久久久久久久久久久久久久 | 精品国偷自产国产一区| 国产精品乱码妇女bbbb| 亚洲一区二区高清| 精品一区二区三区在线观看国产 | 老司机精品视频线观看86| 成人性生交大片免费看中文| 91色porny蝌蚪| 欧美一级黄色大片| 18成人在线观看| 免费在线看成人av| 色狠狠一区二区| 久久免费国产精品|