新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8279顯示電子鐘的硬件設(shè)計(jì)與軟件設(shè)計(jì)

        8279顯示電子鐘的硬件設(shè)計(jì)與軟件設(shè)計(jì)

        作者: 時(shí)間:2011-12-04 來(lái)源:網(wǎng)絡(luò) 收藏

        可以看看時(shí)鐘程序是怎么樣的。

        本文引用地址:http://www.104case.com/article/172385.htm

        MCS51單片機(jī)匯編程序

        Z8279 EQU 08701H ;8279 狀態(tài)/命令口地址

        D8279 EQU 08700H ;8279 數(shù)據(jù)口地址

        LEDMOD EQU 00H;左邊輸入 八位字符

        ;外部譯碼鍵掃描方式,雙鍵互鎖

        LEDFEQ EQU 2FH;掃描速率

        LEDCLS EQU 0C1H ;清除 RAM

        LEDWR0 EQU 80H;設(shè)定的將要寫(xiě)入的RAM地址

        ORG 0000H

        AJMP START

        ORG 001BH ;INT T1 入口地址

        AJMP INT_T1

        ORG 0040H

        START:

        MOV SP,#60H

        LCALL INIT8279;初始化8279

        MOV R3,#0H ;時(shí)

        MOV R2,#0H ;

        MOV R1,#0H ;

        MOV R6,#0H ;標(biāo)志

        MOV TMOD,#10H

        MOV TL1,#00H ;50 MS 的時(shí)間常數(shù)

        MOV TH1,#04CH

        MOV R0,#20

        SETB TR1

        SETB ET1

        SETB EA ;允許中斷

        WAIT: CJNE R6,#0FFH,WAIT

        LCALL DISPLAY

        MOV R6,#0

        SJMP WAIT

        INIT8279:

        ;8279初始化子程序

        PUSH DPH ;保存現(xiàn)場(chǎng)

        PUSH DPL

        PUSH ACC

        LCALL DELAY ;延時(shí)

        MOV DPTR ,#Z8279

        MOV A,#LEDMOD ;置8279工作方式

        MOVX @DPTR,A

        MOV A,#LEDFEQ ;置鍵盤(pán)掃描速率

        MOVX @DPTR,A

        MOV A,#LEDCLS ;清除 LED 顯示

        MOVX @DPTR,A

        LCALL DELAY ;延時(shí)

        POP ACC ;恢復(fù)現(xiàn)場(chǎng)

        POP DPL

        POP DPH

        RET

        ;顯示字符子程序

        ;輸入R4,位置 R5,值

        DISLED: PUSH DPH ;保存現(xiàn)場(chǎng)

        PUSH DPL

        PUSH ACC

        MOV A,#LEDWR0 ;置顯示起始地址

        ADD A,R4 ;加位置偏移量

        MOV DPTR,#Z8279

        MOVX @DPTR,A ;設(shè)定顯示位置

        MOV DPTR,#LEDSEG ;置顯示常數(shù)表起始位置

        MOV A,R5

        MOVC A,@A+DPTR;查表

        MOV DPTR,#D8279

        MOVX @DPTR,A ;顯示數(shù)據(jù)

        POP ACC ;恢復(fù)現(xiàn)場(chǎng)

        POP DPL

        POP DPH

        RET

        DELAY: ;延時(shí)子程序

        PUSH 0 ;保存現(xiàn)場(chǎng)

        PUSH 1

        MOV 0,#0H

        DELAY1: MOV 1,#0H

        DJNZ 1,$

        DJNZ 0,DELAY1

        POP 1 ;恢復(fù)現(xiàn)場(chǎng)

        POP 0

        RET

        INT_T1: ;INT_T1中斷服務(wù)子程序

        PUSH DPH ;保護(hù)現(xiàn)場(chǎng)

        PUSH DPL

        PUSH ACC

        PUSH PSW

        CLR TR1

        MOV TL1,#00H ;50MS 定時(shí)常數(shù)

        MOV TH1,#4CH

        SETB TR1

        DJNZ R0,EXIT ;判斷毫秒=0

        MOV R0,#20 ;DELAY 1 SECOND

        MOV R6,#0FFH ;置秒標(biāo)志

        CJNE R1,#59H,SECOND ;判斷秒=59

        MOV R1,#99H

        CJNE R2,#59H,MINUTE ;判斷分=59

        MOV R2,#99H

        CJNE R3,#23H,HOUR ;判斷時(shí)=23

        MOV R3,#99H

        HOUR:

        51單片機(jī)相關(guān)文章:51單片機(jī)教程



        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 谷城县| 湖北省| 蛟河市| 焦作市| 汉沽区| 淮阳县| 玉龙| 方城县| 峨眉山市| 南京市| 营口市| 揭西县| 西安市| 东乡族自治县| 龙南县| 修文县| 阳山县| 莱阳市| 平邑县| 德清县| 金坛市| 固阳县| 汉阴县| 曲松县| 仙桃市| 黄浦区| 唐山市| 长沙市| 曲阳县| 阳新县| 南投市| 苍山县| 华宁县| 桂东县| 拉萨市| 饶河县| 册亨县| 柯坪县| 黄浦区| 仪征市| 沈阳市|