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

正文內(nèi)容

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

2025-10-14 08:26本頁面

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

  

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