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

正文內(nèi)容

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

2025-10-14 08:26本頁(yè)面

【導(dǎo)讀】片DS1302設(shè)計(jì)并實(shí)現(xiàn)了數(shù)字時(shí)鐘。在PCB板制作完成并且調(diào)試成功之際,為了。到的問(wèn)題及設(shè)計(jì)思路做一總結(jié)。字計(jì)時(shí)的消費(fèi)需求也是越來(lái)越多。表業(yè)界的第三次革命。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時(shí)精度更高的石英電。技術(shù)的應(yīng)用,使計(jì)時(shí)產(chǎn)品的走時(shí)日差從分級(jí)縮小到1/600萬(wàn)秒,更符合消費(fèi)者的生活需求!因此,電子萬(wàn)年歷的出現(xiàn)帶來(lái)了鐘表計(jì)時(shí)業(yè)界跨躍性。我國(guó)生產(chǎn)的電子萬(wàn)年歷有很多種,總體上來(lái)說(shuō)以研究多功能電子萬(wàn)年歷為主,使萬(wàn)年歷除了原有的顯示時(shí)間,日期等基本功能外,還具有鬧鈴,報(bào)警等功能。實(shí)現(xiàn),軟件設(shè)計(jì)獨(dú)特,可靠。此數(shù)字鐘利用單片機(jī)STC89C52和時(shí)鐘芯片DS1302設(shè)計(jì)完成。統(tǒng)開(kāi)始正常運(yùn)行。時(shí)刻的鬧鈴,用戶(hù)可以手動(dòng)選擇鬧鈴的開(kāi)或者關(guān)兩種狀態(tài)。片模塊、主控芯片STC89C52模塊和鬧鈴模塊等7大模塊組成。S2主要功能用來(lái)進(jìn)行加一操作。在有功能選擇的情況下,無(wú)論選中那一種功。鬧鈴,在按鍵一次就可以關(guān)閉(或打開(kāi))鬧鈴。

  

