新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實(shí)踐 > 51單片機(jī)8*8點(diǎn)陣LED顯示原理及程序

        51單片機(jī)8*8點(diǎn)陣LED顯示原理及程序

        作者:高健 時(shí)間:2008-03-28 來(lái)源:國(guó)外電子元器件 收藏

                  在8X8點(diǎn)陣LED上顯示柱形,讓其先從左到右平滑移動(dòng)三次,其次從右到左平滑移動(dòng)三次,再次從上到下平滑移動(dòng)三次,最后從下到上平滑移動(dòng)三次,如此循環(huán)下去。

               1. 程序設(shè)計(jì)內(nèi)容
            
               8X8點(diǎn)陣LED工作原理說(shuō)明 :8X8點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一列置1電平,某一行置0電平,則相應(yīng)的二極管就亮;因此要實(shí)現(xiàn)一根柱形的亮法,如圖49所示,對(duì)應(yīng)的一列為一根豎柱,或者對(duì)應(yīng)的一行為一根橫柱,因此實(shí)現(xiàn)柱的亮的方法如下所述:

               一根豎柱:對(duì)應(yīng)的列置1,而行則采用掃描的方法來(lái)實(shí)現(xiàn)。 
               一根橫柱:對(duì)應(yīng)的行置0,而列則采用掃描的方法來(lái)實(shí)現(xiàn)。 

               2. 硬件電路
         

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

         

              3.匯編源程序
        ORG 00H
        START: NOP
        MOV R3,#3
        LOP2: MOV R4,#8
        MOV R2,#0
        LOP1: MOV P1,#0FFH
        MOV DPTR,#TABA
        MOV A,R2
        MOVC A,@A+DPTR
        MOV P3,A
        INC R2
        LCALL DELAY
        DJNZ R4,LOP1
        DJNZ R3,LOP2

         

        MOV R3,#3
        LOP4: MOV R4,#8
        MOV R2,#7
        LOP3: MOV P1,#0FFH
        MOV DPTR,#TABA
        MOV A,R2
        MOVC A,@A+DPTR
        MOV P3,A
        DEC R2
        LCALL DELAY
        DJNZ R4,LOP3
        DJNZ R3,LOP4

         

        MOV R3,#3
        LOP6: MOV R4,#8
        MOV R2,#0
        LOP5: MOV P3,#00H
        MOV DPTR,#TABB
        MOV A,R2
        MOVC A,@A+DPTR
        MOV P1,A
        INC R2
        LCALL DELAY
        DJNZ R4,LOP5
        DJNZ R3,LOP6

         

        MOV R3,#3
        LOP8: MOV R4,#8
        MOV R2,#7
        LOP7: MOV P3,#00H
        MOV DPTR,#TABB
        MOV A,R2
        MOVC A,@A+DPTR
        MOV P1,A
        DEC R2
        LCALL DELAY
        DJNZ R4,LOP7
        DJNZ R3,LOP8
        LJMP START

         

        DELAY: MOV R5,#10
        D2: MOV R6,#20
        D1: MOV R7,#248
        DJNZ R7,$
        DJNZ R6,D1
        DJNZ R5,D2
        RET

         

        TABA: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
        TABB: DB 01H,02H,04H,08H,10H,20H,40H,80H
        END

         

               4.C51語(yǔ)言源程序
        #include

         

        unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
        unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

         

        void delay(void)
        {
          unsigned char i,j;
          for(i=10;i>0;i--)
          for(j=248;j>0;j--);
        }

         

        void delay1(void)
        {
          unsigned char i,j,k;
          for(k=10;k>0;k--)
          for(i=20;i>0;i--)
          for(j=248;j>0;j--);
        }

         

        void main(void)
        {
          unsigned char i,j;
          while(1)
          {
            for(j=0;j<3;j++)  //from left to right 3 time
            {
              for(i=0;i<8;i++)
              {
                P3=taba[i];
                P1=0xff;
                delay1();
              }
            }
            for(j=0;j<3;j++)  //from right to left 3 time
            {
              for(i=0;i<8;i++)
              {
                P3=taba[7-i];
                P1=0xff;
                delay1();
              }
            }
            for(j=0;j<3;j++)  //from top to bottom 3 time
            {
              for(i=0;i<8;i++)
              {
                P3=0x00;
                P1=tabb[7-i];
                delay1();
              }
            }
            for(j=0;j<3;j++)  //from bottom to top 3 time
            {
              for(i=0;i<8;i++)
              {
                P3=0x00;
                P1=tabb[i];
                delay1();
              }
            }
          }
        }

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        關(guān)鍵詞: 單片機(jī) 嵌入式

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 尉氏县| 紫云| 巴马| 凤庆县| 六盘水市| 清涧县| 杨浦区| 广东省| 龙海市| 区。| 客服| 潞城市| 舒兰市| 台安县| 河北省| 银川市| 五家渠市| 靖远县| 新营市| 策勒县| 喀什市| 开远市| 鱼台县| 云和县| 二连浩特市| 阜城县| 江安县| 奉化市| 栾城县| 光山县| 刚察县| 富阳市| 巴青县| 邳州市| 溆浦县| 邻水| 白银市| 海淀区| 崇礼县| 友谊县| 乌兰浩特市|