第3章 单片机汇编程序设计

合集下载

第三章 80C51单片机汇编语言程序设计(本科)

第三章 80C51单片机汇编语言程序设计(本科)
返回
ORG START: CLR MOV MOVX MOV INC MOVX SUBB JNC XCH SJMP BIG1: MOVX BIGO: INC MOVX END
8000H C;进位清0 DPTR, #ST1; 设数据指针 A, @DPTR; A←((ST1)),取N1 R2, A; 暂存N1 DPTR; DPTR← ST2(指向N2单元) A, @DPTR; 取N2存于A中 A, R2;N1,N2比较(N2-N1,差在A中) BIG1;N2≥N1,转BIG1,N2<N1,顺序执行 A, R2;N1,N2互换,A ←N1 BIG0 A, @DPTR;A ←N2 DPTR; DPTR← ST3(指向N3单元) @DPTR, A;ST3 ←大数 返回
等、不相等等各种条件判断。
例:两个8位无符号二进制数比较大小。假设在外部RAM中有 ST1、ST2和ST3共3个连续单元(单元地址从小到大),其中ST1
、ST2单元中存放着两个8位无符号二进制数N1,N2,要求找出其
中的大数并存入ST3单元中。
解:(1)分析任务:比较两个数的大小
(2)算法:算术运算、控制转移 (3)程序结构:单分支 (4)数据类型:单字节、二进制、无符号数 (5)数据结构:单元地址升序排列
思考题
3) ORG MOV MOV MOVX ADD MOVX DEC DEC MOVX ADDC 1000H RO, R1, A, A, @R1, R0; R1; A, A, #52H;加数N1的低字节地址送地址指针R0 #55H;加数N2的低字节地址送地址指针R1 @R1; 取N2的低字节 @R0; N1、N2低字节相加 A; 保存N1、N2低字节和 修改加数N1的地址指针内容 修改加数N2的地址指针内容 @R1; 取N2的中间字节 @R0; N1、N2中间字节带低字节和进位相加

