《单片机原理与应用作业答案(18页).doc》由会员分享,可在线阅读,更多相关《单片机原理与应用作业答案(18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-单片机原理与应用作业答案-第 18 页作业答案0-1绪论1单片机是把组成微型计算机的各功能部件即(微处理器(CPU)、(存储器(ROM与RAM)、(总线)、(定时器/计数器)、(输入/输出接口(I/O口)及(中断系统)等部件集成在一块芯片上的微型计算机。2什么叫单片机?其主要特点有哪些?解:将微处理器(CPU)、存储器(存放程序或数据的ROM与RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统与其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度
2、高、体积小、性价比高、应用广泛、易于产品化等。第1章 MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线与数据总线之间有什么关系?其地址总线与数据总线各有多少位?对外可寻址的地址空间有多大?解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输入驱动器与输入缓冲器。通常把4个端口称为P0P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地
3、址线与双向数据总线。MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。25. 开机复位后,CPU使用的是哪组工作寄存器(R0-Rn)?它们的地址是什么?CPU如何确定与改变当前工作寄存器组(R0-Rn)?解:开机复位后,CPU使用的是第组工作寄存器。它们的地址是00H07H。CPU通过对程序状态字PSW中RS1与RS0的设置来确定与改变当前工作寄存器组。27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,
4、定义为OSC时钟频率的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍,机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51的指令可能包括14个不等的机器周期。当MCS-51的主频为12MHz时,一个机器周期为1ms。执行一条指令需要的最长时间为4ms。第2章 MCS-51单片机指令系统与汇编语言程序设计4. 假定累加器A中的内容为30H,执行指令1000H:MOVC A,A
5、+PC后,把程序存储器( 1031H )单元的内容送入累加器A中。7. 指出下列各指令在程序存储器中所占的字节数(1)MOV DPTR,#1234H 3字节(2)MOVX A, DPTR 1字节(3)LJMP LOOP 3字节(4)MOV R0,A 1字节(5)AJMP LOOP 2字节(6)MOV A,30H 2字节(7)SJMP LOOP 2字节(8)MOV B,#30H 2字节15设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中的内容将有何变化?PUSH 30H PUSH 31H
6、POP DPLPOP DPHMOV 30H, #00H MOV 31H, #0FFH解:结果为: 61H、62H单元为堆栈单元,其内容已被弹出栈。 (30H)=00H (31H)=0FFH (DPTR)=2410H(SP)=60H17完成以下的数据传送过程(1)R1的内容传送到R0。(2)片外RAM 20H单元的内容送R0。(3)片外 RAM 20H单元的内容送片内RAM 20H单元。(4)片外RAM 1000H单元的内容送片内 RAM 20H单元。(5)ROM 2000H单元的内容送R0。(6)ROM 2000H单元的内容送片内RAM 20H单元。(7)ROM 2000H单元的内容送片外RA
7、M 20H单元。解:(1)R1的内容传送到R0 ; MOV A, R1 MOV R0, A(2)片外RAM 20H单元内容送R0 ; MOV R1, #20H MOVX A, R1 MOV R0, A(3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV R0, #20H MOVX A, R0 MOV 20H, A(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, DPTR MOV 20H, A(5)ROM 2000H单元的内容送R0单元; CLR A MOV DPTR, #2000H MOVC A,A+DPT
8、R MOV R0, A(6)ROM 2000H 单元的内容送片内RAM 20H单元; CLR A MOV DPTR, #2000H MOVC A,A+DPTRMOV 20H, A(7)ROM 2000H单元的内容送片外RAM 20H单元。 CLR A MOV DPTR, #2000H MOVC A,A+DPTR MOV R0, #20H MOVX R0, A19编程将片内RAM的40H60H单元中内容送到片外RAM以3000H开始的单元中。并将原片内RAM数据块区域全部清0。解: ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP, #60HMOV R7,#21HMO
9、V R1,#40HMOV DPTR,#3000HLOOP: MOV A,R1MOVX DPTR,A MOV R1, #00HINC R1INC DPTRDJNZ R7,LOOPSJMP $END23设有100个有符号数,连续存放在片外RAM以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数。解: ORG 0000HLJMP MAINORG 0030HMAIN:MOV R2,#100MOV R3,#00HMOV R4,#00HMOV R5,#00HMOV DPTR,#2000HLOOP:MOVX A,DPTRCJNE A,#00H,NET1INC R3SJMP NET3NET1:
10、JB ACC.7 NET2INC R4SJMP NET3NET2:INC R5NET3:INC DPTRDJNZ R2,LOOP SJMP $END24试编一查找程序,从外部RAM首地址为2000H、长度为9FH的数据块中找出第一个ASCII码A,将其地址送到20A0H与20A1H单元中。解: ORG0000HLJMPMAINORG0030HMAIN: MOV SP, #60HMOVDPTR,#2000H MOVR7,#9FHLP0: MOVX A,DPTR CJNE A, #41H, LP1 MOVR2,DPL MOVR3,DPH MOVDPTR,#20A0H MOV A, R2 MOVXD
11、PTR,AINC DPTR MOV A, R3 MOVXDPTR,A SJMP LP2LP1: INC DPTRDJNZR7, LP0LP2: RETEND27编程实现将片外RAM中2400H2450H单元中的数传送到2500H2550H单元中。 解: ORG0000HLJMPMAINORG0030HMAIN: MOVR7,#51HMOVDPTR, #2400HLOOP: MOVXA,DPTRMOVDPH, #25HMOVXDPTR,A MOVDPH, #24HINCDPTRDJNZR7 ,LOOPSJMP$END另一种方法:ORG0000HLJMPMAINORG0030HMAIN: MOV3
12、0H,#24HMOV31H,#00HMOV32H,#25HMOV33H,#00HMOVR2,#51HLOOP: MOVDPH,30HMOVDPL,31HMOVXA,DPTRMOVDPH,32HMOVDPL,33HMOVXDPTR,AINC31HINC33HDJNZR2,LOOPSJMP$END第三章作业答案6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2 定时)。27请写出为低电平触发的中断系统初始化程序。解:为低电平触发的中断系统初始化程序如下:ORG 0000HLJMP MAINORG 0013HLJMP INTN1ORG 0100HMAI
13、N:MOV SP,#60HSETB EASETB EX1 ; 开中断CLR PX1 ; 令为低优先级CLR IT1 ; 令为电平触发SJMP $END28说明MCS-51单片机响应中断后,中断服务的入口地址。 解:中断服务程序的入口地址如下表:中断源中断矢量外部中断0()0003H定时器T0中断000BH外部中断1()0013H定时器T1中断001BH串行口中断0023H36使用一个定时器,如何通过软硬结合方法实现较长时间的定时?解: 设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。37利用定时器输出周期为2 ms的方波, 设单片机晶振频率为 6
14、MHz。试编程实现之。解:选用定时器/计数器T0 作定时器, 工作在方式1,输出为P1.0 引脚, 2 ms 的方波可由 1 ms的高低电平相间隔而成, 因而只要每隔1 ms对 P1.0 取反一次即可得到这个方波。初值的计算如下:ST0=12/(6106)= 2106STC=M-T/T0=2161103/2106=65536500=65036=FE0CH当定时器/计数器采用方式0时,初值为:TC=M-T/T0=2131103/2106=8192500=7692=1E0CH,则真正的16位计数初值为:F00CH(高8位,低5位)程序如下:ORG 0000H LJMP START ORG 000B
15、HLJMP T0INT ; T0中断入口ORG 0030HSTART:MOV SP, #60H ; 初始化程序MOV TL0, #0CH; T0赋初值MOV TH0, #0FEHMOV TMOD, #01H ; 定时器/计数器0工作于方式1SETB TR0 ; 启动T0SETB ET0 ; 开T0中断SETB EA ; 开总允许中断SJMP $ T0INT: PUSH ACC PUSH PSWCPL P1.0MOV TL0, #0CHMOV TH0, #0FEHSETB TR0 ; 启动T0 POP PSW POP ACCRETI END当采用查询方式时:兰色字部分应该为:LP1: JBC T
16、F0, LP2 SJMP LP1LP2: CPL P1.0 MOV TL0, #0CHMOV TH0, #0FEHSETB TR0SJMP LP1END48某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。解:11(位)3600(字符/分钟)=39600b/分钟=660b/s (方式3为每个字符11位)。49利用8051串行口控制8位发光二极管工作,要求发光二极管每1s交替地亮、灭,画出电路图并编写程序。 解: 主程序框图如下:程序如下:ORG0040H MOVSCON,#00H MOVSBUF,#0FFH SETBCMOV00H,CAA: ACALLDELAYCP
17、L 00HMOVC,00HJC BBMOVSBUF,#00HSJMP CCBB:MOVSBUF,#0FFHCC:AJMPAADELAY: MOV R7,#8D1:MOV R6,#250D2:MOV R5,#250D3:DJNZ R5,D3DJNZ R6,D2DJNZ R7,D1 RET END第四章作业答案16 MCS-51单片机系统中,片外程序存储器与片外数据存储器共用16位地址线与8位数据线,为何不会产生冲突?解:程序存储器与数据存储器虽然共用16位地址线与8位数据线,但由于数据存储器的读与写由与信号控制,而程序存储器由读选通信号控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处
18、于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。18某单片机应用系统,需扩展2片8KB的EPROM与2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。解:硬件连接电路图如图4.18所示。各芯片的地址范围为: 2764(1#):0000H1FFFH 2764(2#):2000H3FFFH6264(1#):4000H5FFFH 6264(2#):6000H7FFFH图4.18 4.18题硬件连接电路图218255A的端口地址为7F00H7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。解: 程序如下:MOVDPTR,#7F03HMOVA
19、,#10010100BMOVDPTR,A25使用8255A或者8155的B端口驱动红色与绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。解:电路连接图如图4.25所示。图4.25 4.25题硬件连接电路图其中,PB0PB3接红色发光二极管,PB4PB7接绿色发光二极管。设MCS-51单片机主频为12MHz。程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #80
20、H MOVX DPTR, A; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮LP1: MOVX DPTR, A ; 置红色发光二极管亮 LCALL DELAY ; 调用1S延时子程序 CPL A ; 置发光二极管亮反色 LJMP LP1 ; 循环执行 DELAY: MOV R7,#8 ; 1S延时子程序D1:MOV R6,#250D2:MOV R5,#250D3:DJNZ R5,D3DJNZ R6,D2DJNZ R7,D1RETEND 采用定时器T0方式1中断实现1S定时。 1S=50mS20次
21、。 T0方式1实现50mS定时,初值=216-50mS/1S=15536=3CB0H(1S=20mS50次,初值=216-20mS/1S=45536=B1E0H)ORG 0000HLJMP STARTORG 000BHLJMP TT0ORG 1000 HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #80H MOVX DPTR, A ; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮MOV R2, AMOVX DPTR, A
22、; 置红色发光二极管亮MOV 30H, #00H ; 次数计数单元初值 MOV TL0, #0B0H ; T0赋初值MOV TH0, #3CHMOV TMOD, #01H ; 定时器/计数器0工作于方式1SETB TR0 ; 启动T0SETB ET0 ; 开T0中断SETB EA ; 开总允许中断LP1:SJMP LP1 ; 等待定时器中断TT0:PUSH ACC PUSH PSW INC 30H MOV A, 30H CJNE A, #20, LP2 MOV A, R2 CPL A MOV R2, A MOVX DPTR, A MOV 30H, #00HLP2: MOV TL0, #0B0H
23、 ; T0赋初值 MOV TH0, #3CH POP PSW POP ACC SETB TR0RETIEND26简述RS-232C, RS-422A及RS-485串行通信接口的特点,画出在双机通信情况下,3个串行通信接口的接口电路。解:RS-232C采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的,采用负逻辑,其驱动器负载为3kW7kW。由于RS-232C发送电平与接收电平的差仅为23V,所以其共模抑制能力差,再加上双绞线上的分布电容,因此,RS-232C适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。RS-422由RS-232发展而来,RS-42
24、2定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到1220m(速率低于100kb/s时),并允许在一条平衡总线上最多连接10个接收器。RS-422是一种单机发送、多机接收的单向、平衡的通信总线标准。RS-485是在RS-422的基础上制定的标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485总线标准。它采用平衡发送与差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平。具有较高的灵敏度,能检测低至200mV的电压,具有抑制共模干扰的能力,数据传输可达千米以上。RS-232的双机通信接口
25、电路如图4.26-1所示。 图4.26-1 4.26题硬件连接电路图RS-422与RS-485的双机通信接口电路如图4.26-2所示。 图4.26-2 4.26题硬件连接电路图31何谓“看门狗”?它如何实现对系统程序的监控?解:“看门狗(WDT)”,也称为程序监视定时器。WDT的作用是通过不断监视程序每周期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了“死循环”,并对进入“死循环”的程序作出系统复位处理。在程序中设置适当的指令,清WDT,就可监视微处理器的工作。例如在主程序开始时,将WDT置位,如果主程序执行过程中产生死循环,就无法清WDT,超过WDT的定时时间时,WDT就会
26、对微处理器发出复位信号。从而实现对系统程序的监控。32说明I2C总线的特点以及在单片机中实现该总线的方法。解: I2C总线是由串行数据线SDA与串行时钟线SCL构成的,可发送与接收数据。它允许若干兼容器件共享总线。所有挂接在I2C总线上的器件与接口电路都应具有I2C总线接口,且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的地址信号寻址,不需要片选线。I2C总线最主要的优点是其简单性与有效性。占用的空间小,降低了互连成本。总线的长度可高达7.6m,并且能够以10kbps的最大传输速率支持40个组件。支持多主控器件,其中,任何能够进行发送与接收的设备都可以成为主器件。主控能够控制
27、信号的传输与时钟频率。当然,在某时刻只能有一个主控器件。在单片机控制系统中,广泛使用I2C器件。如果单片机自带I2C总线接口,则所有I2C器件对应连接到该总线上即可;若无I2C总线接口,则可以使用I/O口模拟I2C总线。 使用单片机I/O口模拟I2C总线时,硬件连接非常简单,只需两条I/O口线即可,在软件中分别定义成SCL与SDA。MCS-51单片机实现I2C总线接口电路如图4.32所示。图4.32 4.32题硬件连接电路图电路中单片机的P1.0引脚作为串行时钟线SCL,P1.1引脚作为串行数据线SDA,通过程序模拟I2C串行总线的通信方式。I2C总线适用于通信速度要求不高而体积要求较高的应用
28、系统。第五章作业答案6. 当DAC 0832 D/A转换器的接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为( D )。A:0832H B;FE00H C:FEF8H D;以上三种都可以10简述D/A转换器的主要技术指标。 解:D/A转换器的主要性能指标有:(1)分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。(2)精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程VFS的百分数或最低有效位(LSB)的分数形式表示。(3)线性误差:D/A转换器
29、的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。常以LSB的分数形式表示。(4)转换时间TS(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。22具有8位分辨率的A/D转换器,当输入05V电压时,其最大量化误差是多少?解:对于8位A/D转换器,实际满量程电压为5V,则其量化单位1LSB=5V/256=0.0196V,考虑到A/D转换时会进行四舍五入处理,所以最大量化误差为
30、(1/2)LSB,即0.0098V。23在一个80C51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为05V。试画出有关逻辑电路图,并编写产生矩形波,其波形占空比为1:4,高电平为2.5V,低电平为1.25V的转换程序。解:硬件电路连接图如图5.23所示。图5.23 5.23题逻辑电路图DAC0832的口地址为7FFFH。波形占空比为1:4,高电平波形/低电平波形为1/3。当VO=2.5V时,D=80H;VO=1.25V时,D=40H。 程序如下:ORG 0000H LJMP MAIN ORG0030H MAIN:MOVSP,#60HMOVDPTR,#
31、7FFFH NEXT:MOVA,#80H MOVXDPTR,A ACALLDELAY MOVR4,#03H MOVA,#40H MOVXDPTR,A LOOP:ACALLDELAY DJNZR4,LOOP AJMPNEXT DELAY: RET END24在一个80C51与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H7FFFH。试画出逻辑电路图,并编写程序,每隔1分钟轮流采集一次8个通道数据,8个通道总共采集100次,其采样值存入以片外RAM 3000H开始的存储单元中。解:硬件电路连接图如图5.24所示。图5.24 5.24题逻辑电路图设80C51的时钟频率为12
32、MHz,程序如下:ORG0000HLJMPMAINORG001BHLJMPT1_1ORG0030HMAIN:MOVSP,#60H;设堆栈指针MOVR7,#100;置采集次数MOVR1,#30H;片外RAM地址高位MOVR0,#00H;片外RAM地址低位MOVR2,#20;置入初值20(计1 s)MOVR3,#60;置入初值60(计1 min)MOVTOMD,#10H;定时器T1工作于模式1MOVTH1,#3CH;计数器定时50ms的初值MOVTL1,#0B0HSETBEA;开中断SETBET1;定时器T1允许中断SETBTR1;启动定时器T1LOOP:SJMPLOOP;等待中断DJNZR7,L
33、OOP;是否到100次?SJMP$ORG0100HT1_1:MOVTH1,#3CH;中断服务程序,重新赋计数器初值MOVTL1,#0B0HDJNZR2,RETI_0;1 s未到,返回MOVR2,#20;重新置“1s”计数器初值DJNZR3,RETI_0;1 min未到,返回MOV R3,#60 ;重新置“1min”计数器初值MOVR6,#8;8个通道计数器初值MOVDPTR,#7FF8H;IN0地址LOOP1:MOVXDPTR,A;启动A/D转换JBP1.0,$;判转换是否结束MOVXA,DPTR;读取转换结果PUSHDPH;将通道地址压入堆栈PUSHDPLMOVDPH,R1;将片外RAM地址
34、送DPTRMOVDPL,R0MOVXDPTR,A;将转换结果存入片外RAMINCDPTR;片外RAM地址加1MOVR1,DPH;保存片外RAM地址MOVR0,DPLPOPDPL;恢复通道地址POPDPH ;通道地址加1 INC DPTRDJNZR6,LOOP1;8个通道是否采集结束RETI_0:RETI;中断返回END习题12. CPU由(运算器)与(控制器)组成。12. 采用 8031单片机必须扩展( B )。A:数据存储器 B:程序存储器 C:I/O接口 D:显示接口16. 8051单片机的控制总线信号有哪些?各有何作用?解:控制线一共有6条:(1)ALE/:地址锁存允许/编程线,配合P0
35、口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7P0.0引脚上输出片外存储器低位地址的同时在ALE/上输出一个高电位脉冲,用于把这个片外存储器低位地址锁存到外部专用地址锁存器,以便空出P0.7P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。(2)/Vpp:允许访问片外存储器编程电源线,可以控制8051使用片内ROM还是使用片外。若,则允许使用片内ROM;若则允许使用片外ROM。(3):片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051
36、自动在上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下线均为高电平封锁状态。(4)RST/VPD:复位备用电源线,可以使8051处于复位工作状态。习题22. 在MCS51中,PC与DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。5. 8051执行完MOV A,#08H后,PSW的( D )位被置位。A:C B:F0 C:OV D:P11片内RAM 20H2FH单元中的128个位地址与直接地址00H7FH形式完全相同,如何在指令中区分出位寻址操作与直接寻址操作?解: 位寻址是直接寻址方式的一种。虽然内部RAM位寻址区的位地址范围00
37、H7FH与低128个单元的单元地址范围00H7FH形式完全相同,但是在应用中可以通过以下的方法区分:1. 通过指令操作码(指令的类型)区分:位操作只有17条指令,位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。MOV C,bit CPL bit (C) JB bit,relMOV bit,C ORL C,bit (/bit) JNB bit,relCLR bit (C) ANL C,bit (/bit) JC relSETB bit (C) JBC bit,rel JNC rel位操作只有MOV、 CLR 、SETB、 CPL 、ORL、 ANL 、JB 、JNB、 JBC、
38、 JC、 JNC几种操作码,其中:JB、JNB、JBC、JC、JNC是位寻址特有的。2. 当指令操作码一样时,可通过操作数的表现形式来区分。直接位地址的表示方法有:(1)直接使用位地址形式。如:MOV 00H, C(2)字节地址加位序号的形式。如:MOV 20H.0, C(3)位的符号地址(位名称)的形式。如:ANL C, P(4)字节符号地址(字节名称)加位序号的形式。如:CPL PSW.63. 可通过指令中的累加器区分:位操作中的累加器为C,单元操作中的累加器为A。13在“MOVC A, A+DPTR”与“MOVCA, A+PC”中,分别使用了DPTR与PC作基址,请问这两个基址代表什么地
39、址? 使用中有何不同? 解: 使用A+DPTR基址变址寻址时,DPTR为常数且是表格的首地址,A为从表格首址到被访问字节地址的偏移量。使用A+PC基址变址寻址时,PC仍是下条指令首地址,而A则是从下条指令首地址到常数表格中的被访问字节的偏移量。15设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中的内容将有何变化?PUSH 30H PUSH 31H POP DPLPOP DPHMOV 30H, #00H MOV 31H, #0FFH解:结果为: 61H、62H单元为堆栈单元,其内容已被弹出栈。 (30H)=00