第5章 MCS-51汇编语音程序设计

合集下载

单片微型计算机原理及应用_课后习题答案_山东理工

单片微型计算机原理及应用_课后习题答案_山东理工

《单片微型计算机原理及应用》习题参考答案姜志海刘连鑫王蕾编著电子工业出版社目录第1章微型计算机基础 (2)第2章半导体存储器及I/O接口基础 (4)第3章MCS-51系列单片机硬件结构 (11)第4章MCS-51系列单片机指令系统 (16)第5章MCS-51系列单片机汇编语言程序设计 (20)第6章MCS-51系列单片机中断系统与定时器/计数器 (26)第7章MCS-51系列单片机的串行口 (32)第8章MCS-51系列单片机系统扩展技术 (34)第9章MCS-51系列单片机键盘/显示器接口技术 (36)第10章MCS-51系列单片机模拟量接口技术 (40)第11章单片机应用系统设计 (44)第1章微型计算机基础1.简述微型计算机的结构及各部分的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。

运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。

通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。

由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。

2.微处理器、微型计算机、微型计算机系统有什么联系与区别?微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。

它具有解释指令、执行指令和与外界交换数据的能力。

其内部包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组)。

微型计算机由CPU、存储器、输入/输出(I/O)接口电路构成,各部分芯片之间通过总线(Bus)连接。

以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0

第5章-MCS-51单片机中断系统-PPT

第5章-MCS-51单片机中断系统-PPT
CPU在每一个机器周期得S5P2期间对P3、 3引脚采样,若P3、3为低电平,则使IE1置1,否 则IE1清0。
5、2、2 MCS-51单片机得中断源
IT1=1,外中断1为下降沿触发 采样:CPU在每一个机器周期得S5P2期间 对P3、3引脚采样,若上一个机器周期检测为 高电平,紧挨着得下一个机器周期为低电平,则 使IE1置1。 IT0:外中断0触发方式控制位。
CPU主要就是通过标志寄存器、控制 寄存器、优先级寄存器对中断源进行管
5、2、2 MCS-51单片机得中断源
(1)与中断标志相关得SFR
主要有:定时器/计数器T0、T1控制寄 存器TCON
串行口控制寄存器SCON 定时器/计数器2控制寄存器T2CON(第 6章介绍) (2)中断控制寄存器:TCON、IE (3)中断优先级寄存器:IP
DMA释放总线:当一批数据传送后, DMA控制器再向CPU发出“结束总线请 求”,CPU响应请求,收回总线使用权。
DMA方式速度高、效率高,可以与CPU 并行工作。
5、1、2 中断得相关概念
1、中断得概念
CPU在正常运行得时候, 外部或者内部发生了请求 CPU迅速去处理得事件,CPU 暂时中断当前得程序,去处理 所发生得事件,处理完事件后, 再返回到原来被中断得程序 继续运行。此过程称为中断。
图5-3 定时器得控制寄存器
TCON可位寻址。复位后TCON=00H。 TF1(TCON、7):T1溢出标志位
当T1计满溢出时,由内部硬件置位; 中断响应后自动清 0。
5、2、2 MCS-51单片机得中断源
TF0:T0溢出标志位 功能同TF1。
IT1:外中断1触发方式设置位 IT1=0,外中断1为低电平触发
5、1、1 微机得输入/输出方式

MCS-51 汇编语言程序设计

MCS-51 汇编语言程序设计

1. 分支程序设计
结构特点:不一定按指令的先后顺序依次运
行程序,程序的流向有两个或两个以上分支, 根据指定条件选择程序的流向。
P3.4=0? N
点亮所有二极管
Y
二极管交叉点亮
2. 分支程序的典型实例

实例:已知30H单元中有一变量X,要求编写 一程序按下述要求给Y赋值,结果存入31H单 元。
3. 8051汇编指令格式中,地址和数据的区别符号为( )。 A. 冒号 B. 分号 C. 逗号 D. 井号
4. 散转指令是单片机指令系统中专为散转操作提供的无条件 转移指令,指令格式如下: A. JMP @A+DPTR B. LJMP 标号 C. AJMP 标号 D. SJMP 标号
5. MCS-51系列单片机存储器结构的特点之一是存在着四种 物理存储空间,即片内RAM、片外RAM、片内ROM和片外ROM, 不同的物理存储空间之间的数据传送一般以( )作为数据传 输的中心。 A. 累加器A B. PSW C. PC D. RAM 6.分析下面程序段,累加器 A 中的内容为() 。 ORG 0000H MOV 30H,#45H MOV R0,#30H MOV A,#30H XCHD A,@R0 SJMP $ END A. 45H B. 35H C. 30H D. 34H
例4.6:编程实现P1口连接的8个LED显示方式如 下:从P1.0到P1.7的顺序,依次点亮其连接 的LED。


16位地址数 DPTR
+
ቤተ መጻሕፍቲ ባይዱ
A
PC
例: 根据R7的内容,转向各自对应的操作程
序 (R7= 0,转入OPR0;R7= 1,转入OPR1…R7= n,转入OPRn)

《单片机原理及应用》课后习题答案

