编程题 硬件电路中由8051单片机P1口控制8个放光二极管,编程实现依次点亮8个发光二极管?

如题所述

首先搞清LED管是高电平导通还是低电平导通。
如果是低电平导通,P1赋0x00时,发光管全亮,0xff时,全灭。
具体程序:
#define uint unsigned int
#define uchar unsigned char
void delay(uint time_out)
{
uint i,j;
for(i=0;i<time_out;i++)
{
for(j=0;j<110;j++)
{;}
}
}

void main(){
while(1)
{
P1=0xfe; //第1个管亮
delay(500);
P1=0xfd; //第2个管亮
delay(500);
P1=0xfb; //依次类推
delay(500);
P1=0xf7;
delay(500);
P1=0xef;
delay(500);

P1=0xdf;
delay(500);

P1=0xbf;
delay(500);

P1=0x7f;
delay(500);
}
}

程序大致如此,delay函数负责延迟500ms.有问题自己再调试调试
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-11
你好,您需要的是c代码,还是汇编,如果是汇编我可以给你编,如果是c代码,见一楼的,呵呵
第2个回答  2011-05-04
是P1.0~~P1.8吧? 间隔点亮具体是怎样?

选用P1口作为输出口,接8只发光二极管,编程实现使8个发光二极管每隔200ms...
LED=0X01;\/\/P1=B while(1)\/\/ˀѭ»·,²»ͣµĵぁº͏¨ðLED { for(t=0;t

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
P3=0xfe;\/\/第一个灯亮 delay();\/\/延时 P3=0xfd;\/\/第二个灯亮 delay();P3=0xfb;\/\/第三个灯亮 delay();P3=0xf7;\/\/第四个灯亮 delay();P3=0xef;\/\/第五个灯亮 delay();P3=0xdf;\/\/第六个灯亮 delay();P3=0xbf;\/\/第七个灯亮 delay();P3=0x7f;\/\/第八个灯亮 delay();}...

单片机编程: P1口8个灯从低位到高位依次点亮(流水灯),遇到外部中断1,8...
$ DJNZ R2,DLY RET END

8051单片机,用P0口控制8个LED实现循环彩灯.循环显示规律为:全亮,全灭...
include<reg51.h> define uchar unsigned char uchar times,cnt;uchar led[]={0x00,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};void t0isr() interrupt 1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;times++;if(times>=40){ times=0;P0=led[cnt];cnt++;cnt%=1...

...口,P1.0至P1.7接8个发光二极管,要求编写程序实现如下功能:8个发光...
编程实现对 8 个 LED 的输出控制 将实验箱中的 8255 片选信号连接到 218H~21FH,将 8255 的 4 个寄存器地址(A、B、 C 端口及控制字寄存器端口)设置为 218H~21BH。将 8255 的端口 A 的 8 个引脚:PA0~PA7 与 8 个 LED 对应相连,然后打开实验箱电源,最后编程对 8 个 LED 进行显示...

...功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。 最好...
if(i==8)P1=~0x01;\/\/P1_0所接二极管亮,下面依次是P1_1到P1_7(电路连接时二极管一端连P1_0,一端连电阻再连5v,低电平的时候亮,因此加取反“~”)if(i==7)P1=~0x02;if(i==6)P1=~0x04;if(i==5)P1=~0x08;if(i==4)P1=~0x10;if(i==3)P1=~0x20;if(i==2)P1=~0x...

用单片机控制8个发光二极管依次发光,产生跑马灯的效果,3种效果循环...
for(i=0;i<8;i++){ if(key1==0) break;\/\/对按键进行检测 P1=temp;temp=_cror_(temp,1);delay(50);} } void display1()\/\/显示效果2 { uchar i;temp=0xf8;for(i=0;i<8;i++){ if(key1==0) break;\/\/对按键进行检测 P1=temp;temp=_crol_(temp,1);delay(50);} P1=0x...

...功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。_百度...
MAIN: MOV P1, #11111110B ; P1 口 点亮一个发光二极管 ACALL DELAY ; 调用延时子程序 MOV P1, #11111101B ; 从左向右移动 一位 ACALL DELAY MOV P1, #11111011B ACALL DELAY MOV P1, #11110111B ACALL DELAY MOV P1, #11101111B ACALL DELAY MOV P1, #11011111B ACALL DELAY MOV P1, #1011...

利用单片机、1个开关、8个LED发光二极管(水平排列)和定时器,实现开关控 ...
初始值为20)3 当软件计数器减到0时,表示0.5秒时间到 这时可以判断开关状态 开关合上 可以让8个LED左移一位 开关断开 可以让8个LED右移一位 呵呵 按上诉算法 编写程序 就可以实现你的要求(指导可以见百度知道的消息 右上角)满意 就选满意回答 ...

p1口接8个发光二极管,通过编程实现至少3种花样循环显示的编程与电路图...
void main(){ Board_init();PORTC|=BIT(BEEP);while(1){ uchar i;for(i=0;i<8;i++) \/\/循环8次,8个LED依次点亮 { All_led(FALSE); \/\/全部熄灭 One_led(i,TRUE); \/\/点亮指定的LED Delayms(200); \/\/延时指定的时间 } } } ...

相似回答