C51单片机的二极管循环点亮,那为高手可以帮我遍一下程序

循环主要是从1到8在从8到1依次循环,我要详细的程序

;8个发光二极管,正极接+5V电源,负极串联一个330欧姆的电阻后接到单片机的P1的8个引脚上。

HERE: SETB P1.1 ;第一个亮
CLR P1.0
ACALL DELAY

SETB P1.0 ;第二个,依次类推
CLR P1.1
ACALL DELAY

SETB P1.1
CLR P1.2
ACALL DELAY

SETB P1.2
CLR P1.3
ACALL DELAY

SETB P1.3
CLR P1.4
ACALL DELAY

SETB P1.4
CLR P1.5
ACALL DELAY

SETB P1.5
CLR P1.6
ACALL DELAY

SETB P1.6
CLR P1.7
ACALL DELAY

SETB P1.7
CLR P1.6
ACALL DELAY

SETB P1.6
CLR P1.5
ACALL DELAY

SETB P1.5
CLR P1.4
ACALL DELAY

SETB P1.4
CLR P1.3
ACALL DELAY

SETB P1.3
CLR P1.2
ACALL DELAY

SETB P1.2
CLR P1.1
ACALL DELAY

AJMP HERE

DELAY: ;(……);(这里写个延时的子程序,课本上好多,随便抄一个,延时时间你自己定吧,太快了你可看不出发光二极管在闪了哦。)

END

;可以了吧?
温馨提示:内容为网友见解,仅供参考
无其他回答

跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
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, #10111...

51单片机流水灯依次点亮循环两次怎么实现?只循环两次!
uchar code table[]={0xf6,0xed,0xdb,0xf6,0xed,0xdb}; \/\/ 发光二极管循环点亮可以有很多方法 uchar code tabled[]={0xaa,0x55,0xaa,0x55,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void delay(uint z) \/\/ 延时程序 { ui...

求一c51单片机,8位流水灯程序
下列程序调试成功。使用晶振为12M。\/\/软件延时,使P1口外接的8个发光二极管,以每秒1位的速度,轮流发光。\/\/发光顺序:0123,1234,2345,3456,4567,5670,6701,7012。循环。\/\/--- include<reg52.h> include<intrins.h> unsigned char a;void main(){ unsigned char i, j, k;a = 0x0f...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
首先,我们定义了一个延时函数delay(),通过两个for循环实现毫秒级的延时。在主函数中,程序初始化P0口为全灭状态,然后进入一个无限循环,每隔一秒,将P0口的特定位设置为1,点亮两个LED,延时1秒后切换到下一个LED对。具体步骤如下:1. 全部LED初始状态:P0 = 0x00 2. 点亮P0.0和P0.1:P0 ...

跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
\/\/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=~0x40;if(i==1)P1=~0x...

怎么样用51单片机点亮一个二极管,让它以0.1秒的频率连续闪烁之后停顿1秒...
程序如下仅供参考 闪烁的LED include<reg51.h> define uchar unsigned char define uint unsigned int sbit LED=P1^0;\/\/延时 void DelayMS(uint t){ int x,y;for(x=110;x>0;x--)for(y=z;z>0;z--);} \/\/主程序 void main(){ while(1){ LED=~LED;DelayMS(100);} } ...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include <reg52.h>...

...功能是控制8个发光二极管循环点亮然后中断时闪烁5次
……POP PSW POP ACC clr IE0 ;加上这行试试 RETI ……用按键触发INT0。按键,会有抖动。当进入中断程序后,还会有许多次的中断申请,但是当时不会响应。当退出中断程序后,才会响应刚才遗落的中断申请,就会重新进入中断程序。CLR IE0,就是在退出前,消除多余的外部中断申请标志。

51单片机二极管延时点亮的室验原理?
51单片机控制二极管延时点亮的实验原理是基于51单片机的内部计时器和IO口控制二极管的电流流动。具体步骤如下:将一个二极管连接到51单片机的IO口上,使得该IO口可以控制二极管的电流开关状态。使用51单片机的内部计时器来延时,计时器可以通过编写程序控制其开始和结束的时间。在程序中设定一个时间延时,然后将...

...引脚上分别接上三个发光二极管,使其依次亮,且循环不止。
sbit led1=P1^2; \/\/单片机管脚位声明 sbit led2=P1^3;sbit led3=P1^4;sbit button=P1^0;\/\/设置控制按键接口,你可以根据你自己的按键设置,我这里设置按键按下时 P1.0口为低电平 void delay(uint z) \/\/延时函数,z决定延时长短 { uint x,y;for(x=z;x>0;x--)for(y=110;...

相似回答