找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1673|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)共陰數(shù)碼管顯示計(jì)數(shù)0-9,計(jì)數(shù)結(jié)束實(shí)現(xiàn)8個(gè)LED燈依次熄滅或依次點(diǎn)亮

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
功能實(shí)現(xiàn):計(jì)數(shù)0~9,通過(guò)共陰數(shù)碼管顯示數(shù)值,計(jì)數(shù)到9時(shí),實(shí)現(xiàn)8個(gè)LED燈依次熄滅或依次點(diǎn)亮

#include <reg52.h>
#include <intrins.h>
#define ledport        P2        //LED燈
#define SMG_PORT        P0  //數(shù)碼管
sbit LSA= P1^0;
sbit LSB= P1^1;
sbit LSC= P1^2;


unsigned char i;
unsigned char code LedChar[] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char Ledwei[8]={
        0x00,0x00 ,0x00 , 0x00, 0x00, 0x00,0x00,0x00
        };
unsigned int cnt = 0;
unsigned char sec = 0;
/*unsigned char code ledliang[9]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};        */
       

void  led();                                                                         
void main()
{
          unsigned char cnt = 0;
    LSC= 0;
    LSB= 0;
    LSA= 0;

  TMOD=0x01;//0000 0001 方式一
        TH0=0xFC;
        TL0=0x18;
        EA=1;
        ET0=1;
        TR0=1; //開(kāi)啟T0
        while(1)
        {
         
      led();
        }
}       
void  tmier0()   interrupt 1  
{
  TH0=0xFC;
        TL0=0x18;
    cnt++;         
        P0 = 0x00;
          
        switch(i)
        {
                case 0: LSC=1; LSB=1; LSA=1; i++; P0=Ledwei[0];break;
                case 1: LSC=1; LSB=1; LSA=0; i++; P0=Ledwei[1];break;
                case 2: LSC=1; LSB=0; LSA=1; i++; P0=Ledwei[2];break;
                case 3: LSC=1; LSB=0; LSA=0; i++; P0=Ledwei[3];break;
                case 4: LSC=0; LSB=1; LSA=1; i++; P0=Ledwei[4];break;
                case 5: LSC=0; LSB=1; LSA=0; i=0; P0=Ledwei[5];break;
                default:break;
        }
           
}
//延時(shí)
void delay_100ms(unsigned int ys)
{
   while(ys--);
}
void  led()
{
            if(cnt >= 1000)
                {
                         cnt = 0;
                   Ledwei[0] = LedChar[sec%10];
                         sec++;
                         if(sec==10)
                        {
                         sec=0;
                         P0 = 0x00;

              while(1)
             {
            unsigned int i = 0;   
              for(i=0;i<9;i++)
               {
                       /* P2=ledliang[i];*/  //方法1
                                           P2=~(0xff<<i);//方法二
                              delay_100ms(50000);
                              P2=0Xff;
                     }
                                if(i == 9)
                                          i=0;
              }
       }
    }
}

屏幕截圖 2023-12-16 160859.png (473 KB, 下載次數(shù): 45)

屏幕截圖 2023-12-16 160859.png

屏幕截圖 2023-12-16 160930.png (173.17 KB, 下載次數(shù): 52)

屏幕截圖 2023-12-16 160930.png

屏幕截圖 2023-12-16 160955.png (241.65 KB, 下載次數(shù): 53)

屏幕截圖 2023-12-16 160955.png

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表