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

正文內容

基于51單片機和時鐘芯片ds1302的數(shù)字時鐘設計2-閱讀頁

2025-07-13 00:26本頁面
  

【正文】 ?;謴虯的計數(shù)值 SJMP HECHENG_RETHECHENG_1: CJNE A,02H,HECHENG_2 MOV ZANCUN0,MIN0 MOV ZANCUN1,MIN1 ANL ZANCUN0,0FH ANL ZANCUN1,0FH MOV R5,A ?;謴虯的計數(shù)值 SJMP HECHENG_RET HECHENG_2: CJNE A,03H,HECHENG_3 。保存A中的值 MOV A,ZANCUN1 SWAP A ADD A,ZANCUN0 MOV NLHOUR_0,A MOV A,R5 。鬧分 MOV ZANCUN0,MIN0 MOV ZANCUN1,MIN1 ANL ZANCUN0,0FH ANL ZANCUN1,0FH MOV R5,A ?;謴虯的計數(shù)值 HECHENG_RET:POP ACC RET 。如果沒有鬧鈴事件發(fā)生轉防抖延時DELAY_FD INC NLJS MOV TH0,0ECH MOV TL0,78H CPL MOV R6,NLJS CJNE R6,0FFH,DELAY_RET ?;謴蚑0的初值 MOV TL0,20H CLR CLR TR0 。解決辦法:由于我使用的編程語言是匯編語言,不能像C語言那樣使用一個數(shù)組來保存數(shù)據(jù)。在程序中定義的用于保存當前由DS1302讀得的數(shù)據(jù)單元如下:SEC1 DATA 41H 。定義秒顯示的個位 LINE0 DATA 42H 。定義分顯示個位 MIN1 DATA 44H 。定義時分分隔符“” HOUR0 DATA 46H 。定義時顯示十位通過以上的方法,在單片機的RAM中開辟了一片用戶可直接操作的內存單元,解決例如數(shù)據(jù)的保存問題。解決方法:將寫好的程序下在51開發(fā)板上,發(fā)現(xiàn)程序運行穩(wěn)定,沒有上述現(xiàn)象的發(fā)生。由此推斷問題的根源出在電路板的時鐘芯片模塊,經過進一步的排查,發(fā)現(xiàn)在時鐘芯片在沒有接地的情況下竟然能夠正常工作。為了能夠進一步尋找問題根源,我們將自己刻的電路板的地線接至示波器上觀察。問題總結:由于我們是第一次做PCB板,在布局的時候根本沒有考慮到布線的不合理會帶來的眾多干擾的問題,而且布線也全部由電腦自動布線完成,這樣使得電路滋生出大量的寄生電容以及其他的干擾。問題三:在程序設計完成后,在開發(fā)板和自己刻的PCB板上時發(fā)現(xiàn)再有按鍵按下的情況下,數(shù)碼管所顯示時間有閃動。在開始我以為產生這個問題的原因是我設的防抖延時間太長了(我的防抖延時設置為10ms)。 通過對電平觸發(fā)和邊沿觸發(fā)兩種中斷觸發(fā)方式的比較,發(fā)現(xiàn)在按鍵時數(shù)碼管顯示閃動的原因是:起初時,中斷觸發(fā)方式我選的是電平觸發(fā)方式。在將按鍵的中斷方式由電平觸發(fā)模式改為邊沿觸發(fā)后,數(shù)碼管再有按鍵按下的情況下閃動的問題得到了解決。 可能原因:理想狀態(tài)下在鬧鈴響完后驅動蜂鳴器的三極管截止,蜂鳴器上沒有電流流過,蜂鳴器出在不發(fā)聲狀態(tài)。為了進一步減小蜂鳴器的嘟嘟聲。但干擾的來源尚不清楚,可能是來自電源地的干擾??赡茉颍涸贑語言編程時,只需要包含頭文件 include,所有的52單片機所用到的端口,寄存器,定時器等資源均已事先定義好了。如何在匯編編程的情況下如何使用還未解決。剛剛開始時,我采用的定時器方法進行計時。 在程序設計的過程中總體方案很簡單,我只需在一定時間內讀取DS1302的計時值,省去了一大堆的計時程序。我花了兩天時間才把時鐘芯片的操作完全的掌握,并且用匯編完成了對DS1302的讀寫等操作的程序設計。 在程序全部設計完成后我們開始做PCB板。這次我們不僅要自己繪制數(shù)字鐘電路的PCB,并且還要刻PCB板。在這次繪制PCB的過程中,雖然我們最終完成了這次工作,但從調試中出現(xiàn)的問題來看,我們確實還存在許多問題需要解決。在王老師的指導下我們隊PCB板的電源和地線在示波器上觀察,發(fā)現(xiàn)地線上的干擾很大,再將部分芯片的地和電源直接用導線接至電源的地和電源上后問題得到了解決。 其次,由于是第一次做PCB,也根本沒考慮過線寬和布線的問題,整塊PCB的電源線、地線都很細,焊盤也比較小,布線也全部由自動布線完成。雖然這次繪制的PCB出了諸多問題,但經過調試中的有效處理后現(xiàn)在已經能夠正常工作。進一步學習了51單片機的編程技巧,尤其是單片機中斷的使用以及中斷優(yōu)先級的擴展方法,同時學會了時鐘芯片DS1302,進一步了解了時鐘芯片的工作原理。附錄Ⅰ:DS1302時鐘芯片的工作原理和使用方法DS1302 是DALLAS 公司推出的涓流充電時鐘芯片,內含有一個實時時鐘/日歷和31 字節(jié)靜態(tài)RAM ,通過簡單的串行接口與單片機進行通信。DS1302 工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1mW。它廣泛應用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產品領域。實時時鐘具有能計算2100 年之前的秒、分、時、日、日期、星期、月、年的能力還有閏年調整的能力串行I/O 口方式使得管腳數(shù)量最少 工作電流: 時,小于300nA 8 腳DIP 封裝或可選的8 腳SOIC 封裝(根據(jù)表面裝配) 與TTL 兼容(Vcc=5V) 與DS1202 兼容在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。如果在傳送過程中置RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。只有在SCLK為低電平時,才能將RST置為高電平??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位5~1(A4~A0)指示操作單元的地址??刂谱止?jié)總是從最低位開始輸入/輸出。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或寫。在多字節(jié)方式下,讀或寫從地址0的位0開始。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。其日歷、時間寄存器及其控制字如上表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。當它為1時,DS1302停止振蕩,進入低功耗的備份方式,通常在對DS1302進行寫操作時(如進入時鐘調整程序),停止振蕩。 AMPM/1224小時方式:小時寄存器的位7定義為12或24小時方式選擇位。在此方式下,位5為第二個10小時位(20~23h)。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。如下對誤差來源進行詳細的分析。 系統(tǒng)每次調用定時中斷程序的過程中, 硬件并沒有自動進入下一個定時周期, 而是在調用中斷程序以后由軟件置數(shù)來實現(xiàn)的。所以,使得每次定時長度都大于理論推導值,在宏觀上表現(xiàn)出來就是系統(tǒng)比理論計算出來的結果變慢了。 MCS51單片機的中斷響應延遲時間,取決于其它中斷服務程序是否在進行,或取決于正在執(zhí)行的是什么樣的指令。無論是哪一種原因引起的誤差,在精確定時的應用場合,必須考慮它們的影響,以確保精確的定時控制。如果設置定時器中斷為中斷高優(yōu)先級,外部中斷位低優(yōu)先級,則中斷過程中產生的中斷延時如下圖所示:A:有按鍵按下的情況下發(fā)生定時中斷 B:僅有時鐘中斷的情況CPU響應定時中斷設置定時器T1工作在定時方式1為,晶振頻率為12MHz 。 方法1:  在定時器溢出中斷得到響應時,停止定時器計數(shù),讀出計數(shù)值(反映了中斷響應的延遲時間),根據(jù)此計數(shù)值算出到下一次中斷時,需多長時間,由此來重裝載和啟動定時器。下面的程序在計算每個定時周期的精確重裝載值時,考慮了由停止計數(shù)(CLR TR1)到重新啟動計數(shù)(SETB TR1)之間的7個機器周期時間。......CLR EA ;禁止所有中斷CLR TR1 ;停止定時器T1MOV 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 ;重開中斷......適用范圍:此方法適用于各種原因造成的定時誤差的情況,為通用方法。此方法只適用于重裝載值低位字節(jié)的低4位為零,且中斷響應的延遲時間小于16個機器周期的情況。方法3:  假如定時周期為1ms,通常定時器重裝載值為0FC18H,中斷子程序如下:MOV A,LOW(LOW 1000+4) ;期望數(shù)的低位字節(jié)ADD A,TL1MOV TL1,AMOV A,HIGH(HIGH 1000+4) ;對高位字節(jié)處理ADDC A,TH1MOV TH1,ADEC TL1 ;恢復提前了的2個機器周期......  這種方法中不停止定時器計數(shù)過程,若在執(zhí)行指令ADDC A,TH1 或MOV TH1,A時,恰好產生TL1溢出向TH1進位的情況,則TH1的值就不對了,會產生更大的誤差。 適用范圍:此方法適用于系統(tǒng)中無其它更高優(yōu)先級中斷源的情況。方法4:假如定時周期不確定,只知道定時器重裝載值存放在寄存器RR2中,中斷子程序如下:MOV A,05H ;3個機器周期裝載TL1,2個周期提前ADD A,TL1 ADD A,R2MOV TL1,A MOV A,R3 ;處理高位字節(jié)ADDC A,TH1MOV TH1,ADEC TL1 ;恢復提前了的2個機器周期......適用范圍:此法適用于定時周期不確定的情況,其它同方法3。取固定值4可簡化補償程序。 上述5種方法誤差均不超過1個機器周期,其中方法4較為通用,適用于任何情況,但程序較長;方法5簡單,但必須注意滿足對應條件,才
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1