在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 電子鐘的設(shè)計(jì)及仿真

            電子鐘的設(shè)計(jì)及仿真

            作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
            一、實(shí)現(xiàn)電子鐘計(jì)時(shí)的基本方法:
            (1) 計(jì)數(shù)初值計(jì)算:
            把定時(shí)器設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒,而100次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。
            假設(shè)使用T/C0,方式1,50ms定時(shí),fosc=12MHz。
            則初值X滿足(216-X)×1/12MHz×12μs =50000μs
            X=15536→0011110010110000→3CB0H
            (2) 采用中斷方式進(jìn)行溢出次數(shù)累計(jì),計(jì)滿20次為秒計(jì)時(shí)(1秒);
            (3) 從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累加和數(shù)值比較實(shí)現(xiàn)。




            二、軟件系統(tǒng)設(shè)計(jì)
            程序清單:
            ORG 0000H
            AJMP MAIN
            ORG 000BH
            LJMP INTT0

            ORG 0030H
            MAIN: MOV SP, #60H ;確立堆棧區(qū)
            MOV PSW, #00H ;
            MOV R0, #20H ;RAM區(qū)首地址
            MOV R7, #5FH ;RAM區(qū)單元個(gè)數(shù)
            QL: MOV @R0, #00H ;RAM清零
            INC R0
            DJNZ R7, QL
            MOV IP, #02H ;IP初始化,優(yōu)先定時(shí)器0
            MOV IE, #82H ;IE初始化,
            MOV TMOD, #01H ;定時(shí)器0方式1工作
            LCALL PP ;調(diào)P.子程序
            NEXT: LCALL KEY ;按鍵檢測(cè)子程序
            JB ACC.0, RUNF ;A鍵按下運(yùn)行
            LCALL DISP ;調(diào)用顯示子程序
            SJMP NEXT

            RUNF: LCALL OUTT ;調(diào)傳送子程序
            LCALL TIME ;開(kāi)電子鐘
            JK: LCALL DISP ;調(diào)用顯示子程序
            LCALL KEY ;按鍵檢測(cè)子程序
            JZ JK
            LCALL ANKEY
            LCALL DISP ;調(diào)用顯示子程序
            SJMP JK
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; P點(diǎn)顯示 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            PP: MOV 37H, #12 ;P點(diǎn)編碼送寄存器
            MOV R0, #30H ;P點(diǎn)編碼送寄存器
            MOV R7, #07H
            PPP: MOV @R0, #10
            INC R0
            DJNZ R7, PPP
            RET
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 鍵掃子程序 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            KEY: LCALL KEYS ;調(diào)鍵值處理子程序
            JZ EXIT ;沒(méi)有鍵按下轉(zhuǎn)到返回
            LCALL DISP
            LCALL DISP ;調(diào)顯示去抖動(dòng)
            LCALL KEYS
            JZ EXIT
            MOV B, 20H ;保存鍵值
            KEYSF: LCALL KEYS ;調(diào)鍵值處理子程序
            JZ KEYY ;鍵釋放,轉(zhuǎn)到恢復(fù)鍵值
            LCALL DISP ;調(diào)顯示子程序延時(shí)
            AJMP KEYSF ;等到鍵釋放
            KEYY: MOV A, B ;鍵值送20H單元保存
            EXIT: RET ;返回
            KEYS: MOV P1, #0FFH ;先向P1口寫(xiě)1
            MOV A, P1 ;P1口值送累加器A
            CPL A ;A值取反
            ANL A, #0FH ;保存P1口的低4位
            MOV 20H, A ;A值送20H保存
            RET
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 鍵功能子程序 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ANKEY: CLR EA ;關(guān)中斷
            CHECK: JB TR0, YXZ ;判斷是否運(yùn)行
            K0: CJNE A, #01H, K1
            AJMP RUN ;轉(zhuǎn)運(yùn)行
            K1: CJNE A, #02H, K2
            AJMP KEY1 ;轉(zhuǎn)時(shí)調(diào)整
            K2: CJNE A, #04H, K3
            AJMP KEY2 ;轉(zhuǎn)分調(diào)整
            K3: CJNE A, #08H, OUT
            AJMP KEY3 ;轉(zhuǎn)秒調(diào)整

            YXZ: JB ACC.0, STOP
            AJMP OUT

            KEY1: MOV R0, #45H ;時(shí)調(diào)整
            LCALL ADD1
            CLR C
            CJNE A, #24H, OUTT
            ACALL CLR0
            AJMP OUTT
            KEY2: MOV R0, #43H ;分調(diào)整
            LCALL ADD1
            CLR C
            CJNE A, #60H, OUTT
            ACALL CLR0
            AJMP OUTT
            KEY3: MOV R0, #41H ;秒調(diào)整
            ACALL ADD1
            CLR C
            CJNE A, #60H, OUTT
            ACALL CLR0
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 傳送顯示數(shù)據(jù) ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            OUTT: MOV 30H, 40H ;秒顯示單元41H-42H
            MOV 31H, 41H
            MOV 32H, #11 ; "-"
            MOV 33H, 42H ;分顯示單元43H-44H
            MOV 34H, 43H
            MOV 35H, #11 ; "-"
            MOV 36H, 44H ;時(shí)顯示單元44-45H
            MOV 37H, 45H
            RET
            STOP: CLR TR0 ;關(guān)電子鐘并跳出
            RET
            RUN: LCALL TIME ;運(yùn)行電子鐘
            OUT: SETB EA ;無(wú)鍵按下或完成功能跳出
            RET
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 運(yùn)行電子鐘 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            TIME: SETB EA
            MOV TL0, #0B0H
            MOV TH0, #3CH ;3CB0H
            MOV R4, #20 ;50ms,20次循環(huán)
            SETB TR0 ;啟動(dòng)定時(shí)器0
            RET

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 定時(shí)中斷 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            INTT0: PUSH ACC
            PUSH PSW
            CLR ET0
            CLR TR0
            MOV TL0, #0B0H ;重新設(shè)定定時(shí)初值
            MOV TH0, #3CH
            SETB TR0 ;啟動(dòng)定時(shí)器0
            DJNZ R4, OUTT0 ;1秒到
            ADDSS: MOV R4, #14H ;20次計(jì)數(shù)
            MOV R0, #41H ;秒十位
            ACALL ADD1 ;加1程序
            CLR C
            CJNE A, #60H, ADDMM ;1分到
            ADDMM: JC OUTT0
            ACALL CLR0
            MOV R0, #43H
            ACALL ADD1 ;加1程序
            CLR C
            CJNE A, #60H, ADDHH ;1小時(shí)到
            ADDHH: JC OUTT0
            ACALL CLR0
            MOV R0, #45H
            ACALL ADD1 ;加1程序
            CLR C
            CJNE A, #24H, HOUR ;1天到
            HOUR: JC OUTT0
            ACALL CLR0
            OUTT0: MOV 30H, 40H ;秒顯示單元41H-42H
            MOV 31H, 41H
            MOV 32H, #11 ; "-"
            MOV 33H, 42H ;分顯示單元43H-44H
            MOV 34H, 43H
            MOV 35H, #11 ; "-"
            MOV 36H, 44H ;時(shí)顯示單元44-45H
            MOV 37H, 45H
            POP PSW
            POP ACC
            SETB ET0
            RETI


            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 時(shí)間清零子程序 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            CLR0: CLR A
            MOV @R0, A
            DEC R0
            MOV @R0, A
            RET
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;; 加一子程序 ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ADD1: MOV A, @R0 ;取十位
            DEC R0
            SWAP A
            ORL A, @R0 ;組合十位與個(gè)位
            ADD A, #01H ;加1
            DA A ;十進(jìn)制調(diào)整
            MOV R3, A ;暫存
            ANL A, #0FH ;屏蔽十位
            MOV @R0, A ;放入個(gè)位單元
            MOV A, R3 ;取值
            INC R0
            SWAP A
            ANL A, #0FH ;屏蔽個(gè)位
            MOV @R0, A ;放入十位單元
            MOV A, R3 ;數(shù)值放入A中等待判斷
            RET

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;;;;;;;;;;顯示子程序 30H ;;;;;;;;;;;
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            DISP: MOV R1, #30H ;顯示緩沖存儲(chǔ)單元首地址
            MOV R2, #80H ;從右至左顯示
            DISP1: MOV P2, R2 ;送位控
            MOV A, @R1
            MOV DPTR, #TAB
            MOVC A, @A+DPTR
            MOV P0, A ;送段控
            ACALL DL ;延時(shí)
            MOV A, R2
            JB ACC.0, DISP2
            RR A
            INC R1
            MOV R2, A
            AJMP DISP1
            DISP2: RET
            TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH
            DL: MOV R6, #14H ;顯示延時(shí)子程序
            DL1: MOV R7, #19H ;
            DL2: DJNZ R7, DL2
            DJNZ R6, DL1
            RET
            END


            關(guān)鍵詞: 電子鐘設(shè)計(jì)仿

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