0


51单片机汇编-点亮一个led

文章目录

前言


51单片机基础
51汇编实战
本章主要介绍打开一个led,具体采用51汇编


1.打开IDE

选择STC89C52RC
在这里插入图片描述

后缀是.asm
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.设置编辑器

在这里插入图片描述

3.设置输出

在这里插入图片描述

4. 原理图

在这里插入图片描述
在这里插入图片描述

5.编写代码

在这里插入图片描述

ORG 00H;伪代码,程序起始位置
MOV A,#11111110B ;存入显示灯的位置数据为累加器A
MOV P1,A
JMP $ ;程序在这里停止
END

其中#11111110可以写为0FEH,不要忘了前面的0

上面可以不用A,直接可以负值,因为P1是片内ram,所以不需要A,如果是片外ram,就需要A

ORG 00H
MOV P1,#11111110B ;存入显示灯的位置数据为累加器A
JMP $ ;程序在这里停止
END
ORG 
CLR P1.7;清除1bit
JMP $ ;程序在这里停止
END

6 编译

在这里插入图片描述

7.下载

在这里插入图片描述

8.其它代码

1.LED闪烁

ORG 00H
START:
    CLR P1.0
    CALL DELAY
    SETB  P1.0
    CALL DELAY
    JMP START
    
DELAY:MOV R5, #25
D1:MOV R6,#100
D2:MOV R7,#100
    DJNZ R7, $ ;$表示继续执行这一句
    DJNZ R6,D2
    DJNZ R5,D1
    RET

    
END

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
延时1s
在这里插入图片描述

`

2.跑马灯

从P1.0开始,循环依次点亮

ORG 00H
START:
    MOV R0,#7
    MOV A, #0FEH
    
LOOP:MOV P1,A
    CALL DELAY
    RL A ;左移一位
    DJNZ R0, LOOP
    
    
DELAY:
    MOV R5, #50
D1:
    MOV R6, #100
D2:
    MOV R7, #100
    DJNZ R7,$
    DJNZ R6,D2
    DJNZ R5,D1
    RET
    
    
END

加强版

ORG 00H
START:
    MOV R0,#7
    MOV A, #0FEH
    
LOOP:MOV P1,A
    CALL DELAY
    RL A ;左移一位
    DJNZ R0, LOOP
    MOV R1 , #3
    MOV A,#00H
    
LOOP1:
    MOV P1, A
    CALL DELAY
    CPL A;
    DJNZ R1,LOOP1
    JMP START
    
DELAY:
    MOV R5, #50
D1:
    MOV R6, #100
D2:
    MOV R7, #100
    DJNZ R7,$
    DJNZ R6,D2
    DJNZ R5,D1
    RET
    
    

    
END

本文转载自: https://blog.csdn.net/weixin_43360707/article/details/134233124
版权归原作者 泰勒朗斯 所有, 如有侵权,请联系我们删除。

“51单片机汇编-点亮一个led”的评论:

还没有评论