第三章MCS51单片机的指令系统和汇编语言程序示例(第5范文

第三章MCS51单片机的指令系统和汇编语言程序示例(第5范文

第三章MCS51单片机的指令系统和汇编语言程序示例(第5、6、7节)1.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1)MOV A,#19HADD A,#66H(2)MOV A,#5AHADD A,#6BH2.已知:A=85H,R0=30H,(30H)=11H, (31H)=0FFH,C=1,试计算单片机执行下列指令后累加器A和C中的值各是多少?(1)ADDC A,R0, (2)ADDC A,31H(3) ADDC A,@R0, (4) ADDC A,#85H3.已知M1和M2中分别存放两个16位无符号数的低8位,M1+1和M2+1中分别存放两个16位无符号数的高8位,计算两数之和(低8位存放在M1,高8位存放在M1+1,设两数之和不超过16位)。

4.试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?CLR CMOV A,#52HSUBB A,#0B4H5.已知:A=0DFH,R1=40H,R7=19H,(30H)=00H,(40H)=0FFH,试分析单片机执行下列指令后累加器A和PSW中各标志位的变化状况?(1) DEC A (2) DEC R7 (3) DEC 30H (4) DEC @R16.试写出能完成85+59的BCD加法程序,并对工作过程进行分析。

7.已知:两个8位无符号乘数分别放在30H和31H单元中,编程实现他们乘积的低8位存放在32H,高8位存放在33H。

8.已知:R0=30H,(30H)=0AAH,试分析执行下列指令后累加器A和30H单元的内容是什么?(1)MOV A, #0FFH ANL A, R0(2)MOV A, #0FH ANL A, 30H(3)MOV A, #0F0H ANL A, @R0(4)MOV A, #80H ANL 30H, A9.设:A=0AAH和P1=0FFH,试编程把累加器A的低四位送入P1口的低四位,P1口的高四位保持不变。

微机作业第三章

微机作业第三章

第3章8051指令与汇编程序设计1. 8051微控制器有哪些寻址方式?每种寻址方式使用的变量和寻址空间是什么?8051单片机共有7种寻址方式。

寻址方式是指令中确定操作数的形式,用来确定操作数所处的存储空间。

1.立即寻址:在指令中直接给出操作数MOV A, #80H 8位操作数MOV A, #2000H 16位操作数2.直接寻址:指令中直接给出操作数地址(1)SFR,这一存储空间只能使用直接寻址MOV PSW, #50H(2)内部数据RAM,这一存储空间可以使用直接寻址和寄存器间接寻址MOV A, 30H3.寄存器寻址:以通用寄存器的内容作为操作数(通用寄存器包括A, B, DPTR, R0~R7)INC DPTR注意:A、B既是通用寄存器,也是SFR(直接寻址)4.寄存器间接寻址:以寄存器中的内容作为操作数的地址能够用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP区分内部数据RAM寻址和外部数据RAM寻址:外部数据RAM寻址指令上采用MOVX对内部数据RAM寻址:使用8位的R0或者R1即可MOV @R0, A对外部数据RAM寻址:使用P2端口提供高8位地址,使用R0或者R1提供低8位地址;或者使用16位的DPTR提供地址MOVX A, @R1MOVX @DPTR, A5.变址寻址:以基址寄存器PC或者DPTR与变址寄存器A中的内容之和作为操作数的地址变址寻址只能对程序存储器中的数据进行寻址,由于程序存储器是只读的,因此变址寻址只有读操作,指令上采用MOVCMOVC A, @A+DPTRMOVC A, @A+PC6.相对寻址:用于修改PC的值,使得PC加上指令中给出的一字节的偏移量由于转移指令有两字节和三字节这两种形式,因此偏移量的范围分别为-126~+129和-125~+130SJMP 80H7.位寻址:以位地址中的内容为操作数SETB 20HMOV 32H, C各种寻址方式的使用场合:立即寻址:常数直接寻址:SFR和内部数据RAM寄存器寻址:寄存器区寄存器间接寻址:内部数据RAM和外部数据RAM变址寻址:程序存储器相对寻址:PC位寻址:位地址区2.MOV、MOVX、MOVC指令有什么区别?它们的访问空间分别是什么?①MOV,用于片内数据存储器中的数据传递指令中。

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

《单片机原理及应用》课后习题答案
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的时钟振荡周期、机器周期和指令周期之间有何关系?

计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础

计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础

例2:编制一段程序,要求在端口线 :编制一段程序,要求在端口线P1.0,P1.1上分别产生周期为 , 上分别产生周期为 200us和400us的方波.设单片机的外接频率为 的方波. 和 的方波 设单片机的外接频率为12MHz. . 分析:利用定时器产生方波,将定时器设置成为工作方式 , 分析:利用定时器产生方波,将定时器设置成为工作方式3,将寄 存器T0定时 定时100us,T1定时 定时200us,达到定时时间后引起中断,在中 存器 定时 , 定时 ,达到定时时间后引起中断, 断服务程序中各自将P1.0和P1.1引脚取反. 引脚取反. 断服务程序中各自将 和 引脚取反 定时器预设值的设置: 定时器预设值的设置: 单片机的晶体振荡频率为12MHz,计时器的计时频率为1MHz,机 单片机的晶体振荡频率为 ,计时器的计时频率为 , 器周期为1us. 定时 定时100us,因此寄存器 需要计数 需要计数100次 器周期为 . T0定时 ,因此寄存器T0需要计数 次 ,其预 置值为64H+1=9CH. T1定时 定时200us,因此寄存器 需要计数 需要计数200次 置值为 . 定时 ,因此寄存器T1需要计数 次 其预置值为C8H+1=38H. ,其预置值为 . 定时器T0,T1的工作方式设置: 的工作方式设置: 定时器 的工作方式设置 T0采用工作方式 ,因此 采用工作方式3,因此TMOD寄存器的值设置为 寄存器的值设置为#22H. 采用工作方式 寄存器的值设置为 . 定时器T0,T1的控制设置: 的控制设置: 定时器 的控制设置 打开T0, ;要求TCON寄存器的值设置为 寄存器的值设置为#50H. 打开 ,T1;要求 寄存器的值设置为 .
定义存储区域的大小. 6. DS —定义存储区域的大小. 定义存储区域的大小 例: ORG 0350H DS 3

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

第3章51系列单片机程序设计(C语言部分)

第3章51系列单片机程序设计(C语言部分)

idata
间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)
pdata
分页寻址片外数据存储区(256字节)由MOV @Ri访问(i=0,1)
xdata
片外数据存储区(64 KB)由MOVX @DPTR访问
code
程序存储器64 KB空间,由MOVC @DPTR访问
第3章 51系列单片机程序设计(C部分)
/* Ary37定义为abry[3]的第7位 */
第3章 51系列单片机程序设计(C部分)
3.5 数 组
数组:数组是一组类型相同 有序数据的集合。用数组名 和下标来唯一确定数组中的 元素。
第3章 51系列单片机程序设计(C部分)
3.5.1 一维数组
一、一维数组的定义 形式:类型说明符 数组名 [常量表达式]
使用C51进行编程时,MCS-51片内的I/O口与片外扩展的I/O可以统一在一个头文 件中定义,也可以在程序中(一般在开始的位置)进行定义。
对于MCS-51片内I/O口按特殊功能寄存器方法定义。 例如:
sfr P0=0x80 ; /* 定义P0口,地址为80H */ sfr P1=0x90 ; /* 定义P1口,地址为90H */
第3章 51系列单片机程序设计(C部分)
3.4.3 C51数据的存储类型与MCS-51存储结构
表 3.4.2 C51存储类型与MCS-51存储空间的对应关系
存储类型 与存储空间的对应关系
data
直接寻址片内数据存储区,访问速度快(128字节)
bdata
可位寻址片内数据存储区,允许位与字节混合访问(16字节)
据 浮点型(float) 类
型 指针类型
详细见表3.4.1

