999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DS1302底層程序的設計

2014-12-31 00:00:00曾曉春
消費電子·下半月 2014年8期

摘 要:本文詳細介紹時鐘芯片DS1302底層程序編寫方法,DS1302時序圖運用注意事項。程序代碼已優(yōu)化,作為子程序及函數(shù)可供直接調用。

關鍵詞:時序圖;上升沿;下降沿;寄存器

中圖分類號:TP273.5 文獻標識碼:A 文章編號:1674-7712 (2014) 16-0000-01

DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口一CPU進行同步通信,并可以采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調整,且具有閏年補償功能。

一、DS1302時序圖介紹

地址字節(jié)和數(shù)據(jù)字節(jié)的讀取時上升沿有效,而且是由LSB開始讀入。以上是DS1302一個字節(jié)寫入時序圖。第一個字節(jié)是地址字節(jié),第二個字節(jié)是數(shù)據(jù)字節(jié)。RST信號必須拉高,否則數(shù)據(jù)的輸入是效的。換一句話說,RST信號控制數(shù)據(jù)、時間信號輸入的開始和結束。地址字節(jié)和數(shù)據(jù)字節(jié)的讀取時上升沿有效,而且是由LSB開始讀入。

總之,數(shù)據(jù)輸入到DS1302:在通過8個SCLK輸入一個寫命令字后,在下8個上升沿數(shù)據(jù)被輸入到DS1302,數(shù)據(jù)位從LSB開始。注:先在IO上放置數(shù)據(jù),然后產(chǎn)生一個一升沿,多余的SCLK將被忽略。

數(shù)據(jù)從DS1302輸出:在通過8個SCLK輸入一個寫命令字后,在下8個上升沿數(shù)據(jù)從DS1302輸出,數(shù)據(jù)位從LSB開始。注意:第1個被輸出的數(shù)據(jù)位是在寫完命令字的最后一位的第1個下降沿被輸出,多余的SCLK的效果是重復發(fā)送數(shù)據(jù),不產(chǎn)生其它影響。

突發(fā)模式(多字節(jié)操作):多字節(jié)突發(fā)讀取/寫入可用于時鐘,同樣可用于RAM的讀,在命令控制中的位6中指,位5到位1=邏輯1,時鐘的9到31號寄存器沒有數(shù)據(jù)存儲能,RAM的31號也沒有(0-30),突發(fā)模式從地址0的第0位開始數(shù)據(jù),在寫時鐘寄存器時(共8個),必須按照寄存器的順序依次寫,在寫RAM數(shù)據(jù)時,不需要同時寫所有31個寄存器。

二、DS1302底層子程序

#include

#define uchar unsigned char

#define uint unsigned int

sbit sclk=P3^5;//時鐘

sbit io=P3^6;//數(shù)據(jù)

sbit rst = P3^7;//DS1302復位

