mcs-51第四章答案 汇编语言程序设计
《单片机原理及应用》(张迎新) 课后习题答案 电子工业出版社
![《单片机原理及应用》(张迎新) 课后习题答案 电子工业出版社](https://img.taocdn.com/s3/m/fb1c63a0dd3383c4bb4cd288.png)
第二章单片机结构及原理 1、MCS-51 单片机内部包含哪些主18bit CPU 是234K ROM4128B RAM516bit 定时器/632 根可编程I/O准8 4 I/O I/O 线都能独立地作输入或输出。
782操作的命令。
程序是根据任务要求有序编排指令的集合。
3、如何认识 89S51/52 存储器空间在物理结构上可以划分为 4 个分为3 89S51/52 存片外程序存储器、片内数据存储器、片外数据存储器。
在逻辑64KB 程序存储器地址25664数据存储器地址空间。
4CPU 使用的是哪组工CPU 如何确定和改变当前工CPU 使用的是第0 组工作寄00H07H CPU 通过改变状态字寄存器PSW中的RS0 和RS1 来确定工作寄存器组。
5SP 重新赋果CPU SP 应该多SP复位后指向07H 00H1FH 20H2FHSP 重新赋值。
如果CPU SP 应该至少设置为0FH。
6、89S51/52 的时钟周期、机器周期、指令周期8MHz 个单片机周期为中最基本的、最小的时间单位。
机器周期是指完成一个基本操12 个时钟周期组成。
指令周由若干个机器周期组成。
若fosc=8MHz=1/8×12μ s=1.5μ s 7、89S51/52 扩为什么不会据存储器使用不同的指令用来区分同一地址空间。
8、程序状态字寄存器PSWPSW是8PSW中各位状态通常是在指令执行的过程中自PSW.7Cy PSW.6ACPSW.5F0志位。
PSW.4、PSW.3RS1 和 RS0PSW.2OV PSW.1 PSW.0 P 9、位地址7CH 和字节地址7CH 有何区7CH 7CH87CH 是内部数据存储器中位寻址区中的一1 位二进制数。
位地址 7CH 具体在片内数据存储器字节地址为2FH 中的第4 2FH.4 10、89S51/52 中4 个I/O 89S51/52 的片外三I/O 端口是单片机与外界联系的重要8 P0 16 P0 8P2 8 PSEN ALERD WR EA P3 口。
第四章-汇编语言程序的设计
![第四章-汇编语言程序的设计](https://img.taocdn.com/s3/m/e913fa1f336c1eb91a375db8.png)
第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。
在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。
汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。
)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。
第4章 MCS-51单片机汇编语言程序设计
![第4章 MCS-51单片机汇编语言程序设计](https://img.taocdn.com/s3/m/6c6e2aa1f524ccbff1218478.png)
程序清单:
送转移地址序号
A,R3 ;取序号 A ;序号乘2 DPTR, #JTAB ;32个子程序 首地址送DPTR JMP @A+DPTR ;根据序号转移 JTAB: AJMP ROUT00 ;32个子程序首地址 AJMP ROUT01 … MP: MOV RL MOV AJMP ROUT31
第 四 章 MCS-51 单 片 机 汇 编 语 言 程 序 设 计
【例4-1】
双字节二进制数求补。
程序说明:对R3(高8位)、R2(低8位)中的二进制定 点数取反加1即可得到其补码。
开始
程序清单:
BINPL:MOV A,R2 CPL A ADD A,#01H MOV R2,A MOV A,R3 CPL A ADDC A,#00H MOV R3,A RET ;低位字节取反 ;加1 ;低位字节补码送R2 ;高位字节取反 ;加进位 ;高位字节补码送R3
散转生成正确偏移号
置换指令地址表首址
转入R3指示的程序
AJMP
……
AJMP
第 四 章 MCS-51 单 片 机 汇 编 语 言 程 序 设 计
3.循环程序
包括:循环初始化、循环处理、循环控制
开始 置初值 循环体 循环结束? Y 循环修改 N 循环体 循环结束? N Y 结束 循环修改 结束 开始 置初值
;调用查表子程序 ; 暂存R1中 ;调查表子程序 ;平方和存A中 ;等待
取第一个数→A 调查表子程序 结果存入R1 取下一个数→A 调查表子程序 两数平方相加 存结果
子程序清单:
SQR: INC A ;加RET占的一个字节 MOVC A,@A+PC ;查平方表 RET TAB: DB 0,1,4,9,16 DB 25,36,49,64,81 END
MCS-51汇编语言程序设计
![MCS-51汇编语言程序设计](https://img.taocdn.com/s3/m/6da2b04d2e3f5727a5e96293.png)
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
第4章 MCS-51汇编语言程序设计
![第4章 MCS-51汇编语言程序设计](https://img.taocdn.com/s3/m/746cb16ea98271fe910ef969.png)
n
第4章 MCS-51汇编语言程序设计
当i=n时,yn+1即为所求n个数据之和y。这种形式的 公式叫递推公式。在用单片机的汇编程序实现时,yi 是一个变量,这可用式(4-3)表示:
0 y 1 i y xi yi i 1 i
in
根据这个公式,可以画出程序框图,如图4.1所示。
第4章 MCS-51汇编语言程序设计
4.3.1 程序总体结构 • MCS-51单片机的汇编程序由主程序、若干个子程序、中 断服务程序等组成。 • 由于MCS-51单片机复位后PC=0000H,也就是程序从程 序存储器的0000H开始执行,由于MCS-51单片机程序存 储器的0003H、000BH、0013H、001BH、0023H分别是 外部中断0、定时器0、外部中断1、定时器1、串行口的中 断入口地址,所以主程序开始的地址一般安排在0030H之 后的程序存储器中。一般在程序存储器的0000H开始放一 条无条件转移指令(AJMP、LJMP、SJMP)转到主程序的 开始处。如果要使用某些中断,则在相应的中断入口地址 也放一条无条件转移指令,多数情况下用LJMP指令,这 是因为使用LJMP指令可使中断服务程序在单片机程序存 储器中的任意位置编写。图4.3是MCS-51单片机的程序总 体结构图。
第4章 MCS-51汇编语言程序设计
2. 汇编 • 汇编语言必须经过机器汇编或人工汇编才能得到相应的机 器程序,即目标程序,以供单片机识别和执行。由于人工 汇编工作量大,容易出错,现已不用。机器汇编一般是在 PC上利用一些汇编软件进行。目前几乎所有的单片机仿 真器配的开发软件都有汇编程序,在源程序编写完成后使 用汇编功能菜单即可进行对源程序汇编。在汇编时若发现 源程序有语法错误或跳转超出范围等情况,系统会将错误 显示给用户。用户在改正错误后,需再对源程序进行汇编, 直到源程序完全没有语法错误。此时汇编程序会生成与其 对应的目标文件。一般情况下是生成HEX(十六进制)和 BIN(二进制)文件。没有语法错误并不等于程序开发成功, 一般来说还要对程序进一步调试、修改,运行无误后,程 序才算最终完成。这时才可将目标文件写入到程序存储器 中。
汇编语言程序设计课后习题答案
![汇编语言程序设计课后习题答案](https://img.taocdn.com/s3/m/b5230c4f561252d380eb6eea.png)
第四章汇编语言程序设计习题答案一、单项选择题1.C2.B3.C4.C5.C6.A7.A8.C9.B10. D11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C21.B22.D23.D24. A二、多项选择题1.ABCEF2.ACE3.AC4.ABCD三、填空题1.PARA2.1,2,60,120, 13.SEGMENT,ENDS4.12005.段内转移,段间转移6.AH7.过程,PROC,RET,NEAR,FAR8.LEA BX,BUF9.1, 410..0504H11.ASM,EXE12.立即寻址,直接寻址四、判断题××××V V V××V五、程序分析题1. 32.12H,3412H3.46H,73H4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。
(2) ZF=1, 说明已找到字符ZF=0, 说明未找到字符CX 0,说明中途已找到字符退出CX=0,且ZF=0说明串中无字符‘0’5.1, 0, 3, 2, 5, 4, 7, 6, 9, 86.87H,81H7.44AAH,44D5H8.DEC CX,JNC,JZ9.JNZ L210.ADC DX,0,CLC11.AAS12.STOSB13.1,3,1,2, 214.(2000H)=39H (2001H)=00H将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0 (2001H)15.A)2345H,6780HB)将DX、AX中存放的32位二进制数向左移动4位16.0 ,1009H0对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个17.20H,10,T18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AXMOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。
第4章 MCS-51单片机汇编语言程序设计(2)
![第4章 MCS-51单片机汇编语言程序设计(2)](https://img.taocdn.com/s3/m/91b03c19c281e53a5802ffe3.png)
XCH A,R3 INC A MOVC A,@A+DPTR MOV DPL,A MOV DPH,R3 CLR A JMP @A+DPTR TAB DW DW A0 A1
…………. DW AN
INC
DPTR
MOVX A,@DPTR SUBB A,R7 JNC XCH BIG1 A,R7
BIG0:INC DPTR
实现程序如下: 实现程序如下
START:CLR C : MOV DPTR,#ST1 , MOVX A,@DPTR , MOV R7,A
MOVX @DPTR,A RET BIG1:MOVX A,@DPTR SJMP BIG0
实现程序如下: 实现程序如下 MOV 30H, 20H ANL 30H,#00011111B MOV A,21H SWAP A RL A ANL A,#11100000B ORL 30H,A
第4章 MCS-51单片机汇编语言程序设计
实现程序如下: 实现程序如下 例 A,@R1 ADDC4.3 做3个字节的 无符号的加法. 无符号的加法.设一个加 MOV R0,#52H , MOV @R0,A 数存放在内部RAM 50H、 RAM的 数存放在内部RAM的50H、 MOV R1,#55H , DEC R0 51H、52H单元中 单元中, 51H、52H单元中,另一 DEC R1 RAM的53H、 MOV A,@R0 个加数存放在RAM 个加数存放在RAM的53H、 MOV A,@R0 54H、55H单元中 单元中, 54H、55H单元中,相加 ADD A,@R1 结果存内部RAM的50H、 结果存内部RAM的50H、 RAM ADDC A,@R1 51H、52H单元 单元, 51H、52H单元,均从高 MOV @R0,A 字节开始存放, 字节开始存放,进位存放 MOV 00H,C 在位寻址区的00H位中。 00H位中 在位寻址区的00H位中。 MOV @R0,A DEC DEC R0 R1
第4章MCS51单片机的指令系统
![第4章MCS51单片机的指令系统](https://img.taocdn.com/s3/m/a525648f4128915f804d2b160b4e767f5acf803c.png)
1、立即寻址
若指令的操作数是一个8位二进制数或16位二进制数,就 称为立即寻址。指令中出现的操作数就称为立即数。
例如:MOV A,#3AH;A ← 3AH
MOV DPTR,#8000H 在MCS51系统中采用“#”来表示后面的是立即数。
16
2、寄存器寻址
寄存器寻址就是以通用寄存器的内容作为操作数,在指令 的助记符中直接以寄存器的名字来表示操作数位置。这种 寻址方式如果使用了另一个操作数,那么另一操作数必须 是累加器A,这些指令都是单字节指令
在汇编语言编程时,数据的存放、传送、运算都要通过 指令来完成,编程者必须自始至终都要十分清楚操作数 的位置以及如何将它们传送至适当的寄存器中去运算。 因此,如何从各个存放操作数的区域去寻找和提取操作 数就变得十分重要。
所谓寻址方式就是如何通过确定操作数所在的位置(地 址)从而把操作数提取出来的方法。
(补码数)。相对转移指令所在的地址称为源地址,转移
后的地址称为目的地址 。程序的转移范围以PC当前值为中
心,介于-128~+127之间
目的地址=源地址十转移指令字节数十rel
例如SJMP rel指令的机器码 是“80H,rel”,两个字节。 设指令所在地址为2000H, rel为54H,则转移地址(目的 地址)为:
4.1 指令和指令程序
所有软件,都要翻译成计算机能直接识别和执行 的命令,才能由计算机去执行。这种计算机能直 接识别和执行的命令称为指令。一台计算机所能 执行的全部指令的集合称为这台计算机的指令系 统。指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
20
寄存器间接寻址的寻址范围: 1)片内RAM低128单元:这里只能用R0和R1作为间接 寻址寄存器。 2)片外RAM 64KB:使用DPTR作为间接寻址寄存器。 3)片外RAM低256单元:也可以使用R0和R1。MOVX 4)在执行PUSH(压栈)和POP(出栈)指令时,采 用堆栈指针SP作寄存器间接寻址。
单片机原理及接口技术部分习题与参考答案
![单片机原理及接口技术部分习题与参考答案](https://img.taocdn.com/s3/m/7da766720912a2161579290a.png)
《单片机原理及接口技术(修订本)》部分习题与参考答案第1章绪论1-2 什么叫单片机一个完整的单片机芯片至少有哪些部件答:将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-5 Intel 公司的主要单片机产品分为哪几大系列各系列的区别何在答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;48系列的单片机在片内集成4位CPU,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。
51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行I/O口、2个16位定时/计数器、串行接口、5个中断源。
96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。
1-6 叙述51子系列与52子系列的区别答:51子系列包含8031/8051/8751三种型号,它们的基本组成、基本性能都相同,都具有一个8位CPU、片内数据存储器RAM128B、2个16位定时/计数器、有5个中断源,一个全双工串行接口,它们之间的区别在于片内程序存储器配置:8031片内没有ROM,使用时需在片外接EPROM。
8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
52子系列包含8032/8052/8752三种型号,52子系列与51子系列的区别在于:片内ROM 和RAM的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。
第2章 MCS-51系列单片机的结构及原理2-2 MCS-51单片机的引脚有何功能在使用8031时如何接法使用8751时如何接法答:引脚是片内外程序存储器的选择信号。
单片微机原理系统设计与应用课后部分习题答案
![单片微机原理系统设计与应用课后部分习题答案](https://img.taocdn.com/s3/m/8d1d354376232f60ddccda38376baf1ffc4fe3d6.png)
单⽚微机原理系统设计与应⽤课后部分习题答案第⼆章 MCS-51单⽚机硬件结构2-5. 8051单⽚机堆栈可以设置在什么地⽅?如何实现?答:8051单⽚机堆栈可以设置在内部RAM中。
当系统复位时,堆栈指针地址为07H,只要改变堆栈指针SP的值,使其为内部RAM中地址量,就可以灵活的将堆栈设置在内部RAM中。
2-16. 8051单⽚机内部数据存储器可以分为⼏个不同的区域?各有什么特点?2-21.复位后,CPU内部RAM各单元内容是否被清除?CPU使⽤的是哪⼀组⼯作寄存器?它们的地址是什么?如何选择确定和改变当前⼯作寄存器组?答:复位并不清除CPU内部RAM单元中内容,掉电会清除内部RAM 中内容。
复位以后因为PSW=00H,所以选择⼯作寄存器0区,所占地址空间为00H-07H。
⼯作寄存器组可以查询PSW中的RS1(PSW.4)和RS0(PSW.3)来确定,改变当前RS1和RS0的值即可改变当前⼯作寄存器组。
2-22.指出复位后⼯作寄存器组R0-R7的物理地址,若希望快速保护当前⼯作寄存器组,应采取什么措施?答:复位⼯作寄存器组R0-R7的物理地址为00H-07H。
如希望快速保护当前⼯作寄存器组,可以通过改变PSW中RS1(PSW.4)和RS0(PSW.3)的当前值来完成。
第三章 MCS-51指令系统3-6.设系统晶振为12MHz,阅读下列程序,分析其功能,并⼈⼯汇编成机器代码。
答:因为AJMP指令必须有PC指针地址,所以本题解题时设程序开始地址为1000H。
本程序完成功能是使P1.0⼝输出⽅波:T=2*((3*250+2+2)*10+1+2+2)=15090us=15.09ms翻译成机器语⾔的难点在于AJMP⼀句,根据AJMP指令代码可知,该指令为2个字节,⾼8为字节构成为“A10A9A800001”,低8位字节构成为“A7-A0”。
⼜有设置了程序起始地址为1000H,很容易可以写出各指令的地址,AJMP的绝对转移⽬标地址为1002H,A10=0、A9=0、A8=0,所以机器代码为“01 02”,⽬标地址在2区,因为A15-A11为“00010”。
单片机课后作业答案(万福君)
![单片机课后作业答案(万福君)](https://img.taocdn.com/s3/m/5fa6970ea76e58fafab0036b.png)
答: 以内部存储器地址 2FH 作为栈底, 从 30H 开始一直到 7FH, 依次存放外部数据存储器中 2000H~ 204FH 地址中的数据。7FH 作为栈顶。程序完成后 SP=7FH。 (将外部 RAM 中的数据通过堆栈传送到内 部 RAM)
1.1.6 3-9
分析下列程序段执行结果,程序执行完后,SP 指向哪里?
答:电路图如下:
U V
&
≥1
F
W X
≥1
逻辑表达式: F U V (W X ) 重新整理编写程序如下:
ORG U V W X START: BIT BIT BIT BIT MOV MOV ANL CPL MOV MOV ORL ORL MOV SJMP END 0100H P1.0 P1.1 P1.2 P1.3 P1, #0FH C, U C, V C ACC.0, C C, W C, /X C, ACC.0 F, C $ ;P1.2 | /P1.3 ;P1 作为输入前的准备,使场效应管截止 ;读入 P1.0,存入在进位标志 ;P1.0 & P1.1 ;取反
答:在外部数据存储器中的以下地址内存放数据: (向外部存储器放数据) (2000H)=30H (2001H)=31H (2002H)=32H ┇ ┇ (2009H)=39H
1.1.5 3-8
简述下列程序段完成的功能,程序完成后 SP 指针应指向哪里?
MOV MOV MOV NEXT: MOVX PUSH INC DJNZ SJMP SP, #2FH DPTR, #2000H R7, #50H A, @DPTR A DPL R7, NEXT $ ;堆栈指针先加 1 再赋值 ;共 50H 个数据 ;设置栈底
MOV MOV ANL CPL MOV MOV ORL ORL MOV SJMP P1, #0FH C, P1.0 C, P1.1 C ACC.0, C C, P1.2 C, /P1.3 C, ACC.0 F, C $ ;P1.2 | /P1.3 ;P1 作为输入前的准备,使场效应管截止 ;读入 P1.0,存入在进位标志 ;P1.0 & P1.1 ;取反 ;暂存 ACC.0
《新编MCS-51单片机应用设计》第三版 (张毅刚 彭喜元 著)-阳光大学生网
![《新编MCS-51单片机应用设计》第三版 (张毅刚 彭喜元 著)-阳光大学生网](https://img.taocdn.com/s3/m/4aa889dab9f3f90f76c61bb2.png)
欢迎光临阳光大学生网,提供最全面的大学生课后习题答案和复习试题免费下载,/阳光大学生网我们希望呵护您的眼睛,关注您的成长,给您一片绿色的环境,欢迎加入我们,一起分享大学里的学习和生活感悟,免费提供:大学生课后答案,大学考试题及答案,大学生励志书籍。
第一章单片机概述1.2除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。
1.3单片机与普通计算机的不同之处在于其将(微处理器)、(存储器)和(各种输入输出接口)三部分集成于一块芯片上。
4、单片机的发展大致分为哪几个阶段?答:单片机的发展历史可分为四个阶段:第一阶段(1974年----1976年):单片机初级阶段。
第二阶段(1976年----1978年):低性能单片机阶段。
第三阶段(1978年----现在):高性能单片机阶段。
第四阶段(1982年----现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段1.5单片机根据其基本操作处理的位数可分为哪几种类型?答:单片机根据其基本操作处理的位数可分为:1位单片机、4位单片机、8位单片机、16位单片机和32位单片机。
1.6MCS-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.7MCS-51系列单片机与80C51系列单片机的异同点是什么?答:共同点为它们的指令系统相互兼容。
不同点在于MCS-51是基本型,而80C51采用CMOS 工艺,功耗很低,有两种掉电工作方式,一种是CPU停止工作,其它部分仍继续工作;另一种是,除片内RAM继续保持数据外,其它部分都停止工作。
第4章 单片机汇编语言程序设计
![第4章 单片机汇编语言程序设计](https://img.taocdn.com/s3/m/30b6bddc26fff705cc170aa4.png)
功能:从标号指定的地址单元开始,将8位二进制 数据按顺序依次存入形成数据表。数据表可以是 一个或多个字节数据、字符串或表达式,各项数 据用“,”分隔,一个数据项占一个字节单元。
ORG 1000H
TAB:DB -2,-4,100,30H,‘A’, ‘C’
用单引号括起来的字符存其ASCII码,负数存其 补码。
第4章 单片机汇编语言程序设计
4.1.2 伪指令
1.设置起始地址伪指令 ORG 格式: [标号:] ORG nn 该指令总是出现在每段源程序或数据块的开始。
汇编时,nn确定了后面第一条指令或数据的地 址,此后的源程序或数据块就依次连续存放在 以后的地址内,直到遇到另一个ORG指令为止。 如:
第4章 单片机汇编语言程序设计
第4章 单片机汇编语言程序设计
第4章 单片机汇编语言程序设计
4.1 汇编语言程序设计的基础知识 4.2 汇编程序设计方法 4.3 综合编程举例
第4章 单片机汇编语言程序设计
4.1 汇编语言程序设计的基础知识
4.1.1 汇编语言的语句格式
MCS-51单片机汇编语言的语句格式表示如下: [标号:] <操作码> [操作数] [;注释]
MOV A, R4 MOV R0, A M1: RET
第4章 单片机汇编语言程序设计
多分支程序,还可根据运算结果或输入数据将程 序转入不同的分支。
在多分支程序中,因为可能的分支会有 N个,若 采用多条 CJNE 指令逐次比较,程序的执行效率 会降低很多,特别是分支较多时更加明显。
一般采用跳转表的方法,通过两次转移来实现多 分支结构。
第4章 单片机汇编语言程序设计
ORG 2500H BR2: MOV R0, #00H MOV A, R1 ACALL COMP ;R0 清零 ;第一个数(R1)送A ; 比较(R1)与(R0)大小
第四章 51汇编语言程序设计
![第四章 51汇编语言程序设计](https://img.taocdn.com/s3/m/fce3c74969eae009581becfb.png)
DPH, A A, B ;乘积的低8位 @A+DPTR;间接转移 CASE_0 CASE_1
CASE_N
例、设a存放在累加器A中,b存放在寄存器B中,要求
按下式计算Y值,并将结果Y存于累加器A 中,试编写
程序。(同学先做)
a-b Y = a+b (a < 0 ) (a≥0)
解:本题关键是判a是正数,还是负数;由ACC.7便知。
·逻辑运算
包括逻辑或、与、异或和非,分别用符号OR、
AND、XOR和NOT表示,实现的是按位运算; ·特殊运算 包括SHR、SHL、HIGH、LOW、(),分别表示 右移、左移、取高字节、取低字节和优先求值;
·关系运算
关系运算符有EQ、NE、LT、LE、GT和GE,也 不等、小于、小于或等于、大于、大于或等于;
机器语言
·二进制编码的指令 ·74H 34H 24H 45H F5H 09H 74H 12H 34H 23H F5H 08H ·如果不对照指令系统的机器码,很 难看出这段程序要实现什么功能
汇编语言
·使用助记符、符号地址、标号等符
号来编写程序的系统
RES_LOW DATA RES_HIGH DATA MOV ADD MOV MOV ADDC MOV 09H 08H A, #34H A, #45H RES_LOW, A A, #12H A, #23H RES_HIGH, A
要求某程序段多次重复执行,需要采用循环
结构。
循环结构不但使程序简练,而且大大节省存储空间。 循环程序包含四部分: 1、初始化部分 (循环计数器、变量置初值)
第四章 51单片机程序设计
4.1 4.2 4.3 4.4 51单片机程序设计概述 51汇编语言 汇编语言基本程序设计 数制转化程序
MCS-51单片机应用设计课后答案[1]
![MCS-51单片机应用设计课后答案[1]](https://img.taocdn.com/s3/m/1d6c5146b307e87101f69654.png)
第一章单片机概述/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说明单片机主要应用在哪些领域?答:单片机主要运用领域为:工业自动化;智能仪器仪表;消费类电子产品;通信方面;武器装备;终端及外部设备控制;多机分布式系统。
第4章单片机汇编语言程序设计
![第4章单片机汇编语言程序设计](https://img.taocdn.com/s3/m/fef48f395727a5e9856a61ba.png)
Y A=0? N A>0? N A←-1 Y N A←X
Y
A=0? N R1←-1
A←1
A>0? Y R1←1 存数
存数
2012-6-5 电气与自动化学院 18
第四章汇编语言程序设计
§2 MCS-51单片机汇编语言设计 2、分支程序设计
程序:
ORG 2000H VAR DATA 40H FUN DATA 41H START:MOV A,VAR JZ SAVE JNB ACC.7,ZHENG MOV A,#0FFH SJMP SAVE ZHENG:MOV A,#01H SAVE: MOV FUN,A SJMP $ END
第四章汇编语言程序设计 第四章汇编语言程序设计 本章重点: §4.1 汇编语言程序设计基础
4.1.3 伪指令
§4.2 MCS-51汇编语言程序设计
4.2.1 顺序结构程序设计 4.2.2分支结构程序设计 4.2.3循环结构程序设计 4.2.4查表程序设计 4.2.5 子程序设计
§习题分析及解答
第四章汇编语言程序设计 4.1.3 伪指令
2012-6-5 电气与自动化学院 9
第四章汇编语言程序设计
§2 MCS-51单片机汇编语言设计 1、顺序结构程序设计
2012-6-5
例4-3:将两个三字节无符号数相加,其中一个加数在内部RAM的 32H、31H和30H单元;另一个加数在内部RAM的35H、34H和33H单 元,要求相加后的和存入32H、31H和30H单元,进位存入位寻址区 的20H单元中 程序: ORG 2000H CLR C MOV @R0,A MOV R0,#32H MOV R1,#35H DEC R0 MOV A,@R0 DEC R1 ADD A,@R1 MOV A,@R0 MOV @R0,A ADDC A,@R1 DEC R0 MOV @R0,A DEC R1 MOV A,@R0 MOV 20H,C ADDC A,@R1 SJMP $ END
习题-汇编语言程序设计
![习题-汇编语言程序设计](https://img.taocdn.com/s3/m/8c6939242cc58bd63186bde4.png)
第4章习题-汇编语言程序设计(单片机第二版)(总20页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第四章习题与参考答案程序设计语言有哪三种各有什么异同汇编语言有哪两类语言各有什么特点在汇编语言程序设计中,为什么要采用标号来表示地址标号的构成原则是什么使用标号有什么限制注释段起什么作用MCS-51汇编语言有哪几条常用伪指令各起什么作用汇编语言程序设计分哪几步各步骤的任务是什么汇编语言源程序的机器汇编过程是什么第二次汇编的任务是什么请用除法指令编写例的程序,并计算所占内存字节数和所需机器周期数。
设内部RAM 20H 单元有两个非零的BCD数,请编写求两个BCD数的积并把积送入21H单元的程序。
元。
请编写可以统计其中正数和负数个数并分别存入NUM和NUM+1单元的程序。
设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元。
请编写满足如下关系的程序:X>=50时:Y=X;50>X>=20时:Y=5X;X<20时:Y=2X;在例的128分支程序中,若用LJMP指令代替AJMP指令,以便分支程序可以放在64KB 地址范围的任务位置。
请修改原程序,修改后的程序最多可实现多少个分支从外部RAM的SOUCE(二进制8位)开始有一数据块,该数据块以$字符结尾。
请编写程序,把它们传送到以内部RAM的DIST为起始地址的区域($字符也要传送)。
在例中,若SOUCE为二进制16位,则程序又该如何编。
在外部RAM的低256地址单元区,有起始地址为SOUCE且长度存放在LEN单元的数据块。
请编写能对它们进行奇偶校验的程序。
凡满足奇校验(奇数个1)的数据均送到内部RAM起始地址为DIST的存储区。
在例中,若SOUCE的地址不在外部RAM的滴56地址区,则程序该如何编写。
外部RAM从2000H到2100H有一数据块,请编写将它们传送到从3000H到3100H区域的程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章汇编语言程序设计
1 题若晶振为12MHz,试编制延时2ms和1s子程序。
答:延时2ms:
DELY: MOV R7, #10
DLY0: MOV R6, #98
NOP
DLY1: DJNZ R6, DLY1
DJNZ R7, DLY0
RET
延时1s:
DELY: MOV R0, #50
LP11: MOV R1, #100
LP22: MOV R2, #100
LP33: DJNZ R2, LP33
DJNZ R1, LP22
DJNZ R0, LP11
RET
4 题试求20H和21H单元中16位带符号二进制补码数的绝对值,并送回20H和21H单元,高位在先,低位在后。
答:方法一:
先判断符号位,若为0则不作任何处理(因为正数的补码数与原数相同,而0的补码数就是0)。
若符号位为1,则用0减去该数即可。
编程如下:
ORG 1000H
MOV A, 20H
JNB ACC.7, DONE
CLR C
CLR A
SUBB A, 21H
MOV 21H, A
CLR A
SUBB A, 20H
MOV 20H, A
DONE: SJMP $
END
方法二:可用变反加“1”来完成。
ORG 1000H
MOV A, 20H
JNB ACC.7, DONE
CPL A
MOV 20H, A
MOV A, 21H
CPL A
MOV 21H, A
CLR C
MOV A, 21H
ADD A, #1
MOV 21H, A
MOV A, 20H
ADDC A, #0
MOV 20H, A
DONE: SJMP $
END
5题试求内部RAM 30~37H单元8个无符号数的算术平均值,结果存入38H单元。
答:方法一:相加后和放在R3:38H中,然后将结果整体右移3位,得数放在38H单元中。
ORG 1000H
START: MOV R7, #07H
MOV R3, #00H
MOV A, 30H
MOV R0, #31H
LOOP: ADD A, @R0
JNC NEXT
INC R3
NEXT: INC R0
DJNZ R7, LOOP
MOV 38H, A
MOV R7, #3
LOOP1: CLR C
MOV A, R3
RRC A
MOV R3, A
MOV A, 38H
RRC A
MOV 38H, A
DJNZ R7, LOOP1
SJMP $
END
方法二:相加后和放在R3:38H中,然后将R3中的数乘以25,将38H 中的数除以23,然后将两个结果相加,放入38H单元中。
ORG 1000H
START: MOV R7, #07H
MOV R3, #00H
MOV A, 30H
MOV R0, #31H
LOOP: ADD A, @R0
JNC NEXT
INC R3
NEXT: INC R0
DJNZ R7, LOOP
MOV 38H, A
PR: MOV A, R3
MOV B, #32
MUL AB
MOV R3, A
MOV A, 38H
MOV B, #8
DIV AB
ADD A, R3
MOV 38H, A
6题试编一数据块搬迁程序。
将外部RAM 2000H~204FH单元中的数,移入内部RAM 30H~7FH单元中。
编程如下:
ORG 1000H
MOV R0, #50H
MOV R1, #30H
MOV DPTR, #2000H
LP1: MOVX A, @DPTR
MOV @R1, A
INC R1
INC DPTR
DJNZ R0, LP1
END。