欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5635|回復(fù): 11
收起左側(cè)

51單片機如何讓一個燈閃爍 其余7個燈流水 求幫助

[復(fù)制鏈接]
ID:499984 發(fā)表于 2019-3-28 16:11 | 顯示全部樓層 |閱讀模式
如題
回復(fù)

使用道具 舉報

ID:412827 發(fā)表于 2019-3-28 19:41 | 顯示全部樓層
直接操作一個P1口,然后進行移位,再次操作P2.1不停的取反就行
回復(fù)

使用道具 舉報

ID:423511 發(fā)表于 2019-3-28 20:31 | 顯示全部樓層
給你來個簡單例子
#include <reg52.h>
       
#define led P2            //P2連接led,共陽極連接

void delay(int z)      //1ms延時
{
        int x,y;
        for(x=z;x>0;x--)
         for(y=110;y>0;y--);
}

void main()              
{
        while(1)
        {
                led=0x7f;
          delay(100);
                led=0xbf;
          delay(100);
                led=0x5f;
          delay(100);
                led=0xef;
          delay(100);
                led=0x77;
          delay(100);
                led=0xfb;
          delay(100);
                led=0x7d;
          delay(100);
                led=0xfe;
          delay(100);
        }
}
回復(fù)

使用道具 舉報

ID:416287 發(fā)表于 2019-3-28 20:54 | 顯示全部樓層
你可以用一個io口控制閃爍一個io口控制另外七個燈流動閃爍 比如先是第一個燈亮 0西   或者你的io口比較多  可以用
回復(fù)

使用道具 舉報

ID:416287 發(fā)表于 2019-3-28 20:56 | 顯示全部樓層
你可以用一個io口控制閃爍一個io口控制另外七個燈流動閃爍 比如先是第一個燈亮 0x01然后每好多秒 移位一次 0x01>>1 這樣  這是最簡單的 或者你的io口比較多  可以用多個io口分別控制
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2019-3-28 21:37 | 顯示全部樓層
你先寫一個燈流水程序發(fā)上來看看你入門了沒有。否則基礎(chǔ)太差,給你程序你也看不懂。
回復(fù)

使用道具 舉報

ID:499770 發(fā)表于 2019-3-29 09:04 | 顯示全部樓層
用一個字節(jié)a的固定一位間接取反,另外7位間接移位后存回a,再把a字節(jié)傳到端口
回復(fù)

使用道具 舉報

ID:317383 發(fā)表于 2019-3-29 09:24 | 顯示全部樓層
最簡答的方法采用查表的方法,將7種所有情況放在表中,進行調(diào)用
回復(fù)

使用道具 舉報

ID:500397 發(fā)表于 2019-3-29 09:52 | 顯示全部樓層
用控制引腳的方式來,分別定義位端口。一個讓他實現(xiàn)閃爍功能亮滅,其余實現(xiàn)流水。流水可以用一個函數(shù)來寫。寫完在調(diào)用。
回復(fù)

使用道具 舉報

ID:302534 發(fā)表于 2019-3-29 10:00 | 顯示全部樓層
兩個子程序,一個單獨控制一個LED燈,一個控制其余七個,
回復(fù)

使用道具 舉報

ID:425029 發(fā)表于 2019-3-29 11:26 | 顯示全部樓層
#include<reg52.h>  
#define uchar unsigned char
#define uint unsigned int

/* 函數(shù)申明 -----------------------------------------------*/
void delay(uint z);

/*
********************************************************************************
** 函數(shù)名稱 : main(void)
** 函數(shù)功能 : 主函數(shù)
********************************************************************************
*/
void main()
{
        uchar  num,dat1,dat2;
        delay(500);
        P0=0;
        while(1)
        {
                dat1=0xfe;
               
                for(num=0;num<7;num++)
                {
                        P1=dat1;          //初始化賦值
                        dat1=dat1<<1; //右移一位
                        P1^0=~P1^1;  //讓P1^0口始終閃爍
                        delay(500);   //延時       
                }
               
        }
}

/*
********************************************************************************
** 函數(shù)名稱 : delay(uint z)
** 函數(shù)功能 : 延時函數(shù)
********************************************************************************
*/
void delay(uint z)
{
    uchar j;
    for(z;z>0;z--)
        for(j=200;j>0;j--);
}
回復(fù)

使用道具 舉報

ID:500775 發(fā)表于 2019-3-29 19:42 | 顯示全部樓層
  1. #include<reg52.h>

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit led1 = P1^0;
  5. sbit led2 = P1^1;
  6. sbit led3 = P1^2;
  7. sbit led4 = P1^3;
  8. sbit led5 = P1^4;
  9. sbit led6 = P1^5;
  10. sbit led7 = P1^6;
  11. sbit led8 = P1^7;

  12. sbit L = P2^5;                //流水燈鎖存器
  13. uchar i = 0, num_T0;
  14. void delay()
  15. {
  16.         uint i, j;
  17.         for(i=1000; i>0; i--)
  18.                 for(j=110; j>0; j--)
  19.                         ;
  20. }

  21. void main()
  22. {
  23.         L = 1;                        //打開流水燈
  24.         //設(shè)置定時器0中斷
  25.         TMOD = 0x01;
  26.         TH0 = (65536 - 45872) / 256;
  27.         TL0 = (65536 - 45872) % 256;
  28.         EA = 1;
  29.         ET0 = 1;
  30.         TR0 = 1;
  31.         while(1)
  32.         {
  33.                 switch(i)
  34.                 {
  35.                         case 0:        led1 = 0; delay(); led1=1; break;
  36.                         case 1:        led2 = 0; delay(); led2=1; break;
  37.                         case 2:        led3 = 0; delay(); led3=1; break;
  38.                         case 3:        led4 = 0; delay(); led4=1; break;
  39.                         case 4:        led5 = 0; delay(); led5=1; break;
  40.                         case 5:        led6 = 0; delay(); led6=1; break;
  41.                         case 6:        led7 = 0; delay(); led7=1; break;
  42.                 }
  43.                 i = (i+1) % 7;
  44.         }
  45. }

  46. void Time0() interrupt 1
  47. {
  48.         TH0 = (65536 - 45872) / 256;
  49.         TL0 = (65536 - 45872) % 256;
  50.         num_T0++;
  51.         if(num_T0 == 8)
  52.         {
  53.                 num_T0 = 0;
  54.                 led8 = ~led8;
  55.         }
  56. }
復(fù)制代碼
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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