51单片机——汇编指令合集

2023-05-16

目录

指令格式

编译语句实例 

单片机的寻址方式

立即数(Immediate Constants)寻址方式

直接(Direct Addressing)寻址方式 

寄存器(Register Addressing)寻址方式 

寄存器间接(Indirect Addressing)寻址方式 

变址(Indexed Addressing)寻址方式 

位寻址(Bit Addressing)方式 

相对(Relative Addressing)寻址方式 

指令系统 

数据传送指令

通用传送指令

 堆栈操作指令

 交换指令

访问程序存储器的数据传送指令 

访问外部RAM和外部IO的数据传送指令

算数运算指令 

加法指令 

减法指令 

乘法指令 

 除法指令

逻辑运算指令

累加器A实现的逻辑操作指令

与逻辑运算指令 

或逻辑运算指令 

异或逻辑运算指令 

位操作指令

 位数据传送指令

位修正指令 

位逻辑运算指令

控制转移指令 

无条件转移类指令 

条件转移指令 

子程序调用及返回指令 

空操作指令 

伪指令

伪指令的定义

设置起始地址伪指令 ORG

赋值伪指令 EQU 

定义字节数据伪指令 DB 

定义双字节数据伪指令 DW

位地址赋值伪指令 BIT

汇编结束伪指令END 


指令格式

 指令由  标号、操作码、操作数、注释 四部分构成,格式如下

[标号]: 操作码  [操作数] ;[操作数]
  • 标号:用来替代指令代码的第一个字节所在单元地址,由用户自行定义,字母开头分

注:一般一段代码需要一个标号用来标记,方便跳转操作。

  • 操作码:规定指令所执行的操作
  • 操作数:参与操作的数据信息
  • 注释:程序注释,增加程序的可读性

编程格式标号后(:)隔开,操作码与操作数用空格隔开,注释与指令用(;)隔开

编译语句实例 

[标号]   [操作码]    [操作数]   [注释]
MAIN:    MOV        A, #20H ;  将立即数#20H送入累加器A中
         INC        A;         (A)加一
;注:(A)代表累加器A中的数值;

单片机的寻址方式

立即数(Immediate Constants)寻址方式

举例:MOV A,#20H 

功能:20H 送给累加器 A

直接(Direct Addressing)寻址方式 

举例:MOV A,20H 

功能:20H地址中的内容 送到累加器A中

寄存器(Register Addressing)寻址方式 

举例:MOV R0,#20H  MOV  A,R0 

功能: 20H 放入R0寄存器中 ,将 R0寄存器中的值 放入累加器A中

注:不支持Rn之间的相互传送

寄存器间接(Indirect Addressing)寻址方式 

举例:MOV R0,#20H  MOV A,@R0

功能: 20H 放入R0寄存器中,取 R0中的值作为地址,寻找地址中的内容 送到累加器A中

注:只有 R0,R1,DPTR 才可作为寄存器间接寻址的源操作数,其中 R0,R1负责内部RAM

        DPTR负责外部RAM

变址(Indexed Addressing)寻址方式 

举例:MOVC  A, @A+DPTR

功能: DPTR+A中的值 作为地址,寻找地址中的内容 送到累加器A中

位寻址(Bit Addressing)方式 

举例:SETB P1.0

功能:P1并行口中的第一位置一

注: 位寻址方式位51单片机独有的一种寻址方式 

相对(Relative Addressing)寻址方式 

举例:SJMP 05H

功能:单片机执行的目标地址为 05H+(P)

指令系统 

数据传送指令

通用传送指令

格式:MOV  目的操作数,源操作数

;;;以 A 为目的操作数;;;
MOV A, R1 ;  
MOV A, 20H;  
MOV A, #20H; 
MOV A, @RO;  
;;;;;;;;;;;;;;;;;;;;;;;

;;;以工作寄存器Rn为目的操作数;;;
MOV R3, A
MOV R3, #20H
MOV R3, 20H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;以地址为目的操作数;;;
MOV  20H,A
MOV  20H,R3
MOV  20H,30H
MOV  20H,@R1
MOV  20H,#20H
;;;;;;;;;;;;;;;;;;;;;;

;;以间接地址为目的操作数;;;
MOV  @R0, A
MOV  @R0,@20H
MOV  @R0.20H
;;;;;;;;;;;;;;;;;;;;;;;;;

;;;十六位数据传送;;;
MOV DPH, #08H
MOV DPL, #26H

