单片机用汇编做一个控制8个LED灯泡从左到右依次点亮,最后全部亮,再全部熄灭后重复前面的过程
答案:2 悬赏:0 手机版
解决时间 2021-11-23 11:00
- 提问者网友:温旧梦泪无声
- 2021-11-23 05:11
单片机用汇编做一个控制8个LED灯泡从左到右依次点亮,最后全部亮,再全部熄灭后重复前面的过程
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-11-23 05:22
楼主要的是汇编程序。
是 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
是 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
全部回答
- 1楼网友:大漠
- 2021-11-23 06:40
#include
#include
#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);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