新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 廣告燈設計利用取表方式

        廣告燈設計利用取表方式

        作者: 時間:2013-03-12 來源:網絡 收藏

        6.匯編源程序

        ORG 0

        START: MOV DPTR,#TABLE

        LOOP: CLR A

        MOVC A,@A+DPTR

        CJNE A,#01H,LOOP1

        JMP START

        LOOP1: MOV P1,A

        MOV R3,#20

        LCALL DELAY

        INC DPTR

        JMP LOOP

        DELAY: MOV R4,#20

        D1: MOV R5,#248

        DJNZ R5,$

        DJNZ R4,D1

        DJNZ R3,DELAY

        RET

        TABLE: DB 0FEH,0FDH,0FBH,0F7H

        DB 0EFH,0DFH,0BFH,07FH

        DB 0FEH,0FDH,0FBH,0F7H

        DB 0EFH,0DFH,0BFH,07FH

        DB 07FH,0BFH,0DFH,0EFH

        DB 0F7H,0FBH,0FDH,0FEH

        DB 07FH,0BFH,0DFH,0EFH

        DB 0F7H,0FBH,0FDH,0FEH

        DB 00H, 0FFH,00H, 0FFH

        DB 01H

        END

        7. C語言源程序

        #include AT89X51.H>

        unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,

        0xef,0xdf,0xbf,0x7f,

        0xfe,0xfd,0xfb,0xf7,

        0xef,0xdf,0xbf,0x7f,

        0x7f,0xbf,0xdf,0xef,

        0xf7,0xfb,0xfd,0xfe,

        0x7f,0xbf,0xdf,0xef,

        0xf7,0xfb,0xfd,0xfe,

        0x00,0xff,0x00,0xff,

        0x01};

        unsigned char i;

        void delay(void)

        {

        unsigned char m,n,s;

        for(m=20;m>0;m--)

        for(n=20;n>0;n--)

        for(s=248;s>0;s--);

        }

        void main(void)

        {

        while(1)

        {

        if(table[i]!=0x01)

        {

        P1=table[i];

        i++;

        delay();

        }

        else

        {

        i=0;

        }

        }

        }

        以上是設計的全部源代碼


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 山丹县| 芷江| 右玉县| 阳高县| 湾仔区| 大荔县| 德庆县| 白水县| 衢州市| 台湾省| 当雄县| 广昌县| 高邮市| 罗平县| 牡丹江市| 福泉市| 红原县| 沁阳市| 孝昌县| 兴国县| 嘉黎县| 长汀县| 南陵县| 正宁县| 江达县| 衡南县| 双鸭山市| 阿克陶县| 哈密市| 麻城市| 东乡县| 沧州市| 汉源县| 全南县| 平陆县| 伽师县| 柳州市| 富源县| 思南县| 新巴尔虎右旗| 西畴县|