《单片机原理及应用》课后习题答案
2.12 ALE信号有何功用?一般情况下它与机器周期的关系如何?在什么条件下ALE信号可用作外部设备的定时信号。
答案:ALE是地址锁存使能信号,是机器周期的二倍。当不使用单字节双周期的指令,如MOVX类指令时,可以作为外部设备的定时信号。
2.13 有那几种方法能使单片机复位?复位后各寄存器的状态如何?复位对内部RAM有何影响?
2.6 8051如何确定和改变当前工作寄存器组?
2.7 MCS-51单片机的程序存储器中0000H、0003H、000BH、0013H、001BH和0023H这几个地址具有什么特殊的功能?
2.8 8051单片机有哪几个特殊功能寄存器?可位寻址的SFR有几个?
2.9 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?
TH1、TL1、TH0、TL0的内容为00H,定时器/计数器的初值为0。
(TMOD)=00H,复位后定时器/计数器T0、T1为定时器方式0,非门控方式。
(TCON)=00H,复位后定时器/计数器T0、T1停止工作,外部中断0、1为电平触发方式。
(T2CON)=00H,复位后定时器/计数器T2停止工作。
可位寻址的SFR有11个。
2.9 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?
答案:PSW—程序状态字。主要起着标志寄存器的作用。常用标志位及其作用如下:
Cy——进(借)位标志,其主要作用是保存算术运算的进或借位并在进行位操作时做累加器。
在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在算术运算中它可作为进位标志,在位运算中,它作累加器使用,在位传送、位与和位或等位操作中,都要使用进位标志位。
2.14 MCS-51的时钟振荡周期、机器周期和指令周期之间有何关系?

大学课件MCS51单片机指令系统与汇编语言程序设计

大学课件MCS51单片机指令系统与汇编语言程序设计

ANL C, P ; (C)← (C)∧(P)
其中:P是PSW的第0位,C是PSW的第7位。
(4)字节符号地址(字节名称)加位序号的形式。对于部分特 殊功能寄存器(如状态标志寄存器PSW),还可以用其字节名 称加位序号形式来访问某一位。AC 如:
定义:操作数存放在MCS-51内部的某个工作寄存器Rn (R0~R7)或部分专用寄存器中,这种寻址方式称为 寄存器寻址。
特点:由指令指出某一个寄存器的内容作为操作数。 存放操作数的寄存器在指令代码中不占据单独的一个 字节,而是嵌入(隐含)到操作码字节中。
寻址范围:四组通用寄存器Rn(R0~R7)、部分专用 寄存器( A, B, DPTR, Cy )。
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制 信息,不产生可执行的目标代码,是CPU不能执行的指令。
(1)定位伪指令ORG
格式:ORG n
其中:n通常为绝对地址,可以是十六进制数、标号或表达式。
功能:规定编译后的机器代码存放的起始位置。在一个汇编 语言源程序中允许存在多条定位伪指令,但每一个n值都应和前
2.2.2 直接寻址
定义:将操作数的地址直接存放在指令中,这种寻址方式称为 直接寻址。 特点:指令中含有操作数的地址。该地址指出了参与操作的数 据所在的字节单元地址或位地址。计算机执行它们时便可根据 直接地址找到所需要的操作数。
寻址范围:ROM、片内RAM区、SFR和位地址空间。P42
2.2.3 寄存器寻址
定义:指令中给出的操作数是一个可单独寻址的位地址,这种寻址 方式称为位寻址方式。
特点:位寻址是直接寻址方式的一种,其特点是对8位二进制数中 的某一位的地址进行操作。
寻址范围:片内RAM低128B中位寻址区、部分SFR(其中有83位 可以位寻址)。

MCS-51汇编语言程序设计

MCS-51汇编语言程序设计

01:31
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
2
本章目录
4.2.1 顺序结构程序 4.2.2 分支结构程序 4.2.3 循环结构程序 4.2.4 查表程序 4.2.5 子程序 4.3 汇编语言程序设计实例 习题与思考题
4.1 程序设计概述 4.1.1 程序设计的步骤 4.1.2 程序设计的方法 4.1.3 汇编语言的规范 4.1.4 汇编语言程序编辑和 汇编 4.2 结构化程序设计方法
01:31
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
15
4.1.3 汇编语言的规范
(5)定义字伪指令 )定义字伪指令DW
[标号:] 标号: DW 16位二进制数表 16位二进制数表
---伪指令 伪指令DW 伪指令
功能: DW 指令是在程序存储器 ( ROM ) 中 , 从指定的 指令是在程序存储器( 功能 : DW指令是在程序存储器 ROM) 地址单元开始,定义若干个16位数据 一个16位数 位数据。 地址单元开始,定义若干个16位数据。一个16位数 要占两个存储单元,其中高8位存入低地址单元, 要占两个存储单元, 其中高 8位存入低地址单元, 位存入高地址单元。 低8位存入高地址单元。 例如: 例如: ORG 1100H 1100H TAB : DW 1234H, 0ABH 10 1234H, 以上伪指令经汇编以后, 将对从1100H 以上伪指令经汇编以后 , 将对从 1100H 开始的若 干内存单元赋值。 干内存单元赋值。
01:31
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
16
4.1.3 汇编语言的规范
例如:ORG 1100H 例如: TAB :DW 1234H, 0ABH 10 (1100H)=12H (1101H)=34H (1102H)=00H (1103H)=ABH (1104H)=00H (1105H)=0AH

