目录

  • 1 概述
    • 1.1 课程介绍
    • 1.2 什么是单片机
    • 1.3 单片机的特点与应用
    • 1.4 51单片机概述
    • 1.5 单片机的实验方法
  • 2 51单片机硬件结构和原理
    • 2.1 8051单片机内部结构
      • 2.1.1 内部资源
      • 2.1.2 CPU
        • 2.1.2.1 运算器
        • 2.1.2.2 控制器
    • 2.2 存储器配置
      • 2.2.1 存储器结构
      • 2.2.2 程序存储器
      • 2.2.3 数据存储器
    • 2.3 并行输入/输出口
      • 2.3.1 P0
      • 2.3.2 P1
      • 2.3.3 P2
      • 2.3.4 P3
    • 2.4 引脚及其功能
    • 2.5 时序
    • 2.6 复位
  • 3 51 单片机指令系统.
    • 3.1 指令格式
    • 3.2 寻址方式
      • 3.2.1 立即数寻址
      • 3.2.2 直接寻址
      • 3.2.3 寄存器寻址
      • 3.2.4 寄存器间接寻址
      • 3.2.5 变址寻址
      • 3.2.6 相对寻址
      • 3.2.7 位寻址
    • 3.3 指令
      • 3.3.1 数据传送类指令
        • 3.3.1.1 MOV
        • 3.3.1.2 MOVX
        • 3.3.1.3 MOVC
        • 3.3.1.4 数据交换指令
        • 3.3.1.5 堆栈指令
      • 3.3.2 算术运算类指令
        • 3.3.2.1 加减
        • 3.3.2.2 乘除
        • 3.3.2.3 增量减量
        • 3.3.2.4 调整指令
      • 3.3.3 逻辑运算类指令
        • 3.3.3.1 单操作数逻辑操作指令
        • 3.3.3.2 双操作数逻辑操作指令
      • 3.3.4 控制转移类指令
        • 3.3.4.1 程序转移指令
        • 3.3.4.2 条件转移指令
        • 3.3.4.3 子程序调用和返回指令
      • 3.3.5 位操作指令
        • 3.3.5.1 位数据传送指令
        • 3.3.5.2 位状态控制指令
        • 3.3.5.3 位逻辑操作指令
        • 3.3.5.4 位条件转移指令
    • 3.4 小结
  • 4 汇编语言程序设计概述
    • 4.1 汇编语言源程序的编辑和汇编
    • 4.2 汇编语言实用程序举例
      • 4.2.1 循环
      • 4.2.2 查表
      • 4.2.3 分支
      • 4.2.4 散转
      • 4.2.5 子程序
  • 5 中断系统
    • 5.1 中断的概念
    • 5.2 8051中断系统结构及中断控制
      • 5.2.1 中断源
      • 5.2.2 中断控制
      • 5.2.3 中断响应
      • 5.2.4 中断处理
      • 5.2.5 中断返回
    • 5.3 应用举例
  • 6 定时计数器及应用
    • 6.1 概述
    • 6.2 控制方法
    • 6.3 工作方式
    • 6.4 举例
  • 7 串行通信接口
    • 7.1 串行通信基础
    • 7.2 8051串行口及其控制
    • 7.3 串行接口通信应用举例
  • 8 单片微控制器系统设计
    • 8.1 最小系统
    • 8.2 程序存储器扩展
    • 8.3 数据存储器扩展
    • 8.4 多片存储器扩展
    • 8.5 并行IO扩展
    • 8.6 AD、DA扩展
汇编语言源程序的编辑和汇编


一、伪操作指令 

1、定位伪指令ORG(Origin)(设置程序起始地址)

格式: ORG  nn             

 nn:16位二进制数,代表地址。

功能:规定伪指令后面程序的汇编地址。


2、定义字节伪指令DB(Define Byte)

格式:[标号:]  DB  <项或项表>

项或项表:单字节二进制、十进制、十六进制数,或以‘’括起来的字符串。

功能:把项或项表的数值(字符用ASCII码)存入从标号开始的连续的程序存储器单元。

              ORG  1000H

SEG1:    DB   53H,74H,78H,‘1’,‘2’

SEG2:    DB    23H,‘DAY’

(1000H)= 53H,(1001H)= 74H, (1002H)= 78H, (1003H)= 31H, (1004H)= 32H, (1005H)= 23H, (1006H)= 44H, (1007H)= 41H, (1008H)= 59H


3、定义字伪指令DW(DefineWord)

格式:[标号:]  DW  <项或项表>

项或项表:双字节二进制、十进制、十六进制数,或以‘’括起来的字符串。

功能:同DB,不同的是为16位数据


4、预留存储区DS(Define  Storage)   

格式:[标号:]   DS   <表达式>

功能:由标号指定单元开始,定义一个存储区,存储区预留存储单元数由表达式的值决定。


5、赋值命令EQU

格式:<字符名称>  EQU  <数或汇编符号>

功能:将一个数或特定的汇编符号赋给规定的字符名称。


6、数据地址赋值命令DATA

格式:<字符名称>   DATA   <表达式>

功能:将数据地址或代码地址赋给规定的字符名称


7、汇编结束命令END

格式:[标号:]   END

功能:END是汇编语言源程序的汇编结束标志,在它后面所写的指令均不予处理。


8、位地址赋值命令BIT

格式:<字符名称> BIT  位地址

功能:把BIT右边的位地址赋给它左边的字符名称。


二、汇编语言源程序的汇编过程