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

正文內(nèi)容

基于51單片機(jī)和時鐘芯片ds1302的數(shù)字時鐘設(shè)計2-預(yù)覽頁

2025-07-22 00:26 上一頁面

下一頁面
 

【正文】 MOV P0,LINE0NEXTWEI:CJNE R3,02H,SEL_0 MOV P2,R3 MOV P0,LINE1 SEL_0:MOV P2,R3 。2 SJMP SEL_10SEL_3: CJNE A,03H,SEL_4 MOV P0,4FH 。6 SJMP SEL_10 SEL_7:CJNE A,07H,SEL_8 MOV P0,07H 。R1加一,使當(dāng)前計數(shù)位后移一位 DEC R3 。功能:對當(dāng)前由ds1302讀得的計數(shù)值進(jìn)行轉(zhuǎn)換 (寄存器均已壓棧) JSZH: 。計數(shù)數(shù)據(jù)sec0hour0的存儲首地址 MOV R0,52H 。R0彈棧 MOV R0,A POP ACC 。每300ms讀一次ds1302的計數(shù)值,避免在ds1302定時一秒。鬧鈴 MOV A,NLHOUR_0 CJNE A,HOUR,DU_1302_RET MOV A,NLMINUTE_0 CJNE A,MINUTE,DU_1302_RET MOV TEMP,01H 。設(shè)置ds1302初始時間,并啟動計時 PUSH ACC 。秒/時/分 。寫秒/時/分地址 。控制寄存器 LCALL WRITEBYTE MOV B,80H。從ds1302讀時間秒/時/分 MOV R0,SECOND 。寫操作時,將一字節(jié)的內(nèi)容由B寫至DS1302中 LCALL READBYTE 。R4INBIT1:MOV A,B RRC A MOV B,A SETB T_IO 。R4OUTBIT1:MOV C,T_IO RRC A SETB T_CLK CLR T_CLK DJNZ R4,OUTBIT1 RET。啟動定時器0,延時10ms JNB TF0,$ JNB ,$ 。 分隔符下移,以便區(qū)分于校時操作 MOV LINE1,80H FUN_1:CJNE A,04H,FUN_2 MOV LINE0,80H 。顯示分和秒的間隔符 MOV LINE1,40H 。檢測當(dāng)前有無校時或者對鬧鈴的操作 CJNE A,00H,COUNT_UP_NEXT AJMP COUNT_UP_RET 。先判斷小時高位是否已計數(shù)值2 MOV R6,HOUR0 CJNE R6,04H,COUNT_UP_RET MOV HOUR1,00H MOV HOUR0,00H AJMP COUNT_UP_RET 。先判斷分的低位 INC MIN1 MOV MIN0,00H COUNT_UP_1_1: MOV R6,MIN1 CJNE R6,06H,COUNT_UP_RET MOV MIN1,00H 。鬧鈴時 CLR ET1 。返回 COUNT_UP_2_1: INC HOUR0 MOV R6,HOUR0 CJNE R6,0AH,COUNT_UP_NLRET MOV HOUR0,00H INC HOUR1 SJMP COUNT_UP_NLRETCOUNT_UP_3:CJNE A,04H,COUNT_UP_RET 。*********** 有按鍵時重置ds1302當(dāng)前位計數(shù)值(R5) ************** 。檢測當(dāng)前有無校時或者對鬧鈴的操作 CJNE A,01H,HECHENG_1 MOV ZANCUN0,HOUR0 MOV ZANCUN1,HOUR1 ANL ZANCUN0,0FH ANL ZANCUN1,0FH MOV R5,A ?;謴?fù)A的計數(shù)值 SJMP HECHENG_RET HECHENG_2: CJNE A,03H,HECHENG_3 。鬧分 MOV ZANCUN0,MIN0 MOV ZANCUN1,MIN1 ANL ZANCUN0,0FH ANL ZANCUN1,0FH MOV R5,A 。如果沒有鬧鈴事件發(fā)生轉(zhuǎn)防抖延時DELAY_FD INC NLJS MOV TH0,0ECH MOV TL0,78H CPL MOV R6,NLJS CJNE R6,0FFH,DELAY_RET 。解決辦法:由于我使用的編程語言是匯編語言,不能像C語言那樣使用一個數(shù)組來保存數(shù)據(jù)。定義秒顯示的個位 LINE0 DATA 42H 。定義時分分隔符“” HOUR0 DATA 46H 。解決方法:將寫好的程序下在51開發(fā)板上,發(fā)現(xiàn)程序運行穩(wěn)定,沒有上述現(xiàn)象的發(fā)生。為了能夠進(jìn)一步尋找問題根源,我們將自己刻的電路板的地線接至示波器上觀察。問題三:在程序設(shè)計完成后,在開發(fā)板和自己刻的PCB板上時發(fā)現(xiàn)再有按鍵按下的情況下,數(shù)碼管所顯示時間有閃動。 通過對電平觸發(fā)和邊沿觸發(fā)兩種中斷觸發(fā)方式的比較,發(fā)現(xiàn)在按鍵時數(shù)碼管顯示閃動的原因是:起初時,中斷觸發(fā)方式我選的是電平觸發(fā)方式。 可能原因:理想狀態(tài)下在鬧鈴響完后驅(qū)動蜂鳴器的三極管截止,蜂鳴器上沒有電流流過,蜂鳴器出在不發(fā)聲狀態(tài)。但干擾的來源尚不清楚,可能是來自電源地的干擾。如何在匯編編程的情況下如何使用還未解決。 在程序設(shè)計的過程中總體方案很簡單,我只需在一定時間內(nèi)讀取DS1302的計時值,省去了一大堆的計時程序。 在程序全部設(shè)計完成后我們開始做PCB板。在這次繪制PCB的過程中,雖然我們最終完成了這次工作,但從調(diào)試中出現(xiàn)的問題來看,我們確實還存在許多問題需要解決。 其次,由于是第一次做PCB,也根本沒考慮過線寬和布線的問題,整塊PCB的電源線、地線都很細(xì),焊盤也比較小,布線也全部由自動布線完成。進(jìn)一步學(xué)習(xí)了51單片機(jī)的編程技巧,尤其是單片機(jī)中斷的使用以及中斷優(yōu)先級的擴(kuò)展方法,同時學(xué)會了時鐘芯片DS1302,進(jìn)一步了解了時鐘芯片的工作原理。DS1302 工作時功耗很低,保持?jǐn)?shù)據(jù)和時鐘信息時功率小于1mW。實時時鐘具有能計算2100 年之前的秒、分、時、日、日期、星期、月、年的能力還有閏年調(diào)整的能力 工作電流: 時,小于300nA 與TTL 兼容(Vcc=5V)在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。只有在SCLK為低電平時,才能將RST置為高電平。位5~1(A4~A0)指示操作單元的地址。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)憽5?,?dāng)以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。當(dāng)它為1時,DS1302停止振蕩,進(jìn)入低功耗的備份方式,通常在對DS1302進(jìn)行寫操作時(如進(jìn)入時鐘調(diào)整程序),停止振蕩。在此方式下,位5為第二個10小時位(20~23h)。如下對誤差來源進(jìn)行詳細(xì)的分析。所以,使得每次定時長度都大于理論推導(dǎo)值,在宏觀上表現(xiàn)出來就是系統(tǒng)比理論計算出來的結(jié)果變慢了。無論是哪一種原因引起的誤差,在精確定時的應(yīng)用場合,必須考慮它們的影響,以確保精確的定時控制。 方法1:  在定時器溢出中斷得到響應(yīng)時,停止定時器計數(shù),讀出計數(shù)值(反映了中斷響應(yīng)的延遲時間),根據(jù)此計數(shù)值算出到下一次中斷時,需多長時間,由此來重裝載和啟動定時器。......CLR EA ;禁止所有中斷CLR TR1 ;停止定時器T1MOV A, LOW (LOW 1000+7) ;期望數(shù)的低位字節(jié)ADD A,TL1 ;進(jìn)行修正MOV TL1,A ;重裝載低位字節(jié)MOV A,HIGH(HIGH 1000+7) ;對高位字節(jié)處理ADDC A,TH1 MOV TH1,A SETB TR1 ;重啟動定時器SETB EA ;重開中斷......適用范圍:此方法適用于各種原因造成的定時誤差的情況,為通用方法。方法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 ;恢復(fù)提前了的2個機(jī)器周期......  這種方法中不停止定時器計數(shù)過程,若在執(zhí)行指令A(yù)DDC A,TH1 或MOV TH1,A時,恰好產(chǎn)生TL1溢出向TH1進(jìn)位的情況,則TH1的值就不對了,會產(chǎn)生更大的誤差。方法4:假如定時周期不確定,只知道定時器重裝載值存放在寄存器RR2中,中斷子程序如下:MOV A,05H ;3個機(jī)器周期裝載TL1,2個周期提前ADD A,TL1 ADD A,R2MOV TL1,A MOV A,R3 ;處理高位字節(jié)ADDC A,TH1MOV TH1,ADEC TL1 ;恢復(fù)提前了的2個機(jī)器周期......適用范圍:此法適用于定時周期不確定的情況,其它同方法3?!∩鲜?種方法誤差均不超過1個機(jī)器周期,其中方法4較為通用,適用于任何情況,但程序較長;方法5簡單,但必須注意滿足對應(yīng)條件,才
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1