单片机原理及应用(林立张俊亮版)课后习题答案

单片机原理及应用(林立张俊亮版)课后习题答案

第一章习题1.什么是单片机?单片机和通用微机相比有何特点?答:单片机又称为单片微计算机,它的结构特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。

虽然单片机只是一个芯片,但无论从组成还是从逻辑功能上来看,都具有微机系统的定义。

与通用的微型计算机相比,单片机体积小巧,可以嵌入到应用系统中作为指挥决策中心,是应用系统实现智能化。

2.单片机的发展有哪几个阶段?8位单片机会不会过时,为什么?答:单片机诞生于1971年,经历了SCM、MCU、SOC三大阶段,早期的SCM单片机都是8位或4位的。

其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。

基于这一系统的单片机系统直到现在还在广泛使用。

随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。

90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。

随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。

然而,由于各应用领域大量需要的仍是8位单片机,因此各大公司纷纷推出高性能、大容量、多功能的新型8位单片机。

目前,单片机正朝着高性能和多品种发展,但由于MCS-51系列8位单片机仍能满足绝大多数应用领域的需要,可以肯定,以MCS-51系列为主的8位单片机,在当前及以后的相当一段时间内仍将占据单片机应用的主导地位。

3.举例说明单片机的主要应用领域。

答:单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

第3章_MCS-51单片机指令系统及汇编语言程序设计2

第3章_MCS-51单片机指令系统及汇编语言程序设计2

3. 汇编语言的语句格式是什么?使用标号有什么限制?注释段起什么作用? 答案: MCS-51汇编语言的语句格式应符合下列结构: 【标号:】 操作码 【操作数】【;注释】 标号位于语句的开始,由以字母开头的字母和数字组成,它代表该语句的地址。 标号与操作码之间要用“:”隔开,标号与“:”之间不能有空格,“:”与操 作码之间可以有空格。 注释在语句的最后,以“;”开始,是说明性的文字,与语句的具体功能无关。 4. MCS-51汇编语言有哪几条常用伪指令?各起什么作用? 答案: ORG:汇编程序起始地址,用来说明其后程序段在存储器中存放的起始地址; EQU:赋值指令,用来给变量标号赋予一个确定的数值; DB:定义数据字节,指令按字节数的形式把数据存放在存储单元中; DW:定义数据字,按字(双字节)的形式把数据存放在存储单元中; DS:定义存储区,从指定的地址单元开始,保留一定数量的存储单元; BIT:位定义,其功能是把位地址赋给字符名称; END:汇编结束,表明汇编语言程序结束。
2.顺序程序
顺序程序是指程序中没有使用转移类指令的程序段,机器执行这 类程序时也只需按照先后顺序依次执行,中间不会有任何分支、循环, 也不需要调用子程序。 例:将一个单字节十六进制数转换成BCD码。 解:算法分析。单字节十六进制数在0~255之间,将其除以100后, 商为百位数;余数除以10,商为十位数,余数为个位数。 设单字节数存放在40H,转换后,百位数存放在R0中,十位数存 放在R1中,个位数存放在R2中,具体程序如下: ORG 0030H MOV A, 40H ;将单字节十六进制数送入A中 MOV B,#64H ;将100送入B中, #64H可直接写成#100 DIV AB MOV R0,A ;百位数送R0,余数在B中 XCH A,B ;余数送入A中 MOV B,#0AH ;将10送入B中, #0AH可直接写成#10 DIV AB ;商为十位数,余数为个位数 MOV R1,A MOV R2,B SJMP $

单片机原理与应用(盛珣华)习题和思考题答案

单片机原理与应用(盛珣华)习题和思考题答案

单⽚机原理与应⽤(盛珣华)习题和思考题答案习题和思考题答案第⼀章单⽚机概述1. 第⼀台电⼦数字计算机发明的年代和名称。

1946年、ENIAC。

2. 根据冯·诺依曼提出的经典结构,计算机由哪⼏部分组成?运算器、控制器、存储器、输⼊设备和输出设备组成。

3. 微型计算机机从20世纪70年代初问世以来,经历了哪四代的变化?经历了4位、8位、16位、32位四代的变化。

4. 微型计算机有哪些应⽤形式?系统机、单板机、单⽚机。

5. 什么叫单⽚机?其主要特点有哪些?单⽚机就是在⼀⽚半导体硅⽚上,集成了中央处理单元(CPU)、存储器(RAM、ROM)、并⾏I/O、串⾏I/O、定时器/计数器、中断系统、系统时钟电路及系统总线的⽤于测控领域的微型计算机,简称单⽚机。

单⽚机技术易于掌握和普及、功能齐全,应⽤⼴泛、发展迅速,前景⼴阔、嵌⼊容易,可靠性⾼。

