单片机(3)
- 格式:doc
- 大小:36.50 KB
- 文档页数:4
第3章习题答案一、选择题1.在中断服务程序中,至少应该有一条( D )。
(A)传送指令(B)转移指令(C)加法指令(D)中断返回指令2.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( C )。
(A)MOV (B)MOVC (C)MOVX (D)以上都行3.JNZ rel指令的寻址方式是( C )。
(A)立即寻址(B)寄存器寻址(C)相对寻址(D)位寻址4.执行LCALL 1020H指令时,MCS-51所完成的操作是( D )。
(A)保护PC (B)PC←1020H(C)保护现场(D)PC+3入栈,PC←1020H5.下面哪条指令产生WR信号( D )。
(A)MOVX A,@DPTR (B)MOVC A,@A+PC(C)MOVC A,@A+DPTR (D)MOVX @DPTR,A6.在执行PUSH ACC指令时,MCS-51完成的操作是( A )。
(A)(SP)←(SP)+1,((SP))←(ACC)(B)(SP)←(ACC),((SP))←(SP)-1(C)(SP)←(SP)-1,((SP))←(ACC)(D)((SP))←(ACC),(SP)←(SP)+17.MCS-51执行完MOV A,#08H后,PSW的哪一位被置位( D )。
(A)C (B)F0 (C)OV (D)P8.指令AJMP的跳转范围是( C )。
(A)256B (B)1KB (C)2KB (D)64KB9.在寄存器间接寻址方式中,指定寄存器中存放的是( B )。
(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量10.执行返回指令时,返回的断点是( C )。
(A)调用指令的首地址(B)调用指令的末地址(C)调用指令下一条指令的首地址(D)返回指令的末地址二、填空题:1.8051指令基本格式由标号、操作码助记符、操作数和注释组成。
2.MOV A,20H源寻址方式为直接寻址。
3.执行ANL A,#0FH指令后,累加器A的高4位=0000B 。
单片机原理及应用(第3版)参考答案《单片机原理及应用(第3版)》习题参考答案姜志海黄玉清刘连鑫编著电子工业出版社目录第1章概述 ............................................................. 2 第2章 MCS,51系列单片机硬件结构 . (5)第3章 MCS,51系列单片机指令系统 .......................................10 第4章 MCS,51系列单片机汇编语言程序设计 ............................... 13 第5章 MCS,51系列单片机硬件资源的应用 ................................. 18 第6章 MCS,51系列单片机并行扩展接口技术 ............................... 23 第7章 MCS,51系列单片机串行总线扩展技术 ............................... 28 第8章单片机应用系统设计 . (30)第1章概述1(简述微型计算机的结构及各部分的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。
运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。
通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。
由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。
2(微处理器、微型计算机、微型计算机系统有什么联系与区别,微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。
思考题:【3-1】汇编语言与C语言哪种语言的可读性和可移植性强?在对速度和时序敏感的场合应该使用什么语言?对于复杂的单片机系统一般采用C与汇编混合编程的形式这句话对吗?【3-2】二进制机器语言与C和汇编语言两者之间是什么关系?用C或汇编编制的程序在ROM中是以编译后的二进制代码的形式存放这句话对吗?【3-3】80C51系列单片机指令的格式包含哪几个部分?各部分之间的间隔符是什么?四个部分中哪个部分是必须存在的,哪几个部分是可有可无的?标号的格式和代表的意义是?【3-4】80C51系列单片机有哪几种寻址方式?【3-5】80C51单片机中立即数是存放在ROM中还是RAM中?【3-6】判断下列说法是否正确。
(1)立即数寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中。
()(2)指令周期是执行一条指令的时间。
()(3)指令中直接给出的操作数称为直接寻址。
()(4)内部寄存器Rn(n=0~7)可作为间接寻址寄存器。
()【3-7】80C51单片机可以进行直接寻址的区域是?【3-8】80C51单片机可以进行寄存器寻址的范围是?【3-9】80C51单片机可以进行寄存器间接寻址的寄存器是?寻址的范围是?【3-10】在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的()。
【3-11】80C51单片机变址寻址方式中可以作基址的寄存器是?可以作变址的寄存器是?@A+PC,@A+DPTR所找到的操作数是在ROM中对吗?【3-12】80C51单片机相对寻址改变的是PC的当前值,即改变的CPU执行指令的顺序这句话对否?【3-13】若访问特殊功能寄存器,只可以采用那种寻址方式?【3-14】若访问外部RAM单元,只可以使用哪种寻址方式?【3-15】若访问内部RAM单元,可使用哪些寻址方式?【3-16】若访问内外程序存储器,可使用哪些寻址方式?【3-17】80C51单片机可以进行位寻址的字节单元范围除11个可位寻址的特殊功能寄存器外还包括哪个区域?分别找出位地址是00H、08H、22H、7FH、D0H、E0H对应的字节地址?【3-18】已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=0EFH,试写出执行以下程序段后有关单元的内容。
填空
1.当使用8051单片机时,需要扩展外部程序存储器,此时,EA应接(低)电平。
2.当8051单片机RST信号复位时,P0口锁存值为(FFH )。
3.8051单片机中断0中断的入口地址(0003H )。
4.8051的PC是16位计数器,因此程序存储器的最大寻址空间为(65536 )
5.从单片机的角度看,连接到数据总线上的输出口应是有(所存)功能,连接到数据总线上的输出口应具有()功能。
6.在存储器的扩展中,无论时线选法还是译码法,最终都是为扩展芯片的()引脚提供信号。
7.MCS-51系列单片机为(8 )位单片机。
8.8051的异步通信口为(全双工)【单工/半双工双工】。
9.8051有(2 )级中断。
10.MCS-8051系列单片机子长是(8)位,有(40 )个引脚。
11.MCS51单片机可以扩展的程序存储器和数据存储器(包括输入输出口)最多(8)KB。
12.外围1/0接口芯片与(内)存储器是统一编址的,它不仅占用(内)存储器地址单元,而且使用数据存储器的(访问)控制命令。
13.全译码法就是译码器对(高位)地址线进行译码译出的信号作为(片选信号)。
14.用串口扩展并口时,串口接口方式应选为方式(0)。
15.P0口作为地址/数据总线,传送地址码的(低)8位,(P2)口作为地址总线,传送(
高)8位。
16.在矩阵键盘中,对按键的检测方法有(扫描法)和反转法。
17.单片机有两个定时器,定时器的工作方式由(TMOD)寄存器决定,定时器的启动与溢出由(TCON )寄存器控制。
简答题
1.MCS-51单片机系统中,为什么P0口要接一个8位锁存器,而P2口不用?
答:P0口是双向8位三态I/O口,而P2口是准双向8位I/O口。
2.单片机怎样管理中断?怎样开放和禁止中断?怎样设置优先级?
答:通过设置TMOD的GA TE——门控位高低来决定定时器/计数器的启动与停止是否和外部中断(INT0和INT1)上的电平状态有无关系,C/T的高低决定工作方式是按照计数还是定时,M1M0来决定定时器/计数器的工作方式。
开放中断:全局中断EA,相应的中断允许位打开,运行控制位TR0和TR1打开。
禁止中断:开放中断中的任意一项关闭都能禁止中断。
中断的优先级设置通过中断优先级寄存器IP来设置。
3.编制中断初始化程序外部中断0(边沿触发),外部中断1(电平触发),定时器0开中断(中断允许)定时器1关中断(不允许中断)。
答:外部中断0 IT0=1
外部中断1 IT1=0
定时器0开中断ET0=1
定时器1关中断ET1=0
选择题
1.8051单片机有(B )个中断源?
A,4 B,5 C,6 D,7
2.中断查询,查询的是(C)
A,中断请求信号B,外中断方式控制位C,中断标志位D,中断允许控制位
3.外部中断源IE1(外部中断1)的向量地址为(C)
A,0003H B,008BH C,0013H D,002BH
4.在MCS-51中,需要外加电路实现中断撤除的是(D )
A,定时中断B,脉冲方式外部中断C,串行中断D,电平方式的外部中断
编程题
1.根据题目后面的要求完成编程。
#include< > //51单片机标准头文件。
V oid main()
{
P1=0xFF;
EA=(1 ); //开总中断。
(EX0 )=1; //外中断0。
EX1=(1 ); //外中断1。
IT0=(0 ); //外中断0电平触发方式。
(IT1 )=0; //外中断1电平触发方式。
PX0=(1 ); //外中断0高优先级。
(PX1 )=0; //外中断1低优先级。
While() //无限循环。
{
}
}
2.设单片机晶振频率F=6MHZ,使用定时器1,以方式0产生周期为200us的等宽正方波脉冲,并由P1.0口输出;
注:采用查询方式。
#include<reg51.h>
Sbit P1.0=P1^0___;
V oid main(void)
{
__TMOD_=0x00 //采用定时器T1工作方式0,定时器模式。
;
TH1=_0X7F__; //写入100us定时初值。
TL1=__0X0E_;
TR1=_1__; //启动T1。
}
while(1)
{ if(TF1=__1___)
{
___TF1____=0; //将TF1软件清零
TH1=_0X7F_; //重新写入100微秒定时初值
TL1=__0X0E_;
P1.0=___!P1.0_____; //反转一次
}
}
3.用T1的方式1实现由P1.0引脚输出500HZ的方波,如图,假设系统时钟频率采用6MHZ。
注:采用中断方式。
#include<reg51.h>
Sbit P1.0=P1^0;
V oid timer1()_interrupt__ _3__ //T1中断服务程序。
{
TH1=0XFE; //重新写入1ms定时初值。
TL1=0X0C;
P1.0=__!P1.0_______; //P1.0引脚电平1ms反转。
}
V oid main(void)
{
TMOD=_0X10__; //采用定时器T1,工作方式1.
TH1=0XFE; //写入1ms定时初值。
TL1=0X0C;
__TR1_=_1__; //启动T1。
__ET1_=_1__; //开T1中断。
EA=_1__; //开全局中断。
While_(1)__
{;}
}
4.当T0(P3.4)引脚上发生负跳变时,从P1.0引脚上输出一个周期为1ms的方波,如图(系统时钟频率为6MHZ。
#include<reg51.h>
Sbit P1.0=P1^0; //定义位变量;
V oid timer0() interrupt 1 //T0中断函数
{
_TR0__=__0_; //停止T0计数
F0=1; //建立产生中断标志
}
V oid timer1() interrupt 3 //T1中断函数
{
P10=!P10; //反转一次,产生周期为1ms的方法
}
V oid main(void)
{
TMOD=_0X25__; //T1为方式2定时,T0为方式1计数
TH0=0XFF; //写入初始值
TL0=OXFF;
TH1=_0XFC__; //写入定时初值
_TL1__=0X06;
TR0=_1__; //启动T0
TR1=_1__; //启动T1
ET0=1; //打开T0中断
_ ET1__=1; //打开T1中断
F0=0; //把T0已发生中断标志F0清零__EA_=_1__; //开总中断
While(1)
{
}。