MOV DPTR, #0826H
;;;;;;;;;;;;;;;;;;;

 堆栈操作指令

入栈指令:PUSH direct    功能:指定单元的内容压入SP所指单元格中SP+1

出栈指令 :POP   direct    功能:将SP所指单元格中的内容送到指定单元格中SP-1

注:direct表示内部RAM的单元地址或SFR的地址

;利用入栈出栈,交换 51H和50H单元格中的内容;
PUSH 50H;利用堆栈的先入后出性质实现 
PUSH 51H;
POP  50H;
POP  51H;

 交换指令

字节交换指令:XCH  A, 源操作数

半字节交换指令:XCHD A,源操作数

高低4位交换指令:SWAP A

注:此类指令必须由累加器A参与

;假设 (A)=21H (R6)=30H
XCH A,R6; 交换后结果为 (A)=30H (R6)=21H

;假设 (A)=21H (R6)=30H
XCHD A,R6; 交换后结果为 (A)=20H (R6)=31H

;假设 (A)=21H 
SWAP A; 交换后结果为 (A)=12H 

注: 寄存器+括号代表寄存器中的数值

访问程序存储器的数据传送指令 

功能:从程序存储器某个的单元读取一个字节的常数并传给累加器A

MOVC A,@A+DPTR;[(A)+(DPTR)]传给(A)

MOVC A,@A+PC ;[(A)+(PC)]传给(A)

访问外部RAM和外部IO的数据传送指令

  • CPU访问外部RAM和外部IO均采用的MOVX指令
  • CPU访问外部RAM和外部IO采用的都是间接寻址方式 
  • CPU访问外部RAM和外部IO操作数只能是 R0,R1,DPTR,A
;读(输入)指令
MOVX A,@DPTR;[(DPTR)]内容写入(A)

;写(输出)指令
MOVX @DPTR,A;(A)内容写入[(DPTR)]

算数运算指令 

加法指令 

不带进位的加法指令:ADD A,源操作数      功能:源操作数+(A)再送入A中

带进位的加法指令:    ADDC A,源操作数   功能:源操作数+(A)+(CY)再送入A中

加一指令:INC 源操作数                             功能:源操作数+1再送回源操作数

十进制加法调整指令:DA A                         功能:将A中的值调整为BCD码

注:DA指令必须与ADD指令联合使用,即ADD后紧跟DA指令

减法指令 

带借位的减法指令:SUBB A,源操作数     功能:(A) - 源操作数 -(CY)再送入A中

减一指令:DEC  源操作数                           功能:源操作数-1再送回源操作数

注:51中没有不带借位的减法指令

乘法指令 

 格式:MUL   AB ;            功能:累加器A与寄存器B相乘,A中放结果低8位,B中放高8位

MOV A,20H  
MOV B,21H   ;设置两相乘数据
MUL AB      ;进行相乘
MOV 22H,A   ;取相乘结果的低八位放入22H中
MOV 23H,B   ;取相乘结果的高八位放入21H中

 除法指令

 格式:DIV   AB ;              功能:累加器A除以寄存器B,A中放商,B中放余数

MOV A,20H ;
MOV B,21H ;
DIV AB    ;累加器A的值 除以 寄存器B的值
MOV 22H,A ;将商放入22H单元格中

逻辑运算指令

累加器A实现的逻辑操作指令

累加器A清零指令:CLR  A       功能:把累加器A的内容清零

累加器A取反指令:CPL  A        功能:累加器A的内容按位取反,不影响任何标志位

累加器A循环左移指令:RL  A   功能:累加器A循环左移一位,最高位移入最低位

累加器A带进位循环左移指令:RLC  A   功能:累加器A的最高位移入CY,CY移入最低位

累加器A循环右移指令:RR  A   功能:累加器A循环右移一位,最低位移入最高位

累加器A带进位循环右移指令:RRC  A   功能:累加器A的最低位移入CY,CY移入最高位

与逻辑运算指令 

 ANL  目的操作数,源操作数;     功能:源操作数和目的操作数相与将结果放入源操作数 

ANL A,#20H ;(A)和20H进行与操作,结果放入A中
ANL 20H,A  ;(20H)和(A)进行与操作,结果放入20H单元格中
ANL 20H,#69H;(20H)与69H进行与操作,结果放入20H单元格中

或逻辑运算指令 