6. 举例说明单⽚机的应⽤?略7. 当前单⽚机的主要产品有哪些?各⾃有何特点?MCS是Intel公司⽣产的单⽚机的系列符号,MCS-51系列单⽚机是Intel公司在MCS-48系列的基础上于20世纪80年代初发展起来的,是最早进⼊我国,并在我国应⽤最为⼴泛的单⽚机机型之⼀,也是单⽚机应⽤的主流品种。

其它型号的单⽚机:PIC单⽚机、TI公司单⽚机、A VR系列单⽚机。

8. 简述单⽚机应⽤系统的开发过程。

(1)根据应⽤系统的要求进⾏总体设计总体设计的⽬标是明确任务、需求分析和拟定设计⽅案,确定软硬件各⾃完成的任务等。

总体设计对应⽤系统是否能顺利完成起着重要的作⽤。

(2)硬件设计根据总体设计要求设计并制作硬件电路板(即⽬标系统),制作前可先⽤仿真软件(如Proteus软件)进⾏仿真,仿真通过后再⽤硬件实现并进⾏功能检测。

(3)软件设计软件编程并调试,⽬前⼀般⽤keil软件进⾏设计调试。

调试成功后将程序写⼊⽬标单⽚机芯⽚中。

(4)综合调试进⾏硬软件综合调试,检测应⽤系统是否达到设计的功能。

单片机汇编语言程序设计

单片机汇编语言程序设计
义若干个16位二进制数据,每个字占用两个单元,先存高8位,再存低8 位。用法同DB伪指令。
6.定义空间指令DS
指令格式:
地址
ROM
[标号:]DS <表达式>
2000H
说明:DS伪指令是定义存储区,即从标
2001H 号指定的单元开始保留表达式所代表的
存储单元数。
2002H
【例】
2003H
ORG 2000H
单片机汇编语言程序设计
单片机汇编语言程序设计
1.1 源程序的编辑与汇编
1.源程序的编辑 源程序的编写要依据80C51汇编语言的基本规则,特别要用好常用
的汇编命令(即伪指令),例如: ORG 0040H MOV A,#7FH MOV R1,#44H END
这里的ORG和END是两条伪指令,其作用是告诉汇编程序此汇编源程 序的起止位置。编辑好的源程序应以.ASM扩展名存盘,以备汇编程序调 用。
这里使用的“字符名称”不是标号,不能用“:”来隔分隔符;其 中的“项”可以是一个数值,也可以是一个已经有定义的名字或可以求 值的表达式。该指令的功能是将一个数或特定的汇编符号赋予规定的字 符名称。用EQU指令赋值的字符名称可以用做数据地址、代码地址、位 地址或直接当做一个立即数使用。因此,给字符名称所赋的值可以是8 位二进制数,也可以是16位二进制数。
置循环初值
置循环初值
循环体
N 循环条件? Y
循环条件? Y
N 循环体
(a)先处理后判断方式
(b)先判断后处理方式
4.子程序结构 在汇编语言程序设计时,通过循环程序可以解决连续重复执行同
一程序段的问题,而对于不连续重复执行同一程序段的问题,为避免 重复编制程序,节省程序代码所占的存储空间,可将其编制成独立的 程序即子程序,在需要的位置采用特定的指令调用该子程序,执行后 再返回到调用位置继续执行后序程序指令。子程序调用是实现I/O操 作的重要方法。

第3章 汇编语言程序设计补充习题

第3章 汇编语言程序设计补充习题

MCS—51单片机指令系统及程序设计一.单项选择题,从供选择的答案中选出正确的选项,并将标号填写到答题册中,每小题1分。

1.MCS-51汇编语言指令格式中,唯一不可缺少的部分是B。

A.标号 B.操作码 C.操作数 D.注释2.MCS-51的立即寻址方式中,立即数前面D。

A.应加前缀“/:”号B.不加前缀号C.应加前缀“@”号D.应加前缀“#”号3.下列完成8031单片机内部RAM数据传送的指令是D。

A.MOVX A,@DPTR B.MOVC A, @A+PCC.MOV A,#data D.MOV direct,direct4.MCS-51的立即寻址的指令中,立即数就是B。

A.放在寄存器R0中的内容 B.放在程序中的常数C.放在A中的内容D.放在B中的内容5.单片机中PUSH和POP指令常用来C。

A.保护断点B.保护现场C.保护现场,恢复现场 D.保护断点,恢复断点6.MCS-51寻址方式中,操作数Ri加前缀“@”号的寻址方式是A。

A.寄存器间接寻址 B.寄存器寻址 C.基址加变址寻址 D.立即寻址7.MCS-51寻址方式中,位寻址的寻址空间是 D 。

A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存贮器ROMD.片内RAM的20H~2FH字节中的所有位和地址可被8整除的SFR的有效位8.MCS-51寻址方式中,直接寻址的寻址空间是D。

A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存贮器ROM D.片内RAM 00H--7FH的128字节和80H--FFH中的SFR9.执行指令MOVX A,@DPTR时,、脚的电平为C。

A.高电平,高电平 B.低电平,高电平C.高电平,低电平 D.低电平,低电平10.主程序执行完ACALL后返回主程序后,堆栈指针SP的值A。