uchar ds1302_write_add[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//DS1032寫寄存器地址

uchar ds1302_read_add[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d}; //DS1302讀寄存器地址

uchar set[]={50,45,11,15,9,3,14}; //初始化設置秒、分、時、日、月、周、年

sbit ACC0=ACC^0;

sbit ACC7=ACC^7;

void write_1302byt(uchar add)//單字節(jié)寫

{

uchar i;

ACC=add; //將要寫入的地址附給加法寄存器ACC

for(i=8;i>0;i--)

{

io=ACC0;//數(shù)據(jù)是從最低位開始傳輸?shù)?/p>

sclk=0; //為制造上升沿脈沖做準備

sclk=1;//形成上升沿脈沖

ACC>>=1;//數(shù)據(jù)右移一位,為下次傳輸做準備

}

}

void write_1302(uchar add,uchar dat)//雙字節(jié)寫

{

rst=0;

sclk=0;

rst=1;

write_1302byt(add); //寫完地址馬上寫數(shù)據(jù)

write_1302byt(dat);

rst=0;

io=0;

}

uchar read_1302byt()//單字節(jié)讀

{

uchar i;

for(i=8;i>0;i--)

{

ACC7=io; //讀出io口數(shù)據(jù)

sclk=1; //為產(chǎn)生下降沿做準備

sclk=0; //形成下降沿

ACC>>=1;//數(shù)據(jù)是從最低位讀取的,移位形成完整數(shù)據(jù)

}

return ACC; //返回讀出的數(shù)據(jù)

}

uchar read_1302(uchar add)

{

uchar vlaue;

rst=0;

sclk=0;

rst=1;

write_1302byt(add); //先寫地址

vlaue=read_1302byt();//再讀出數(shù)據(jù)

rst=0;

io=0; //釋放出io口,這一步非常重要

return vlaue;

}

void init_1302() //初始化DS1302,對時

{

uchar i;

for(i=0;i<7;i++)

{

set[i]=set[i]/10*16+set[i]%10;//轉換成BCD碼

}

write_1302(0x8e,0x00);//開寫保護

for(i=0;i<7;i++)

{

write_1302(ds1302_write_add[i],set[i]);//設置時間

}

write_1302(0x8e,0x80);//關寫保護

}

程序已經(jīng)調試成功,若要更改設置時間,只需修改uchar set[]數(shù)組中的時間;把uchar set[]數(shù)組中所需的數(shù)據(jù)進行處理,可以在不同的顯示設備上顯示出實時時鐘數(shù)據(jù),滿足不同項目的需要。

參考文獻:

[1]雷林均.單片機控制裝置安裝與調試[M].北京:電子工業(yè)出版社,2011.

[2]李文華.單片機應用技術[M].北京:人民郵電出版社,2011.

[3]谷秀榮.單片機原理與應用[M].北京:北京交通大學出版社,2009.

[4]陳海松.單片機應用技能項目化教程[M].北京:電子工業(yè)出版社,2012.

[作者簡介]曾曉春(1968-),男,貴州惠水人,中國農(nóng)業(yè)大學畢業(yè),副教授,主要從事單片機技術應用、變頻器技術應用、電機技術應用研究。

主站蜘蛛池模板: 97视频在线精品国自产拍| 嫩草影院在线观看精品视频| 国外欧美一区另类中文字幕| 91美女视频在线观看| 国产三级韩国三级理| 伊人AV天堂| 国产成人精品日本亚洲| 国产精品30p| 丁香六月激情婷婷| 尤物精品国产福利网站| 麻豆精品在线视频| 天天做天天爱夜夜爽毛片毛片| 人人艹人人爽| 亚洲二区视频| 亚洲中文字幕在线观看| 久久综合色视频| 亚洲aaa视频| 中文字幕2区| 欧美性色综合网| 天天做天天爱天天爽综合区| 日韩最新中文字幕| www亚洲天堂| 日韩美女福利视频| 无码一区18禁| 天堂中文在线资源| 亚洲不卡av中文在线| 亚洲熟妇AV日韩熟妇在线| 中文字幕第4页| 国产精品99久久久久久董美香| Jizz国产色系免费| 欧美日韩国产综合视频在线观看| www精品久久| 精品人妻系列无码专区久久| 亚洲自拍另类| 无码一区二区波多野结衣播放搜索| 五月天综合网亚洲综合天堂网| 最新加勒比隔壁人妻| 国产91成人| 欧美一级爱操视频| 久久频这里精品99香蕉久网址| 国产鲁鲁视频在线观看| 欧美日韩91| 国产www网站| 五月婷婷综合网| 国产激情在线视频| 国产亚洲视频免费播放| 亚洲国产精品日韩av专区| 国产三级成人| 国产真实乱子伦精品视手机观看| 又大又硬又爽免费视频| 久久国产香蕉| 91啦中文字幕| 99久久国产自偷自偷免费一区| 亚洲一区二区三区国产精华液| 亚洲系列无码专区偷窥无码| 四虎永久免费在线| 免费观看精品视频999| 热re99久久精品国99热| 激情六月丁香婷婷四房播| 午夜福利无码一区二区| 成人午夜免费观看| 久久综合色播五月男人的天堂| 国产精品国产主播在线观看| 国产91全国探花系列在线播放| 免费亚洲成人| 欧美激情视频一区二区三区免费| 在线免费观看AV| 又猛又黄又爽无遮挡的视频网站| 婷婷色中文| 日本不卡在线| 国产最新无码专区在线| 国产黄在线观看| 青青青国产视频| 三上悠亚一区二区| 国产女主播一区| 欧美日韩一区二区三区在线视频| 国产人成在线视频| 欧美亚洲国产精品第一页| 97在线公开视频| 欧美成人区| 就去吻亚洲精品国产欧美| 九一九色国产|