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

QQ登錄

只需一步,快速開始

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

本人剛學(xué)單片機(jī) 問(wèn)個(gè)小問(wèn)題 下面的程序?qū)崿F(xiàn)實(shí)現(xiàn)兩個(gè)按鍵控制LED流水燈,按下P3.0,8個(gè)LED循環(huán)左移,按下P3.1,8個(gè)LED循環(huán)右移 小燈低電平亮

[復(fù)制鏈接]
ID:48645 發(fā)表于 2013-4-23 14:07 | 顯示全部樓層 |閱讀模式
ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P1,#00H MOV P3,#0FFH LOOP: MOV P1,#00H JNB P3.0,KEY1 JNB P3.1,KEY2 LJMP LOOP KEY1: ACALL DELAY10 JNB P3.0,ZUOYI RET KEY2: ACALL DELAY10 JNB P3.1,YOUYI RET ZUOYI: MOV P1,#7FH MOV A,P1 LOOP1: RR A MOV P1,A ACALL DELAY500 CJNE A,#0FEH,LOOP1 RET YOUYI: MOV P1,#0FEH MOV A,P1 LOOP2: RL A MOV P1,A ACALL DELAY500 CJNE A,#7FH,LOOP2 RET DELAY500: MOV R7,#0CDH DL1: MOV R6,#74H DL0: MOV R5,#09H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 RET DELAY10: MOV R4,#05H DL3: MOV R3,#04H DL2: MOV R2,#0F8H DJNZ R2,$ DJNZ R3,DL2 DJNZ R4,DL3 RET END
回復(fù)

使用道具 舉報(bào)

ID:59655 發(fā)表于 2014-3-22 17:17 | 顯示全部樓層
看不懂,寫得不規(guī)范
回復(fù)

使用道具 舉報(bào)

ID:59827 發(fā)表于 2014-4-18 10:23 來(lái)自手機(jī) | 顯示全部樓層
你這代碼沒(méi)有任何規(guī)范可言
回復(fù)

使用道具 舉報(bào)

ID:60462 發(fā)表于 2014-4-18 11:14 | 顯示全部樓層
學(xué)51C語(yǔ)言簡(jiǎn)單吧。。!
回復(fù)

使用道具 舉報(bào)

ID:153199 發(fā)表于 2016-12-24 14:28 | 顯示全部樓層
include<reg51.h>
#include<intrins.h>       //包含循環(huán)左、右移位函數(shù)的頭文件
#define led P1
sbit key1=P3^2;
sbit key2=P3^3;
unsigned char a,b;

void delay(unsigned char m)
{
      unsigned i,j;
       for(i=0;i<=m;i++)
         for(j=0;j<=120;j++);   //這條語(yǔ)句大概延時(shí)1ms
}

void key1ch()
{
  
  while(key2)    //如果鍵2沒(méi)有按下,循環(huán)執(zhí)行這段程序
  {
   for(a=0;a<8;a++)
    {   
         delay(500);
         led=_crol_(led,1);//左移一位
         while(!key2) return;//如果鍵2按下,退出
      }
   }
}
void key2ch()   
  {
    while(key1)      //如果鍵1沒(méi)有按下,循環(huán)執(zhí)行這段程序
    {for(b=0;b<8;b++)
      {  
          delay(500);
          led=_cror_(led,1);//右移一位
           while(!key1) return;//如果鍵1按下,退出
      }
    }
}
回復(fù)

使用道具 舉報(bào)

ID:153199 發(fā)表于 2016-12-24 14:29 | 顯示全部樓層
include<reg51.h>
#include<intrins.h>       //包含循環(huán)左、右移位函數(shù)的頭文件
#define led P1
sbit key1=P3^0;
sbit key2=P3^1;
unsigned char a,b;

void delay(unsigned char m)
{
      unsigned i,j;
       for(i=0;i<=m;i++)
         for(j=0;j<=120;j++);   //這條語(yǔ)句大概延時(shí)1ms
}

void key1ch()
{
  
  while(key2)    //如果鍵2沒(méi)有按下,循環(huán)執(zhí)行這段程序
  {
   for(a=0;a<8;a++)
    {   
         delay(500);
         led=_crol_(led,1);//左移一位
         while(!key2) return;//如果鍵2按下,退出
      }
   }
}
void key2ch()   
  {
    while(key1)      //如果鍵1沒(méi)有按下,循環(huán)執(zhí)行這段程序
    {for(b=0;b<8;b++)
      {  
          delay(500);
          led=_cror_(led,1);//右移一位
           while(!key1) return;//如果鍵1按下,退出
      }
    }
}

void main()
{
  led=0xfe;
  while(1)
  {if(!key1)
   {
    delay(10);
     while(key1);
      key1ch();
    }
   else
    if(!key2)
    {
      delay(10);
       while(key2);
        key2ch();
     }
   }
}
回復(fù)

使用道具 舉報(bào)

ID:170597 發(fā)表于 2017-3-14 13:38 | 顯示全部樓層
沙發(fā)~~~!沙發(fā)~~~!沙發(fā)~~~!沙發(fā)~~~!沙發(fā)~~~!沙發(fā)~~~!沙發(fā)~~~!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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