A.不变 B.加2 C.加4 D.减211.单片机中使用MOVX A,@R1指令 C 寻址数据存贮器1050H单元。

A.能直接B.不能C.与P2口配合能 D.与P1口配合能12.下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是B。

单片机原理及应用(C语言版)(周国运)习题答案

单片机原理及应用(C语言版)(周国运)习题答案

单⽚机原理及应⽤(C语⾔版)(周国运)习题答案单⽚机原理及应⽤(C语⾔版)思考题与习题答案第1章单⽚机概述1.什么是单⽚机?答:将中央处理器(Central Processing Unit,CPU)、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接⼝电路等微型计算机的主要部件集成在⼀块芯⽚上,使其具有计算机的基本功能,就叫做单⽚微型计算机(Single Chip Micro Computer,SCMC),简称单⽚机。

由于单⽚机的指令功能是按照⼯业控制的要求设计,所以单⽚机⼜称为微控制器(Micro Controller Unit,MCU)。

2.单⽚机有哪些特点?答: (1)单⽚机的存储器ROM和RAM是严格区分的。

ROM称为程序存储器,只存放程序、固定常数及数据表格。

RAM则为数据存储器,⽤作⼯作区及存放⽤户数据。

(2)采⽤⾯向控制的指令系统。

(3)单⽚机的I/O引脚通常是多功能的。

(4)单⽚机的外部扩展能⼒强。

(5)单⽚机体积⼩,成本低,运⽤灵活,易于产品化。

(6)⾯向控制,能有针对性地解决从简单到复杂的各类控制任务,因⽽能获得最佳的性能价格⽐。

(7)抗⼲扰能⼒强,适⽤温度范围宽。

(8)可以⽅便地实现多机和分布式控制,使整个控制系统的效率和可靠性⼤为提⾼。

3.单⽚机的应⽤有哪些?答: (1)⼯业控制。

单⽚机可以构成各种⼯业控制系统、数据采集系统等。

如数控机床、⾃动⽣产线控制、电机控制、测控系统等。

(2)仪器仪表。

如智能仪表、医疗器械、数字⽰波器等。

(3)计算机外部设备与智能接⼝。

如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。

(4)商⽤产品。

如⾃动售货机、电⼦收款机、电⼦秤等。

(5)家⽤电器。

如微波炉、电视机、空调、洗⾐机、录像机、⾳响设备等。

(6)消费类电⼦产品。

(7)通讯设备和⽹络设备。

(8)⼉童智能玩具。

(9)汽车、建筑机械、飞机等⼤型机械设备。

(10)智能楼宇设备。

第03章 MCS - 51单片机指令系统

第03章 MCS - 51单片机指令系统
这里源操作数不能进行寄存器间接寻址, 也就是MOV Rn , @Rn 这个指令是不能用 的。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
(2)将数据传送到工作寄存器Rn的指令(3条) 例:已知累加器A的内容为30H,寄存器R7的内容 为50H,内部RAM30H单元的内容为40H,内部 RAM50H单元的内容为10H,请指出下列每条指令 执行以后相应单元内容的变化.
第 一 节 指 令 格 式 与 寻 址 方 式
第3章 MCS-51单片机指令系统
(6) 相对寻址:
在MCS -51 指令系统中设有转移指令, 分 为直接转移和相对转移指令, 在相对转移 指令中采用相对寻址方式。这种寻址方式 是以PC的内容为基本地址, 加上指令中给 定的偏移量作为转移地址,也就是目的地 址(用来修改PC的值)。指令中给出的偏 移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。
第3章 MCS-51单片机指令系统
(1) 立即寻址:
立即寻址方式是将操作数直接存放在指令字 节中,作为指令的一部分存放在代码段里。 比如:MOV A, #3AH 跟在指令操作码后面的数就是参加运 算的数, 该操作数称为立即数。立即数有一字 节和二字节两种可能, 如指令: MOV DPTR, #0DFFFH 上述两条指令均为立即寻址方式, 第 一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据 指针DPTR中(DPH, 0FFH→DPL)。
第 二 节 数 据 传 送 指 令
第3章 MCS-51单片机指令系统
3.2数据传送指令
程序中使用最多的指令,主要用于内部RAM、 寄存器、外部RAM以及程序存储器之间的数据 传送、保存以及交换。 工作原理:将源操作数简单地传给目的 操作数,而源操作数的内容不变,PSW的内容 不改变。 分类:内部数据传送指令、外部传送指 令、查表指令、交换指令和堆栈指令。

第三章MCS-51指令系统及汇编语言程序设计

第三章MCS-51指令系统及汇编语言程序设计

