找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4269|回復: 0
收起左側

用數(shù)碼管顯示一個流水燈

[復制鏈接]
ID:140489 發(fā)表于 2016-9-27 10:11 | 顯示全部樓層 |閱讀模式



/*數(shù)碼管動態(tài)顯示,延時0.5s數(shù)碼管1到8顯示一個口形流水燈,跑4圈,停下顯示口,如此循環(huán)。
程序在實驗板上通過。
*/

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uint aa;
uchar z;


void delayms(uint xms)
{
        uint i;
        uchar j;
        for(i=xms;i>0;i--)
          for(j=110;j>0;j--);
}

void main()
{
   while(1)
        {
         
         for(z=0;z<4;z++)
         {
         dula=1;                //1         
         P0=0x01;                 //送段選數(shù)據(jù)
         dula=0;
         P0=0xff;                         //送位選數(shù)據(jù)前關閉所有顯示,防止打開位選鎖存器時
         wela=1;                         //原來段選數(shù)據(jù)通過位選鎖存器造成混亂
         P0=0xfe;                         //送位選數(shù)據(jù)
         wela=0;
         delayms(500);                 //延時
       
         dula=1;                //2
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfd;
         wela=0;
         delayms(500);

         dula=1;                //3
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfb;
         wela=0;
         delayms(500);

         dula=1;                //4
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xf7;
         wela=0;
         delayms(500);

         dula=1;                 //5
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xef;
         wela=0;
         delayms(500);

         dula=1;                  //6
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xdf;
         wela=0;
         delayms(500);

         dula=1;                  //7
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xbf;
         wela=0;
         delayms(500);

         dula=1;                   //8
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(500);
       
         dula=1;
         P0=0x02;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(500);
       
         dula=1;
         P0=0x04;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(500);
       
         dula=1;
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(500);
       
         dula=1;                //7
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xbf;
         wela=0;
         delayms(500);
       
         dula=1;                  //6
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xdf;
         wela=0;
         delayms(500);
       
         dula=1;                 //5
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xef;
         wela=0;
         delayms(500);
       
         dula=1;                //4
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xf7;
         wela=0;
         delayms(500);
       
         dula=1;                //3
         P0=0x8;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfb;
         wela=0;
         delayms(500);
       
        dula=1;                //2
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfd;
         wela=0;
         delayms(500);
       
         dula=1;                //1         
         P0=0x08;                 
         dula=0;
         P0=0xff;                         
         wela=1;                         
         P0=0xfe;                         
         wela=0;
         delayms(500);                 
       
         dula=1;                //1         
         P0=0x10;                 
         dula=0;
         P0=0xff;                         
         wela=1;                         
         P0=0xfe;                         
         wela=0;
         delayms(500);       
       
         dula=1;                //1         
         P0=0x20;                 
         dula=0;
         P0=0xff;                         
         wela=1;                         
         P0=0xfe;                         
         wela=0;
         delayms(500);
         }
         
         
         for(aa=0;aa<200;aa++)
         {
         dula=1;                //1         
         P0=0x01;                 //送段選數(shù)據(jù)
         dula=0;
         P0=0xff;                         //送位選數(shù)據(jù)前關閉所有顯示,防止打開位選鎖存器時
         wela=1;                         //原來段選數(shù)據(jù)通過位選鎖存器造成混亂
         P0=0xfe;                         //送位選數(shù)據(jù)
         wela=0;
         delayms(5);                 //延時
       
         dula=1;                //2
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfd;
         wela=0;
         delayms(5);

         dula=1;                //3
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfb;
         wela=0;
         delayms(5);

         dula=1;                //4
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xf7;
         wela=0;
         delayms(5);

         dula=1;                 //5
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xef;
         wela=0;
         delayms(5);

         dula=1;                  //6
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xdf;
         wela=0;
         delayms(5);

         dula=1;                  //7
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xbf;
         wela=0;
         delayms(5);

         dula=1;                   //8
         P0=0x01;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(5);
       
         dula=1;
         P0=0x02;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(5);
       
         dula=1;
         P0=0x04;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(5);
       
         dula=1;
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0x7f;
         wela=0;
         delayms(5);
       
         dula=1;                //7
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xbf;
         wela=0;
         delayms(5);
       
         dula=1;                  //6
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xdf;
         wela=0;
         delayms(5);
       
         dula=1;                 //5
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xef;
         wela=0;
         delayms(5);
       
         dula=1;                //4
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xf7;
         wela=0;
         delayms(5);
       
         dula=1;                //3
         P0=0x8;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfb;
         wela=0;
         delayms(5);
       
        dula=1;                //2
         P0=0x08;
         dula=0;
         P0=0xff;
         wela=1;
         P0=0xfd;
         wela=0;
         delayms(5);
       
         dula=1;                //1         
         P0=0x08;                 
         dula=0;
         P0=0xff;                         
         wela=1;                         
         P0=0xfe;                         
         wela=0;
         delayms(5);                 
       
         dula=1;                //1         
         P0=0x10;                 
         dula=0;
         P0=0xff;                         
         wela=1;                         
         P0=0xfe;                         
         wela=0;
         delayms(5);       
       
         dula=1;                //1         
         P0=0x20;                 
         dula=0;
         P0=0xff;                         
         wela=1;                         
         P0=0xfe;                         
         wela=0;
         delayms(5);
         }       
        }
}

QQ截圖20160927100803.jpg

評分

參與人數(shù) 2黑幣 +55 收起 理由
北辰葬 + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

相關帖子

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表