新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)外中斷匯編語(yǔ)言和C語(yǔ)言程序

        單片機(jī)外中斷匯編語(yǔ)言和C語(yǔ)言程序

        作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
        以下兩個(gè)程序效果相同,一個(gè)使用匯編語(yǔ)言,一個(gè)使用C語(yǔ)言,從仿真效果看,c語(yǔ)言程序運(yùn)行比較流暢。
        兩個(gè)外中斷跑馬燈匯編語(yǔ)言程序
        ORG 0000H
        LJMP MAIN
        ORG 0003H
        LJMP WZD0
        ORG 0013H
        LJMP WZD1
        ORG 0040H
        WZD0: MOV DPTR,#0220H
        MOV R3,#42D
        CB0: CLR A
        MOVC A,@A+DPTR
        MOV P1,A
        INC DPTR
        LCALL DELAY2
        DJNZ R3,CB0
        RETI
        WZD1: MOV DPTR,#0220H
        MOV R3,#42D
        CB1: CLR A
        MOVC A,@A+DPTR
        MOV P2,A
        INC DPTR
        LCALL DELAY1
        DJNZ R3,CB1
        RETI
        ORG 0150H
        MAIN: MOV P1,#00H
        MOV P2,#00H
        SETB EA
        SETB IT0
        SETB EX0
        CLR PX0
        SETB IT1
        SETB EX1
        SETB PX1
        ST: MOV DPTR,#0270H
        MOV R4,#17D
        DD: CLR A
        MOVC A,@A+DPTR
        MOV P0,A
        INC DPTR
        LCALL DELAY1
        DJNZ R4,DD
        SJMP ST
        DELAY1: MOV R7,#00H
        DD1: MOV R6,#00H
        DD2: MOV R5,#01H
        DJNZ R5,$
        DJNZ R6,DD2
        DJNZ R7,DD1
        RET
        DELAY2: MOV R7,#00H
        DDD1: MOV R6,#00H
        DJNZ R6,$
        DJNZ R7,DDD1
        RET
        ORG 0220H
        DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
        DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
        DB 0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18
        DB 0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18
        DB 0x18,0x00,0x3c,0x00,0x7e,0x00,0xff,0x00
        ORG 0270H
        DB 0xfe,0xfc,0xf8,0xe0,0xe0,0xc0,0x80,0x00
        DB 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff, 0x00
        END

        兩個(gè)外中斷跑馬燈C語(yǔ)言程序
        #include
        int code yu[]={
        0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
        0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
        0x00,0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18,
        0x00,0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18,
        0x00,0x18,0x00,0x3c,0x00,0x7e,0x00,0xff,0x00,0x00,
        0x00 };
        int code yu1[]={
        0xfe,0xfc,0xf8,0xe0,0xe0,0xc0,0x80,0x00,
        0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
        0x00};
        void delay(int ms)
        {
        while(ms--)
        {
        int i;
        for(i=0;i<120;i++);
        }
        }
        void ddd() interrupt 0
        {
        int k;
        for(k=0;k<47;k++)
        {
        P2=yu[k];
        delay(100);
        }
        }
        void dd() interrupt 1
        {
        int k;
        for(k=0;k<48;k++)
        {
        P1=yu[k];
        delay(300);
        }
        P1=0x00;
        }
        void main()
        {
        int n;
        IT0=0;
        EX0=1;
        PX0=1;
        IT1=0;
        EX1=1;
        PX1=0;
        EA=1;
        P1=0x00;
        P2=0x00;
        while(1)
        {
        for(n=0;n<17;n++)
        {
        P0=yu1[n];
        delay(100);
        }
        }


        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 章丘市| 元谋县| 九龙县| 丰台区| 五常市| 昆明市| 万荣县| 江口县| 通州区| 永清县| 涟水县| 广丰县| 黄石市| 惠东县| 东兰县| 元朗区| 仁寿县| 南乐县| 德安县| 鄂伦春自治旗| 垦利县| 镶黄旗| 阳曲县| 罗甸县| 吉安市| 和政县| 通城县| 调兵山市| 苗栗县| 九江市| 蒲城县| 乌拉特前旗| 乳源| 盐城市| 桂林市| 冕宁县| 灵寿县| 磐安县| 长汀县| 黎川县| 麻城市|