指 令 系 统 的 寻 址 方 式
MCS-51指令系统及一般说明 MCS-51指令系统及一般说明
在介绍指令之前, 在介绍指令之前 , 先对指令中使用的一些符号意义进行简单 的说明。 的说明。 direct---直接地址, ---直接地址 ① direct---直接地址,即8位的内部数据存储器单元或特殊 功能寄存器的地址。 功能寄存器的地址。 #data--包含在指令中的8位常数。 --包含在指令中的 ② #data--包含在指令中的8位常数。 #datal6--包含在指令中的16位常数 包含在指令中的16位常数。 ③ #datal6--包含在指令中的16位常数。 rel-- 位的带符号的偏移量。用于SJMP --8 SJMP及所有的条件转移 ④ rel--8位的带符号的偏移量。用于SJMP及所有的条件转移 指令中。 指令中 。 偏移量按相对于下一条指令的第一个字节地址与跳转 后指令第一个字节地址之差计算, 范围内取值。 后指令第一个字节地址之差计算,在-128~+127范围内取值。 128 +127范围内取值 DPTR--数据指针,可用作16位的地址寄存器。 --数据指针 16位的地址寄存器 ⑤ DPTR--数据指针,可用作16位的地址寄存器。
指 令 系 统 的 寻 址 方 式
寄存器间接寻址
寄存器间接寻址方式可用于访问内部RAM 或外部数据存储器 寄存器间接寻址方式可用于访问内部 RAM或外部数据存储器 。 RAM 或外部数据存储器。 这种寻址方式是由指令指定某一寄存器的内容作为操作数的 地址。 地址。 其中(Ri)=40H (Ri)=40 例如 MOV A,@Ri ;(i=0或1),其中(Ri)=40H 这条指令表示从Ri中找到源操作数所在单元的地址, Ri中找到源操作数所在单元的地址 这条指令表示从Ri中找到源操作数所在单元的地址,把该地 址中的内容传送给A 即把内部RAM 40H单元的内容送到累加器A RAM中 址中的内容传送给A。即把内部RAM中40H单元的内容送到累加器A 中。

第3章 8051单片机硬件结构及汇编语言

