北航单片机原理与应用B选修课习题集开卷的大家看看.docx
《北航单片机原理与应用B选修课习题集开卷的大家看看.docx》由会员分享,可在线阅读,更多相关《北航单片机原理与应用B选修课习题集开卷的大家看看.docx(30页珍藏版)》请在冰豆网上搜索。
![北航单片机原理与应用B选修课习题集开卷的大家看看.docx](https://file1.bdocx.com/fileroot1/2022-12/7/73f53462-8471-42b6-8e83-5cfad90b4716/73f53462-8471-42b6-8e83-5cfad90b47161.gif)
北航单片机原理与应用B选修课习题集开卷的大家看看
MCS96单片机(8098)习题
陈博编写
北京航空航天大学
工程训练中心
目录
MCS96单片机习题及答案
习题一8098单片机的系统构成………………………………..……..3
习题二8098单片机指令系统…………………………………...3
习题三8098单片机汇编语言程序设计……………………………....5
习题四8098单片机汇编语言程序设计………………………………..7
习题五8098单片机的扩展技术………………………………………..8
习题六数/模、模/数转换及其8098单片机的接口…………………..10
参考答案………………………………………………………….11
MCS96单片机习题集
习题一8098单片机的系统构成
1.1简述8098单片机CPU主要由那些部件构成?
1.28098单片机中的RALU是_________位?
围绕RALU设计的各寄存器的主要功能有那
些?
1.3简述8098单片机的CPU的A总线和D总线的位数及作用.
1.48098单片机的工作频率范围是从_____到________。
内部时钟分为____、____、____
相时钟,它们分别是外部振荡频率的_______分频?
该内部时钟被称为____________。
1.5已知有一单片机系统外接的振荡器频率为8MHZ,试问,此单片机系统的状态周期为
多少?
1.6单片机的存储空间地址是如何分配的(请用存储空间分配图进行说明)?
请分别写
出8098单片机的存储空间地址范围及空间容量,专用寄存器存储空间地址范围及空
间容量,通用寄存器存储空间地址范围及空间容量。
1.7请说明18H,19H寄存器的用途。
8098单片机的堆栈操作有何特点,堆栈是向高位
地址方向生长还是向低位地址方向生长?
1.8请给出8098单片机的上电/复位的程序入口地址为____________?
芯片配置字节的
地址为__________?
中断向量的地址范围是从______________到_______________。
1.9写出中断向量表中的各个地址所代表的中断方式。
在各个中断向量地址中存放的数
据是___________数据?
1.10请说明单片机中CPU总线与系统总线的不同
1.118098单片机有那几种总线运行方式?
请画出标准总线运行方式下的存储时序图。
说明该时序图与单片机最小系统设计之间的关系。
1.12为什么单片机要设置复位功能?
如何实现单片机系统的复位?
如何设计8098单片
机的复位电路?
请设计出简单的单片机上电、手动复位电路。
1.138098单片机的I/O口包括那些?
简述各I/O口的基本功能。
1.148098单片机的系统控制信号有哪几个?
它们的功能分别是什么?
习题二8098单片机指令系统
2.18098单片机能直接识别的语言是_____________语言,而编程语言则为_______________语言。
2.2机器指令格式中,放在指令的第一个(最前面)字节数据被称为___________码,
它表明了指令_____________________?
2.38098单片机的操作数据类型共有___________种?
它们分别是________________________?
其中,短整型操作数是__________位的______________数?
其取值范围是_______________?
整型数是_______位的_____________数?
其取值范围是_______________________?
2.4对于16位寄存器,要求其低位地址为________________,高位地址为_______________.对于32位寄存器,要求其最低位地址能为________________.
2.5分别写出下列指令中的源操作数和目的操作数以及源操作数所使用的寻址方式。
LDBAL,#0A0H
LDDX,#3000H
MULUDX,AX,BX
LDBAL,[DX]+
SUBDX,12[CX]
ADDAX,1234H[BX]
STBAL,1234H[BX]
LDBAL,1234H[BX]
LDBX,2100H[0]
2.6判断下列指令是否正确,如果不对,请说明错误性质。
LDAX,8000H
LDB6000H,#12
LD[BX],AX
ADDAX,BX,0FFFFH[0]
STBBL,CX+20H
STAX,0A000H
MULU1AH,22H,20H
ADD21H,23H
2.7设3000H单元至3004H单元中的内容依次为01H,11H,02H,22H,和33H,试写出当
最后一条指令执行后,AL,AH,BL,BH,CX,DX及3000H至3004H的内容。
LDDX,#3000H
LDBAL,[DX]+
LDBAH,[DX]+
LDCX,[DX]
LDBBL,02H[DX]
LDBBH,3003H[0]
STCX,02H[DX]
2.8写出下列指令执行后的有关结果。
⑴已知AL=12H
ADDBAL,#88H
AL=,C=,Z=,N=,V=,VT=.
⑵已知BL=30H,DL=27H
SUBBBL,DL
BL=,DL=,C=,Z=,N=,V=,VT=.
⑶已知AL=B5H,C=1
ADDCBAL,#33H
AL=,C=
⑷已知CL=ABH,DL=32H
CMPBCL,DL
CL=,DL=,C=,Z=,N=,V=,VT=
⑸已知BL=7AH,
ANDBBL,#0A7H
BL=,C=,Z=,N=,V=,VT=
2.9试写出实现以下操作要求的指令.
⑴将字节数据12H和35H分别存入3050H单元和3051H单元.
⑵将3000H单元中的数据转送至4500H单元中.
⑶将3000H单元中的数据与3500H单元中的数据交换存放.
⑷将3100H单元和3150H单元中的数据相加后的和值存入3200H单元.
⑸将3200H单元中的数据处理为低4位为0,且将高4位的数据送至3202单元的低4
位.
2.10分别写出以下几个程序段执行以后的结果.
⑴设存储字(3000H)=1234H,(3002H)=3456H,(3004H)=2364H,下面程序段执行以后,BX=?
存储字(3004H)=?
LDBX,#3000
LDAX,[BX]+
ADDAX,{BX}+
STAX,[BX]
⑵请写出执行完以下程序段以后,AL=?
BL=?
BH=?
LDBBL,#03H
LDBBH,#77H
LDBAL,#44H
ANDBAL,BL
ORBAL,BH
XORBBH,BL
⑶若BX=3C46H,下列指令执行后,BX=?
C=?
SHLBX,#02H
SHRBX,#01H
2.11试编写一程序,实现将3100H单元和3101H单元中的数据相加,和值存入3102H单
元。
2.12试用16位加法指令编写一程序,实现将以3000H为起始地址的32位数据与以3004H
为起始地址的32位数据相加,结果存入以3008H为起始地址的单元中。
2.13试编程实现将3100H单元中的D1、D3、D5位置1,其他各位取反。
2.14试用移位和加法指令实现将3000H单元中的数据乘5。
习题三8098单片机汇编语言程序设计
3.1汇编语言程序中,一条语句通常是由____________、_____________、___________、____________、__________五部分构成的.
3.2汇编语言程序中,标号的意义是什么?
书写标号有什么规定?
3.3什么是伪指令?
8098有那些常用的伪指令,它们的功能是什么?
试分别举例说明.
3.4编程实现数据3456789AH与12345678H相减,“差值”存入单片机的通用寄存器BX、AX中,要求程序中写出必要的伪指令。
3.5设3000H和3001H单元中分别存有非压缩BCD码,试编程实现将这两个BCD码拼成
一个压缩的BCD码并存入3002H单元。
(要求3001H单元的BCD码存入3002H单元的
高位。
)
3.6设3000H单元和3001H单元中分别存有一无符号数,试编程找出其中较小数并存入
3002H单元。
3.7在DATA单元中,有一符号数据X,试编程并按以下关系式求出Y值后存入RESU单
元中。
要求程序中写出必要的伪指令,上述符号地址的具体值自定。
1;当X>0
Y={0;当X=0
-1;当X<0
3.8试编程实现将以3000H为首地址的连续100个字节数据传送到以3100H为首地址的
存储区中。
3.9试编程,判断3000H单元中所存的16位数据中有多少位为“1”,并将统计结果存入DX中。
3.10试编写一程序将3000H单元中所存的压缩BCD码转换为ASCII码存入3002H和
3003H单元中。
(高位BCD码存高字节地址)。
3.11试编程计算若干个16位无符号二进制数之和,设数据个数存在3000H单元中,所
计算数据从3002H单元开始。
“和”存入3100H和3101H单元中。
(设和值<65536)
3.12设有两个各有100个字节的无符号数组成的数据块分别存放在自BLOCK1和BLOCK2
单元开始的连续地址单元中,试编程并使用子程序调用的方法,分别找出这两个数
据块中的最大、最小数,存放在MAX1、MIN1、MAX2、MIN2单元中。
(求最大、
最小数以子程序形式写出)
3.13设从BCDD单元开始的连续单元中存放着一组非压缩BCD码,试采用调用子程序方
法,将其转换为ASCII码存放在以ASCD开始的存储区中。
转换数据个数存放在COUN
单元中.BCD码转换为ASCII码功能以子程序形式编写)
3.14在下述程序中画线处,填入适当操作数或指令,以实现程序功能并画出程序流程图
。
程序功能为:
将一组由8位构成的并存放在3000H开始的十六进制数转换为ASCII
码后存放到以3050H为首地址的存储区中。
ORG2080H
LDBCL,#16
LDBX,#3050H
LDDX,#2FFFH
LOOP:
INCDX
LDBAL,[DX]
SHRBAL,#4
SCALLASCH
STBAL,[BX]+
LDBAL,[DX]
ANDBAL,____________
SCALLASCH
STBAL,[BX]+
DJNZCL,LOOP
HALT:
SJMPHALT
ORG2100H
ASCH:
CMPBAL,#10
JNCSDD
ADDBAL,_____________
SDD:
________________________
RET
3.15试在下述程序划线处填写操作数或指令以实现程序功能:
找出一数据块中最大数存
入3000H单元中。
设这一数据块由五符号字节数据组成,存放在以3002H为首地址
的存储区中,数据块长度存放于3001H单元中。
ORG2080H
LDBX,#3001H
LDBAH,[BX]+
LDBAL,_________
LOOP:
INCBX
CMPBAL,[BX]
___________________
LDBAL,[BX]
DECNT:
DJNZAH,LOOP
LDBX,#3000H
STBAL,[BX]
HALTSJMPHALT
习题四8098单片机外围子系统及其应用
4.1中断登记寄存器INT_PENDING有什么功能?
对它进行操作要注意什么问题?
4.2什么是中断屏蔽?
中断屏蔽寄存器INT_MASK的功能是什么?
4.3简述8098单片机响应中断的工作过程.
4.4中断优先的意义是什么?
8098单片机各中断源的中断优先级是否可以改变?
若可以则如
何实现?
4.5中断响应周期是指单片机_____________________________________________.
4.6简述定时器T1、T2及WDT的工作特点。
它们分别应用于什么场合?
4.7已知某单片机系统使用12M的晶振,请计算T1所记的每个数代表的时间为多少?
记
满溢出所代表的时间又为多少?
如果系统晶振为6MHZ,那么T1min和T1max又各为
多少?
4.8试编写一程序,利用T1定时使接在P2.5引脚上的发光二极管亮2秒钟后,熄灭2秒
钟,不断循环。
已知该单片机系统使用12M的晶振。
4.9若外部计数脉冲从HSI.1引入,利用T2对它进行计数。
当P0.7=0启动计数,P0.7=1
则停止计数,每当所记录的脉冲数为32768时,使COUNT寄存器加1,试编写程序
实现。
4.10填空
⑴高速输入部件HSI以定时器_______为时间基准来记录某一外部时间触发的
__________和______________。
⑵HSI工作时,外部事件发射的状态和时刻以_________________的顺序存放在
_______________和_____________寄存器中。
⑶HSI部件中,事件执行的顺序取决于____________________________。
而在HSO部
件中,事件产生的顺序取决于________________________________。
⑷8098中的A/D转换器的启动方式分别有__________________和
___________________.
⑸8098单片机中有两种方式的PWM输出,这两种方式分别是
_________________________和_________________________。
⑹8098单片机的串行通讯共有___________种工作方式,它们分别是
__________________、________________、_____________________、
_________________________。
4.11对HSI_STATUS和HSI_TIME的读取顺序有什么要求?
为什么?
4.12有一单片机系统使用10MHZ的外部振荡器正跳变为一触发事件,通过编程从HSI.0引
脚采集脉冲信号,现已将采集到的8个外部事件的时间数据存放在单片机的存储区中
以DATA开始的一组空间,如表所示
若采用每个正跳变作为一个事件的触发方式时,请计算输入脉冲的周期和频率分别为
多少?
若采用每八个正跳变作为一个事件的触发方式时,请计算输入脉冲的周期和频率又分
别为多少?
DATA
3159H
DATA+1
318BH
DATA+2
31BDH
DATA+3
31EFH
DATA+4
3221H
DATA+5
3253H
DATA+6
3285H
DATA+7
32B7H
4.13试编写一程序测量HSI.0引脚输入的脉冲的周期,已知系统晶振为12M。
(使用查
询和中断方式各编写一个程序)
4.14试说明HSO中的保持寄存器及CAM和HSI中的保持寄存器和FIFO单元有什么不
同。
一周期为131MS,占空比为50%的脉冲系列。
已知系统晶振为12M。
(使用查
询和中断方式各编写一个程序)
4.15HSO可产生几种类型的中断?
它们有什么不同?
4.16试编程满足HSO.0引脚输出一周期为131MS,占空比为50%的系列脉冲.已知系统
晶振为12M。
(使用查询和中断方式各编写一个程序)
4.17请说明软件定时器与T1在使用上有什么不同?
当4个软件定时器同时打开并允许
中断时,在中断程序中,如何判定是由那个软件定时器引起的中断?
4.18设单片机系统的A/D参考电压Vref=5V,当ACH中的某一引脚电压为2V时,经
A/D转换器转换后的数字量为多少?
4.19编写一程序,采用查询方式实现ACH6通道的A/D转换,并按正常数据格式将转换
结果存入寄存器AX中。
4.20已知系统的状态周期为250ns,试编写一程序,在PWM引脚输出一周期为16.384ms
的正向锯齿波。
习题五8098单片机的扩展技术
5.1单片机存储器的扩展编址有那几种方法?
各有什么特点?
5.2试用线选法扩展8K×8位的程序存储芯片,要求选通的地址范围为2000H-
3FFFH。
存储芯片自选,画出扩展逻辑图。
5.3试用地址译码法扩展16K×8位的程序存储芯片,要求选通的地址范围为2000H-
5FFFH。
存储芯片选用2764,画出扩展逻辑图。
5.4试用线选法扩展4个I/O接口,其中两个为输入口,两个为输出口,要求分别占用的
地址范围为8000H、8001H。
存储芯片自选,画出扩展逻辑图。
5.5简述8255A并行接口芯片的工作方式0、工作方式1的工作特点。
5.6对8255A的C口进行操作时,在什么情况下用普通写指令进行输出?
什么情况下用
置位/复位命令进行写操作?
5.7设要求8255A芯片的A口工作在方式0输入,B口工作在方式1输出,C口高4位
为输出,低4位为输入。
控制口地址为B003H,试写出该芯片的初始化程序段。
5.8试画出8255A芯片与8098单片机的接口逻辑图。
5.9若用8255A扩展8098的I/O口,8255的A口用作输入,口线的每一位接一开关。
用B口作输出,输出的每一位接一发光二极管LED。
若要求某开关接“1”时B口
相应位的发光二极管点亮(要求输出为“0”为点亮)。
试画出接口逻辑图并写出相
应的程序。
5.10若要求8098单片机通过8255A芯片与四位七段数码管接口并以动态扫描方式显示
数据。
试编写一程序,在数码管上显示“3579”。
5.118279是一种专用于____________________________________的可编程接口电路.
5.12试写出如图所示存储芯片62128和62256所占用的存储地址范围及芯片选通方式。
5.13试写出如图所示1片RAM存储芯片6264与2片ROM芯片2764各占用的存储地址范
围及芯片选通方式。
习题六数/模、模/数转换及其8098单片机的接口
6.1DAC0832芯片具有什么功能?
有那些起控制作用的引脚信号?
6.2试画出8098单片机与DAC0832单缓冲工作方式的接口电路并编写出一输出幅度为
0-4V,占空比为0.4,周期为0.5S的矩形脉冲系列的程序。
系统时钟为12MHZ。
6.3出ADC0809与8098单片机采用查询方式输入转换结果的接口电路。
若要每隔0.5S
采集通道0的数据5次。
并将结果存入以DATA为首地址的连续5个单元,请编程
实现。
6.4试画出ADC0809与8098单片机采用查询方式输入转换结果的接口电路.若要每隔
0.5S采集通道0的数据5次并将结果存入以DATA为首地址的连续5个单元中,请编
程实现.
参考答案:
习题一8098单片机的系统构成
1.18098单片机CPU主要由寄存器型的算术逻辑单元及CPU总线构成。
单片机特点:
1.217位。
围绕RALU设计的各寄存器的主要功能包括:
暂存寄存器TR具有移位功能,常数寄存器中存有0,1,2等数据,标志寄存器可存入指令运行后的有关状态。
1.3A总线为片内存储器的8位地址总线,用于对片内寄存器寻址。
也用于片外分时传送的地址、数据总线。
D总线为16为数据总线,用于在片内寄存器间传送数据.
1.46M-12M。
A、B、C。
3,状态周期
1.5TS=(3/8×1000000=0.375us(375ns)
1.6单片机的存储空间地址是按照片内、片外特统一编码的形式分配的。
0000H—FFFFH,64K,0000H—0017H,24字节,0018H—00FFH,232字节
1.718H,19H寄存器为堆栈指针,指向所设定的堆栈区的首地址。
8098单片机的堆栈操作为后入先出的操作,堆栈是向低位地址方向生长.
1.82080H,2018H,2000H到200FH
1.92000H定时器中断
2002HA/D中断
2004HHSI中断
2006HHSO中断
2008HHSI.0中断
200AH软件定时器中断
200CH串行口中断
200EH外中断
各类别中断服务程序的首地址.
1.10单片机中CPU总线为内总线,主要用于在CPU与片内寄存器之间传送数据与地址。
系统总线为单片机的外总线,用于单片机与外部扩展存储区及扩展接口之间传送数据
1.114种总线运行方式,分别是:
标准总线运行方式、地址有效运行方式、写选通运行方式、地址有效且写选通运行方式。
标准总线时序图
该时序图为单片机最小系统设计的依据,利用该时序图可分离单片机P3口的数据、地址。
完成系
统设计
1.12设置复位功能是使单片机上电或按下复位按键后使得RESET引脚被强制拉低后的一段时间内,单片机系统于正常工作前在片内建立起一种特定的初始状态,只有以此状态为起点,单片机系统才能进入正常的工作状态.另外,可在单片机受到干扰,系统运行不正常时,通过复位使单片机系统回到正常状态,而不必开关电源。
实现单片机系统的复位,只需在通过简单的电路设计使其RESET引脚接入2Ts以上周期的低电平。
8098单片机的复位电路可为简单的RC充电电路。
简单的单片机上电、手动复位电路:
1.13P0,P2,P3,P4
P0:
为4位口,可分别用于作为AD(ACH4-ACH7)的输入口线和数据输入口线
P2:
为4位多功能选择口P2.5/PWM,P2.0/,P2.1/,P2.2/。
P3:
低8位地址(A0-A7)输出和数据(D0-D7)分时共用总线。
P4:
高8位地址(A8-A15)输出线。
1.14ALE:
P3口地址与数据分离控制信号线、RD:
将外总线数据读入单片机内的控制信号线、
WR:
将单片机片内数据输出到外总线的控制信号线、EA:
片内片外存储区选择控制信号
习题二8098单片机指令系统
2.1机器语言,汇编语言。
2.2操作码,所要进行的操作
2.37,位型,字节型,字型,长字型,短整型,整型,长整型,
8,符号数,-128~+127
16,符号数,-32768~+32767
2.4偶数,奇数。
4整除
2.5单片机寻址,是寻找参与运算的操作数的地址
8098单片机共有6种基本寻址方式
LDBAL,#0A0HAL:
目的操作数,#0A0H:
源操作数,立即寻址方式
LDDX,#3000HDX:
目的操作数,#3000H:
源操作数,立即寻址方式
MULUDX,AX,BXDX:
目的操作数,AX、BX:
源操作数,寄存器寻址方式
LDBAL,[DX]+AL:
目的操作数,[DX]+:
源操作数,自动