在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機 電子時鐘(匯編)

            單片機 電子時鐘(匯編)

            作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
            今天很高興,一次性就把這個電子時鐘寫了出來(今晚的單片機實驗,記得去年自學單片機的時候,這個還真是寫不出來,不過這個時鐘只是靜態(tài)的,不能夠用手工來修改,這點還是不夠完善,以后有時間了的話,我重新寫一下,呵呵)

            count equ 9217 ;定義1s計數(shù)值,對于11.0592的晶振來說,延時10ms

            本文引用地址:http://www.biyoush.com/article/201611/315820.htm

            second equ 30h ;定義臨時變量區(qū)

            second_ge equ 31h

            second_shi equ 32h

            minute equ 33h

            minute_ge equ 34h

            minute_shi equ 35h

            hour equ 36h

            hour_ge equ 37h

            hour_shi equ 38h

            org 0000h

            sjmp main ;進入主程序

            org 0003h

            reti

            org 000bh ;time0(定時器/計數(shù)器T0入口地址)

            ljmp int_time0 ;跳轉(zhuǎn)到中斷0服務程序

            org 001bh

            reti

            org 0023h

            reti

            main:

            mov r0,#0 ;初始化程序(本程序初始值設為13:33:22)

            mov second,#22

            mov second_ge,#0

            mov second_shi,#0

            mov minute,#33

            mov minute_ge,#0

            mov minute_shi,#0

            mov hour,#13

            mov hour_ge,#0

            mov hour_shi,#0

            mov tmod,#00000001b

            mov th0,#high(65536-count) ;取高八位數(shù)據(jù)

            mov tl0,#low(65536-count) ;取底五位

            clr tf0

            setb ea

            setb et0

            setb tr0 ;開始計時

            loop:

            lcall digitor_display ;調(diào)用數(shù)碼管掃描顯示程序

            sjmp loop ;程序在此循環(huán)

            ;定時器0中斷

            int_time0:

            push acc

            push psw

            clr tf0

            mov th0,#high(65536-count) ;取高八位數(shù)據(jù)

            mov tl0,#low(65536-count) ;取底五位

            inc r0

            cjne r0,#100,ret_loop ;秒值加一

            sjmp second_add

            second_add: ;秒值處理

            mov r0,#0

            inc second

            mov a,second

            cjne a,#60, ret_loop

            sjmp minute_add

            minute_add: ;分值處理

            mov second,#0

            inc minute

            mov a,minute

            cjne a,#60, ret_loop

            sjmp hour_add

            hour_add: ;小時處理

            mov minute,#0

            inc hour

            mov a,hour

            cjne a,#24,ret_loop

            sjmp hour_reset

            hour_reset:

            mov hour,#0

            ret_loop:

            pop psw

            pop acc

            reti ;中斷返回

            digitor_display: ;數(shù)碼管掃描

            push acc

            push psw

            mov a,second

            mov b,#10

            div ab

            mov second_shi,a

            mov second_ge,b

            mov a,minute

            mov b,#10

            div ab

            mov minute_shi,a

            mov minute_ge,b

            mov a,hour

            mov b,#10

            div ab

            mov hour_shi,a

            mov hour_ge,b

            mov p1,#11011111b ;顯示秒鐘的個位

            mov a,second_ge

            mov dptr,#table

            movc a,@a+dptr

            mov p2,a

            lcall delay

            mov p1,#11101111b ;顯示秒鐘的十位

            mov a,second_shi

            mov dptr,#table

            movc a,@a+dptr

            mov p2,a

            lcall delay

            mov p1,#11110111b ;顯示分鐘的個位

            mov a,minute_ge

            mov dptr,#table

            movc a,@a+dptr

            mov p2,a

            lcall delay

            mov p1,#11111011b ;顯示分鐘的十位

            mov a,minute_shi

            mov dptr,#table

            movc a,@a+dptr

            mov p2,a

            lcall delay

            mov p1,#11111101b ;顯示小時的個位

            mov a,hour_ge

            mov dptr,#table

            movc a,@a+dptr

            mov p2,a

            lcall delay

            mov p1,#11111110b ;顯示小時的十位

            mov a,hour_shi

            mov dptr,#table

            movc a,@a+dptr

            mov p2,a

            lcall delay

            pop psw

            pop acc

            ret ;掃描程序返回

            table: ;共陰極數(shù)碼管掃描碼

            DB 3FH ;0

            DB 06H ;1

            DB 5BH ;2

            DB 4FH ;3

            DB 66H ;4

            DB 6DH ;5

            DB 7DH ;6

            DB 27H ;7

            DB 7FH ;8

            DB 6FH ;9

            delay: mov r4,#5 ;延時函數(shù)(延時大概5*255*2=25ms)

            l1: mov r5,#0ffh

            l2: djnz r5,$

            djnz r4,l1

            ret

            end



            評論


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

            關閉