【51单片机】用汇编语言实现点灯、闪烁

2023-05-16

今天刚学了用c语言点灯,那么我就在想可不可试一下用汇编语言来进行点灯(来自点灯攻城狮的手动狗头)

最简单的是点灯,当单片机引脚P2口连接的是LED时

CLR P2.0  ;这里的意思时将P2.0引脚置为低电平(LEDL连接方式为共阳极时点亮P2.0上的LED)

这样就可以点亮 P2.0接口上的LED了~~ (当然 这样一句汇编代码是不完整的,会有警告,但是编译输入后时可以点灯的)

茴香豆的茴 ,有几种写法,那么点灯也是如此,我们都知道在汇编语言中MOV的意思可以理解为赋值,即将源操作数赋值给目标操作数(将后面的东西赋值给前面的寄存器)

MOV P2,#0FH     ;#的作用是将0FH标记为立即数,将0FH 换成 0000 1111B 也没毛病

十六进制的0F 转化成二进制是 0000 1111

这样就可以将P2.4、P2.5、P2.6、P2.7 上的LED进行点亮了~~

如此,通过修改#后面的十六进制数就可以随意的点亮某个灯了~~

细心的朋友可能会发现,不是引脚为低电平的时候亮吗? 那么进制转换后不是第前面四位为0,后面四位为1吗,不应该是前四个灯亮,后四个灯灭吗?这是我的理解是他是从高位开始赋值的,具体怎么解释我也不明白,嘤嘤~

要实现闪烁还得加延时函数空耗CPU的时间实现延时,代码如下

DELAY:	MOV R7,#255		;11.0592MHz晶振   ,让下面的D1执行255次  也就是延时255毫秒
D1:                     ;D1这里到最后可以延时1毫秒,R7最多只能装255,超过就会溢出,多写无用
	NOP                 ;想增加延时的时长,只能多加R6之类的寄存器装数字嵌套在DELAY里面,或者用软   
	PUSH 30H            ;件生成一个新的延时函数  
	PUSH 31H
	MOV 30H,#2
	MOV 31H,#194
NEXT:
	DJNZ 31H,NEXT
	DJNZ 30H,NEXT
	POP 31H
	POP 30H
	DJNZ R7,D1          
	RET

增加延时的时长可以更改R7#后面的数值,但最大仅为255,在想延时更久,可以多加一个寄存器进行循环嵌套或者用软件生成一个新的延时函数,这样就可以自定义延时的时间了。

完整的代码是这样的

MAIN:
MOV P2, #0FFH
LCALL DELAY
MOV P2, #00H
LCALL DELAY
LJMP MAIN

DELAY:	MOV R7,#255		
D1:
	NOP
	PUSH 30H
	PUSH 31H
	MOV 30H,#2
	MOV 31H,#194
NEXT:
	DJNZ 31H,NEXT
	DJNZ 30H,NEXT
	POP 31H
	POP 30H
	DJNZ R7,D1
	RET
END

 代码的功能就是可以将连接在P2口上所有的LED灯同步进行闪烁

