51子系列单片机片内RAM电脑大容量ram 用法多大,分为哪几大区域

第2章MCS-51单片机的硬件结构;2.1请结合课本中MCS-51系列单片机的结构图;解:按功能部件分,51子系列单片机由CPU、数据;CPU由累加器A、暂存器1、2、ALU、PSW等;数据存储器由RAM地址寄存器、RAM单元等组成;程序存储器指EPROM或ROM;SFR指P0、P1、P2、P3锁存器、B、DPT;2.2综述MCS-51系列单片机各引脚的作用
第2章 MCS-51单片机的硬件结构
2.1 请结合课本中MCS-51系列单片机的结构图,阐明其大致组成。
解:按功能部件分,51子系列单片机由CPU、数据存储器RAM、程序存储器ROM、特殊功能寄存器、4个并行I/O口、1个串行口、定时器/计数器、中断系统等八个功能部件组成。
CPU由累加器A、暂存器1、2、ALU、PSW等组成
数据存储器由RAM地址寄存器、RAM单元等组成。
程序存储器指EPROM或 ROM。
SFR指P0、P1、P2、P3锁存器、B、DPTR等。
2.2 综述MCS-51系列单片机各引脚的作用,并进行分类。
解:(1) 主电源引脚
Vcc:接+5V电源正端。
Vss::接+5V电源地端。
(2) 外接晶体引脚
XTAL1:片内反相放大器输入端
XTAL2: 片内反相放大器输出端
(3) 输入/输出引脚
P0.0-P0.7:P0口的8个引脚。在不接片外存储器与不扩展I/O接口时,作为准双向输入/输出接口(在输入时需要附加条件的双向输入输出口,称为准双向I/O口)。在接有片外存储器或扩展I/O接口时,P0口分时复用为低8位地址总线和双向数据总线。
P1.0-P1.7:P1口的8个引脚。可作为准双向I/O接口使用。对于52子系列,P1.0与P1.1还有第二种功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2;P1.1可用作定时器/计数器2的外部控制端T2EX。
P2.0-P2.7;P2口的8个引脚。一般可作为准双向I/O接口;在接有片外存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用为高8位地址总线。
P3.0-P3.7;P3口的8个引脚。
① 一般可作为准双向I/O接口;
② P3口的第二功能如表2-1所示。
2.3 EA引脚的作用是什么?在下列四种情况下,EA引脚各应该接何种电平?
(1)只有片内ROM。
(2)只有片外ROM。
(3)有片内ROM和片外ROM。
(4)有片内ROM和片外ROM,片外ROM所存为调试程序。 解:EA/VDD:片外程序存储器选用端。 (1) =1。 (2) =0。
(3) 若片外ROM和片内ROM编址不重叠,则=1。
(4) 若片外ROM和片内ROM编址重叠,则访问片内ROM时=1,访问片外ROM时=0。
2.4 MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?
解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线,P3口作为控制线使用。地址和数据线分别是16位和8位,对外可寻址的地址空间是64KB。
2.5 程序计数器的符号是什么?MCS-51系列单片机的程序计数器有几位?它的位置在哪里?
解: 程序计数器的符号是PC,MCS-51系列单片机的程序计数器有16位,为一个专用寄存器。在CPU内部。
2.6 何谓程序状态字?它的符号是什么?它的位置在哪里?它各位的含义是什么?为1、为0各代表什么?各在何种场合有用?
解:程序状态字是一个8位寄存器,它包含了程序运行的状态信息,它的符号是PSW。它的位置在CPU中。各位含义如下:
(1)进位标志位C(PSW.7):
作用:在执行某些算术操作类、逻辑操作类指令时,可被硬件或软件置位或清零。
例如8位加法运算时,如果运算结果的最高位D7有进位,则C=1,否则C=0;
又如8位减法运算时,如果运算结果的最高位D7有借位,则C=1,否则C=0。
(2)辅助进位标志Ac(PSW.6):
作用:8位加法运算时,如果低半字节的最高位D3有进位,则Ac=1,否则Ac=0;8位减法运算时,如果D3有借位,则Ac=1,否则Ac=0。
Ac在作BCD码运算而进行二―十进制调整时有用。
(3)软件标志F0(PSW.5)
作用:是用户定义的一个状态标志。可通过软件对它置位、或清零。编程时,也常测试其是否建起而进行程序分支。
(4)工作寄存器组选择位RS1、RS0 (PSW.4、PSW.3):
作用:用软件置位或清零,以确定四组工作寄存器中的哪一组工作,它们与各组的对应关系为 RS1
0组(地址从00-07H)
1组(地址从08-0FH)
2组(地址从10-17H)
3组(地址从18-1FH)
(5)溢出标志OV(PSW.2):
作用:当执行算术运算时,由硬件置位或清零,以指示溢出状态。各种算术指令对该位的影响情况在指令系统中详细介绍。
(6)奇偶标志P(PSW.0):
每执行一条指令,单片机都能根据A中1的个数的奇偶自动令P置位或清零:奇为1,偶为0。此标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。
2.7 MCS-51系列单片机的内存由哪几部分组成?其编址与访问的规律是怎样的?
解:MCS-51系列单片机内存由程序存储器与数据存储器两个独立的空间。
程序存储器的编址自0000H开始,最大可至FFFFH。MCS-51单片机有3种不同的芯片:片内有掩膜只读存储器的(如)、片内有EPROM的(如8751)和片内没有只读存储器的(如),而ROM的寻址范围为64KB,所以片内程序存储器的容量远小于该数,可见如扩展片外存储器,其裕量是很大的。
ROM编址规律:程序存储器的编址规律为:先片内、后片外,片内、片外连续,二者一般不作重叠。根据PC的内容进行访问。
片内RAM从00H开始编址,片外RAM从0000H开始,部分地址重叠(实际并不完全一样),若只需扩展少量片外RAM,容量不超过256个单元,则也可以按照8位二进制编址,从00H开始,到FFH结束。由于访问片内外RAM所用的指令不一样,不会引起混淆。
2.8 MCS-51系列单片机片内RAM有多少单元?有哪些用途?这些用途各占用哪些单元?堆栈的栈区设在哪里?
解:51子系列片内RAM有128B单元,52子系列片内RAM有256B单元。
单片机片内RAM可分为:工作寄存器区,位寻址区,数据缓冲区三个区域。
(1) 工作寄存器区:00H-1FH单元为工作寄存器区。供用户编程时使用,临时寄存8位信息。分为四组:R0~R7,但同时只能有一组参与程序程序的运行,用RS1,RS0两位的状态来选择参与运行的工作寄存器组。
(2) 位寻地址:20H-2FH,对该区的每一位,都有一个位地址,共有128个位地址。
(3) 数据缓冲区:30H-7FH(52子系列为30H~FFH),作为普通的RAM单元使用。
(4) 堆栈栈区一般设在2FH以上的单元。
2.9 MCS-51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么? 解:MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。
CPU是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算, 15
其操作顺序在控制器控制下进行。控制器是由程序计数器PC(Program Counter)、指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)、定时控制逻辑和振荡器OSC等电路组成。CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。
程序存储器(ROM)用于存储程序、常数、表格等。
数据存储器(RAM)用于存储数据。
8051内部有两个16位可编程序的定时器/计数器T0和T1,均为加1计数器。可用于定时和对外部输入脉冲的计数。
8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。可实现对5个中断源的管理。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。其中,IE用于控制5个中断源中哪些中断请求被允许向CPU提出,哪些中断源的中断请求被禁止;IP用于控制5个中断源的中断请求的优先权级别。
I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行I/O接口。
8051单片机的控制总线信号有哪些?各有何作用?
解:独立的控制线一共有4条:
(1)ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/PROG上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/PROG上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。
(2)EA/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若EA=0,则允许使用片内ROM;若EA=1则允许使用片外ROM。
(3)PSEN:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在PSEN上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下PSEN线均为高电平封锁状态。
(4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。
2.11 何谓特殊功能寄存器?8031有哪些特殊功能寄存器?试按其用途相关联的硬件功能单元(如CPU、并行I/O口、串行I/O口、定时器/计数器、中断控制等)进行分类。
解:特殊功能寄存器也称专用寄存器。专用于控制、管理片内算术逻辑部件,并行I/O口,串行I/O口,定时器/计数器,中断系统等功能模块的工作,用户在编程时可以置数设定,但不能移作它用。
除PC外,8031有18个专用寄存器,其中3个为双字节寄存器,共占用21个字节,按其用途相关联的硬件功能单元可分:P0口,堆栈指针、数据指针低字节,数据指针高字节,定时器/计数器/计数器0高、低字节,定时器/计数器1高、低字节,P1口,电源控制、串行控制;串行数据缓冲器,P2口,中断允许控制,P3口,中断允许优先级控制,程序状态字,累加器,B寄存器共18个专用寄存器。
2.12何谓时钟周期、指令周期、机器周期?针对MCS5-1系列单片机,如采用12MHZ晶振,它们的频率和周期各是什么?
解: 振荡器输出的振荡脉冲经二分频成为内部时钟信号,用作单片机内部各功能部件按序协调工作的控制信号,其周期称时钟周期。
机器周期:6个时钟周期构成一个机器周期。
指令周期:CPU执行一条指令的时间。
针对MCS5-1系列单片机,采用12MHZ晶振,则振荡周期为0.167us,时钟周期为0.333us,频率为6MHZ,机器周期为1us,频率为1MHZ,指令周期为1us到4us,频率为1MHZ到0.25MHz。
2.13综述P0、P1、P2、P3口各有哪几种功能。
解:这4个接口可以并行输入或输出8位数据;也可按位使用,即每一根输入/输出线都能独立地用作输入或输出。四个8位并行口的功能各不相同:
P0口是三态双向口,通常称为数据总线口,因为只有该口能直接用于对外部数据总线的读写操作,P0口还用于输出外部数据存储器的低8位地址。由于是分时输出,故应在外部加地址锁存器将地址数据锁存,地址锁存信号用ALE。
P1口是专门供用户使用的I/O接口,是准双向接口。
P2口是供系统扩展时作高8位地址线用,如果没有系统扩展,例如使用单片机不扩展外部存储器时,P2口也可以作为用户I/O线使用。P2口也是准双向口。
P3口是双功能口,该口的每一位均可以独立地定义为第一I/O功能或第二I/O口功能。P3口的第二功能如表2-1所示。
2.14 在读回端口数据时,为什么应读锁存器内容,而不宜读引脚电平?
解:假如通过三态门从引脚上读回数据,有时会发生错误。例如用一根口线去驱动一个晶体管的基极,在向此口线输出l时,锁存器Q=1,但晶体管导通后,引脚上的电平已拉到低电平(0.7V),从引脚读回数据会错读为0。
2.15 阐明“准双向口”这一名称所以要加用“准”字的理由。
解:在执行输入操作时,如果锁存器原来寄存的数据Q=0。那么由于Q=1将使V1导通,引脚被始终箝拉在低电平上,不可能输入高电平。为此,用作输入前,必须先用输出指令置Q=1,使V1截止。正因为如此P1口称为准双向接口。
2.16 8031单片机与开关及LED发光二极管接口电路如2.16题图所示。用8031单片机P1口的P1.3-P1.0作为数据输入口,联接开关K3-K0,P1.7-P1.4作为输出口,联接发光二极管LED3-LED0;编程使开关K3-K0的状态由P1.3-P1.0输入,再由P1.7-P1.4输出,通过发光二极管显示出来,要求开关合上时,二极管亮,开关断开时,二极管不亮。 P1.1P1.2P1.3
+5V P1.5P1.6P1.7
;P1口为输入,先送1
包含各类专业文献、幼儿教育、小学教育、各类资格考试、中学教育、高等教育、外语学习资料、行业资料、专业论文、单片机课后答案65等内容。 
 单片机 课后答案(赵晓安主编)_工学_高等教育_教育专区。河北工业大学 单片机 课后答案(赵晓安主编1-1 请写出下列各十进制数在八位微型机中的原码、反码和补码形式...  单片机课后习题答案_工学_高等教育_教育专区。1.1 计算机经过了哪些主要发展阶段? 解:单片机的发展大致经历了四个阶段: 第一阶段( 年) ,为 4 位单片...  单片机课后题答案_其它_高等教育_教育专区。第一章 1. 给出下列有符号数的原码...答:单片机是把微型计算机中的微处理器、存储器、I/O 接口、定时器 /计数器、...  单片机课后习题答案_理学_高等教育_教育专区。单片机原理及接口技术课后答案_(第三版) 第一章 1.单片机具有哪些特点 (1)片内存储容量越来越大。 (2 抗干扰性好...  什么是单片机? 答:单片机是把微型计算机中的微处理器、存储器、I/O 接口、定时器/计数器、串行接口、 中断系统等电路集成到一个集成电路芯片上形成的微型计算机。...  单片机课后习题答案 文档_工学_高等教育_教育专区。1, 什么是单片机 答:单片微型计算机是指集成在一个芯片上的微型计算机,它的各种功能部件, 包括 CPU(Central Pr...  单片机课后答案_教育学_高等教育_教育专区。第2章 AT89C51 单片机片内硬件结构 1.在 AT89C51 单片机中,如果采用 6MHz 晶振,一个机器周期为 。答:2?s 2....  单片机课后练习答案_教育学_高等教育_教育专区。第一章 单片机概述 1.2 除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。 1.3 单片机与...  单片机课后答案_工学_高等教育_教育专区。单片机原理与应用 课后答案第二章 1、MCS-51 系列单片机内部有哪些主要的逻辑部件?P10 答: MCS-51 系列单片机内部的逻辑...单片机考试试题及答案(16)
& &&&&论坛
单片机考试试题及答案(16)
一。填空(每空1分,共24分)
1、MCS-51单片机内有两个 位加1定时 / 计数器,可通过编程实现 种工作方式。
2.在MCS―51单片机内部RAM中,字节地址范围是20H ~ 2FH的区域
称为 而字节地址范围是30H ~ 7FH的一段区域称为 。
3、MCS―51单片机指令系统中共有111条指令,有六种寻址方式,
分别是: 寻址、 寻址、 寻址、 、 寻址及 寻址。
4、+1000110B的反码是 ;-0110011B的补码是 。
5、一般的计算机系统都是由__ ________、_ ________、____ ___________三总线结构组成。
6、MCS-51系列单片机内部数据存储器,即内RAM中位寻址区的地址范围是
&工作寄存器区的地址范围是 。内R0M中寻址区的地址范围是 。
7、单片机汇编语言程序有三种基本结构,分别是: 、
8、单片机是一种将 、 和 集成在一个芯片中的微型计算机。
二、判断题(每题1分,共5分)
1.五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断()
2.工作寄存器工作在0区,则R2 所对应的内部数据存储器的地址是03H 。()
3.MOVCA@A +DPTR ,这是条相对寻址指令()
4.8051单片机的P2口只能用作通用I/O 口()
5.程序存储器和数据存储器的作用不同,程序存储器一般用存放数据表格和程序,而数据存储器一般用来存放数据
三、简答题(共35分)
1. MCS-51单片机有哪几个并行I/O端口?各I/O口有什么特性?(10分)
2.(15分) 8051单片机提供了几个中断源有几级中断优先级别各中断标志是如何产生的又如何清除这些中断标志各中断源所对应的中断矢量地址是多少
3 8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?(10分)
四、分析下面程序并填空(共25分)
1.若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果
MOV A,10H       (A)= ,
ANL A,#01H      (A)= ,
MOV A,11H       (A)= ,
ORL A,#01H       (A)= ,
MOV A,12H        (A)= ,
XRL A,#01H       (A)= ,
MOV A,13H       (A)= ,
XRL A,#0AA       (A)= ,
(10H)= , (11H)= , (12H)= , (13H)=
2.MOV 30H,#60H
(A)= ,(R0)= ,(B)= ,
3.MOV SP,#60H
A,#01H         (A)= ,
B,#02H         (B)= ,
A           (SP)= ,
B           (SP)= ,
B           (60H)= ,
4.改正下列指令
MOV A,DPTR
MOV DPTR,10H
MOV DPTR,40H
MOVX 40H,#30H
ADD 20H,#10H
五、编程题(共14分)
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
请(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
《单片机原理与应用》试题016答案
填空(每空1分,共24分)
1、MCS-51单片机内有两个 2 位加1定时 / 计数器,可通过编程实现 4 种工作方式。
2.在MCS―51单片机内部RAM中,字节地址范围是20H ~ 2FH的区域
称为 位寻址 而字节地址范围是30H ~ 7FH的一段区域称为 字节寻址 。
3、MCS―51单片机指令系统中共有111条指令,有六种寻址方式,
分别是: 立即 寻址、 寄存器 寻址、 直接 寻址、 变址寻址、 寄存器间接 寻址及 相对 寻址。
4、+1000110B的反码是
;-0110011B的补码是
5、一般的计算机系统都是由__控制总线________、__地址总线________、____数据总线___________三总线结构组成。
6、MCS-51系列单片机内部数据存储器,即内RAM中位寻址区的地址范围是
&256B 工作寄存器区的地址范围是 00―1FH 。内R0M中寻址区的地址范围是 00--FF 。
7、单片机汇编语言程序有三种基本结构,分别是: 顺序 、
&分支 和 循环 。
8、单片机是一种将
CPU 、 存储器 和 I/O接口 集成在一个芯片中的微型计算机。
二、判断题(每题1分,共5分)
1.五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断
2.工作寄存器工作在0区,则R2 所对应的内部数据存储器的地址是03H 。(对)
3.MOVCA@A +DPTR ,这是条相对寻址指令(错)
4.8051单片机的P2口只能用作通用I/O 口(错)
5.程序存储器和数据存储器的作用不同,程序存储器一般用存放数据表格和程序,而数据存储器一般用来存放数据 (
三、简答题(共35分)
1. MCS-51单片机有哪几个并行I/O端口?各I/O口有什么特性?(10分)
答:MCS-51单片机有4个8位双向的并行I/O口P0~P3,每一个口都由口锁存器(D触发器)、输出驱动器(FET)和输入缓冲器(3态门)组成。各口每一位I/O线都能独立地用作输入或输出,CPU对口的读操作有两种,一种是读取口锁存器的状态,另一种是读取口引脚状态。但这4个并行I/O口的结构和功能却完全不同,它们各自的特性如下:
P0口为三态双向I/O口(开漏输出,内部无上拉电阻)。对于52,P0口可以作为一般I/O口,也可作为系统扩展的地址/数据总线口。P0口用作外部引脚输入时,口锁存器必须为“1”,关断输出驱动器的FET;作总线口时,分时用作输出外部存储器的低8为地址A0~A7和传送数据D0~D7。对于,P1.0和P1.1还有另一种功能:P1.0―定时器T2的外部计数脉冲输入端,P1.1―定时器T2的捕捉/重装触发脉冲输入端。对于8031,P0口只能用作地址/数据总线口。
P1口为准双向I/O口(内部有上拉电阻)。用作外部引脚输入时,相应位的口锁存器必须为“1”,使输出驱动器FET截止。
P2口为准双向I/O口(内部有上拉电阻)。对于52,P2口可以像P1口一样用作一般I/O口使用,也可以作为系统扩展的地址总线口,输出高8位地址A8~A15。对于8031,P2口只能用作地址总线口。
P3口也是准双向I/O口(内部有上拉电阻),且具有两个功能。作为第一功能使用时,与P1口一样用作一般I/O口。P3口的第二功能定义如下:
2.(15分) 8051单片机提供了几个中断源有几级中断优先级别各中断标志是如何产生的又如何清除这些中断标志
各中断源所对应的中断矢量地址是多少
答:8051单片机提供了5个中断源:两个外部INTO和INT1中断源,两个定时片内定时器T0和T1溢出中断源,一个片内全双工串行口中断源.提供了高、低两个中断优先级、能实现两级中断服务程序嵌套,同一个优先级里,由硬件查询来确定优先序列。各中断源请求中断的标志分别由特殊功能寄存器TCON、SCON的相应位锁存,这些标志位的产生和清除方式如下:
IE0(TCON.1)外部中断0请求标志.当INTO出现有效的中断请求信号时,硬件使IE0置位.在边沿触发方式时,当CPU响应IE0中断后,由硬件清除IE0。
IE1(TCON.3)外部中断1请求标志.置位复位方式与IE0相同。
TF0(TCON.5)T0溢出中断请求标志。每当T0计数器加1计数到溢出时,TF0=1。CPU响应TF0中断,硬件清除TF0。也可以由查询软件清除TF0。
TF1(TCON.7)T1溢出中断请求标志。置位复位方式与TF0相同。
R1(SCON.0)串行口接收中断请求标志。当串行口接收器收到一个串行帧,R1=1。CPU响应R1中断,硬件并不清除R1,R1必须由软件清0。
T1(SCON.1)串行口发送中断请求标志.将8位数据写入SBUF后,发送完一个串行帧,T1=1.CPU响应T1中断,硬件并不清除T1,T1必须由软件清0.
各中断源对应的矢量地址如下:
外部中断0:0003H
定时器 T0:000BH
外部中断:0013H
定时器 T1:001BH
串行口接收和发送:001BH
3 8031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?当使用外部存储器时,还剩下多少条I/O线可用?(10分)
答:8031系统必须外接程序促成器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。
四、分析下面程序并填空(共25分)
1.若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果
MOV A,10H       (A)= 0FFH ,
ANL A,#01H      (A)= 01H ,
MOV A,11H       (A)= 00H ,
ORL A,#01H       (A)= 01H ,
MOV A,12H        (A)= FFH ,
XRL A,#01H       (A)= 01H ,
MOV A,13H       (A)= 00H ,
XRL A,#0AA       (A)= 0A ,
(10H)= FFH ,
(11H)= 00H , (12H)= FFH , (13H)= 00H
2.MOV 30H,#60H
(A)= ,(R0)= ,(B)= ,
3.MOV SP,#60H
A,#01H         (A)= 01H ,
B,#02H         (B)= 02H ,
A           (SP)= 61H ,
B           (SP)= 62H ,
B           (60H)= 01H ,
4.改正下列指令
MOV A,DPTR MOVX A,@DPTR
MOV DPTR,10H MOV A,10H
MOV DPTR,40H MOV A,40H
MOVX 40H,#30H MOV
ADD 20H,#10H ADD
五、编程题(共14分)
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
请(1)计算时间常数X,应用公式X=216-t(f/12)
(2)写出程序清单
解:解:X=216-t(F/12)
=216-1*10-3*6*106/12
START:MOV TMOD,#01H
MOV TL0,#OCH
MOV THO,#OFEH
MOV TL0,#OCH
MOV THO,#OFEH单片机原理及应用试题
查看: 7560|
摘要: 《单片机原理及应用》习题参考答案1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机内部一切信息存储、处理和传送均采用二 ...
《原理及应用》习题参考答案1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么?&&& 在计算机中,由于所采用的逻辑器件仅能存储和识别两种状态的特点,计算机内部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。2.什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设3.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线?CPU通过接口电路与外部输入、输出设备交换信息,一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。4. 存储器的作用是什么?只读存储器和随机存储器有什么不同?存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。5.某存储器的存储容量为64KB,它表示多少个存储单元?64×10246. 简述微型计算机硬件系统组成。一台计算机的基本结构由运算器、控制器、存储器、输入设备和输出设备五部分组成。7. 什么是单片机?单片机与微机相比有何特点?单片机(Single-Chip-Microcomputer)又称单片微控制器,其基本结构是将微型计算机的基本功能部件:中央处理机(CPU)、存储器、输入接口、输出接口、定时器/计数器、中断系统等全部集成在一个半导体芯片上,因此,单片机其体积小、功耗低、价格低廉,且具有逻辑判断、定时计数、程序控制等多种功能。单片机结构上的设计,在硬件、指令系统及I/O能力等方面都有独到之处,具有较强而有效的控制功能。虽然单片机只是一个芯片,但无论从组成还是从其逻辑功能上来看,都具有微机系统的含义。另一方面,单片机毕竟是一个芯片,只有外加所需的输入、输出设备,才可以构成实用的单片机应用系统。8. 单片机主要应用于哪些领域?(1) 智能仪器。智能仪器是含有微处理器的测量仪器。单片机广泛应用于各种,使仪器仪表智能化取得了令人瞩目的进展。(2) 工业控制。单片机广泛应用于各种工业控制系统中,如、温度控制、可编程顺序控制等。(3) 家用电器。目前各种家用电器普遍采用单片机取代传统的控制电路,如洗衣机、电冰箱、空调、彩电、微波炉、电风扇及高级电子玩具等。由于配上了单片机,使其功能增强而身价倍增,深受用户的欢迎。(4) 。机电一体化是机械工业发展的方向,机电一体化产品是指集机械技术、微、计算机技术于一体,具有智能化特征的机电产品。单片机除以上各方面应用之外,还广泛应用于办公自动化领域(如复印机)、汽车电路、通信系统(如手机)、计算机外围设备等,成为计算机发展和应用的一个重要方向。9. 什么是?嵌入式系统有哪些重要特征?所谓嵌入式系统,是“以应用为中心、以计算机技术为基础、软件硬件可裁减、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。即以嵌入式应用为目的计算机系统。嵌入式系统的重要特征:⑴、系统内核小⑵、专用性强。⑶、系统精简嵌入式系统一般没有系统软件和应用软件的明显区分,其功能设计及实现上不要求过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。⑷、高实时性第二章1. 举例说明MCS-51有哪些典型产品,它们有何区别?&MCS-51系列单片机可分为两大系列:51子系列和52子系列。51子系列单片机的典型产品有、、80C31等。它们的结构基本相同,其主要差别反映在片内存储器的配置上有所不同2. 8051单片机内部包含哪些主要功能部件?各功能部件的主要作用是什么?&8051单片机内部由CPU、4KB的ROM、128B的RAM、4个8位的I/O并行端口、一个串行口、两个16位定时/计数器及中断系统等组成。3. 程序状态字寄存器PSW各位的定义是什么?PSW是一个8位寄存器,用于寄存当前指令执行后的某些状态,即反映指令执行结果的一些特征信息。Cy(PSW.7):即PSW的D7位,进位/借位标志。AC(PSW.6):即PSW的D6位,辅助进位标志。F0(PSW.5)及F1(PSE.1):即PSW的D5位、D1位,用户标志位。RS1及RS0(PSW.4及PSW.3):即PSW的D4位、D3位,寄存器组选择控制位。OV(PSW.2):即PSW的D2位,溢出标志。4. MCS-51存储器结构的主要特点是什么?程序存储器和数据存储器各有何不同?MCS-51单片机的存储器结构与一般微机存储器的配置方法不同,一般微机把程序和数据共存同一存储空间,各存储单元对应惟一的地址。而MCS-51的存储器把程序和数据的存储空间严格区分开。数据存储器用于存放程序运算的中间结果、状态标志位等。程序存储器用于存放已编制好的程序及程序中用到的常数。5. MCS-51单片机内部RAM可分为几个区?各区的主要作用是什么?内部数据存储器分为高、低128B两大部分。低128B为RAM区,地址空间为00H~7FH,可分为:寄存器区、位寻址区、堆栈及数据存储区。存放程序运算的中间结果、状态标志位等。高128B为特殊功能寄存器(SFR)区,地址空间为80H~FFH,其中仅有21个字节单元是有定义的。6. MCS-51单片机的P0~P3四个I/O端口在结构上有何异同?使用时应注意哪些事项?P0口是一个8位漏极开路型双向I/O端口。P1口是一个内部带上拉电阻的8位准双向I/O端口。P2口也是一个内部带上拉电阻的8位准双向I/O端口P3口是一个内部带上拉电阻的8位多功能双向I/O端口。在使用时应注意以下方面:① P0~P3都是准双向I/O口,即CPU在读取数据时,必须先向相应端口的锁存器写入“1”。各端口名称与锁存器名称在编程时相同,均可用P0~P3表示。当系统复位时,P0~P3端口锁存器全为“1”,故可直接对其进行读取数据。② P0口每一输出位可驱动8个LS型TTL负载,P0口可作通用输入、输出端口使用,此时,若要驱动NMOS或其他拉电流负载时,需外接上拉电阻,才能使该位高电平输出有效。在单片机进行外部存储器扩展时,P0口必须作为地址/数据复用线使用,此时,不必外接上拉电阻,P0也不能作通用I/O口使用。③ P1、P2、P3口输出均接有内部上拉电阻,输入端无需外接上拉电阻,每一位输出可以驱动4个LS型TTL电路。④ P0、P2口除可以作通用I/O端口、以实现与外部进行数据交换外,更主要的是,当CPU访问外部存储器时,CPU将自动地把外部存储器的地址线信号(16位)送P0、P2口,作为地址总线(P0口输出低8位地址,P2口输出高8位地址),向外部存储器输出16位存储单元地址。在控制信号作用下,该地址低8位被锁存后,P0口自动切换为数据总线,这时经P0口可向外部存储器进行读、写数据操作。此时,P2口不再作通用I/O端口,P0口为地址/数据复用口。7. 在什么情况下,P3口作为第二功能使用?P3口的第二功能是作为控制端口使用的。由于单片机没有专设的控制信号引脚,单片机在进行外部存储器和I/O端口扩展时所需要的控制信号必须由P3口提供,P3口第二功能相当于PC机中CPU的控制线引脚。8. 为什么说单片机具有较强的位处理能力?对于许多控制系统,开关量控制是控制系统的主要对象之一。作为传统的CPU,对于简单的个别开关量进行控制却显得不那么方便,而让MCS-51值得骄傲的正是它有效地解决了单一位的控制。MCS-51片内CPU还是一个性能优异的位处理器,也就是说MCS-51实际上又是一个完整而独立的1位单片机(也称布尔处理机)。该布尔处理机除了有自己的CPU、位寄存器、位累加器(即进位标志Cy)、I/O口和位寻址空间外,还有专供位操作的指令系统,可以直接寻址对位存储单元和SFR的某一位进行操作。MCS-51单片机对于位操作(布尔处理)有置位、复位、取反、测试转移、传送、逻辑与和逻辑或运算等功能。所以,单片机具有较强的位处理能力。9. 指出8051可进行位寻址的存储空间。& 00~7FH(即20H.0~2FH.7)及SFR地址能被8整除的寄存器中的各位。10. 位地址90H和字节地址90H及P1.0有何异同?如何区别?位地址90H表示P1.0位字节地址90H表示P1口11. 在访问外部ROM或RAM时,P0和P2口各用来传送什么信号?P0口为什么要采用片外地址锁存器?&P0口传送地址低八位后可复用数据线,所以,P0口要采用片外地址锁存器。P2口传送地址高八位。12. 什么是时钟周期?什么是机器周期?什么是指令周期?当振荡频率为12MHz时,一个机器周期为多少微秒?时钟周期:也称振荡周期,即振荡器的振荡频率fosc的倒数,是时序中最小的时间单位。机器周期:执行一条指令的过程可分为若干个阶段,每一阶段完成一规定的操作,完成一个规定操作所需要的时间称为一个机器周期,一个机器周期包含12个时钟周期。当振荡频率为12MHz时,一个机器周期为12/(12×1000000)秒=1微秒指令周期:定义为执行一条指令所用的时间。13. MCS-51单片机有几种复位方法?复位后,CPU从程序存储器的哪一个单元开始执行程序?MCS-51的复位电路包括上电复位电路和按键(外部)复位电路0000H14. 8051系统掉电时如何保存内部RAM中的数据?单片机在运行过程中,如果发生掉电,片内RAM和SFR中的信息将会丢失。为防止信息丢失,可以把一组备用加到RST/VPD端,当VCC上的电压低于VPD上的电压时,备用电源通过VPD端,以低功耗保持内部RAM和SFR中的数据。15. 8051单片机引脚ALE的作用是什么?当8051不外接RAM和ROM时,ALE上输出的脉冲频率是多少?其作用是什么?地址锁存使能输出ALE:当单片机访问外部存储器时,外部存储器的16位地址信号由P0口输出低8位,P2口输出高8位,ALE可用作低8位地址锁存控制信号;当不用作外部存储器地址锁存控制信号时,该引脚仍以时钟振荡频率的1/6固定地输出正脉冲,可以驱动8个LS型TTL负载。第三章1.MCS-51有哪几种寻址方式?举例说明它们是怎样寻址的?MCS-51指令系统的寻址方式有以下7种:立即寻址方式:操作数直接出现在指令中。直接寻址方式中:操作数的单元地址直接出现在指令中。寄存器寻址方式中:寄存器中的内容就是操作数。寄存器间接寻址方式中,指定寄存器中的内容是操作数的地址,该地址对应存储单元的内容才是操作数。变址寻址方式是以程序指针PC或数据指针DPTR为基址寄存器,以累加器A作为变址寄存器,两者内容相加(即基地址+偏移量)形成16位的操作数地址,相对寻址是以程序计数器PC的当前值作为基地址,与指令中的第二字节给出的相对偏移量rel进行相加,所得和为程序的转移地址。位地址:内部RAM地址空间的可进行位寻址的128位和SFR地址空间的可位寻址的11个8位寄存器的88位。位寻址给出的是直接地址。2.位寻址和字节寻址如何区分?在使用时有何不同?由寻址方式可以看出,不同的寻址方式所寻址的存储空间是不同的。正确地使用寻址方式不仅取决于寻址方式的形式,而且取决于寻址方式所对应的存储空间。字节寻址必须是对8位存储单元,位寻址的存储空间只能是片内RAM的20H~2FH字节地址中的所有位(位地址为00H~7FH)和部分SFR的位,决不能是该范围之外的任何单元的任何位。3.要访问专用寄存器和片外数据寄存器,应采用什么寻址方式?举例说明。& 访问专用寄存器:可采用直接寻址或寄存器寻址。访问片外数据寄存器:寄存器间接寻址4.什么是堆栈?其主要作用是什么?&堆栈是后进先出的数据存储区一般用于中断处理过程中,若需要保护现场数据(如内部RAM单元的内容),可使用入栈指令,将数据压入堆栈,中断处理过程执行完后,再使用出栈指令恢复现场数据。5.编程将内部RAM的20H单元的内容传送给外部RAM的2000H单元。&&&&& MOV A,20HMOV DPTR,#2000HMOVX @DPTR,A6.编程将内部数据存储器20H~30H单元内容清零。&&&&&&&& MOV R0,#20HMOV A,#0MOV R3,#17LOP :MOV @R0,AINC R0DJNZ R3,LOP7.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则清50H单元为0。MOV R3, #10H&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MOV A,#0AAH&&&&& MOV R0,#31HLOP :INC R0&&& SUBB A,@R0 &&& JZ& LOP1&&&&&&&& DJNZ& R3,LOP&&&&&&&& MOV 50H,#0H&&&&&&&& AJMP& LOP3&&& LOP1:MOV 50H,#0FFH&&& LOP3: AJMP 1OP3&& 8.查找20H~4FH单元中出现00H的次数,并将查找结果存入50H单元。&&&&&&&& MOV R3,#30H&&&&&&&& MOV R0,#20H&&&&&&&& MOV A,#0LOP:& MOV A,@R0&&&&& JZ& LOP1LOP3: INC R0&&&&& DJNZ R3,LOP&&&&& AJMP LOP2LOP1: INC 50H&&&&& AJMP LOP3 LOP2:AJMP LOP29.已知A=83H,R0=17H,(17H)=34H,写出下列程序段执行完后的A中的内容。ANL&&&&&&& A,& #17HORL&&&&&&& 17H, AXRL&&&&&&& A,& @R0CPL&&&&&&&&&& A&&& (A)=CBH10.已知单片机的fosc=12MHz,分别设计延时0.1s、1s、1min的子程序。&&& 设晶振频率为12MHz,一个机器周期为1?s,延时1ms的子程序:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 执行时间(机器周期)DELAY:&&& MOV&& R7, #0FFH&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1&LOOP:&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1&&&&&&&&&&&&&&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1&&&&&&&&&&&&&&&&& DJNZ&& R7, LOOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 2&&&&&&&&&&&&&&&&& RET&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 2该程序段的总的执行时间为:(1+4×255+2)ms=1023?s≈1ms延时时间为100ms的子程序:DELAY:&& MOV&& R5,#64H&&&&&&&&&&&&&&& 对延时1ms的子程序循环100次。LOP1:&&&&& MOV&& R7, #0FFH&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &LOOP:&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& DJNZ&& R7, LOOPDJNZ&& R5,LOP1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& RET&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 延时时间为1s的子程序:DELAY1: MOV&&& R3, #0AH&&&&&&&&&&&& 对延时100ms的子程序循环10次DELAY:&& MOV&& R5,#64H&&&&&&&&&&&&&&& 。LOP1:&&&&& MOV&& R7, #0FFH&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &LOOP:&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& DJNZ&& R7, LOOPDJNZ&& R5,LOP1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& DJNZ& R3, DELAYRET 延时时间为60s的子程序:&&&&&&&&&& 对延时1s的子程序循环60次11.MCS-51中有哪些常用的伪指令?各起什么作用?&&& BIT(地址符号命令)END(结束汇编)EQU(等值)&&& DB(定义字节)DW(定义字)DS(定义存储单元)ORG(汇编起始地址)12.比较下列各题中的两条指令有什么异同?  ① MOV& A,& R1;&&& MOV& 0E0H,& R1&&& 指令功能相同,寻址方式表示不同&&& ② MOV& A,& P0;&&& MOV& A,&& 80H&&&&& 指令功能相同,寻址方式表示不同&&& ③ LOOP:SJMP& LOOP;& SJMP& $&&&&&&&&&&&&& 指令功能相同13.下列程序段汇编后,从3000H开始各有关存储单元的内容是什么?&&&&&&&&&&&&&&&&&&&&&&&&&& ORG&&&&&&&& 3000H&&&&&&&& TAB1:&&&&&&& EQU&&&&&&& 1234H&&&&&&&& TAB2:&&&&&&& EQU&&&&&&& 5678H&&&&&&&&&&&&&&&&&&&&&&&&&& DB&&&&&&&&&&&& 65,13,"abcABC"&&&&&&&&&&&&&&&&&&&&&&&&&& DW&&&&&&&&&&& TAB1,TAB2,9ABCH&&&& 3000H: 65&&&& 3001H: 13&&&& 3002H: ‘a’&&&& 3003H: ‘b’&&&& 3004H: ‘c’&&&& 3005H: ‘A’&&&& 3006H:’B’&&&& 3007H: ‘C’&&&& 3008H: 34H&&&& 3009H: 12H&&&& 300AH: 78H&&&& 300BH: 56H&&&& 300CH: 0BCH&&&& 300DH: 9AH14.为了提高汇编语言程序的效率,在编写时应注意哪些问题?(1) 把要解决的问题化成一个个具有一定独立性的功能模块,各模块尽量采用子程序完成其功能。(2) 力求少用无条件转移指令,尽量采用循环结构。(3) 对主要的程序段要下功夫精心设计,这样会收到事半功倍的效果。(4) 能用8位数据解决问题的就不要使用16位数据。(5) 累加器是信息传递的枢纽,在调用子程序时应通过累加器传送子程序的参数,通过累加器向主程序传送返回参数。所以,在子程序中一般不把累加器推入堆栈。若需保护累加器的内容时,应先把累加器的内容存入其他寄存器单元,然后再调用子程序。(6)为了保证程序运行的安全可靠,应考虑使用软件抗干扰技术,如数字滤波技术、指令冗余技术、软件陷井技术,用汇编语言程序实现这些技术,不需要增加硬件成本,可靠性高,稳定性好,方便灵活。15.试编写8字节外部数据存储器到内部数据存储器的数据块传送程序,外部数据存储器地址范围为40H~47H,内部数据存储器地址范围为30H~37H。MOV R3,#8&&&& MOV R0,#40H&&&& MOV R1,#30HLOP1:MOVX A,@R0&&&&& MOV @R1,A&&&&& INC R0&&&&& INC R1&&&&& DJNZ R3,LOP116.试编写8字节外部程序存储器到内部数据RAM的传送程序,外部程序存储器地址为2040H~2047H,内部RAM地址为30H~37H。参看15题答案(提示:外部程序存储器地址为16位地址:2040H~2047H,间接寻址采用DPTR)17.试编程使内部RAM的20H~4FH单元的数据块按降序排列。&& 参看23题答案(提示:本题对20H~4FH单元(48个)数据降序排列)。18.内部RAM的20H单元开始有一个数据块,以0DH为结束标志,试统计该数据块长度,将该数据块传送到外部数据存储器7E01H开始的单元,并将长度存入7E00H单元。&&&&& MOV& R0, #20H&&&&& MOV& DPTR, #7E01HLOP:& MOV& A, @R0&&&&& MOV& 60H,ASUBB& A, #0DH&&&&& JZ&&&& LOP1&&&&& MOV& A,60H&&&&& MOVX& @DPTR, AINC&&& R3&&&&& INC&&& R0&&&&& INC&&& DPTR&&&&& AJMP&& LOPLOP1: MOV&& DPTR, #7E00H&&&&& MOV&& A,R3&&&&& MOVX& @DPTR, A&&&&& END19.试编写一个用查表法查0~9字形7段码(假设表的首地址为TABLE)的子程序,调用子程序前,待查表的数据存放在累加器A中,子程序返回后,查表的结果也存放在累加器A中。SQR1: MOV&& DPTR,#TABLE&&&&& MOVC& A, @A+DPTR&&&&& RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H& ; 0~9的字形显示段码(LED共阳极。DB 92H,82H,F8H,80H,90H&20.内部RAM的DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM+1单元。&&&&&& MOV& R0,#DATA&&&&&& MOV& R3,#0AH&&&&&& MOV& A,#0LOP:& ADD& A,@R0&&&&&& MOV& R4,A&&&&&& ADDC& A, #0&&&&&& MOV& R5,A&&&&&& INC&&& R0&&&&&& DJNZ& R3, LOP&&&&&& MOV& SUM,R4&&&&&& MOV& SUM+1,R5&&&&&&& END21.内部RAM的DATA1和DATA2单元开始存放着两个等长的数据块,数据块的长度在LEN单元中。请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。&&&&&&&& MOV& R0,#DATA1&&&&&&&& MOV& R3, LEN&&& LOP:& MOV A, @R0&&&&&&&& CJNZ A,DATA2, LOP1&&&&&&&& INC R0&&&&&&&& INC DATA2&&&&&&&& DJNZ R3,LOP&&&&&&&& MOV A,#0FFH&&&&&&&& MOV RESULT,A&&&&&&&& AJMP LOP2&&& LOP1:MOV A,#0&&&&&&&& MOV RESULT, A&&& LOP2: AJMP LOP2&&&&&&&& END22.有一输入设备,其端口地址为20H,要求在1秒钟时间内连续采样10次读取该端口数据,求其算术平均值,结果存放在内部RAM区20H单元。 &&&&&&& MOV R0,#20H&&&&&&& MOV R2,#0&&&&&&& MOV A,#0&&&&&&& MOV R4,#0LOP : MOV R3,#0AH&&& IN :& ACALL& DELAY&&&& MOVX& A, @R0&&&& MOV& R2 , A&&&& MOV A, R4&&&& ADD A,& R2&&&& MOV& R4, A&&&& DJNZ& R3,& IN&&&& MOV& B,#0AH&&&& DIV&& AB&&&& MOV 20H,A&&&& AJMP LOP&&&&&&& DELAY:& MOV&& R5,#64H&&&&&&&&&&&&&&& 延时时间为0.1s的子程序:LOP1:&&& MOV&& R7, #0FFH&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& LOOP:&&&&&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& NOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& DJNZ&& R7, LOOPDJNZ&& R5,LOP1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& RET&&&&&&&& END&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 23.编写子程序,将内部RAM区以30H为起始地址的连续10个存储单元中的数据,按照从小到大的顺序排序,排序结果仍存放在原数据区。采用冒泡法排序:冒泡排序法的基本算法是:N个数排序,从数据存放单元的一端(如起始单元)开始,将相邻二个数依次进行比较,如果相邻两个数的大小次序和排序要求一致,则不改变它们的存放次序,否则相互交换两数位置,使其符合排序要求,这样逐次比较,直至将最小(降序)或最大(升序)的数移至最后。然后,再将n-1个数继续比较,重复上面操作,直至比较完毕。可采用双重循环实现冒泡法排序,外循环控制进行比较的次数,内循环实现依次比较交换数据。程序如下:ORG&&&&&&&&&&&&&&&&&& 0000HBLOCK&&&& EQU&& 30H&&&&&&&&&&&&&&&&&& ;设BLOCK为30H单元&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& MOV&&&&&&&& R7,& #9H&&&&&&&&& ;设置外循环计数器NEXT:&&&&& MOV& A,&& R7MOV& 80H,& A&&&&&&&& &&&&&&&&&&&&&&&&& MOV& R6,&& A&&&&&&&&&&&&&& ;设置外循环计数器&&&&&&&&&&&&&&&&& MOV& R0,& #30H&&&&&&&&&&&& ;设置数据指针COMP:&&&&& MOV& A,& @R0&&&&&&&&&&&&& MOV& R2,& A&&&&&&&&&&&&& INC&&& R0&&&&&&&&&&&&& CLR C&&&&&&&&&&&&& SUBB& A,& @R0&&&&&&&&&&&&& JC&&& LESS&&&&&&&&&&&&& MOV&&&&&&& A,& R2&&&&&&&&&&&&& XCH&&&&&&&& A,& @R0DEC&&&&&&& R0&&&&&&&&&&&&& MOV&&&&&&& @R0,& A&&&&&&&&&&&&& INC&&&&&&&& R0LESS:&&&&&&& DJNZ&&&&&&&& R6,COMP&&&&&&&&&& ;(R6)-1不等于0,转COMP继续内循环MOV&&&&&&&& R0,#30H&&& &&&&&&&&&&&&& DEC&&&&&&&& 80HMOV&&& R6,& 80h&&&&&&&&&&&&& DJNZ&&&&&&& R7,&& COMP&&&&&&&&&&&&& RET&&&&&&&&&&&&& END第四章1.MCS-51系列单片机能提供几个中断源、几个中断优先级?各个中断源的优先级怎样确定?在同一优先级中,各个中断源的优先顺序怎样确定?答:MCS-51系列单片机能提供5个中断源,2个中断优先级。各个中断源的优先级是由特殊功能寄存器IP来确定,IP中和各个中断源对应位为1时,此中断源为高优先级,否则为低优先级。在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。2.简述MCS-51系列单片机的中断响应过程。答:MCS-51系列单片机的中断响应过程是按照以下顺序执行的:开中断-----中断请求------中断判断-------中断响应-------中断返回。3.MCS-51系列单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?答:MCS-51系列单片机的外部中断有电平触发和边沿触发两种方式。是由特殊功能寄存器TCON中IT0,IT1的状态确定的,如:IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求, 否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。4.MCS-51单片机中断响应时间是否固定?为什么?答:MCS-51单片机中断响应时间不固定,因为当中断源向CPU提出中断请求时,CPU正在执行的指令的指令周期是不一样的。5.MCS-51单片机如果扩展6个中断源,可采用哪些方法?如何确定它们的优先级?答:一般可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。6.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?答:当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,当新中断源中断级别比正在执行中断源的中断级别高时可响应新的中断请求,否则不能响应新的中断请求。7.8051单片机有5个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。问以下几种中断优先级顺序的安排(级别由高到低)是否可能?如可能,则应如何设置中断源的中断级别?否则,请叙述不可能的理由。(1)定时器0,定时器1,外中断0,外中断1,串行口中断。可能。其中:定时器0,定时器1为高优先级。(2)串行口中断,外中断0,定时器0,外中断1,定时器1。可能。其中:串行口中断为高优先级。(3)外中断0,定时器1,外中断1,定时器0,串行口中断。不可能。(4)外中断0,外中断1,串行口中断,定时器0,定时器1。可能。其中:外中断0,外中断1,串行口中断为高优先级。(5)串行口中断,定时器0,外中断0,外中断1,定时器1。不可能。(6)外中断0,外中断1,定时器0,串行口中断,定时器1。不可能。(7)外中断0,定时器1,定时器0,外中断1,串行口中断。
可能。其中:外中断0,定时器1为高优先级。第5章习题答案1.8051定时器/计数器有哪几种工作模式?各有什么特点?答:8051定时器/计数器有0,1,2,3四种工作模式。模式0为13位1定时器/计数器,模式1为16位1定时器/计数器,模式2为自动赋初值的8位定时器/计数器,模式3可以增加一个8位定时器(T1没有模式3)。2.8051定时器作定时和计数时,其计数脉冲分别由谁提供?答:8051定时器作定时器时,输入的记数脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器可看作是对单片机机器周期的计数器。8051定时器作计数器时,则对外部事件进行计数。3.8051定时器的门控信号GATE为1时,定时器如何启动?答:8051定时器的门控信号GATE为1时,只有 (或 )引脚为高电平且TR0(或TR1)置1时,相应的T0或T1才能选通工作。4.定时器/计数器0已预置为156,且选定用于模式2的计数方式,现在T0引脚上输入周期为1ms的脉冲,问:(1) 此时定时器/计数器0的实际用途是什么?(2) 在什么情况下,定时器/计数器0溢出?答:(1)此时定时器/计数器0的实际用途是0。1S脉冲信号发生器。&& (2)当T0每记数100次后定时器/计数器0溢出。5.设fosc=12MHz,定时器0的初始化程序和中断服务程序如下:MAIN:&&&&& MOV&&&&&&& TH0, #9DHMOV&&&&&&& TL0, #0D0HMOV&&&&&&& TMOD, #01HSETB&&&&&&& TR0&&&&&&&&&&&&&&&&&&&&&&&&&& …中断服务程序:MOV&&&&&&& TH0, #9DHMOV&&&&&&& TL0, #0D0H…RETI问:(1) 该定时器工作于什么方式?&&& (2) 相应的定时时间或计数值是多少?答:(1)该定时器以模式1工作于定时方式。&& (2)相应的定时时间为25。136ms.6.8051单片机的fosc=6MHz,如果要求定时时间分别位0.1ms和5ms,当T0工作在模式0、模式1和模式2时,分别求出定时器的初值。答:(1)定时时间分别位0.1ms时:模式0初值为8142、模式1初值为65486,模式2初值206。&& (2)定时时间分别位5ms时:模式0初值为5692、模式1初值为63036,模式2此时定时时间不够。7.以定时器1进行外部事件计数,每计数1000个脉冲后,定时器1转为定时工作方式。定时10ms后,又转为计数方式,如此循环不止。设fosc=6MHz,试用模式1编程。解:先确定T1作为计数器时初值为:6H)&&&&&&&&& T1作为定时器时初值为:6H)&&& 程序:SETB& TR1& LOOP: MOV& TMOD,#50H &&&&&&&&& MOV& TH1,#0FCH &&&&&&&&& MOV& TL1,#68H& AA :& JBC&& TF1,AA&&&&&&&&& MOV& TMOD,#10H&&&&&&&&& MOV& TH1,#0E0H&&&&&&&&& MOV& TL1,#78H& BB:&& JBC&& TF1,BB&&&&&&&&& SJMP& LOOP&&&&&&&&& END&&&&&&&& 8.已知8051单片机的fosc=6MHz,试利用T0和P1.0输出矩形波。矩形波高电平宽100μs,低电平宽300μs。解:先确定 T0作为定时器工作于模式2时初值为:高电平为50,低电平为150。采用中断方式编程。&&&&& ORG&& 0000H&&&&& AJMP& MAIN&&&&& ORG&& 001BH&&&&& AJMP& TIM0&&&&&&&&& ORG&& 0030H&MAIN:& MOV& SP,#30H&&&&&&&&&& ; 设置栈底&&&&&&&&& MOV& TMOD,#02H&&&&&&&&& MOV& TL0,#50&&&&&&&&& MOV& IE,#82H&&&&&&&&& SETB&& P1.0&&&&&&&&& SETB&& TR0&&&&&&&&& SJMP&& $&&&&&&& &&&&&&&&& ORG&& 0100H&TIM0:&&& JNB& P1.0, AA&&&&&&&&& CLR& P1.0&&&&&&&&& MOV& TL0,#150&&&&&&&&& RETI&AA:&&&&& SETB& P1.0&&&&&&&&& MOV& TL0,#50&&&&&&&&& RETI&&&&&&&&& END9.设fosc=12MHz,试编写一段程序,功能为:对定时器T0初始化,使之工作在模式2,产生200μs定时,并用查询T0溢出标志的方法,控制P1.1输出周期为2ms的方波。解:先确定 T0作为定时器时初值为:56&& 程序:& MOV& TMOD,#02H&&&&&&&&&& MOV& TL0,#56&&&&&&&&&& MOV& TH0,#56&&&&&&&&&& MOV& R7,#5&&&&&&& ; 设置循环次数&&&&&&&&&& SETB& TR0AA:&&& JBC& TF0,AA&&&&&&&&&&& DJNZ& R7,AA&&&&&&&&&&& CPL& P1.1&&&&&&&&&&& MOV& R7,#5&&&&&&&&&&& SJMP& AA&&&&&&&&&&& END10.已知8051单片机系统时钟频率为6MHz,利用其定时器测量某正脉冲宽度时,采用哪种工作模式可以获得最大的量程?能够测量的最大脉宽是多少?答:首先设置TMOD中GATE为1,以定时方式工作在模式1,外部正脉冲从外部中断引脚引入,可获得最大的量程。&&& 能够测量的最大脉宽为:131ms.第6章习题答案1.异步通信和同步通信的主要区别是什么?MCS-51串行口有没有同步通信功能?答案:异步通信因为每帧数据都有起始位和停止位,所以传送数据的速率受到限制。但异步通信不需要传送同步脉冲,字符帧的长度不受限制,对硬件要求较低,因而在数据传送量不很大。同步通信一次可以连续传送几个数据,每个数据不需起始位和停止位,数据之间不留间隙,因而数据传输速率高于异步通信。但同步通信要求用准确的时钟来实现发送端与接收端之间的严格同步。MCS-51串行口有同步通信功能。2.解释下列概念:(1) 并行通信、串行通信。(2) 波特率。(3) 单工、半双工、全双工。(4) 奇偶校验。答案:(1)并行通信:数据的各位同时进行传送。其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。当数据位数较多和传送距离较远时,就会导致通信线路成本提高, 因此它适合于短距离传输。串行通信:数据一位一位地按顺序进行传送。其特点是只需一对传输线就可实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本,但是串行传送的速度慢。(2)波特率:每秒钟传送的二进制数码的位数称为波特率(也称比特数),单位是bps(bit per second),即位/秒。(3)单工:只允许数据向一个方向传送,即一方只能发送,另一方只能接收。半双工:允许数据双向传送,但由于只有一根传输线,在同一时刻只能一方发送,另一方接收。全双工:允许数据同时双向传送,由于有两根传输线,在A站将数据发送到B站的同时,也允许B站将数据发送到A站。(4)奇偶校验:为保证通信质量,需要对传送的数据进行校验。对于异步通信,常用的校验方法是奇偶校验法。采用奇偶校验法,发送时在每个字符(或字节)之后附加一位校验位,这个校验位可以是“0”或“1”,以便使校验位和所发送的字符(或字节)中“1”的个数为奇数——称为奇校验,或为偶数——称为偶校验。接收时,检查所接收的字符(或字节)连同奇偶校验位中“1”的个数是否符合规定。若不符合,就证明传送数据受到干扰发生了变化,CPU可进行相应处理。3.MCS-51串行口控制寄存器SCON中SM2、TB8、RB8有何作用?主要在哪几种方式下使用?答案:SM2:多机通信控制位,主要在方式1、2、3下使用;TB8:存放发送数据的第9位,主要在方式2、3下使用;RB8:存放接收数据的第9位或停止位,主要在方式1、2、3下使用。4.试分析比较MCS-51串行口在四种工作方式下发送和接收数据的基本条件和波特率的产生方法。答案:发送数据的基本条件:方式0、1、2、3:CPU执行一条将数据写入发送缓冲器SBUF的指令;接收数据的基本条件:方式0:用软件使REN=1(同时RI=0);方式1:用软件使REN=1,一帧数据接收完毕后,必须同时满足以下两个条件:①RI=0;②SM2=0或接收到的停止位为1,这次接收才真正有效,将8位数据送入SBUF,停止位送RB8,置位RI。否则,这次接收到的数据将因不能装入SBUF而丢失。方式2、3:软件使REN=1,同时满足以下两个条件:① RI=0;② SM2=0或接收到的第9位数据为1(SM2=1),则这次接收有效,8位数据装入SBUF,第9位数据装入RB8,并由硬件置位RI。否则,接收的这一帧数据将丢失。波特率的产生方法:在方式0下,串行口的波特率是固定的,即波特率=fosc /12;在方式1、3下,串行口波特率由定时器T1的溢出率和SMOD值同时决定。相应公式为:波特率=2SMOD×T1溢出率/32;在方式2下,串行口的波特率可由PCON中的SMOD位控制:若使SMOD=0,则所选波特率为fosc/64;若使SMOD=1,则波特率为fosc/32。即2SMOD64×fosc波特率=5.为何T1用作串行口波特率发生器时常用模式2?若fosc=6MHz,试求出T1在模式2下可能产生的波特率的变化范围。答案:定时器T1作为波特率发生器可工作于模式0、模式1和模式2。其中模式2在T1溢出后可自动装入时间常数,避免了重装参数,因而在实际应用中除非波特率很低,一般都采用模式2。若fosc=6MHz,T1在模式2下可能产生的波特率的变化范围为:61.04 bps ~ 15625 bps。6.简述多机通信原理。答案:当主机选中与其通信的从机后,只有该从机能够与主机通信,其他从机不能与主机进行数据交换, 而只能准备接收主机发来的地址帧。上述要求是通过SCON寄存器中的SM2和TB8来实现的。当主机发送地址帧时使TB8=1,发送数据帧时使TB8=0,TB8是发送的一帧数据的第9位,从机接收后将第9位数据作为RB8,这样就知道主机发来的这一帧数据是地址还是数据。另外,当一台从机的SM2=0时,可以接收地址帧或数据帧,而当SM2=1时只能接收地址帧,这就能实现主机与所选从机之间的单独通信。7.试用8051串行口扩展I/O口,控制16个发光自右向左以一定速度轮流发光,画出电路并编写程序。答案:电路如下:程序如下:ORG 0000H&&&&&&&&&&&&& AJMP&&& MAINORG&&&&&&&&& 0023HAJMP&&&&&&& SBS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 转向串行口中断服务程序ORG&&&&&&&&& 2000HMAIN:&& MOV&&&&&& SCON, #00H&&&&&&&&&&&&&&&&&&&&&&& ; 串行口设置为方式0MOV&&&&&&& A, #01H&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 最右边一位发光二极管先亮CLR&&&&&&&&&& P1.0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 关闭并行输出,熄灭显示CLR&&&&&&&&&& P1.1& MOV&&&&&&& SBUF,A&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 开始串行输出LOOP:&&&&&& SJMP&&&&&&&& LOOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 等待中断SBS:&&&&&&&&& INC&&&&& R0CJNE&&&& R0, #11H, DSPMOV&&&& R0, #01HDSP :&& CJNE&&&& R0, #08H, DSPRSETB P1.1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 启动高8位并行输出DSPR: SETB P1.0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 启动低8位并行输出ACALL&&&& DELY&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 显示延迟1sCLR&&&&&&&&&& TI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 清发送中断标志RL&&&&&&&&&&&& A&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 准备点亮下一位CLR&&&&&&&&&& P1.0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 关闭并行输出,熄灭显示CLR&&&&&&&&&& P1.1& MOV&&&&&&& SBUF, A&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 串行输出ZDFH:&& RETIDELY:&&&&&& MOV&&&&&&& R2, #05H&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 延时1s子程序(fosc=6MHz)DELY0:&&&& MOV&&&&&&& R3, #0C8HDELY1:&&&& MOV&&&&&&& R4, #0F8HNOPDELY2:&&&& DJNZ&&&&&&&& R4, DELY2DJNZ&&&&&&& R3, DELY1DJNZ&&&&&&& R2, DELY0RETEND8.试设计一个8051单片机的双机通信系统,串行口工作在方式1,波特率为2400bps,编程将甲机片内RAM中40H~4FH的数据块通过串行口传送到乙机片内RAM的40H~4FH单元中。答案:双方约定的通信协议如下:甲机先发送请求乙机接收信号“0AAH”,乙机收到该信号后,若为准备好状态,一个则发送数据“0BBH”作为应答信号,表示同意接收。当甲机发送完16个字节后,再向乙机发送一个累加校验和。校验和是针对数据块进行的,即在数据发送时,发送方对块中的数据简单求和,产生一个单字节校验字符(校验和),附加到数据块结尾。在数据接收时,接收方每接收一个数据也计算一次校验和;接收完数据块后,再接收甲机发送的校验和,并将接收到的校验和与乙机求出的校验和进行比较,向甲机发送一个状态字,表示正确(00H)或出错(0FFH),出错则要求甲机重发。甲机收到收到乙机发送的接收正确应答信号(00H)后,即结束发送,否则,就重发一次数据。甲机采用查询方式进行数据发送,乙机采用中断方式进行数据接收。双方约定传输波特率为2400bps,两机主频均为11.059MHz,双机串行口都工作于方式1,查表6-2可知SMOD=0,定时器T1采用工作模式2,初值为F4H。甲机发送子程序:ORG&&&&&&&&& 2000HSEND:&&&&&& MOV&&&&&&& TMOD, #20H&&&&&&&&&&&&&&&&&&&&&& ; 定时器1设为模式2MOV&&&&&&& TL1, #0F4HMOV&&&&&&& TH1, #0F4H&&&&&&&&&&&&&&&&&&&&&&&& ; 置定时器初值SETB&&&&&&& TR1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 启动T1MOV&&&&&&& SCON, #50H&&&&&&&&&&&&&&&&&&&&&&& ; 设串行口为方式2MOV&&&&&&& PCON, #00H&&&&&&&&&&&&&&&&&&&&&&& ; SMOD=0TLLS:&&& MOV&&&&&&& SBUF, #0AAH&&&&&&&&&&&&&&&&&&&& ; 发送请求接收信号WFS1:&&& JBC&&&&&&&&& TI, RYD1&&&&&&&&&&&&&& ; 等待发送SJMP&&&& WFS1RYD1:&&& JBC&&&&&&&&& RI, RYD2&&&&&&&&&&&&&& ; 等待乙机回答SJMP&&&& RYD1RYD2:&&& MOV&&& A, SBUF&&&&&&&&&&&&&&& ; 接收应答信号XRL&&&& A, #0BBH JNZ&&&&& TLLS&&&&&&&&&&&&&&&&&& ; 乙机未准备好,继续联络SDD1:&&& MOV&&&&&& R0, #40H&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 首地址40H→R0MOV&&&&&&& R1, #10H&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 数据个数→R1MOV&&&&&&& R2, #00H&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 清校验和寄存器SDD2:&&& MOV&&&&&&& SBUF, @R0&&&&&&&&&&&&&&&&&&&&&&&& ; 发送一个数据MOV&&&&&&& A, R2ADD&&&&&&&& A, @R0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 求校验和MOV&&&&&&& R2, A&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 保存校验和INC&&&&&&&&& R0 WFS2:&&& JBC&&&&&&&&& TI, SDD3&&&&&&&&&&&&&&& ; 等待发送SJMP&&&& WFS2SDD3:&&& DJNZ&&&&&&& R1, SDD2&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 数据块是否发送完MOV&&&&&&& SBUF, R2&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 发送校验和WFS3:&&&&&& JBC&&&&&&&&&& TI, RYD3 SJMP&&&& WFS3 RYD3:&&&&&& JBC&&&&&&&&&& RI, RYD4&&&&&&&&&&&&&& ; 等待乙机回答SJMP&&&&&&& RYD3RYD4:&&& MOV&&&&&&& A, SBUFJNZ&&&&&&&&& SDD1&&&&&&&&&&&&&&&&& ; 回答出错则重发RET乙机接收子程序:ORG&&&&&&&&& 2000HRECV:&&&&&& MOV&&&&&&& TMOD, #20H&&&&&&&&&&&&&&&&&&&&&& ; 定时器1设为模式2MOV&&&&&&& TL1, #0F4HMOV&&&&&&& TH1, #0F4H&&&&&&&&&&&&&&&&&&&&&&&& ; 置定时器初值SETB&&&&&&& TR1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 启动T1MOV&&&&&&& SCON, #50H&&&&&&&&&&&&&&&&&&&&&&& ; 设串行口为方式2MOV&&&&&&& PCON, #00H&&&&&&&&&&&&&&&&&&&&&&& ; SMOD=0MOV&&&&&&& R0, #40H&&&&&&&&&&&&&&&&&&&&&&&&& ; 首地址40H→R0MOV&&&&&&& R1, #10H&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 数据个数→R1MOV&&&&&&& 50H, #00H&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 清校验和寄存器SETB&&&&&&& 7FHSETB&&&&&&& 7EH&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 标志位初始置1SETB&&&&&&& ES&&&&&&&&&&&&&&&&&&&& ; 允许接收中断SETB&&&&&&& EA&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 开中断LOOP:&&&&&& SJMP&&&&&&&& LOOP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 等待中断中断服务子程序:CLR&&&&&&&& EA CLR&&&&&&&& RI&&&&&&&&&&&&&&&&&&&&& ; 清中断JB&&&&&&&&&& 7FH, RCMD&&&&&&&&&&&&&&&&&&&&&&&& ; 是请求接收信号吗JB&&&&&&&&&& 7EH, DATA&&&&&&&&&&&&&&&&&&&&&&&& ; 是数据块吗MOV&&&&&&& A, SBUF&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 接收校验和CJNE&&&&&&& A, 50H, ERR&&&&&&&&&&&&&&&&&&&&&&& ; 判断发送是否正确MOV&&&&&&& A, #00H MOV&&&&&&& SBUF, A&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 正确,发00HWFS1:&&& JNB&&&&&&&&& TI, WFS1&&&&&&&&&&&&&&& ; 等待发送CLR&&&&&&&& TISJMP&&&&&&& RETNERR:&&&& MOV&&&&&&&& A, #0FFH MOV&&&&&&& SBUF, A&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 出错,发0FFHWFS2:&&& JNB&&&&&&&&& TI, WFS2&&&&&&&&&&&&&&& ; 等待发送CLR&&&&&&&& TISJMP&&&&&&& AGANRCMD:&& MOV&&&&&&& A, SBUF&&&&&&&&&&&&&&& ; 接收甲机请求信号XRL&&&&&&&&& A, #0AAH JZ&&&&&&&&&&& TYDX SJMP&&&&&&& RETNTYDX:&& MOV&&&&&&&&&&&&&&&&& SBUF, #0BBH&&&&&&&&&& ; 发送应答信号0BBHWFS3:&&& JNB&&&&&&&&& TI, WFS3&&&&&&&&&&&&&&& ; 等待发送CLR&&&&&&&& TICLR&&&&&&&& 7FHSJMP&&&&&&& RETNDATA:&& MOV&&&&&&&&&&&&&&&&& A, SBUF&&&&&&&&&&&&&&& ; 接收数据MOV&&&&&&& R0, AINC&&&&&&&&& DPTRADD&&&&&&&& A, 50H&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; 求校验和MOV&&&&&&& 50H, A&
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:}

我要回帖

更多关于 ram容量3gb 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信