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

正文內(nèi)容

基于51單片機(jī)和時(shí)鐘芯片ds1302的數(shù)字時(shí)鐘設(shè)計(jì)-wenkub.com

2025-06-25 00:22 本頁(yè)面
   

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