ORL   目的操作数,源操作数;    功能:源操作数和目的操作数相或将结果放入源操作数 

异或逻辑运算指令 

XRL   目的操作数,源操作数;    功能:源操作数和目的操作数异或将结果放入源操作数 

位操作指令

 位数据传送指令

  • 位传送指令仅支持1个指定的bit与累加器C(CY)之间进行状态传送
  • 两个位之间不能直接进行状态传送,必须通过C作为介质来进行
;;;完成P1.3与P3.3之间的位互换;;;
MOV C,P1.3;将P1.3位传给C累加器
MOV P3.3,C;将C累加器中的值传给P3.3

位修正指令 

位清零:CLR bit

置位:    SETB  bit

位取反: CPL  bit

位逻辑运算指令

位逻辑与运算:ANL C,bit          功能:C与指定位bit相与,结果送入C中

位逻辑或运算:ORL C,bit          功能:C与指定位bit相或,结果送入C中

 注:位逻辑运算只能用累加器C(CY)作为目的操作数

控制转移指令 

无条件转移类指令 

转移指令:   AJMP addr11(LABEL)   转移范围:上下2KB

长转移指令:LJMP addr16(LABEL)   转移范围:上下64KB

短转移指令:SJMP addr8(LABEL)     转移范围:上方最远128B,下方最远127B

间接转移指令:JMP @A+DPTR

注:LABEL代表标号 

条件转移指令 

指令:JZ  rel(LABEL)              功能:累加器A的内容为0转移到目标地址,不为0顺序执行

指令:JNZ rel(LABEL)             功能:累加器A的内容为1转移到目标地址,为0顺序执行
指令:JC rel(LABEL)               功能:
累加器C的内容为1转移到目标地址,为0顺序执行

指令:JNC rel(LABEL)            功能:累加器C的内容为0转移到目标地址,为1顺序执行

指令:JB  bit,rel(LABEL)         功能:bit的内容为1转移到目标地址,为0顺序执行

指令:JNB bit,rel(LABEL)        功能:bit的内容为0转移到目标地址,为1顺序执行

指令:JBC bit,rel(LABEL)        功能:bit的内容为1转移到目标地址并且bit置0,为0顺序执行

指令:CJNE A,direct,rel(LABEL) 

指令:CJNE A,#data,rel(LABEL)

指令:CJNE Rn,#data,rel(LABEL)

指令:CJNE @Ri,#data,rel(LABEL)

功能:两数进行比较,目的操作数大于源操作数跳转并且CY置0目的操作数小于源操作数跳转并且CY置1两数相等则顺序执行

指令:DJNZ  Rn ,rel(LABEL)

指令:DJNZ  direct ,rel(LABEL)

功能:目的操作数自减1,结果不为0跳转,结果为0顺序执行

注:rel代表偏移量,最大偏移为-128~127,LABEL代表标号 

子程序调用及返回指令 

长调用指令:LCALL  addr16     指令转移范围:64KB,整个ROM空间

短调用指令:ACALL  addr11     指令转移范围:2KB

子程序返回指令:RET               功能:子程序最后一条指令RET,子程序结束标志

中断返回指令:RETI                 功能:中断程序最后一条指令RETI,中断程序结束标志

空操作指令 

NOP    此指令执行时间为1个机器周期

功能:常用来产生一个机器周期时间的延迟

伪指令

伪指令的定义

  • 伪指令是汇编语言中起解释说明的命令不是单片机的指令
  • 伪指令向编译系统说明程序在程序存储器的哪个区域到何处结束

设置起始地址伪指令 ORG

ORG  xxxxH 

功能:设置程序从程序存储器的xxxxH单元开始存放。

注:在汇编语言中ORG可多次定义,但规定的地址由小到大安排,各段地址不允许重叠

ORG 0000H ;当单片机上电时,从0000H开始执行命令,0000H装入了跳转到MAIN的指令
LJMP MAIN ;0000H地址装入此命令
ORG 0030H ;主程序从0030H开始,避免与中断程序发生冲突
MAIN:SETB P1.1;0030H地址中装入此命令

赋值伪指令 EQU 

变量代号 EQU 数值

功能:用来给变量代号赋值,这个值可能是单元地址或立即数

注:在同一个源程序中,任何一个变量代号只能赋值一次 

LEN  EQU  20;在程序变量中 LEN 代表20
Xdata  EQU  4F8BH ;程序中变量Xdata的值为4F8BH

