单片机用汇编做一个控制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 .MOV A,Rn 寄存器内容送入累加器

2 .MOV A,direct 直接地址单元中的数据送入累加器

3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器

4 .MOV A,#data 立即数送入累加器

5 .MOV Rn,A 累加器内容送入寄存器

6 .MOV Rn,direct 直接地址单元中的数据送入寄存器

7 .MOV Rn,#data 立即数送入寄存器

8 .MOV direct,A 累加器内容送入直接地址单元

9 .MOV direct,Rn 寄存器内容送入直接地址单元

10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元

11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元

12 MOV direct,#data 立即数送入直接地址单元

13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元

14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元

15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元

16 .MOV DPTR,#data16 16 位立即数送入地址寄存器

17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器

18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器

19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器

20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器

21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)

22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址)

23 .PUSH direct 直接地址单元中的数据压入堆栈

24 .POP direct 弹栈送直接地址单元

25 .XCH A,Rn 寄存器与累加器交换

26 .XCH A,direct 直接地址单元与累加器交换

27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换

28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换

参考资料来源:百度百科-单片机汇编指令

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-06

ORG 00H

AJMP MAIN

ORG 30H

MAIN:

MOV P1,#00H

ACALL D05S

MOV A,#01H

MOV R1,#8

MAIN1:

MOV P1,A

ACALL D05S

RL A

INC A

DJNZ R1,MAIN1

AJMP MAIN

D05S:

MOV R7,#25

MOV R6,#100

MOV R5,#100

DJNZ R5,$

DJNZ R6,$-4

DJNZ R7,$-8

RET

END

本回答被提问者和网友采纳
第2个回答  2012-12-10
还有外围硬件设计呢!追问

用89C51单片机设计的

追答

LED直接到单片机IO口?共阳还是共阴?有限流电阻吗?LED工作电源的电压和单片机是一样的吗?都是5V吗?其实这个程序是非常简单的,你仔细看看参考书就好了。我记得学校里有个跑马灯设计课程,你只要将它做个扩展就好了。

追问

共阴,LED直接到单片机IO口,有限流电阻,5V的!我想要一个不同的单片机汇编程序看看 吖 !

相似回答