单片机用汇编做一个控制8个LED灯泡从左到右依次点亮,最后全部亮,再全部熄灭后重复前面的过程

急求解!大神们谢谢

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

{

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

}

}

//主程序

void main()

{

uint s;

while(1)

{

P0=0xfe;

DelayMS(150);

for(s=8;s>1;s--)


 

 {

 P0=_crol_(P0,1); //P0 的值向左循环移动

 

 DelayMS(150);


 

 }

 P0=0x00;

 

 DelayMS(150);

 

 P0=0xff;

 

 DelayMS(150);

 }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-11
楼主要的是汇编程序。
是 51 单片机吗?
汇编程序如下:
;--------------------
ORG 0000H
MOV A, #7FH
LOP:
MOV P0, A
CALL DELAY
CLR C
RRC A
CJNE A, #0, LOP
MOV P0, A ;全亮
CALL DELAY
MOV P0, #255 ;全灭
CALL DELAY
SJMP 0000H ;重复前面的过程
;--------------------
DELAY:
;延时子程序,请楼主自己编写。
;因为,晶振频率和延时时间,楼主都没有给出。
RET
;--------------------
END本回答被提问者和网友采纳
相似回答