新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 松翰單片機定時中斷數碼管程序

        松翰單片機定時中斷數碼管程序

        作者: 時間:2016-11-30 來源:網絡 收藏
        ;數碼管 ---- 目的:學習查表及間接尋址定時中斷

        ;完整代碼下載地址:http://www.51hei.com/f/smysh.rar
        CHIP SN8F27E65
        //{{SONIX_CODE_OPTION
        .Code_Option WDT_CLK Flosc/4
        .Code_Option Reset_Pin P04
        .Code_Option LVD LVD_Max ; 3.3V Reset
        .Code_Option Watch_Dog Disable ;關閉看門狗
        .Code_Option Low_Fcpu Flosc/1
        .Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator
        .Code_Option High_Fcpu Fhosc/1
        .Code_Option Security Enable
        .Code_Option Noise_Filter Enable
        //}}SONIX_CODE_OPTION
        DATAC EQU P4M
        DATA EQU P4
        LEDC EQU P0M
        LED EQU P0

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

        .DATA;數據
        ORG 0
        TEMP DS 1
        ACCBUF DS 1
        PflagBUF DS 1

        .CODE;程序代碼
        ORG 0000H
        JMP A0
        ORG 000BH
        JMP T0
        ; ORG 0015H
        A0: B0BCLR FT0IEN;關閉T0中斷
        B0BCLR FT0ENB;禁止T0中斷
        MOV A,#16;設置T0時鐘
        B0MOV T0M,A;
        MOV A,#16;裝初值
        B0MOV T0C,A;
        B0BCLR FT0IRQ;清中斷標志
        B0BSET FT0IEN;開T0中斷
        B0BSET FT0ENB;允許T0中斷
        B0BSET FGIE;開總中斷

        MOV A,#3;顯示值
        MOV 41H,A

        MOV A,#2;顯示值
        MOV 42H,A
        MOV A,#1;顯示值
        MOV 43H,A
        MOV A,#0;顯示值
        MOV 44H,A
        ;*********************************************
        ;顯示設置
        ;*********************************************
        A1: MOV A,#11111110B ;顯示位碼
        MOV 31H,A
        MOV A,#4;顯示位數
        MOV 33H,A
        B0MOV H,#0 ; 清“H”以尋址RAM bank 0。
        B0MOV L,#41H ; 設定寄存器地址。
        JMP $
        ;*********************************************
        ;T0中斷
        ;*********************************************
        T0: B0BCLR FT0IEN;關T0中斷
        B0BCLR FT0ENB;禁止T0中斷
        B0XCH A,ACCBUF;壓棧
        B0MOV A,PFLAG;
        B0MOV PFLAGBUF,A;
        MOV A,#0FFH;清顯示
        B0MOV DATAC,A;
        B0MOV DATA,A;
        MOV A,#0FFH;
        B0MOV LEDC,A;
        MOV A,#0FFH;
        B0MOV LED,A;
        T1:
        MOV A,#0FFH;設置為輸出口
        B0MOV DATAC,A;
        B0MOV Y,#Q1$M;編碼表地址
        B0MOV Z,#Q1$L;編碼表地址
        B0MOV A, @HL;間接尋址
        ADD Z,A;尋找要顯示編碼
        MOVC ;查表高八位存在R低八位存在ACC
        B0MOV DATA,A;數據輸出

        MOV A,#0FFH;設為輸出口
        B0MOV LEDC,A

        MOV A,31H;位碼
        B0MOV LED,A
        MOV A,31H;處理位碼的數由于沒有RL只有RLC現在這里處理C
        MOV 32H,A
        RLC 32H
        RLCM 31H;移動位碼
        INCMS L;顯示數據控制寄存器處理
        CALL M001;延時提高亮度
        MOV A,#0FFH;清顯示
        B0MOV DATAC,A
        B0MOV DATA,A
        MOV A,#0FFH
        B0MOV LEDC,A
        MOV A,#0FFH
        B0MOV LED,A
        DECMS 33H;自動減1判斷是否也顯示完成
        JMP T1

        MOV A,#11111110B ;顯示位碼
        MOV 31H,A
        MOV A,#4;顯示位數
        MOV 33H,A
        B0MOV H,#0 ; 清“H”以尋址RAM bank 0。
        B0MOV L,#41H ; 設定寄存器地址。
        B0MOV A,PFLAGBUF;彈棧
        B0MOV PFLAG,A;
        B0XCH A,ACCBUF;
        MOV A,#16;設T0時鐘
        B0MOV T0M,A;
        MOV A,#16;重裝初值
        B0MOV T0C,A;
        B0BCLR FT0IRQ;清中斷標志
        B0BSET FT0IEN;開中斷
        B0BSET FT0ENB;允許中斷
        B0BSET FGIE;開總中斷
        RETI;
        ;******************************************
        ;延時子程序
        ;******************************************
        M001: MOV A,#1
        MOV 51H,A
        M002: MOV A,#24
        MOV 52H,A
        M003: MOV A,#250
        MOV 53H,A
        M004: DECMS 53H
        JMP M004
        DECMS 52H
        JMP M003
        DECMS 51H
        JMP M002
        RET
        ;******************************************
        ;編碼表
        ;******************************************
        Q1: DW 00C0H ;0
        DW 00F9H ;1
        DW 00A4H ;2
        DW 00B0H ;3
        DW 0099H ;4
        DW 0092H ;5
        DW 0082H ;6
        DW 00F8H ;7
        DW 0080H ;8
        DW 0090H ;9
        DW 0088H ;A
        DW 0083H ;B
        DW 00C6H ;C
        DW 00A1H ;D
        DW 0086H ;E
        DW 008EH ;F
        endp



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 岳阳市| 淳化县| 星子县| 咸宁市| 绥中县| 响水县| 永州市| 安顺市| 比如县| 保康县| 西乌珠穆沁旗| 大余县| 苍南县| 鄯善县| 富顺县| 大石桥市| 德阳市| 高阳县| 遂昌县| 曲麻莱县| 明水县| 九江市| 称多县| 额敏县| 桐柏县| 龙山县| 通江县| 南涧| 游戏| 达拉特旗| 邯郸市| 广宗县| 皋兰县| 崇文区| 凤庆县| 绥化市| 望奎县| 察雅县| 鹰潭市| 晴隆县| 百色市|