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

正文內(nèi)容

基于51單片機(jī)和時(shí)鐘芯片ds1302的數(shù)字時(shí)鐘設(shè)計(jì)(參考版)

2025-07-01 00:22本頁(yè)面
  

【正文】 27。以定時(shí)周期1ms為例,中斷子程序如下:ORG 001BHMOV TL1,LOW(LOW 1000+4)MOV TH1,HIGH(HIGH 1000+4)......適用范圍:此方法適用于定時(shí)中斷總發(fā)生在同一條指令位置,且無(wú)其它中斷源的情況。方法5:當(dāng)定時(shí)中斷發(fā)生的位置可預(yù)知時(shí),通常出現(xiàn)在主程序的AJMP $ (或SJMP $)等待指令處,中斷延遲時(shí)間為3個(gè)或4個(gè)機(jī)器周期。若類似方法1,在程序段開(kāi)頭和結(jié)尾分別加上禁止所有中斷(CLR EA)和開(kāi)中斷(SETB EA)指令,則將適用于所有情況。為此,程序段開(kāi)頭為重裝載值加4,若有溢出進(jìn)位,則可提前發(fā)生,其中2個(gè)機(jī)器周期是考慮到為T(mén)L1重裝載占用的時(shí)間。類似的定時(shí)器重裝載值有0FFF0H,0FFE0H等。方法2: 假如定時(shí)周期為10ms,通常定時(shí)器重裝載值為0D8F0H,中斷子程序如下: ORL TL1,0F0H MOV TH1,0D8H......  這里用ORL TL1,0F0H代替MOV TL1,0F0H 可提高定時(shí)精度。程序中LOW(655361000+7)和HIGH(655361000+7)是匯編符號(hào),分別表示655361000+7=0FC1FH這個(gè)立即數(shù)的低位字節(jié)(1FH)和高位字節(jié)(0FCH)。例如定時(shí)周期為1ms,則通常定時(shí)器重裝載值為655361000(0FC18H)。以下通過(guò)5種方法來(lái)解決由中斷引起的延時(shí)誤差問(wèn)題。根據(jù)定時(shí)中斷的不同應(yīng)用情況,應(yīng)選擇不同的精確定時(shí)編程方法。單中斷系統(tǒng)中的中斷響應(yīng)時(shí)間為3~8個(gè)機(jī)器周期。另外,由于系統(tǒng)每次調(diào)用中斷處理程序所執(zhí)行的操作都是相同的,也就是說(shuō),系統(tǒng)每次定時(shí)的時(shí)間誤差應(yīng)該是一個(gè)常數(shù)。 而在程序調(diào)用過(guò)程中,堆棧建立、參數(shù)傳遞等都是需要耗時(shí),而這些時(shí)間都被無(wú)形中加到了定時(shí)長(zhǎng)度中去。不考慮晶振等固件的誤差, 則系統(tǒng)機(jī)器周期可以由公式準(zhǔn)確算出, 因而系統(tǒng)誤差不可能來(lái)自于硬件, 而應(yīng)該主要來(lái)自于軟件方面。附錄Ⅱ:如何利用軟件減小的計(jì)時(shí)誤差 此次所設(shè)計(jì)的數(shù)字鐘,總的來(lái)看計(jì)時(shí)的誤差來(lái)源主要由中斷響應(yīng)延遲引起的誤差(不使用時(shí)鐘芯片的情況下)。 DS1302的晶振選用32768Hz,電容推薦值為6pF。它為高電平時(shí),選擇12小時(shí)方式。當(dāng)它為0時(shí),時(shí)鐘將開(kāi)始啟動(dòng)。時(shí)鐘暫停:秒寄存器的位7定義位時(shí)鐘暫停位。 表1 DS1302控制字 DS1302共有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個(gè)寄存器。在時(shí)鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲(chǔ)數(shù)據(jù)。為了提高對(duì)32個(gè)地址尋址能力(地址/命令位1~5=邏輯1),可以把時(shí)鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。最低有效位(位0)如果為0,則表示要進(jìn)行寫(xiě)操作;為1表示進(jìn)行讀操作。位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。DS1302的控制字如表1所示。上電運(yùn)行時(shí),在Vcc≥,RST腳必須保持低電平。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達(dá)248字節(jié)數(shù)。 在DS1202 基礎(chǔ)上增加的特性—對(duì)Vcc1 有可選的涓流充電能力—雙電源管用于主電源和備份電源供應(yīng)—備份電源管腳可由電池或大容量電容輸入—附加的7 字節(jié)暫存存儲(chǔ)器1 DS1302 的基本組成和工作原理DS1302 的管腳排列及描述如下圖及表所示: 232. 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的上升沿被訪問(wèn)到。 可選工業(yè)級(jí)溫度范圍40~+85 簡(jiǎn)單3 線接口讀/寫(xiě)時(shí)鐘或RAM 數(shù)據(jù)時(shí):有兩種傳送方式:?jiǎn)巫止?jié)傳送和多字節(jié)傳送(字符組方式)寬范圍工作電壓: 318 位暫存數(shù)據(jù)存儲(chǔ)RAM下面將主要的性能指標(biāo)作一綜合: DS1302 是由DS1202 改進(jìn)而來(lái),增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1 為可編程涓流充電電源,附加七個(gè)字節(jié)存儲(chǔ)器。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(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 的讀/寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31 個(gè)字節(jié)的字符組方式通信。雖然首次繪制的PCB出現(xiàn)了諸多問(wèn)題,但同時(shí)學(xué)到了許多繪制PCB的技巧,知道了繪PCB需要注意的問(wèn)題。 在這次數(shù)字鐘的設(shè)計(jì)過(guò)程中,通過(guò)使用時(shí)鐘芯片DS1302和單片機(jī)STC89C52完成高精度的計(jì)時(shí)。在檢查電路的過(guò)程中發(fā)現(xiàn)有兩個(gè)焊盤(pán)可以用直線連在一起,可能是安全間距設(shè)的太大的緣故,導(dǎo)線轉(zhuǎn)了一圈才將兩個(gè)焊盤(pán)連在一起。這個(gè)問(wèn)題凸顯出了我們初次做的PCB板布局不太合理。 首先,在焊接完成后,同樣的程序在我們自己買(mǎi)的開(kāi)發(fā)板上運(yùn)行很穩(wěn)定,但在我們自己刻的PCB板上運(yùn)行時(shí),數(shù)碼管顯示的時(shí)間出現(xiàn)閃動(dòng)的情況。大家都猛然發(fā)現(xiàn)以前課堂上學(xué)到知識(shí)太少,在兩天的時(shí)間里大家從畫(huà)元器件的封裝開(kāi)始重新對(duì)Protell進(jìn)行了學(xué)習(xí)并且完成了相應(yīng)的工作。雖然上一學(xué)期學(xué)習(xí)了Protell 99SE但只是純理論性的學(xué)習(xí)了如何繪制PCB板。通過(guò)修正后走時(shí)一天的誤差在10s內(nèi)。但是在開(kāi)始程序設(shè)計(jì)的時(shí)候才發(fā)現(xiàn)并沒(méi)想的那么簡(jiǎn)單。在編寫(xiě)完計(jì)時(shí)程序加鬧鈴功能和按鍵操作的時(shí)候,考慮到數(shù)字鐘計(jì)時(shí)的準(zhǔn)確性,我改變了程序設(shè)計(jì)方案,采用時(shí)鐘芯片DS1302配合單片機(jī)STC89C52的設(shè)計(jì)方案。五、總結(jié) 經(jīng)過(guò)10天的工作,我的數(shù)字鐘從只能計(jì)時(shí)功能改進(jìn)到具有鬧鈴功能、校時(shí)功能、鬧鈴調(diào)整功能。在匯編編程的過(guò)程中我模仿C語(yǔ)言的模式首先定義在使用T2定時(shí)器,但一直出現(xiàn)錯(cuò)誤。問(wèn)題五:T2定時(shí)器在匯編編程的情況下如何使用。在蜂鳴器兩端接入300PF的電容后聲音有所減小但沒(méi)有消除。鬧鈴響完后蜂鳴器蜂鳴器仍然有很小的嘟嘟聲,說(shuō)明此時(shí)有干擾脈沖通過(guò)蜂鳴器。問(wèn)題四:蜂鳴器在沒(méi)有鬧鈴發(fā)生時(shí)沒(méi)有聲音,在鬧鈴響完以后還回有比較小的嘟嘟聲。在按鍵按下時(shí)可能由于按鍵性能不太好,按鍵稍稍的抖動(dòng)使得在軟件防抖后依然不太穩(wěn)定,單片機(jī)在此檢測(cè)到中斷發(fā)生的有效電平,從而再次發(fā)生中斷,導(dǎo)致在有按鍵按下時(shí)單片連續(xù)處理按鍵中斷,從而產(chǎn)生數(shù)碼管在有按鍵按下的情況下出現(xiàn)閃動(dòng)的問(wèn)題。當(dāng)我進(jìn)一步減小防抖延時(shí)的時(shí)間時(shí)情況還是沒(méi)有好轉(zhuǎn),由于單片機(jī)的軟件防抖延時(shí)最佳時(shí)間段在5ms~10ms,太大或者太小都不利于軟件防抖。 解決方法:因?yàn)閱纹瑱C(jī)是一個(gè)順序執(zhí)行程序微機(jī),不像CPLD或FPGA等具有并行處理數(shù)據(jù)的特點(diǎn),CPU在當(dāng)前時(shí)間只能處理一件事。同樣的程序在開(kāi)發(fā)板上運(yùn)行很穩(wěn)定,在我們自己刻的PCB板上剛開(kāi)始很不穩(wěn)定進(jìn)一步告訴我們,在以后繪制PCB板的過(guò)程中需要周密的考慮到布局的合理性以及電路的干擾問(wèn)題。結(jié)果證明了我們的推斷完全正確,為了最大程度的降低干擾,我們直接對(duì)DS1302單獨(dú)接地,并且對(duì)數(shù)碼管驅(qū)動(dòng)芯片74HC573等需較大電流的芯片單獨(dú)接電源,同時(shí)劃斷電路板中對(duì)74HC573等供電的電源線路以進(jìn)一步降低電源帶來(lái)的干擾。由此進(jìn)一步說(shuō)明問(wèn)題是出在時(shí)鐘芯片的接地上。由此首先說(shuō)明程序沒(méi)有問(wèn)題,可能是做的電路板有問(wèn)題,為了找到問(wèn)題的根源所在,從開(kāi)發(fā)板上引出了時(shí)鐘芯片的輸出信號(hào)接至自己做的電路板,發(fā)現(xiàn)電路板能正常工作。問(wèn)題二:焊接好自己刻的板子后,數(shù)碼管顯示跳動(dòng)不穩(wěn)定,但時(shí)鐘沒(méi)停,但有時(shí)走一分鐘后就停掉了。定義時(shí)顯示個(gè)位 HOUR1 DATA 47H 。定義分顯示十位 LINE1 DATA 45H 。定義秒時(shí)分隔符“” MIN0 DATA 43H 。定義秒顯示的十位SEC0 DATA 40H 。為了能夠及時(shí)的保存數(shù)據(jù),在程序設(shè)計(jì)的過(guò)程中使用DATA指令在單片機(jī)的內(nèi)存空間中開(kāi)辟出了一些具有固定地址的內(nèi)存單元來(lái)存儲(chǔ)相應(yīng)的數(shù)據(jù)。T0復(fù)用結(jié)束后關(guān)定時(shí)器 SJMP DELAY_RETDELAY_FD: MOV TH0,0C5H MOV TL0,68H CLR TR0DELAY_RET: POP ACC MOV R6,A POP ACC RETIEND四、數(shù)字鐘制作過(guò)程中遇到的問(wèn)題問(wèn)題一:對(duì)于時(shí)鐘的各個(gè)計(jì)時(shí)單元:時(shí)、分、秒,由于單片機(jī)內(nèi)部的寄存器資源有限,在程序設(shè)計(jì)的開(kāi)始首先必須得解決由時(shí)鐘芯片DS1302讀得的數(shù)據(jù)如何保存的問(wèn)題。 MOV TEMP,00H MOV NLJS,00H MOV TH0,0D1H 。T0防抖延時(shí)10ms DELAY_10MS: PUSH ACC MOV A,R6 PUSH ACC MOV R6,TEMP CJNE R6,01H,DELAY_FD 。保存A中的值 MOV A,ZANCUN1 SWAP A ADD A,ZANCUN0 MOV NLMINUTE_0,A MOV A,R5 。恢復(fù)A的計(jì)數(shù)值 SJMP HECHENG_RETHECHENG_3: CJNE A,04H,HECHENG_RET 。鬧時(shí) MOV ZANCUN0
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1