freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機(jī)和時(shí)鐘芯片ds1302的數(shù)字時(shí)鐘設(shè)計(jì)2-資料下載頁(yè)

2025-06-28 00:26本頁(yè)面
  

【正文】 提供秒、分、時(shí)、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)AM/PM 指示決定采用24 或12 小時(shí)格式DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線:(1)RES 復(fù)位,(2) I/O 數(shù)據(jù)線,(3)SCLK串行時(shí)鐘時(shí)鐘/RAM 的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31 個(gè)字節(jié)的字符組方式通信。DS1302 工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。 DS1302 是由DS1202 改進(jìn)而來(lái),增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1 為可編程涓流充電電源,附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。下面將主要的性能指標(biāo)作一綜合:實(shí)時(shí)時(shí)鐘具有能計(jì)算2100 年之前的秒、分、時(shí)、日、日期、星期、月、年的能力還有閏年調(diào)整的能力318 位暫存數(shù)據(jù)存儲(chǔ)RAM串行I/O 口方式使得管腳數(shù)量最少寬范圍工作電壓: 工作電流: 時(shí),小于300nA讀/寫時(shí)鐘或RAM 數(shù)據(jù)時(shí):有兩種傳送方式:?jiǎn)巫止?jié)傳送和多字節(jié)傳送(字符組方式) 8 腳DIP 封裝或可選的8 腳SOIC 封裝(根據(jù)表面裝配) 簡(jiǎn)單3 線接口 與TTL 兼容(Vcc=5V) 可選工業(yè)級(jí)溫度范圍40~+85 與DS1202 兼容 在DS1202 基礎(chǔ)上增加的特性—對(duì)Vcc1 有可選的涓流充電能力—雙電源管用于主電源和備份電源供應(yīng)—備份電源管腳可由電池或大容量電容輸入—附加的7 字節(jié)暫存存儲(chǔ)器1 DS1302 的基本組成和工作原理DS1302 的管腳排列及描述如下圖及表所示: 2. DS1302 內(nèi)部寄存器CH: 時(shí)鐘停止位 CH=0 振蕩器工作允許 CH=1 振蕩器停止 WP: 寫保護(hù)位 WP=0 寄存器數(shù)據(jù)能夠?qū)懭? WP=1 寄存器數(shù)據(jù)不能寫入 TCS: 涓流充電選擇 TCS=1010 使能涓流充電 TCS=其它 禁止涓流充電 寄存器2 的第7 位12/24 小時(shí)標(biāo)志bit7=1,12 小時(shí)模式 bit7=0,24 小時(shí)模式寄存器2 的第5 位:AM/PM 定義AP=1 下午模式AP=0 上午模式DS: 二極管選擇位DS=01 選擇一個(gè)二極管DS=10 選擇兩個(gè)二極管DS=00 或11, 即使TCS=1010, 充電功能也被禁DS1302使用說(shuō)明及注意的問(wèn)題DS1302在任何數(shù)據(jù)傳送時(shí)必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問(wèn)到。在開(kāi)始8個(gè)時(shí)鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)寫入數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達(dá)248字節(jié)數(shù)。如果在傳送過(guò)程中置RST腳為低電平,則會(huì)終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥,RST腳必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。DS1302的控制字如表1所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如果為0,則表示要進(jìn)行寫操作;為1表示進(jìn)行讀操作??刂谱止?jié)總是從最低位開(kāi)始輸入/輸出。為了提高對(duì)32個(gè)地址尋址能力(地址/命令位1~5=邏輯1),可以把時(shí)鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時(shí)鐘或RAM,而位0規(guī)定讀或?qū)?。在時(shí)鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?的位0開(kāi)始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫RAM時(shí),為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。 表1 DS1302控制字 DS1302共有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時(shí)間寄存器及其控制字如上表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。時(shí)鐘暫停:秒寄存器的位7定義位時(shí)鐘暫停位。當(dāng)它為1時(shí),DS1302停止振蕩,進(jìn)入低功耗的備份方式,通常在對(duì)DS1302進(jìn)行寫操作時(shí)(如進(jìn)入時(shí)鐘調(diào)整程序),停止振蕩。當(dāng)它為0時(shí),時(shí)鐘將開(kāi)始啟動(dòng)。 AMPM/1224小時(shí)方式:小時(shí)寄存器的位7定義為12或24小時(shí)方式選擇位。它為高電平時(shí),選擇12小時(shí)方式。在此方式下,位5為第二個(gè)10小時(shí)位(20~23h)。 DS1302的晶振選用32768Hz,電容推薦值為6pF。因?yàn)檎袷庮l率較低,也可以不接電容,對(duì)計(jì)時(shí)精度影響不大。附錄Ⅱ:如何利用軟件減小的計(jì)時(shí)誤差 此次所設(shè)計(jì)的數(shù)字鐘,總的來(lái)看計(jì)時(shí)的誤差來(lái)源主要由中斷響應(yīng)延遲引起的誤差(不使用時(shí)鐘芯片的情況下)。如下對(duì)誤差來(lái)源進(jìn)行詳細(xì)的分析。不考慮晶振等固件的誤差, 則系統(tǒng)機(jī)器周期可以由公式準(zhǔn)確算出, 因而系統(tǒng)誤差不可能來(lái)自于硬件, 而應(yīng)該主要來(lái)自于軟件方面。 系統(tǒng)每次調(diào)用定時(shí)中斷程序的過(guò)程中, 硬件并沒(méi)有自動(dòng)進(jìn)入下一個(gè)定時(shí)周期, 而是在調(diào)用中斷程序以后由軟件置數(shù)來(lái)實(shí)現(xiàn)的。 而在程序調(diào)用過(guò)程中,堆棧建立、參數(shù)傳遞等都是需要耗時(shí),而這些時(shí)間都被無(wú)形中加到了定時(shí)長(zhǎng)度中去。所以,使得每次定時(shí)長(zhǎng)度都大于理論推導(dǎo)值,在宏觀上表現(xiàn)出來(lái)就是系統(tǒng)比理論計(jì)算出來(lái)的結(jié)果變慢了。另外,由于系統(tǒng)每次調(diào)用中斷處理程序所執(zhí)行的操作都是相同的,也就是說(shuō),系統(tǒng)每次定時(shí)的時(shí)間誤差應(yīng)該是一個(gè)常數(shù)。 MCS51單片機(jī)的中斷響應(yīng)延遲時(shí)間,取決于其它中斷服務(wù)程序是否在進(jìn)行,或取決于正在執(zhí)行的是什么樣的指令。單中斷系統(tǒng)中的中斷響應(yīng)時(shí)間為3~8個(gè)機(jī)器周期。無(wú)論是哪一種原因引起的誤差,在精確定時(shí)的應(yīng)用場(chǎng)合,必須考慮它們的影響,以確保精確的定時(shí)控制。根據(jù)定時(shí)中斷的不同應(yīng)用情況,應(yīng)選擇不同的精確定時(shí)編程方法。如果設(shè)置定時(shí)器中斷為中斷高優(yōu)先級(jí),外部中斷位低優(yōu)先級(jí),則中斷過(guò)程中產(chǎn)生的中斷延時(shí)如下圖所示:A:有按鍵按下的情況下發(fā)生定時(shí)中斷 B:僅有時(shí)鐘中斷的情況CPU響應(yīng)定時(shí)中斷設(shè)置定時(shí)器T1工作在定時(shí)方式1為,晶振頻率為12MHz 。以下通過(guò)5種方法來(lái)解決由中斷引起的延時(shí)誤差問(wèn)題。 方法1:  在定時(shí)器溢出中斷得到響應(yīng)時(shí),停止定時(shí)器計(jì)數(shù),讀出計(jì)數(shù)值(反映了中斷響應(yīng)的延遲時(shí)間),根據(jù)此計(jì)數(shù)值算出到下一次中斷時(shí),需多長(zhǎng)時(shí)間,由此來(lái)重裝載和啟動(dòng)定時(shí)器。例如定時(shí)周期為1ms,則通常定時(shí)器重裝載值為655361000(0FC18H)。下面的程序在計(jì)算每個(gè)定時(shí)周期的精確重裝載值時(shí),考慮了由停止計(jì)數(shù)(CLR TR1)到重新啟動(dòng)計(jì)數(shù)(SETB TR1)之間的7個(gè)機(jī)器周期時(shí)間。程序中LOW(655361000+7)和HIGH(655361000+7)是匯編符號(hào),分別表示655361000+7=0FC1FH這個(gè)立即數(shù)的低位字節(jié)(1FH)和高位字節(jié)(0FCH)。......CLR EA ;禁止所有中斷CLR TR1 ;停止定時(shí)器T1MOV A, LOW (LOW 1000+7) ;期望數(shù)的低位字節(jié)ADD A,TL1 ;進(jìn)行修正MOV TL1,A ;重裝載低位字節(jié)MOV A,HIGH(HIGH 1000+7) ;對(duì)高位字節(jié)處理ADDC A,TH1 MOV TH1,A SETB TR1 ;重啟動(dòng)定時(shí)器SETB EA ;重開(kāi)中斷......適用范圍:此方法適用于各種原因造成的定時(shí)誤差的情況,為通用方法。方法2: 假如定時(shí)周期為10ms,通常定時(shí)器重裝載值為0D8F0H,中斷子程序如下: ORL TL1,0F0H MOV TH1,0D8H......  這里用ORL TL1,0F0H代替MOV TL1,0F0H 可提高定時(shí)精度。此方法只適用于重裝載值低位字節(jié)的低4位為零,且中斷響應(yīng)的延遲時(shí)間小于16個(gè)機(jī)器周期的情況。類似的定時(shí)器重裝載值有0FFF0H,0FFE0H等。方法3:  假如定時(shí)周期為1ms,通常定時(shí)器重裝載值為0FC18H,中斷子程序如下:MOV A,LOW(LOW 1000+4) ;期望數(shù)的低位字節(jié)ADD A,TL1MOV TL1,AMOV A,HIGH(HIGH 1000+4) ;對(duì)高位字節(jié)處理ADDC A,TH1MOV TH1,ADEC TL1 ;恢復(fù)提前了的2個(gè)機(jī)器周期......  這種方法中不停止定時(shí)器計(jì)數(shù)過(guò)程,若在執(zhí)行指令A(yù)DDC A,TH1 或MOV TH1,A時(shí),恰好產(chǎn)生TL1溢出向TH1進(jìn)位的情況,則TH1的值就不對(duì)了,會(huì)產(chǎn)生更大的誤差。為此,程序段開(kāi)頭為重裝載值加4,若有溢出進(jìn)位,則可提前發(fā)生,其中2個(gè)機(jī)器周期是考慮到為TL1重裝載占用的時(shí)間。 適用范圍:此方法適用于系統(tǒng)中無(wú)其它更高優(yōu)先級(jí)中斷源的情況。若類似方法1,在程序段開(kāi)頭和結(jié)尾分別加上禁止所有中斷(CLR EA)和開(kāi)中斷(SETB EA)指令,則將適用于所有情況。方法4:假如定時(shí)周期不確定,只知道定時(shí)器重裝載值存放在寄存器RR2中,中斷子程序如下:MOV A,05H ;3個(gè)機(jī)器周期裝載TL1,2個(gè)周期提前ADD A,TL1 ADD A,R2MOV TL1,A MOV A,R3 ;處理高位字節(jié)ADDC A,TH1MOV TH1,ADEC TL1 ;恢復(fù)提前了的2個(gè)機(jī)器周期......適用范圍:此法適用于定時(shí)周期不確定的情況,其它同方法3。方法5:當(dāng)定時(shí)中斷發(fā)生的位置可預(yù)知時(shí),通常出現(xiàn)在主程序的AJMP $ (或SJMP $)等待指令處,中斷延遲時(shí)間為3個(gè)或4個(gè)機(jī)器周期。取固定值4可簡(jiǎn)化補(bǔ)償程序。以定時(shí)周期1ms為例,中斷子程序如下:ORG 001BHMOV TL1,LOW(LOW 1000+4)MOV TH1,HIGH(HIGH 1000+4)......適用范圍:此方法適用于定時(shí)中斷總發(fā)生在同一條指令位置,且無(wú)其它中斷源的情況?!∩鲜?種方法誤差均不超過(guò)1個(gè)機(jī)器周期,其中方法4較為通用,適用于任何情況,但程序較長(zhǎng);方法5簡(jiǎn)單,但必須注意滿足對(duì)應(yīng)條件,才能使用
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1