定义字节数据伪指令 DB 

[单元地址代号:]   DB    data

功能:用来说明ROM内容是一个字节的常数data,可定义一个或多个单元为常数

;;;可定义在ORG之后;;;
ORG 1000H
TABLE: DB 30H,63H,0DH

;;;可定义在源程序末尾;;;
;;;将TABLE中第一个数送入R2中;;;
ORG 0030H
MAIN:MOV DPTR, #TABLE;
     MOV R2,#00H
     MOV A,R2;
     MOV A,@A+TABLE;
     MOV R2,A;
TABLE: DB 30H,63H,0DH

定义双字节数据伪指令 DW

[单元地址代号:]   DW    data16

功能:用来说明ROM内容是两个字节的常数data16,使用方法与DB类似

位地址赋值伪指令 BIT

变量代号  BIT  位地址

功能:把位地址赋予指定的变量代号

LED  BIT  P1.0;用LED替代P1.0位地址

汇编结束伪指令END 

END

功能:告知编译系统,源程序到此结束。

注:一个程序中,只允许出现一条END伪指令且必须安排在源程序的结尾

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

51单片机——汇编指令合集 的相关文章

  • 立体匹配之Rank变换c++代码实现

    include lt iostream gt include lt unistd h gt include lt opencv2 opencv hpp gt include lt opencv2 imgproc hpp gt include
  • linux系统的进程占用cpu信息监控C++

    linux系统下的进程以及cpu信息都实时存储在 proc stat文件里 xff0c 只需要提取对应的时间信息就可以获取cpu的信息 xff0c 进程的信息则存储在 proc pid stat proc stat文件包含了所有CPU活动的
  • 用java套接字socket实现两台电脑间的通信

    实现效果 xff1a 一方发送简单的文字消息 发送 接收复杂的图片 音频 文档等 相互之间实现自由通信 java对网络编程的支持 前提条件 xff1a 两台电脑在一个局域网内 xff0c 比如连接了同一个路由器 将一台电脑作为服务端 xff
  • 【STM32标准库】【自制库】硬件串口通信和标准输入输出函数的重定向

    文章目录 硬件串口通信电气连接初始化思路1 初始化GPIO2 GPIO复用选择3 开启时钟4 初始化结构体USART BaudRateUSART WordLengthUSART StopBitsUSART ParityUSART ModeU
  • 什么是A*(Astar)算法?(简单叙述)

    目录 简介 A 算法的原理与思想 A 算法处理与搜索 实例 xff08 引用见文末 xff09 简介 A 算法 xff08 启发式搜索 xff09 的首要条件是在静态路网中 xff0c 相对于广度优先遍历 xff08 BFS xff09 求
  • Qt的安装和配置

    1 Windows安装Qt5及VisualStudio配置 安装 VS nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 安装Visual Studio过程忽略 但是需要注意 切记勾选 Visual C 选项
  • 基于STM32F103系列芯片使用IIC协议来写oled(硬件IIC)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 协议是什么IIC xff1f 二 相关代码 1 main c2 oled c总结 前言 提示 xff1a 这里可以添加本
  • linux里 read函数用法

    Read 函数 从打开的 fd 设备或文件中读取 count 个字节到 buf 中 ssize tread int fd void buf size tcount fd 文件描述符 buf 读入数据的首地址 count 读入数据的个数 返回
  • linux读写锁

    这里写目录标题 读写锁的认识读写锁的相关函数练习 读写锁的认识 xff08 1 xff09 读写锁是一把锁 xff08 2 xff09 读写锁的类型 xff1a pthread rwlock t lock 又分 读锁 xff08 对内存进行
  • stm32智能家居+微信小程序接收控制

    这里写目录标题 项目介绍mqtt服务器相关知识 在这里插入图片描述 https img blog csdnimg cn 9ad065fb8fac48b1b975fc3a48b99763 png 下位机代码项目需要的一些开发工具 项目介绍 本
  • PWM互补输出,以及死区时间计算

    本文基于野火例程进行解说 实验内容 本次实验输出一对互补的pwm波 xff0c 且进行死区时间的计算说明 代码 互补输出对应的定时器初始化代码 xff1a bsp advance tim c span class token comment
  • 正点原直流有刷驱动板的硬件解说

    这里写目录标题 H桥电流采集电路电源电压采集电路温度采集电路过流检测电路过流保护电路 请添加图片描述 https img blog csdnimg cn fa130e17e23b471e8e27ae942e1ff125 png H桥 因为光
  • stm32103ZET6使用编码器(磁电增量式)

    这里写目录标题 磁电增量式编码器介绍TIM定时器 xff08 编码器接口模式 xff09 一些用到的算法均值滤波冒泡排序 xff08 从小到大 xff09 一阶低通滤波 编码器测数代码编码器接口HAL库函数 正点原子的电机例程 原例程用的是
  • PID算法(位置式pid算法和增量式pid算法)

    这里写目录标题 PID算法介绍比例环节比例 43 积分环节比例 43 积分 43 微分环节 位置式PID增量式PIDPID参数整定采样周期选择PID参数整定方法 请添加图片描述 https img blog csdnimg cn 849bf
  • C++ 关于编译出现“undefined reference to `std::cout‘“的问题

    1 问题概述 在使用gcc编译c 43 43 代码时会出现undefined reference to 96 std cout 39 xff0c 如编译如下代码 xff1a include lt iostream gt using name
  • 在ubuntu20.4下安装ROS-noetic

    换源方法 xff1a 打开software amp updates 在里面找到china 然后选择对应的源 1 添加ROS软件源 将以下命令复制到ubuntu的终端执行 sudo sh c 39 echo 34 deb http packa
  • ubuntu安装pip,setuptools

    https pypi python org pypi pip 解压下载后的文件 xff1a azheng 64 ubuntu16 tar zxvf pip 10 0 0 tar gz 进入目录后安装 xff1a 提示setuptools模块
  • 用putty连接ubuntu

    1 软件更新 sudo apt get update 2 下载openssh server sudo apt get install openssh server 3 查看当前tcp监听端口 netstat tl 4 查看是否安装成功 ps
  • ROS2话题入门

    1 订阅发布模式 一个节点发布数据到某个话题上 xff0c 另外一个节点就可以通过订阅话题拿到数据 除了上述这种一个节点发布 xff0c 一个节点接受的形式外 xff0c ROS2话题通信其实还可以是1对n xff0c n对1 xff0c
  • 比较程序查询方式、程序中断方式、DMA方式对CPU工作效率的影响

    xff08 1 xff09 程序查询方式是由CPU通过程序不断查询I O设备是否已经做好准备 xff0c 从而控制I O设备与主机交换信息 xff0c 只要一启动I O设备 xff0c CPU便不断查询I O设备的准备情况 xff0c 从而

随机推荐

  • ros_canopen使用心得

    近期开始准备上位机与机器人底盘进行CAN通讯 xff0c 花了很长时间在网上整理学习资料 xff0c 现将自己的心得和参考的链接整理如下 首先 xff0c 机器人操作系统中有ros canopen可以去调用 xff0c 其中socketca
  • ROS调用功能包的使用

    在我们学习做项目的时候难免会使用别人的功能包 我在这其中也遇到了许多坑 我在学习motion planning的时候想实现一下tangent bug算法于是就在giuhub找功能包 1是否需要其他依赖包 找到之后就把功能包放在工作空间的sr
  • conda中镜像源添加与删除

    1 查看当前已经添加的镜像源 conda config show sources 2 镜像源添加 conda config add channels http 3 镜像源删除 conda config remove channels htt
  • uwsgi常用指令

    1 uwsgi安装 pip install uwsgi 2 配置uwsgi touch uwsgi ini uwsgi 项目路径 chdir 61 srv xxxx Flask 的uwsgi文件 wsgi file 61 srv xxxx
  • TypeError: conv2d(): argument ‘input‘ (position 1) must be Tensor, not tuple

    搭建网络过程遇到这个问题 xff0c 检查训练过程 xff0c 已经将输入数据通过 transforms ToTensor 转换为Tensor格式 经检查发现是网络结构问题 网络搭建过程中MaxPool2d xff08 xff09 中设置r
  • pytorch搭建神经网络过程

    1 torch nn Conv2d 卷积层 用法 xff1a Conv2d in channels out channels kernel size stride 61 1 padding 61 0 dilation 61 1 groups
  • SyntaxError: future feature annotations is not defined

    作者遇到这个问题是在使用NVIDIA Jetson Xavier NX开发套件控制舵机时遇到的 xff0c 作者采用IIC通信方式控制PCA9685模块进而控制舵机 在此问题解决过程中发现有人遇到相同问题 xff0c 所以做个补充 别人给出
  • Qt error: collect2: error: ld returned 1 exit status的解决办法

    Ubuntu安装好Qt后 xff0c 新建最简单的项目测试环境是否OK时 xff0c 出现 error collect2 error ld returned 1 exit status 代码本身是没有任何问题 xff0c 经检查后 xff0
  • NVIDIA Jetson Xavier NX/NANO安装Visual Studio Code

    官网下载安装即可 步骤 xff1a 1 官网下载安装包 Visual Studio Code Code Editing Redefined 下载Ubuntu版本 deb格式安装包 xff0c 注意要下载ARM64的 2 将文件传输至开发板
  • Spring对IoC的实现

    4 1 IoC 控制反转 控制反转是一种思想 控制反转是为了降低程序耦合度 xff0c 提高程序扩展力 xff0c 达到OCP原则 xff0c 达到DIP原则 控制反转 xff0c 反转的是什么 xff1f 将对象的创建权利交出去 xff0
  • 51单片机——自动浇花系统(含全部代码)

    目录 正文 设计目的 功能设计 所需元件 设计方法 主要代码 详细代码 正文 设计目的 生活中难免会忘记给自己可爱的花花浇水 xff0c 本设计就来给我们解决这一难题 功能设计 可实现自动浇花 xff0c 遥控浇花 xff0c 按键浇花 x
  • 自动控制原理——期末题型总结

    目录 二阶系统指标计算 劳斯表判断系统稳定 根轨迹绘制 绘制伯德图求相位裕量 二阶系统指标计算 已知单位负反馈系统开环传递函数 Wk s 61 求 1 最大超调量 xff0c 调节时间 95 2 r t 为单位阶跃求稳态误差 xff0c 并
  • 51单片机——多文件的建立

    目录 建立目的 简单项目实例 以按键控制动态数码管为例 建立目的 如果遇到大项目 xff0c 单文件修改会很麻烦 多文件项目这时候发挥了重要作用 简单项目实例 以按键控制动态数码管为例 第一步 建立文件夹 第二步 建立 CODE 文件 存放
  • 51单片机——汇编语言 1(延时函数与led闪烁)

    目录 前言 延时函数 所用汇编语法 延时函数编写 xff1a led闪烁 所用汇编语法 LED程序编写 xff1a 前言 汇编语言是一种底层的机械语言 xff0c 对时间控制精准下面我们以代码为例 xff0c 讲解51汇编命令 延时函数 所
  • 51单片机——LCD1602

    目录 LCD1602简介 特征 工作参数 液晶屏的分类 按字符和行数命名 按行数和列数命名 引脚说明 LCD1602指令集 指令总览 设置输入模式 显示开关 光标或字符移动 功能设置 DDRAM地址设置 读忙标志 LCD1602时序 字符表
  • 51单片机——LCD12864

    目录 LCD12864简介 特征 工作参数 LCD12864引脚说明 LCD12864常用指令集 基本指令 扩充指令 字符表 汉字显示地址编排 编辑 绘图地址与汉字显示编排示意图 程序设计 图形显示程序 字符显示程序设计 LCD12864简
  • 51单片机——DS18B20温度传感器

    目录 DS18B20特性 内部存储器表 ROM指令表 RAM指令表 DS18B20暂存器表 单个DS18B20温度转换过程 温度读取及计算 配置寄存器 xff08 分辨率 xff09 读写时序 复位及存在检测 写时序 读时序 程序实现 DS
  • 51红外循迹智能车——红外循迹模块设计

    目录 赛道环境 红外传感器的特征 TCRT5000传感器 LM339单限电压比较器 LM339简介 编辑 单限电压比较器仿真 红外循迹模块的设计 红外循迹模块原理图 红外循迹模块原理图讲解 赛道环境 上图为赛道示意图 xff0c 两端为黑色
  • 开发板烧写程序方法

    开发板烧写程序方法 如果开发板上没有预装bootloader程序 xff0c 那么可以通过JTAG进行烧写 常用的JTAG工具有并口JTAG xff0c 它的特点是便宜但是速度比较慢 USB转JTAG RS232串口二合一的工具OpenJT
  • 51单片机——汇编指令合集

    目录 指令格式 编译语句实例 单片机的寻址方式 立即数 xff08 Immediate Constants xff09 寻址方式 直接 xff08 Direct Addressing xff09 寻址方式 寄存器 xff08 Registe