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

文章目录

  • 前言
  • 1.打开IDE
  • 2.设置编辑器
  • 3.设置输出
  • 4. 原理图
  • 5.编写代码
  • 6 编译
  • 7.下载
  • 8.其它代码
    • 1.LED闪烁
    • 2.跑马灯

前言


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


1.打开IDE

选择STC89C52RC
51单片机汇编-点亮一个led_第1张图片

后缀是.asm
51单片机汇编-点亮一个led_第2张图片

51单片机汇编-点亮一个led_第3张图片
51单片机汇编-点亮一个led_第4张图片

2.设置编辑器

51单片机汇编-点亮一个led_第5张图片

3.设置输出

51单片机汇编-点亮一个led_第6张图片

4. 原理图

51单片机汇编-点亮一个led_第7张图片
51单片机汇编-点亮一个led_第8张图片

5.编写代码

51单片机汇编-点亮一个led_第9张图片

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 编译

51单片机汇编-点亮一个led_第10张图片

7.下载

51单片机汇编-点亮一个led_第11张图片

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

51单片机汇编-点亮一个led_第12张图片

51单片机汇编-点亮一个led_第13张图片
51单片机汇编-点亮一个led_第14张图片
延时1s
51单片机汇编-点亮一个led_第15张图片

`

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

你可能感兴趣的:(硬件,51单片机,汇编,嵌入式硬件)