51汇编Proteus仿真教程——4.LED闪烁汇编程序编写

简介:

详细介绍如何使用Proteus,编写51汇编程序,通过延时实现LED的闪烁,

前提条件:

①安装好Proteus软件,如果不会安装或没有安装包,可以私信联系我,获取安装包和安装教程

②新建好项目工程,绘制好时钟电路

③绘制好LED电路,并学会编写程序点亮LED

④更多操作请看往期精彩内容

1.原理图如下所示,原理图绘制可以观看往期内容。

在这里插入图片描述

2. 引脚定义,定义P0口为LED,并跳转到程序入口

; IO引脚定义

LED EQU P0 ; 定义P0口为LED

  org   0000h

  jmp   Start        ; 跳转到程序开始入口

3. 主程序:调用延时子程序,不断点亮和熄灭LED,实现LED的闪烁

  org   0100h

Start:

Loop: ; 程序主循环

MOV LED,#0FFH ; 点亮LED

LCALL DELAY ; 调用延时子程序,延时一段时间

MOV LED,#0H ; 关闭LED

LCALL DELAY ; 调用延时子程序,延时一段时间

AJMP Loop ; 跳转到程序主循环开头

4. 延时子程序:通过占用CPU达到延时

;==========================================================; 延时子程序

; 名称:DELAY

; 输入:空

; 输出:空

; 功能:占用cpu,实现延时一段时间

;==========================================================DELAY:

MOV R0,#228

DELAY1:

MOV R1,#20

DELAY2:

MOV R2,#20

DJNZ R2,$

DJNZ R1,DELAY2

DJNZ R0,DELAY1

RET

5. 整体程序

;====================================================================

; 文件名称:main.asm

; 文件描述:汇编基本程序教程——LED闪烁

; 创建人:lsh

; 创建日期: 2022.8.14

; 修改人:lsh

; 程序版本:1.0

; 完成日期:2022.8.15

; 修改内容:

; ①编写延时子程序

;====================================================================

$NOMOD51

$INCLUDE (80C52.MCU)

; IO引脚定义

LED EQU P0 ; 定义P0口为LED

  org   0000h

  jmp   Start        ; 跳转到程序开始入口





  org   0100h

Start:

Loop: ; 程序主循环

MOV LED,#0FFH ; 点亮LED

LCALL DELAY ; 调用延时子程序,延时一段时间

MOV LED,#0H ; 关闭LED

LCALL DELAY ; 调用延时子程序,延时一段时间

AJMP  Loop        ;  跳转到程序主循环开头

;====================================================================

;====================================================================

; 延时子程序

; 名称:DELAY

; 输入:空

; 输出:空

; 功能:占用cpu,实现延时一段时间

;====================================================================

DELAY:

MOV R0,#228

DELAY1:

MOV R1,#20

DELAY2:

MOV R2,#20

DJNZ R2,$

DJNZ R1,DELAY2

DJNZ R0,DELAY1

RET

  END          ;   程序结束

点赞、收藏加关注,下期不迷路!

一起学起来,让我们成为更优秀的自己!我们下期不见不散!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值