本贴仅为记录学习

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【51单片机】用汇编语言实现点灯、闪烁 的相关文章

  • 怎么打造属于自己的天猫精灵

    原文地址 看了天猫精灵的介绍 xff0c 是不是觉得很神奇 xff0c 实际每个程序要都可以打造属于自己的智能家居 可以实现的功能 点歌 最基础的功能了 xff0c 可以将自己喜欢的歌曲下载下来 xff0c 随时点歌定时提醒 提醒自己吃饭
  • 聊一聊数据仓库中的元数据管理系统

    原文地址 一 元数据的定义 按照传统的定义 xff0c 元数据 xff08 Metadata xff09 是关于数据的数据 在数据仓库系统中 xff0c 元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们所关心的数据 xff
  • 300万知乎多标签文本分类任务经验分享(附源码)

    点击有惊喜 七月 xff0c 酷暑难耐 xff0c 认识的几位同学参加知乎看山杯 xff0c 均取得不错的排名 当时天池AI医疗大赛初赛结束 xff0c 官方正在为复赛进行平台调试 xff0c 复赛时间一拖再拖 看着几位同学在比赛中排名都还
  • 二战时图灵机破译的Enigma密码,现在AI仅需13分钟便可破译

    点击有惊喜 第二次世界大战期间 xff0c 布莱切利园是英国破译密码的中心 图灵当时也在那里工作 密码破译者的天才工作挽救了许多平民和士兵的生命 xff0c 据说将战争缩短了两年 Enigma密码机非常复杂 xff0c 它最先进的化身可以配
  • MySQL · 数据恢复 · undrop-for-innodb

    点击有惊喜 简介 undrop for innodb 是针对 innodb 的一套数据恢复工具 xff0c 可以从文件级别恢复诸如 xff1a DROP TRUNCATE table 删除表中某些记录 xff0c innodb 文件被删除
  • 一文读懂「Attention is All You Need」| 附代码实现

    前言 2017 年中 xff0c 有两篇类似同时也是笔者非常欣赏的论文 xff0c 分别是 FaceBook 的Convolutional Sequence to Sequence Learning 和 Google 的Attention
  • PostgreSQL 对称加密、非对称加密用法介绍

    点击有惊喜 标签 PostgreSQL 对称加密 非对称加密 Symmetric ASymmetric public private pgcrypto 区块链 背景 对称加密方法 xff0c 指加密和解密使用同一把密钥的方法 优势是加密速度
  • Spring MVC原理

    摘要 xff1a 摘要 Spring MVC工作流程图 springMVC工作流程图 图一 图二 开发工具 1 Eclipse IDE xff1a 采用Maven项目管理 xff0c 模块化 2 代码生成 xff1a 通过界面方式简单配置
  • Web前端面试宝典(最新)

    第一部分 xff1a HTML问答题 1 简述一下你对HTML语义化的理解 xff1f 用正确的标签做正确的事情 html语义化让页面的内容结构化 xff0c 结构更清晰 xff0c 便于对浏览器 搜索引擎解析 即使在没有样式CSS情况下也
  • 作为前端Web开发者,这12条基本命令不可不会

    对于开发人员来说 xff0c 终端是最重要的工具之一 掌握终端 xff0c 能够有效的提升开发人员的工作流程 使用终端 xff0c 许多日常任务都被简化为了编写简单的命令并按下 Enter 按钮 本文列举了一系列 Linux 命令 xff0
  • linux环境下使用route指令设置多个网络连接的优先级(通过修改路由表的默认网关条目)

    1 背景 在生活中的会经常遇见一台PC同时连接多个网络的场景 最典型的 一台笔记本可以同时连接一个无线网 手机热点 和一个有线网 以太网 linux和window操作系统在默认情况都会使用最早连接的网络进行互联网访问 如果我们想切换到另一个
  • 腾讯云账号怎么注销?教程来了

    腾讯云账号可以注销流程 xff0c 个人用户和企业用户均可以申请注销腾讯云账号 xff0c 腾讯云百科来详细说下腾讯云账户注销所需材料及注销流程 xff1a 腾讯云账号注销方法 根据实名认证类型 xff0c 腾讯云账号分为个人实名认证 企业
  • 284页beego官方中文文档,Go语言进阶必备

    Go语言作为出身名门的后起之秀 xff0c 大家所熟知的Docker和Kubernets xff08 K8S xff09 就是使用Go语言开发的 xff0c 以其简单高效 高并发 跨平台的优势 xff0c 称霸于容器领域 根据 Stack
  • JAVA语言:打印出 所有”水仙花数“。

    span style font size 18px public class test2 public static void main String args int sum a b c int m 61 100 while m lt 1
  • Git系列(6-收尾) ----Centos7 安装 Gitlab

    1 环境设置 sudo yum install y curl policycoreutils python openssh server sudo systemctl enable sshd sudo systemctl start ssh
  • Redis配置文件详解

    Redis 配置文件 当配置中需要配置内存大小时 xff0c 可以使用 1k 5GB 4M 等类似的格式 xff0c 其转换方式如下 不区分大小写 1k 61 gt 1000 bytes 1kb 61 gt 1024 bytes 1m 61
  • GitLab中配置SSH key

    一 概述 很多公司现在git作为代码版本控制工具 xff0c 然后自己搭建私有的gitlab来管理代码 xff0c 我们在clone代码的时候可以选择http协议 xff0c 当然我们也可以使用ssh协议来拉取代码 为什么GitLab需要S
  • DAY1:OpenCV学习笔记: VS2019环境配置

    OpenCV的全称是Open Source Computer Vision Library xff0c 是一个跨平台的计算机视觉库 OpenCV是由英特尔公司发起并参与开发 xff0c 以BSD许可证授权发行 xff0c 可以在商业和研究领
  • 在Windows 10中启动WSL2 并安装Linux( Ubuntu 为例)并运行docker

    本文内容 xff1a 了解WSL和WSL2 xff1b 案例 xff1a 在Windows 10 上开启WSL2并安装Ubuntu xff1b 案例 xff1a 体验在WSL2中的Ubuntu 安装Docker 并运行 nginx xff1
  • Kernel configuration is invalid. include/linux/autoconf.h or include/config/auto.conf are missing

    刚下载的linux源代码 xff0c 一个简单的hello驱动都没有编译通过 下面是驱动源代码 include lt linux init h gt include lt linux module h gt static int hello

随机推荐