MCS-51单片机汇编语言程序IDE设计与实现

MCS-51单片机汇编语言程序IDE设计与实现

1 . 2单 片机发 展 方 向
单片机 发展有两个方 向 : ( 1 ) 改进集成 电路工 艺 , 提高芯 片速度 。 . ( 2 ) 根据不 同领域需 要 , 在保 留基 本外设 装置和公 共指 令的基 础上 , 将 不同的外设装置集成 到芯片 中。 ( 3 ) MC S - 5 l 单片机指令 。 MC S - 5 1 单片机 的指令系统功能强 、 指令短 、 执行 的速度也快 , 一共有1 l 1 条指令 以及 8 条伪指令 , 可以从 功能上将其划分为数据传送 、 逻辑操作、 算术操作、 程序移位操作等 四大类 ; 空 间属性上来分 , 分为单字节指令 、 双字节指令和三字节指 令I 时间属性上来分 , 分为单机器周期指令 、 双机器周期指令和四机 器周 期指令 。 MC S - 5 1 单片机的指令 由操作码 和操作数 组成 , 操作 数 又有 无操作数 、 单操作数 、 双操作数三种情 况。 格式如 下 : I 源操作数】 【 . 注释 】 a 伪指令不用计算机做任何操作 , 只是 帮助 汇编 , 不影响程序 执
行。
3 . 2编 译 器设 计
3 . 2 . 1分 解
个 编译 器 的 整个 工 作流 程是 分 阶段 进行 的 , 这 几 个 阶段 是 : 词 法分析、 语法分析、 语义分析、 目标代码生成。 如果编译过程中发现源 程序有错误 , 编译程序要报告出错误的性质 和发生的地方, 将错误 的 影响尽量 限定在很小范围内, 使得程序的其他代码能继续被编译 。
_ _ { 十 { 1 _ _ 酶
数 控 技 术
MC S 一 5 1 单片机汇编语言程序 I D E设计与实现
常冠 宇 丁 栋
( 天津通广集团谷津高科技有限公司 天津 3 0 0 1 4 0 )

MCS-51单片机的汇编语言

MCS-51单片机的汇编语言

绝对地址段选择伪指令
CSEG
[AT
address]
DSEG
[AT
address]
ISEG
[AT
address]
BSEG
[AT
address]
XSEG
[AT
address]
分别为程序存储器、内部数据存储器、间接寻址的内部数据存 储器、位寻址区和外部数据存储器的使用指定绝对地址
1.5 通用的转移和调用语句
MCS-51汇编器允许程序员使用通用的转移和调用助记符JMP 与CALL
用来代替SJMP、AJMP、LJMP和ACALL、LCALL
汇编产生的未必是最优化的结果
1.6 条件汇编
将一个软件的多个版本保存在同一组源程序文件中 使用IF、ELSEIF、ELSE、ENDIF IF或ELSEIF后的表达式通常为关系表达式 当IF或ELSEIF后的数值表达式的值非零时,汇编其后的语句组;
1.4 伪指令语句
ORG伪指令
ORG
பைடு நூலகம்
expression
设置汇编计数器的值,指定其后语句的起始地址
伪指令语句
END伪指令
应当是源程序的最后一条语句 通知汇编程序汇编过程应在此结束 汇编器不理会END后面的文件内容
每个程序文件都应以END结束
伪指令语句
EQU和SET伪指令
symbol
单片机原理与应用
MCS-51单片机的汇编语言
INTS SET
IF ELSE ENDIF
INTS = 1 MAIN_START
MAIN_START
NUM1 DATA NUM2 DATA
DSEG AT
STACK: DS
20H

MCS51单片机指令系统与汇编语言程序设计

MCS51单片机指令系统与汇编语言程序设计

MCS51单片机指令系统与汇编语言程序设计MCS-51是一种非常常见的8位单片机系列,该系列包括了多种型号的单片机,如Intel 8051、8031、8052等。

MCS-51单片机指令系统是一组用于驱动该系列单片机的指令集,汇编语言程序设计是利用这些指令来编写程序。

MCS-51单片机指令系统包含了多种指令,可以执行诸如数据传输、算术逻辑运算、控制和数据访问等功能。

这些指令通过各种不同的寻址模式来操作数据,包括立即寻址、寄存器寻址、直接寻址、间接寻址和寄存器间接寻址等。

不同的寻址模式和指令组合可以实现不同的功能。

汇编语言程序设计通过将人类可读的汇编指令翻译成机器可执行的二进制指令来编写程序。

在MCS-51单片机中,汇编指令由操作码和操作数组成。

操作码指定了所执行的操作,如数据传输、算术运算或控制指令。

操作数则指定了指令要操作的数据。

下面以一个简单的例子来说明MCS-51单片机指令系统和汇编语言程序设计的基本原理。

假设我们要编写一个程序,将两个寄存器中的数据相加,并将结果存储到第三个寄存器中。

首先,我们需要将第一个寄存器的值加载到累加器A中,这可以通过MOV指令实现。

MOV指令的操作码为01,操作数为两个寄存器的地址。

例如,MOVA,R0将R0的值加载到A中。

接下来,我们需要将第二个寄存器的值加载到B寄存器中,同样可以使用MOV指令。

MOVB,R1将R1的值加载到B中。

然后,我们可以使用ADD指令将A和B中的值相加,并将结果存储到A中。

ADD指令的操作码为04,操作数为A的地址。

例如,ADDA将累加器中的值与A寄存器中的值相加,并将结果存储到A中。

最后,我们可以使用MOV指令将A中的结果移动到第三个寄存器中,例如,MOVR2,A将A的值移动到R2中。

通过组合使用这些指令,我们可以实现将两个寄存器中的值相加并存储到第三个寄存器中的功能。

总结来说,MCS-51单片机指令系统和汇编语言程序设计是一种用于编程控制该系列单片机的方式。

内容4_MCS-51汇编语言程序设计

内容4_MCS-51汇编语言程序设计
ADD A,#53
DA A
A.A=21 CY=1 OV=0
B.A=21 CY=1 OV=1
C.A=21 CY=0 OV=0
D.以上都不对
30
MCS—51指令系统中,执行下列指令后,结果为:()。
ORG 40H
DS 10H
A.将40H存入10H
B.从40H地址单元开始空10H个连续存储单元
C.将40H地址的内容存入10H
ADD A,#02H
MOV DPDR,#0050H
MOVC A,@A+DPDR
MOV @R0,A
SJMP $
ORG 0050H
BAO:DB 00H,0888H,0BH,6H,09H,0CH
END
A.00H
B.0BH
C.06H
D.0CH
29
MCS—51指令系统中,执行下列指令后,其结果为()。
MOV A,#68
47
假定(A)=83H,(R0)=17H,(17H)=34H,执行以下程序段:
ANL A,#17H
ORL A,17H
XRL A,@R0
CPL A
后,A的内容为:()。
A. 0FCH
B. 03H
C. 7AH
D. C8H
48
执行返回指令时,返回的断点是:()
A.调用指令的首地址
B.调用指令的末地址
C.调用指令下一条指令的首地址
C、计算机中的机器码就是如干二进制数。
D、机器语言是单片机可执行的语言。
3
设累加器A中为无符号数,B中数为2,下列指令中作用相同的是:()。
A. ADD A,0E0H
Bห้องสมุดไป่ตู้ MUL AB

C51单片机汇编语言程序设计

C51单片机汇编语言程序设计

C51单片机汇编语言程序设计一、二进制数与十六进制数之间的转换1、数的表达方法为了方便编程时书写,规定在数字后面加一个字母来区别,二进制数后加B十六进制数后加H。

2、二进制数与十六进制数对应表二进制十六进二进制制0000000100100011010001010110011101234567100010011010101111001101 11101111十六进制89ABCDEF3、二进制数转换为十六进制数转换方法为:从右向左每4位二进制数转化为1位十六进制数,不足4位部分用0补齐。

例:将(1010000110110001111)2转化为十六进制数解:把1010000110110001111从右向左每4位分为1组,再写出对应的十六进制数即可。

0101000011011000111150D8F答案:(1010000110110001111)2=(50D8F)16例:将1001101B转化为十六进制数解:把10011110B从右向左每4位分为1组,再写出对应的十六进制数即可。

100111109E答案:10011110B=9EH4、十六进制数转换为二进制数转换方法为:将每1位十六进制数转换为4位二进制数。

例:将(8A)16转化为二进制数解:将每位十六进制数写成4位二进制数即可。

8A10001010答案:(8A)16=(10001010)2例:将6BH转化为二进制数解:将每位十六进制数写成4位二进制数即可。

6B01101011答案:6BH=01101011B二、计算机中常用的基本术语1、位(bit)计算机中最小的数据单位。

由于计算机采用二进制数,所以1位二进制数称作1bit,例如110110B为6bit。

2、字节(Byte,简写为B)8位的二进制数称为一个字节,1B=8bit3、字(Word)和字长两个字节构成一个字,2B=1Word。

字长是指单片机一次能处理的二进制数的位数。

如AT89S51是8位机,就是指它的字长是8位,每次参与运算的二进制数的位数为8位。

MCS-51汇编语言程序设计

MCS-51汇编语言程序设计
20
判断正误
ORG 0000 LEN1 DATA 31H LEN2 EQU 32H MOV A, LEN1+1 MOV B,LEN2+1 MOV R1,#LEN1 MOV R2,#LEN2 MOV R2,#LEN2+LEN1 ;CNT1 DATA R5 CNT2 EQU R6 ;CNT EQU ADD MOV R3,#LEN1+1 MOV R4,#LEN2+1 MOV DPTR,#TOEND TOEND:SJMP $ LEN1 DATA 31H LEN2 EQU 32H END
用汇编语言与用高级语言进行程序设计很相似。对于比 较复杂的问题可以先根据题目的要求作出流程图,然后 再根据流程图来编写程序。对于比较简单的问题则可以 不作流程因而直接编程。 两者的差别还是很大的。一个很重要的差别就在于用汇 编语言编程时,对于数据的存放位置,以及工作单元的 安排等都要由编程者自己安排。而用高级语言编程时, 这些问题都是由计算机安排的,编程者则不必过问。 主要知识点:顺序程序;分支程序;循环程序; 查表程序;子程序;运算程序 ;
6
基本语法规则3
对于直接地址direct,有多种选择: (1)直接数据地址(各种进制),如MOV A、30H等; (2)标号地址,如MOV A,SUM等, SUM应该在程序中 某处加以定义; (3)带有加减的表达式,设SUM为已定义的标号地址, 如MOV A,SUM十13; (4)特殊功能寄存器名,如MOV A,P2等。
24
程序框架
1. ORG 0000H 2. LJMP MAIN
;跳转至主程序
中断入口地址
3. ORG 0003H 4. LJMP INT0_INT ;跳转至外部中断0的中断服务程序

MCS—51单片机汇编语言程序IDE设计与实现

MCS—51单片机汇编语言程序IDE设计与实现

MCS—51单片机汇编语言程序IDE设计与实现作者:常冠宇丁栋来源:《数字技术与应用》2013年第05期摘要:单片机IDE是单片机开发必不可少的工具,目前的单片机IDE主要由国外的几大开发公司设计,本文使用VC++作为开发工具,设计出适用于MCS-51单片机汇编语言程序的IDE。

关键词:MCS-51 单片机汇编 IDE 编译器中图分类号:TP313 文献标识码:A 文章编号:1007-9416(2013)05-0029-011 单片机简介1.1 单片机介绍单片机是一种集成电路芯片,它将CPU、RAM、ROM、I/O接口、中断系统等等功能集成到一块硅片上,构成一个微型计算机系统,所以单片机也叫做微控制器。

在工业控制领域中,单片机具有非常重要的地位。

MCS-51单片机是一种8位单片机,虽然目前已经有32位单片机的出现,但8位单片机在很多行业中仍在被广泛使用,其性能较之以前也有巨大的提升。

1.2 单片机发展方向单片机发展有两个方向:(1)改进集成电路工艺,提高芯片速度。

(2)根据不同领域需要,在保留基本外设装置和公共指令的基础上,将不同的外设装置集成到芯片中。

(3)MCS-51单片机指令。

MCS-51单片机的指令系统功能强、指令短、执行的速度也快,一共有111条指令以及8条伪指令,可以从功能上将其划分为数据传送、逻辑操作、算术操作、程序移位操作等四大类;空间属性上来分,分为单字节指令、双字节指令和三字节指令;时间属性上来分,分为单机器周期指令、双机器周期指令和四机器周期指令。

MCS-51单片机的指令由操作码和操作数组成,操作数又有无操作数、单操作数、双操作数三种情况。

格式如下:【标号:】操作码助记符【目的操作数】【,源操作数】【.注释】。

伪指令不用计算机做任何操作,只是帮助汇编,不影响程序执行。

2 IDE简介2.1 IDE介绍IDE(Integrated Development Environment,集成开发环境),包括代码编辑器、编译器、调试器、用户界面等,是用于编程语言开发的应用程序。

mcs51习题

mcs51习题

单片机习题集第1章绪论【习题1-1】将下列各二进制数转换为十进制数。

①11010101B ②11010011B ③10101011B ④10111101B【习题1-2】将【习题1-1】中各二进制数转换为十六进制数。

【习题1-3】将下列各数转换为二进制数。

①215D ②253D ③01000011BCD ④00101001BCD【习题1-4】什么叫原码、反码及补码?【习题1-5】已知原码如下,写出其反码和补码(其最高位为符号位)。

①[X]原=01011001B ②[X]原=00111110B ③[X]原=11011011B ④[X]原=11111100B 【习题1-6】当微机把下列数看成无符号数时,它们相应的十进制数为多少? 若把它们看成是补码,最高位为符号位,那么它们相应的十进制数是多少?①10001110B ②10110000B ③00010001B ④01110101B【习题1-7】用补码方法计算下列各式(设机器字长为8位):(1)X=7D,Y=8D,求X+Y;(2)X=5D,Y=9D,求X-Y;(3)X=6D,Y=-7D,求X+Y;(4)X=-11D,Y=7D,求X-Y。

【习题1-8】已知X=01011001B,Y=0011010lB,用算术运算规则求:(1)X+Y;(2)X-Y;(3)X×Y;(4)X/Y【习题1-9】已知X=01111010B,Y=10101010B,用逻辑运算规则求: (1)X∧Y;(2)X∨Y;(3)X⊕Y;(4)X第2章 MCS-51单片机组成及结构分析【习题2-1】8051单片机内部包含哪些主要逻辑功能部件?各有什么主要功能?【习题2-2】MCS-51单片机有几种复位方法?复位后单片机特殊功能寄存器的状态?【习题2-3】MCS-51单片机开机上电复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?【习题2-4】MCS-51单片机运行出错或程序进入死循环,如何摆脱困境?【习题2-5】MCS-51单片机的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz时,一个单片机时钟周期为多少微秒?【习题2-6】MCS-51单片机存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?【习题2-7】MCS-51单片机的EA信号有何功能?在使用8031时,EA信号引脚应如何处理?【习题2-8】在MCS-51单片机扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?【习题2-9】MCS-51单片机片内数据存储器有多少字节?在什么空间?【习题2-10】片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?【习题2-11】MCS-51单片机片内数据存储器80H~FFH分别为哪两个物理空间?如何来区别这两个物理空间?【习题2-12】MCS-51单片机设有4个通用工作寄存器组,有什么特点?如何选用?如何实现工作寄存器现场保护?【习题2-13】MCS-51单片机具有很强的布尔(位)处理功能,共有多少单元可以位寻址?采用布尔处理有哪些优点?【习题2-14】位地址00H与字节地址00H有何区别?位地址00H具体在内存中什么位置?【习题2-15】什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP 重新赋值?如果CPU在操作中要使用00H到0FH这两组工作寄存器,如何选择SP的初值?【习题2-16】什么是SFR的控制位与标志位?请举例说明可自动清除的标志位和必须用指令清除的标志位。

MCS-51单片机应用设计课后答案[1]

MCS-51单片机应用设计课后答案[1]

第一章单片机概述/item.htm?id=125325142831.2除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。

1.3单片机与普通计算机的不同之处在于其将(微处理器)、(存储器)和(各种输入输出接口)三部分集成于一块芯片上。

4、单片机的发展大致分为哪几个阶段?答:单片机的发展历史可分为四个阶段:第一阶段(1974年----1976年):单片机初级阶段。

第二阶段(1976年----1978年):低性能单片机阶段。

第三阶段(1978年----现在):高性能单片机阶段。

第四阶段(1982年----现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段1.5单片机根据其基本操作处理的位数可分为哪几种类型?答:单片机根据其基本操作处理的位数可分为:1位单片机、4位单片机、8位单片机、16位单片机和32位单片机。

1.6 MCS-51系列单片机的基本芯片分别为哪几种?它们的差别是什么?答:基本芯片为8031、8051、8751。

8031内部包括1个8位cpu、128BRAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口,2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。

8051是在8031的基础上,片内又集成有4KBROM,作为程序存储器,是1个程序不超过4KB的小系统。

8751是在8031的基础上,增加了4KB的EPROM,它构成了1个程序小于4KB的小系统。

用户可以将程序固化在EPROM中,可以反复修改程序。

1.7 MCS-51系列单片机与80C51系列单片机的异同点是什么?答:共同点为它们的指令系统相互兼容。

不同点在于MCS-51是基本型,而80C51采用CMOS工艺,功耗很低,有两种掉电工作方式,一种是CPU停止工作,其它部分仍继续工作;另一种是,除片内RAM继续保持数据外,其它部分都停止工作。

1.8 8051与8751的区别是(C)(A)内部数据存储单元数目的不同(B)内部数据存储器的类型不同(C)内部程序存储器的类型不同(D)内部的寄存器的数目不同1.9在家用电器中使用单片机应属于微型计算机的(B)(A)辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用1.10说明单片机主要应用在哪些领域?答:单片机主要运用领域为:工业自动化;智能仪器仪表;消费类电子产品;通信方面;武器装备;终端及外部设备控制;多机分布式系统。

第5章80C51单片机汇编语言程序设计

第5章80C51单片机汇编语言程序设计

08.08.2021
最新课件
23
第5章 汇编语言程序设计简介 5.2 汇编语言基本结构
08.08.2021
最新课件
24
5.2.1 顺序程序设计
例 1 两个无符号双字节数相加。 设被加数存放于内部RAM的40H(高位字节), 41H(低位字节), 加数存放于50H(高位字节), 51H(低位字节), 和数存入 40H和41H单元中。
14
(2)等值指令EQU
指令格式: 字符名称 EQU
例: PA8155 EQU 8001H ;即给标号PA8155赋值为8001H
使指令中的字符名称等价于给定的数字或汇编符号。
如果在程序中要多次使用到某一地址,由EQU指令将 其赋值给一个字符名称, 一旦需要对其进行变动, 只要改 变EQU命令后面的数字即可。 注意:由 EQU等值的字符名称必须先赋值后使用, 且在 同一个源程序中, 同一个标号只能赋值一次。
是一个标号, 其地址与前一条伪指令连续 , 即1003H,
1004H地址单元中依次存放 45H, 66H。
08.08.2021
最新课件
17
(4)定义字指令DW
指令格式:
[标号:] DW 16
该指令的功能与DB相似, 区别仅在于从指定地址开 始存放的是指令中的 16 位数据, 而不是字节串。每个 16 位数据要占两个存储单元, 高8 位先存, 低 8 位后存, 这和 MCS -51指令中的16位数据存放顺序是一致的。
单片机推出时,都有相配套的C编译器加以支持。 高级语言编写程序的缺点是实时性不高,结构不 紧凑,编译后占用存储空间比较大,这一点在存 储器有限的单片机应用系统中没有优势。
08.08.2021
最新课件
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 汇编 :将汇编语言源程序转换成机器语言 目标程序的 汇编:将汇编语言源程序转换成机器语言目标 源程序转换成机器语言目标程序的
过程称为汇编。 过程称为汇编。 • 汇编程序 : 能将汇编语言 源程序 转换成机器语言 目标 汇编程序: 能将汇编语言源程序 转换成机器语言目标 源程序转换成机器语言 程序的系统软件称为汇编程序。 程序的系统软件称为汇编程序。
5.1 概述
• 1)确定程序中每条汇编语言指令的指令机器码 确定程序中每条汇编语言指令的指令机器码 • 2)确定每条指令在存储器中的存放地址 确定每条指令在存储器中的存放地址 • 3)提供错误信息 提供错误信息 • 4)提供目标执行文件 提供目标执行文件(*.OBJ/*.HEX)和列表文件 提供目标执行文件 和列表文件 (*.LST) 地址 2000H 2002H 机器码 78 30 E6 源程序 ORG 2000H MAIN: MOV R0,#30H : , MOV A,@R0 , …
5.1 概述
汇编的方法:汇编的方法有两种
1.手工汇编: 手工汇编: 手工汇编 人工查指令表, 人工查指令表,查出程序中每条指令对应的机 器代码。早期的计算机使用。 器代码。早期的计算机使用。 2.机器汇编: .机器汇编: 用计算机中的汇编程序对用户源程序进行汇编。 用计算机中的汇编程序对用户源程序进行汇编。 用机器汇编要提供给汇编一些信息, 用机器汇编要提供给汇编一些信息,遵循汇编程 序的一些约定。这些由伪指令指定。 序的一些约定。这分支散转程序的设计 有一类分支程序,它根据不同的输入条件或不同的运算结果 有一类分支程序 它根据不同的输入条件或不同的运算结果, 它根据不同的输入条件或不同的运算结果 转向不同的处理程序,称之为散转程序 称之为散转程序。 转向不同的处理程序 称之为散转程序。这类程序通常利用 JMP@A+DPTR间接转移指令实现转移。有如下两种设计方法: 间接转移指令实现转移。 间接转移指令实现转移 有如下两种设计方法: 1. 查转移地址表 查转移地址表: 转移地址列成表格 将表格的内容作转移的目标地址。 列成表格, 将转移地址列成表格,将表格的内容作转移的目标地址。 2. 查转移指令表 查转移指令表: 将转移到不同程序的转移指令列成表格,判断条件后查表, 转移指令列成表格 将转移到不同程序的转移指令列成表格,判断条件后查表, 转到表中指令执行,下面用两个例子说明 下面用两个例子说明。 转到表中指令执行 下面用两个例子说明。
5.3 汇编语言程序设计步骤
汇编语言程序设计步骤
• 一.确定方案和计算方法 • 二.了解应用系统的硬件配置、性能指标 了解应用系统的硬件配置、 • 三.建立系统数学模型,确定控制算法和操作步骤 建立系统数学模型, • 四.合理分配存储器单元和了解 接口地址 合理分配存储器单元和了解I/O接口地址 • 五. 编制源程序 1.按功能设计程序,明确各程序之间 按功能设计程序, 按功能设计程序 的相互关系 2. 用流程图表示程序结构和功能 ? 3.程序中用注释说明指令在程序中的 程序中用注释说明指令在程序中的 作用,方便阅读、 作用,方便阅读、调试和修改
地址 LN
数据
LN+1 LN+2 LN+3
GH GH+2 GH+4
20 43 25 FF
12 34 56 78 00 08
•3. 字定义 标号:DW (字常数或表达式) 标号: 字常数或表达式) •作用: 指示在程序存储器中以标号为起始 作用: 作用 地址 •的单元里存放的数为字数据(即16位的二 的单元里存放的数为字数据( 的单元里存放的数为字数据 位的二 进制数),例如: ),例如 进制数),例如: •GH :DW 1234H,5678H,08 , ,
第五章
MCS-51单片机汇编语言 - 单片机汇编语言 程序设计
5.1 概述
MCS-51单片机的编程语言可以是汇编语言也可以是 单片机的编程语言可以是汇编语言也可以是 高级语言( 语言),高级语言编写程序较为方便快捷, 高级语言(如C语言),高级语言编写程序较为方便快捷,但 语言),高级语言编写程序较为方便快捷 目标程序长,占用存储空间大,执行慢; 目标程序长,占用存储空间大,执行慢;汇编语言产生的目 标程序简短,占用存储空间小,执行快,能充分发挥计算机 标程序简短,占用存储空间小,执行快, 的硬件功能。 的硬件功能。 无论是高级语言还是汇编语言, 无论是高级语言还是汇编语言,源程序都要转换成目 标程序(机器语言)单片机才能执行。 标程序(机器语言)单片机才能执行。如图6-1所示 - 所示
3G因重复使用,先暂存在R2。流程 因重复使用,先暂存在 。 因重复使用 见左, 程序如下: 见左 程序如下:
5.4 常用程序段结构
ORG 0100H FRT: MOV A,40H 取行李重量计价单位G : , ;取行李重量计价单位 MOV R3,A , MOV B,#03H 运费M=G×3 , ;运费 × MUL AB MOV R2,A 暂存3G , ;暂存 MOV A,R3 , ;取回G 取回 CJNE A,#05H,L1 ;G ≤ 5 ? , , SJMP WETC L1: JC WETC 转至WETC : ;是,转至 SUBB A,#05H , ;否则 M=3G+2(G-5) RLC A ADD A,#15 , MOV R2 ,A WETC: MOV 41H,R2 ;存运费 M : , RET
N
Y
1
5.4 常用程序段结构
顺序程序、 顺序程序、 分支程序、 分支程序、 循环程序、 循环程序、 位操作程序、 子程序、
5.4 常用程序段结构
5.4.1 顺序程序设计 顺序程序(简单程序 简单程序), 顺序程序 简单程序 ,程序走向只有一条路径 • 例3-2:将R4R5双字节符号数求补程序。 双字节符号数求补程序。 : 双字节符号数求补程序 ORG 0000H MOV A,R5 ;取低字节 , CPL A ADD A,#1 ;低字节变补 , MOV R5,A , MOV A,R4 ;取高字节 , CPL A ADDC A,#0 ;高字节变补 , ORL A, #80H; 恢复负号 MOV R4,A , END
• 宏调用过程: 宏调用过程: • • • •
实际参数 实际参数
5.2伪指令 伪指令
二.伪指令 常用伪指令及功能:
•1.起始指令 ORG nn 起始指令 •功能:定义程序或数据块的起始地址。指示此语句后面的程 功能: 功能 定义程序或数据块的起始地址。 序或数据块以nn为起始地址 连续存放在程序存储器中。 为起始地址, 序或数据块以 为起始地址,连续存放在程序存储器中。 •指令地址 机器码 指令地址 源程序 • ORG 2000H • 2000H 78 30 MAIN: MOV R0,#30H : , • 2002H E6 MOV A,@R0 , • … • • 3000H • 3001H • 3002H 23 64 41 ORG 3000H TAB: DB 23H,100,‘A’ : , ,
5.2 伪指令
• 一、汇编语言指令类型
1. 机器指令:指令系统中的全部指令。每条机器指令都 机器指令:指令系统中的全部指令。 有对应的机器代码,可以被 执行。 有对应的机器代码,可以被CPU执行。 执行 2. 伪指令: 汇编控制指令,没有指令代码,只用于汇编 伪指令: 汇编控制指令,没有指令代码, 过程,为汇编程序提供汇编信息。 过程,为汇编程序提供汇编信息。
如果平方值为两个字节,程序应如何编。 如果平方值为两个字节,程序应如何编。 DPTR
5.4 常用程序段结构
3.4 分支程序的设计 由条件转移指令构成程序判断框部分,形成分支结构 •3.5.1 单分支程序 3.5.1 •一个判断决策框,两种分支结构图。 一个判断决策框, 一个判断决策框 两种分支结构图。 • 例1 求8位有符号数的绝对值。 位有符号数的绝对值。 • 方法:正数不变,负数变补 方法:正数不变, ORG 0000H MOV A,R2 , JNB ACC.7,N ;为正数? 为正数? , CPL A ;负数变补 INC A MOV R2,A , N: SJMP $ : ;结束

宏汇编功能: 宏汇编功能:将需要反复多次执行的程序段定 义成一个宏指令名(宏定义)。编程时, )。编程时 义成一个宏指令名(宏定义)。编程时,可在程序 中使用宏指令名来替代被定义的程序段(宏调用)。 中使用宏指令名来替代被定义的程序段(宏调用)。
5.2伪指令 伪指令
• 宏定义过程: 宏定义过程
• 宏指令名 • • MACRO 形式参数 … ENDM … 宏指令名 … 宏指令名 ;被定义的程序段
5.2伪指令 伪指令
4.保留字节 .
标号: 数值表达式) 标号:DS (数值表达式)
作用: 作用: 指示在程序存储器中保留以标号为起始地 址的若干字节单元,其单元个数由数值表达式指定。 址的若干字节单元,其单元个数由数值表达式指定。 地址开始保留32个存储单元 例如 L1:DS 32 ; 从L1地址开始保留 个存储单元。 : 地址开始保留 个存储单元。 5. 等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。 X1 EQU 2000H 例如: X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH
5.4 常用程序段结构
例2 用单片机加重力传感器作磅秤,秤出重量后算出行李运 费价格,其秤出的重量以10kg为1个计价单位G , G已存入40H单 元。计价方法 为50kg以内按3元, 50kg以上 分段计价: 50kg按3元计价 ,超过部分按2元计价。 由此列出算式: G×3 × M= ;当G≤5 ; 当G>5 > 5×3 + (G-5)×2 × ×
5.4 常用程序段结构 设变量放在片内RAM的20H单元 其值为 单元,其值为 例3-4 设变量放在片内 的 单元 其值为00H~05H 之间,要求编查表程序 查出变量的平方值, 并放入片内RAM的21H单元。 要求编查表程序,查出变量的平方值 单元。 之间 要求编查表程序 查出变量的平方值 并放入片内 的 单元 在程序存储器安排一张平方表, 分析 :在程序存储器安排一张平方表,首地址为 TAB,以DPTR指向表首址,A存放变量值,利用 指向表首址, 存放变量值 存放变量值, , 指向表首址 查表指令MOVC A,@A+DPTR,即可求得。 查表指令 , ,即可求得。 表中数据用BCD码存放合乎人们的习惯 码存放合乎人们的习惯. 表中数据用 码存放合乎人们的习惯
相关文档
最新文档