第3章 8051单片机硬件结构及汇编语言
带三态门的输入输出缓冲电路用亍数据缓冲和防止总线上的数据竞争即存储器的输出端叔丌仅能呈现1和0两种状态还应该有三种状态高阻态呈高阻态时输出叔相当亍断开对数据总线丌起作用也只有当其他器件呈高阻态时丏存储器在片选允许和输出允许的情冴下才能将自己的数据输出到数据总线上
3.1 8051系列单片机的基本结构 3.2 8051系列单片机存储空间配置和功能 3.3 并行I/O端口 3.4 时钟电路及CPU时序 3.5 8051系列单片机的工作方式 3.6 8051系列单片机指令系统 3.7 汇编语言程序设计 3.8 实践训练—输入输出例如要将60H写入外部RAM2000H单元中。 ① CPU产生片选信号选通该外部RAM并发出“写”信号,让外RAM允许数据写入。 ② CPU将地址码2000H送到地址总线上,经存储器地址译码器译码后选通地址为2000H的 存储单元。 ③ CPU将数据60H送到数据总线上。 ④ 存储器将总线上的数据60H写入地址为2000H的存储单元中。 对存储单元的写操作,要改变或刷新该单元原来的内容,相当于把原来的内容覆盖了。
CONTNTS
01
8051系列单片机的类型很多,但其内部结构与外部引脚功能基本相同。 3.1.1 内部结构框图 本节介绍Intel公司生产的8051系列单片机的片内结构,其框图如图3-1所示。从图3-1中可以 看出,单片机集成了CPU、ROM、RAM、定时/计数器和I/O口等基本功能部件,并由内部总线 把这些部件连接在一起。
02
(1)只读存储器(ROM) 这种存储器又称为程序存储器。一个微处理器能够聪明地执行某种任务,除了它们强大的硬 件外,还需要它们运行的程序,程序相当于给微处理器处理问题的一系列命令,一些固定程序 设计好后就不允许修改,设计人员编写的这些程序就存放在微处理器的只读存储器中。只读存 储器在使用时,其内容只能读出而不能写入,断电后ROM中的信息不会丢失。ROM按存储信息 的方法又可分为以下几种。 ① 掩膜ROM。掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(固化)供用户使 用,用户不能更改内部程序,其特点是价格便宜,此类单片机适合大批量使用。 ② 可编程的只读存储器(PROM)。它的内容可由用户根据自己所编程序一次性写入,一 旦写入,只能读出,而不能再进行更改,这类存储器现在也称为OTP(Only Time Programmable)。 ③ 可改写的只读存储器EPROM。EPROM芯片带一个透明窗口,它的内容可以通过紫外线 照射而彻底擦除,应用程序可通过专门的编程器重新写入。 ④ 可电改写只读存储器(EEPROM)。EEPROM可用电的方法写入和清除其内容,其编程 电压和清除电压均与微机CPU的5 V工作电压相同,不需另加电压。它既有与RAM一样的读写操 作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章 单片机汇编程序设计
二.寄存器间接寻址 寄存器间接寻址是指数据存放在存储单元中,而存储单元地址存放 在寄存器中,在指令中通过提供存放存储单元地址的寄存器来使用对 应的存储单元。形式为:@寄存器名。 例如:MOV A,@R1 该指令的功能是将以工作寄存器R1中的内容为地址的片内RAM单 元的数据传送到累加器A中去。指令的源操作数是寄存器间接寻址。 若R1中的内容为80H,片内RAM地址为80H的单元中的内容为20H, 则执行该指令后,累加器A的内容为20H。寄存器间接寻址示意图如 图所示。
第3章 单片机汇编程序设计
第3章 单片机汇编程序设计
注意,源操作数和目的操作数中的Rn和@Ri不能相互配对。如不允许有 “MOV Rn,Rn”,“MOV @Ri,Rn”这样的指令,在MOV指令中,不 允许在一条指令中同时出现工作寄存器,无论它是寄存器寻址还是寄存 器间接寻址。 2.片外数据存储器传送指令MOVX 在MCS-51系统中只能通过累加器A与片外数据存储器进行数据传 送,访问时,只能通过@Ri和@DPTR以间接寻址方式进行。MOVX指 令共有四条: MOVX A,@DPTR ;A ← (DPTR) MOVX @DPTR,A ;(DPTR) ← A MOVX A,@Ri ;A ← (Ri) MOVX @Ri,A;(Ri)← A 其中前两条指令通过DPTR间接寻址,可以对整个64K片外数据存 储器访问。后两条指令通过@Ri间接寻址,只能对片外数据存储器的低 端的256字节访问,访问时将低8位地址放于Ri中。
第3章 单片机汇编程序设计
3.1 MCS-51系列单片机汇编指令格式及标识
MCS-51系列单片机指令系统功能强、指令短、执行快。从功能 上可分成五大类:数据传送指令、算术运算指令、逻辑操作指令、 控制转移指令和位操作指令。 3.1.1 指令格式 [标号:] 操作码助记符 [目的操作数][,源操作数] [;注释]
(1)操作码助记符表明指令的功能,不同的指令有不同的指令助记符,它 一般用说明其功能的英文单词的缩写形式表示。
(2)操作数用于给指令的操作提供数据、数据的地址或指令的地址, 操作数往往用相应的寻址方式指明。 (3)标号是该指令的符号地址,后面须带冒号。 (4)注释是对该指令的解释,前面须带分号。
第3章 单片机汇编程序设计
第3章 单片机汇编程序设计
3.程序存储器传送指令MOVC 程序存储器传送指令只有两条,一条用DPTR基址变址寻址。一 条用PC基址变址寻址。 MOVC A,@A+DPTR ;A ← (A+DPTR) MOVC A,@A+PC ;A ← (A+PC) 这两条指令通常用于访问表格数据,因此以称为查表指令。 例如:查表指令MOVC A,@A+PC所在的地址为2000H,表格的起始 单元地址为2035H,表格的第4个元素(位移量为03H)的内容为45H, 则查表指令的处理过程如下: MOV A,#03H ;表格元素相对于表首的位移量送累加器A ADD A,#34H ;当前程序计数器PC相对于表首的差值加到累加 器A中 MOVC A,@A+PC ;查表,查得第4个元素内容45H送累加器A 注意:查表指令的长度为1个字节,当前程序计数器PC的值应为查表 指令的地址加1。
(1)以A为目的操作数 MOV A,Rn ;A← Rn MOV A,direct ;A←(direct) MOV A,@Ri ;A←(Ri) MOV A,#data ;A← #data (2)以Rn为目的操作数 MOV Rn,A ;Rn ← A MOV Rn,direct ;Rn ←(direct) MOV Rn,#data ;Rn ← #data (3)以直接地址direct为目的操作数 MOV direct,A ;(direct) ← A MOV direct,Rn ;(direct) ←Rn MOV direct,direct ;(direct) ←(direct) MOV direct,@Ri ;(direct) ←(Ri) MOV direct,#data ;(direct) ← #data (4)以间接地址@Ri为目的操作数 MOV @Ri,A ;(Ri) ← A MOV @Ri,direct ;(Ri) ←(direct) MOV @Ri,#data ;(Ri) ← #data (5)以DPTR为目的操作数 MOV DPTR,#data16 ;DPTR ← #data16
DPTR
2000H + 2005H 30H
A
05H
A
30H
第3章 单片机汇编程序设计
3.2.4 位寻址
位寻址是指操作数是二进制位的寻址方式。在MCS-51单片机中有 一个独立的位处理器,有多条位处理指令,能够进行各种位运算。在 MCS-51系统中,位处理的操作对象是各种可位寻址位。对于它们的 访问是通过提供相应的位地址来处理。 在MCS-51系统中,位地址的表示可以用以下几种方式: 1.直接位地址(00H~0FFH)。例如:20H 2.字节地址带位号。例如:20H.3表示20H单元的3位。 3.特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。 4.位符号地址。例如:TR0是定时/计数器T0的启动位。
第3章 单片机汇编程序设计
3.2 MCS-51系列单片机寻址方式
MCS-51单片机的寻址方式按操作数的类型,可分为数的寻址和 指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄 存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、 变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址,
第3章 单片机汇编程序设计
(8)(X):表示X单元中的内容。 (9)((X)):表示以X单元的内容为地址的存储器单元内 容,即(X)作地址,该地址单元的内容用((X))表示。 (10)/ 和→符号:“/”表示对该位操作数取反,但不影响该位 的原值。“→”表示操作流程,将箭尾一方的内容送入箭头所指 一方的单元中去。
3.2.5 指Βιβλιοθήκη 寻址一.绝对寻址绝对寻址是在指令的操作数中直接提供目的位置的地址或地址的一部份。 在MCS-51系统中,长转移和长调用提供目的位置的16位地址,绝对转移 和绝对调用提供目的位置的16位地址的低11位,它们都为绝对寻址。
第3章 单片机汇编程序设计
二.相对寻址 相对寻址是以当前程序计数器PC值加上指令中给出的偏移量rel得 到目的位置的地址。在MCS-51系统中,相对转移指令的操作数属于 相对寻址。 在使用相对寻址时要注意以下两点: (1)当前PC值是指转移指令执行时的PC值,它等于转移指令的 地址加上转移指令的字节数。实际上是转移指令的下一条指令的地址。 例如:若转移指令的地址为2010H,转移指令的长度为2字节,则转 移指令执行时的PC值为2012H。 (2)偏移量rel是8位有符号数,以补码表示,它的取值范围为128~+127。当为负值时,向前转移,当为正数时向后转移。 相对寻址的目的地址为: 目的地址=当前PC+rel=转移指令的地址+转移指令的字节数+rel
3.2.1 常数寻址(立即寻址)
操作数是常数,常数又称为立即数,使用时直接出现在指令中, 紧跟在操作码的后面,作为指令的一部分。在汇编指令中,立即数前 面以“#”符号作前缀。在程序中通常用于给寄存器或存储器单元赋初 值,例如: MOV A,#20H 其功能是把立即数20H送给累加器A,其中源操作数20H就是立 即数。指令执行后累加器A中的内容为20H。
第3章 单片机汇编程序设计
3.3 MCS-51系列单片机指令系统 3.3.1 数据传送指令
数据传送指令有29条,是指令系统中数量最多、使用也最频繁的一类 指令。这类指令可分为三组:普通传送指令、数据交换指令、堆栈操 作指令。 一.普通传送指令 普通传送指令以助记符MOV为基础。分成片内数据存储器传 送指令、片外数据存储器传送指令和程序存储器传送指令。 1.片内数据存储器传送指令MOV 指令格式:MOV 目的操作数,源操作数 其中:源操作数可以为A、Rn、@Ri、direct、#data,目的操作 数可以为A、Rn、@Ri、direct,组合起来总共16条,按目的操作数 的寻址方式划分为五组:
3.2.3 存储器数寻址
存储器数寻址针对的数据是存放在存储器单元中,对于存储器单元 的内容通过提供存储器单元地址使用。根据存储器单元地址的提供方 式,存储器数的寻址方式有:直接寻址、寄存器间接寻址、变址寻址。
第3章 单片机汇编程序设计
一.直接寻址 直接寻址是指数据在存储器单元中,在指令中直接提供存储器单元的 地址。在MCS-51系统中,这种寻址方式针对的是片内数据存储器和特 殊功能寄存器。在汇编指令中,指令中直接以地址数的形式提供存储器 单元的地址。例如: MOV A,20H 其功能是把片内数据存储器20H单元的内容送给累加器A。如指令执 行前片内数据存储器20H单元的内容为30H,则指令执行后累加器A的内 容为30H。指令中20H是地址数,它是片内数据存储单元的地址。在 MCS-51中,数据前面不加“#”是存储单元地址而不是常数,常数前面 要加符号“#”。 对于特殊功能寄存器,在指令中使用时往往通过特殊功能寄存器 的名称使用,而特殊功能寄存器名称实际上是特殊功能寄存器单元的 符号地址,因此它们是直接寻址。例如: MOV A,P0 其功能是把P0口的内容送给累加器A。P0是特殊功能寄存器P0 口的符号地址,该指令在翻译成机器码时,P0就转换成直接地址80H。
3.1.2 指令中用到的标识符 为便于后面的学习,在这里先对指令中用到的一些符号的约定意 义作以说明: (1)Ri和Rn:表示当前工作寄存器区中的工作寄存器,i取0或1, 表示R0或R1。n取0~7,表示R0~R7。 (2)#data:表示包含在指令中的8位立即数。 (3)#data16:表示包含在指令中的16位立即数。 (4)rel:以补码形式表示的8位相对偏移量,范围为-128~127,主 要用在相对寻址的指令中。 (5)addr16和addr11:分别表示16位直接地址和11位直接地址。 (6)direct:表示直接寻址的地址。 (7)bit:表示可位寻址的直接位地址。
相关文档
最新文档