【正文】 式進(jìn)行通信,僅需用到三個(gè)口線(xiàn):( 1) RES 復(fù)位, ( 2) I/O 數(shù)據(jù)線(xiàn), ( 3) SCLK串行時(shí)鐘時(shí)鐘 /RAM 的讀 /寫(xiě)數(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)用于電話(huà)、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。下面將主要的性能指標(biāo)作一綜合: 實(shí)時(shí)時(shí)鐘具有能計(jì)算 2100 年之前的秒、分、時(shí)、日、日期、星期、月、年的能力還有閏年調(diào)整的能力 318 位暫存數(shù)據(jù)存儲(chǔ) RAM 串行 I/O 口方式使得管腳數(shù)量最少 寬范圍工作電壓: 工作電流: 時(shí) ,小于 300nA 讀 /寫(xiě)時(shí)鐘或 RAM 數(shù)據(jù)時(shí):有兩種傳送方式:?jiǎn)巫止?jié)傳送 和多字節(jié)傳送(字符組方式) 8 腳 DIP 封裝或可選的 8 腳 SOIC 封裝(根據(jù)表面裝配) 簡(jiǎn)單 3 線(xiàn)接口 與 TTL 兼容( Vcc=5V) 可選工業(yè)級(jí)溫度范圍 40~ +85 與 DS1202 兼容 在 DS1202 基礎(chǔ)上增加的特性 — 對(duì) Vcc1 有可選的涓流充電能力 — 雙電源管用于主電源和備份電源供應(yīng) — 備份電源管腳可由電池或大容量電容輸入 — 附加的 7 字節(jié)暫存存儲(chǔ)器 1 DS1302 的基本組成和工作原理 DS1302 的管腳排列及描述如下圖及表所示: 23 2. DS1302 內(nèi)部寄存器 CH: 時(shí)鐘停止位 CH=0 振蕩器工作允許 CH=1 振蕩器停止 WP: 寫(xiě)保護(hù)位 WP=0 寄存器數(shù)據(jù)能夠?qū)懭? WP=1 寄存器數(shù)據(jù)不能寫(xiě)入 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 的上升沿被訪(fǎng)問(wèn)到。在開(kāi)始 8個(gè)時(shí)鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫(xiě)操作時(shí)寫(xiě)入數(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ù)寫(xiě)入到 DS1302 中。位 6 如果為 0,則表示存取日歷時(shí)鐘數(shù)據(jù);為 1 則表示存取 RAM 數(shù)據(jù)。位 5~ 1( A4~ A0)指示操作單元的地址。最低有效位(位 0)如果為 0,則表示 要 進(jìn)行寫(xiě)操作;為 1表示進(jìn)行讀操作。控制字節(jié)總是從最低位開(kāi)始 輸入 /輸出。 為了提高對(duì) 32 個(gè)地址尋址能力(地址 /命令位 1~ 5=邏輯 1) ,可以把時(shí)鐘 /日歷或 RAM 寄存器規(guī)定為多字節(jié)( burst)方式。位 6 規(guī)定時(shí)鐘或 RAM,而位 0規(guī)定讀或?qū)憽T跁r(shí)鐘 /日歷寄存器中的地址 9~ 31或 RAM寄存器中的地址 31不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?0的位 0開(kāi)始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?8個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫(xiě) RAM時(shí),為了傳送數(shù)據(jù)不必寫(xiě)所有的 31字節(jié),不管是否 寫(xiě) 了全部 31 字節(jié),所寫(xiě)的每一字節(jié)都將傳送至 RAM。 表 1 DS1302 控制字 24 DS1302 共有 12 個(gè) 寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式。其日歷、時(shí)間寄存器及其控制字如 上 表所示,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作。 時(shí)鐘暫停:秒寄存器的位 7 定義位時(shí)鐘暫停位。當(dāng)它為 1 時(shí), DS1302 停止振蕩,進(jìn)入低功耗的備份方式,通常在對(duì) DS1302 進(jìn)行寫(xiě)操作時(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í)精度影響不大。 25 附錄Ⅱ: 如何利用軟件減小的計(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)值 ,在宏觀(guān)上表現(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)題。 26 方法 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í)器 T1 MOV 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ī)器周期的情況。類(lèi)似的定時(shí)器重裝載值有 0FFF0H, 0FFE0H 等 。 方法 3: 假如定時(shí)周期為 1ms,通常定時(shí)器重裝載值為 0FC18H,中斷子程序如下: MOV A, LOW(LOW 1000+4) ;期望數(shù)的低位字節(jié) ADD A, TL1 MOV TL1, A MOV A, HIGH(HIGH 1000+4) ;對(duì)高位字節(jié)處理 ADDC A, TH1 MOV TH1, A DEC TL1 ;恢復(fù)提前了的 2 個(gè)機(jī)器周期 ...... 這種方法中不停止定時(shí)器計(jì)數(shù)過(guò)程,若在執(zhí)行指令 ADDC 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í)中斷源的情況。若類(lèi)似方法27 1,在程序段開(kāi)頭和結(jié)尾分別加上禁止所有中斷 (CLR EA)和開(kāi)中斷 (SETB EA)指令,則將適用于所有情況。 方法 4: 假如定時(shí)周期不確定,只知道定時(shí)器重裝載值存放在寄存器 R R2 中,中斷子程序如下 : MOV A, 05H ; 3 個(gè)機(jī)器周期裝載 TL1, 2 個(gè)周期提前 ADD A, TL1 ADD A, R2 MOV TL1, A MOV A, R3 ;處理高位字節(jié) ADDC A, TH1 MOV TH1, A DEC 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 001BH MOV TL1, LOW(LOW 1000+4) MOV TH1, HIGH(HIGH 1000+4) ...... 適用范圍: 此方法適用于定時(shí)中斷總發(fā)生在同一條指令位置,且無(wú)其它中 斷源的情況。 上述 5種方法誤差均不超過(guò) 1 個(gè)機(jī)器周期,其中方法 4 較為通用,適用于任何情況,但程序較長(zhǎng);方法 5 簡(jiǎn)單,但必須注意滿(mǎn)足對(duì)應(yīng)條件,才能使用 。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1