用单片机控制6个LED灯的程序和电路分别是什么?请问谁能告诉我下

核心提示呵呵呵……和我一样啊 我也是初学者。你给你的QQ吧 我们今后多多联系啊!互相讨论一些问题啊。你看咋样!!程序我给你了!下面就是:ORG 0000HAJMP MAINORG 0030HMAIN:MOV P0, #11111

呵呵呵……和我一样啊 我也是初学者。你给你的QQ吧 我们今后多多联系啊!互相讨论一些问题啊。

你看咋样!!

程序我给你了!下面就是:

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:

MOV P0, #11111110B

LCALL YANSHI

MOV P0, #11111101B

LCALL YANSHI

MOV P0, #11111011B

LCALL YANSHI

MOV P0, #11110111B

LCALL YANSHI

MOV P0, #11101111B

LCALL YANSHI

MOV P0, #11011111B

LCALL YANSHI

AJMP MAIN

YANSHI:

MOV R0, #8

MOV R1, #250

MOV R2, #250

DJNZ R2, $

DJNZ R1, D2

DJNZ R0, D1

RET

END

程序中是用了单片机的 P0 口 LED是低电平点亮的。

#include <reg51.h>

sbit key = P1^4;

bit key_on = 0;

#define led P2

void delay(void);

main()

{

unsigned char i=0;

while(1)

{

if(key == 0)

{

if(key_on==0)

{

i=(i+1)%8;

key_on=1;

}

}

switch(i)

{

case 0:led=0xfe;break; //点亮led0

case 1:led=0xfd;break; //点亮led1

case 2:led=0xfb;break; //点亮led2

case 3:led=0xf7;break; //点亮led3

case 4:led=0xef;break; //点亮led4

case 5:led=0xdf;break; //点亮led5

case 6:led=0xbf;break; //点亮led6

case 7:led=0x7f;break; //点亮led7

}

while(key_on)

{

if(key==1)

{

key_on=0;

}

}

//delay();

}

}

void delay(void)

{

unsigned int i;

for(i=0;i<60000;i++)

{}

}

 
友情链接
鄂ICP备19019357号-22