单片机课后习题答案胡汉才编说课讲解.docx
- 文档编号:28462752
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:18
- 大小:42.42KB
单片机课后习题答案胡汉才编说课讲解.docx
《单片机课后习题答案胡汉才编说课讲解.docx》由会员分享,可在线阅读,更多相关《单片机课后习题答案胡汉才编说课讲解.docx(18页珍藏版)》请在冰豆网上搜索。
单片机课后习题答案胡汉才编说课讲解
单片机课后习题答案--胡汉才编
1.25
单片机内部由哪几部分电路组成?
各部分电路的主要功能是什么?
解:
单片机内部由CPU、存储器和I/O接口等电路组成。
CPU的主要功能是对二进制数进行算术和逻辑运算、执行指令(从ROM中取指令,对指令译码,发各种控制信号使CPU和其他部分协调一致的工作,完成指令的功能),存储器由ROM和RAM组成,ROM的主要功能是存储单片机应用系统的程序,RAM的主要功能是存储实时数据或作为通用寄存器、堆栈、数据缓冲区。
I/O接口的主要功能是负责单片机和外设、外部存储器间的通信。
第二章
存在的错别字问题:
“振荡”写出“推荡”;“芯片”写成“蕊片”。
2.3、程序状态字PSW各位的定义是什么?
解:
PSW的各位定义如下:
Cy:
进位标志位;AC:
辅助进位位;
F0:
用户标志位;RS1、RS0:
寄存器选择位;
OV:
溢出标志位;P:
奇偶标志位;
PSW1:
未定义。
2.4、什么叫堆栈?
8031堆栈的最大容量是多少?
MCS51堆栈指示器SP有多少位,作用是什么?
单片机初始化后SP中的内容是什么?
解:
堆栈:
符合“先进后出”或“后进先出”存取规律的RAM区域。
8031堆栈的最大容量是128B;
MCS-51堆栈指针SP有8位,作用是存放栈顶(/栈低)地址;
单片机初始化后(即单片机复位后)SP中的内容是07H。
存在的问题:
1、堆栈的定义中,未答出“RAM区域”,而用了“部件”;
2、只说了“单片机初始化后(即单片机复位后)SP中的内容是栈底地址”,未说明具体值07H;
3、8031堆栈的最大容量错成128M或256B。
2.5、数据指针DPTR有多少位,作用是什么?
解:
数据指针DPTR有16位;作用是存放ROM或外部RAM的地址。
2.7、8051片内RAM容量有多少?
可以分为哪几个区?
各有什么特点?
解:
8051的片内RAM容量有128B;分为三个区:
工作寄存器区、位寻址区和便笺区;
存在的问题:
1、8051的片内RAM容量错成256B。
2.8、8051的特殊功能寄存器SFR有多少个?
可以位寻址的有哪些?
解:
8051的SFR有21个,可位寻址的有11个:
ACC、B、PSW、IP、P3、IE、P2、SCON、P1、TCON和P0。
存在的问题:
SFR有21个错成了26个;可位寻址的SFR中多了一个T2CON,个别同学甚至在T2CON用了一个“+”号。
2.11、8051和片外RAM/ROM连接时,P0和P2口各用来传送什么信号?
为什么P0口需要采用片外地址锁存器?
解:
8051和片外RAM/ROM连接时,P0口用来分时地传送片外RAM/ROM的低8位地址信号和8位数据信号,P2口用来传送片外RAM/ROM的高8位地址信号;因为P0口在访问片外RAM/ROM的一个机器周期内,要先传送地址信号,后传送数据信号,所以P0口需要片外地址锁存器。
存在的问题:
对第二问,1、未回答;2、答成了“增加数据输入的可靠性”;3、答成了“只有P0口是真正的双向口,故它具有较大的负载能力”;4、“因P0口输出的地址不能一直保持,故在ALE下降沿被锁存,以便空中引脚去传送随后而来的片外存储器读写数据”中的“空中”应改为“空出”。
2.12、8051的ALE线的作用是什么?
8051不和片外RAM/ROM相连时ALE线上输出的脉冲频率是多少?
可以做什么用?
解:
8051的ALE线用于锁存P0口输出的片外RAM/ROM的低8位地址;8051不和片外RAM/ROM相连时,ALE线上输出脉冲的频率是fosc/6(fosc是8051的时钟频率),该脉冲信号可用作外部时钟源或作为定时脉冲源使用。
存在的问题:
1、ALE的作用错为“ALE每次出现,CPU就进行一次取指操作”;
2、有同学漏掉了“/6”。
2.13、8051的线的作用是什么?
和的作用是什么?
解:
:
片外ROM的选通线;
:
片外RAM的读选通线;
:
片外RAM的写选通线。
存在的问题:
1、、为读写控制端,漏掉“片外RAM”;
2、、的作用错成“是读写数据”;
3、、的作用错成“控制2#芯片”,2#芯片在哪里?
2.16、复位方式下,程序计数器PC中的内容是什么?
这意味着什么?
解:
复位方式下,程序计数器PC中的内容是0000H,这意味着8051在复位后,总是从0000H处执行程序(即从存储在地址为0000H的ROM单元中的指令开始执行程序)。
存在的问题:
“意味着的含义”没有将最重要的含义答出,如答成“意味着PC从0000H开始计数”、“从这个初始状态工作”。
2.22、时钟周期、机器周期和指令周期的含义是什么?
MCS51的一个机器周期包含多少个时钟周期?
解:
时钟周期:
单片机所用时钟脉冲频率的倒数;
机器周期:
实现特定功能所需的时间,通常由若干时钟周期构成;
指令周期:
执行一条指令所需的时间,通常由若干机器周期构成;
MCS-51的一个机器周期包含12个时钟周期。
存在的问题:
1、时钟周期的定义答成“由振荡电路产生”;
“MCS-51的一个机器周期包含12个时钟周期”中的一个漏掉;还有同学答成了Z80的机器周期的构成。
第三章
3.3、MCS-51共有哪七种寻址方式?
各有什么特点?
解:
MCS-51的七种寻址方式及特点如下:
直接寻址:
操作数的地址在指令码中;
立即寻址:
操作数在指令码中;
寄存器寻址:
操作数所在的寄存器号在指令码中;
寄存器间(接寻)址:
操作数地址所在的寄存器号在指令码中;
变址寻址:
操作数所在ROM单元的地址等于基地址加偏移量,其中基地址在PC或DPTR中,偏移量在A中;
相对寻址:
用于相对转移指令,指令码中含有相对地址偏移量;
位寻址:
操作数是8位二进制数中的某位。
3.4解:
1.MOVA,#40H
2.MOVA,40H
3.MOVA,@R1
4.MOVA,R3
5.MOVCA,@A+PC
6.SJMPLOOP
立即寻址,将立即数40H送累加器A;
直接寻址,将地址为40H的内部RAM单元的内容送累加器A;
寄存器间址,将地址为R1的值的内部RAM单元的内容送累加器A;
寄存器寻址,将寄存器R3的值送累加器A;
变址寻址,将地址为(A+PC)的ROM单元的内容送累加器A;
相对寻址,将(PC+LOOP)送PC。
3.5、内部RAM的00H单元可以有哪几种寻址方式?
特殊功能寄存器中的操作数有几种寻址方式?
请举例说明。
解:
寻址内部RAM00H单元的寻址方式有:
直接寻址,如MOVA,00H;
寄存器寻址,如:
在PSW中的RS1=0、RS0=0时,MOVA,R0;
寄存器间址,如:
在PSW中的RS1=0、RS0=0、R1=0时,MOVA,@R1;
SFR的寻址方式有:
直接寻址,如MOV20H,ACC或MOV20H,0E0H中的源操作数;
寄存器寻址(只适用于A、B),如MOV20H,A中的源操作数;
位寻址,如SETBACC.7。
3.13、试问如下程序执行后累加器A和PSW中的内容是什么?
1.MOVA,#0FEH2.MOVA,#92H
ADDA,#0FEHADDA,#0A4H
解:
A=FCH,PSW=C0H;
A=36H,PSW=84H。
3.20、1.使20H单元中数的高两位变为0,其余位不变
2.使20H单元中数的高两位变为1,其余位不变
3.使20H单元中数的高两位变反,其余位不变
4.使20H单元中数的所有位变反。
解:
ANL20H,#3FH;
ORL20H,#0C0H;
XRL20H,#0C0H;
XRL20H,#0FFH;
3.26、已知SP=70H,MA=2000H,SUBPR=4046H.试问如下三种程序中哪些是正确的,为什么?
哪些程序最好,为什么?
若SUBPR=2060H,则哪一个程序最好,为什么?
解:
若SP=70H,MA=2000H,SUBPR=4060H,则:
程序①错误,因为MA和SUBR间的距离超过2KB;程序②、③都正确,但程序③更好,因为程序③的字节数少、速度快且结构清晰。
若SP=70H,MA=2000H,SUBPR=2060H,则:
程序②错误,程序①、③正确,但程序①最好,因为程序①的字节数少且能生成浮动代码。
第四章
4.2、在汇编语言程序设计中,为什么要采用标号来表示地址?
标号的构成原则是什么?
使用标号有什么限制?
注释段起什么作用?
解:
用标号表示指令的地址是便于在转移指令中书写转移到的指令位置,避免手工计算偏移量或指令的实际地址。
标号的构成原则:
以大写英文字母开头的,由英文字母、数字构成的长度不超过8的符号串。
但应注意汇编语言的保留字如MOV、A、END等不能用作标号。
注释段的作用是解释程序、程序段或指令的功能,增加程序的易读性,汇编时不产生机器码。
4.3、MCS51汇编语言有哪几条常用伪指令?
各起什么作用?
解:
常用的伪指令有8条:
定义字符名称的EQU、DATA;定义位地址的BIT;定义字节、字、预留存储空间的DB、DW、DS;定义存储起始地址的ORG;指示源程序结束的END。
4.25、设晶振频率为6MHZ,试编写能延时20ms的子程序。
解:
程序为:
DELAY20MS:
MOVR7,#49;1次×1个机器周期/次
DELAY2:
MOVR6,#100;49次×1个机器周期/次
DELAY1:
DJNZR6,DELAY1;49×100次×2个机器周期/次
NOP;49次×1个机器周期/次
DJNZR7,DELAY2;49次×2个机器周期/次
NOP;1次×1个机器周期/次
RET;1次×2个机器周期/次
;该程序执行需要的时间:
(1+49+9800+49+98+1+2)=10000个机器周期。
第6章作业参考答案
6.2什么叫中断源?
MCS51有哪些中断源?
各有什么特点?
解:
中断源:
引起中断的原因;
MCS-51的中断源有:
外部中断源、定时器/计数器溢出中断源、串行口中断源。
6.48031的5个中断标志位代号是什么?
位地址是什么?
他们在什么情况下被置位和复位?
解:
8031的5个中断标志位代号分别是IE0、IE1、TF0、TF1、TI/RI;位地址分别是89H、8BH、8DH、8FH、99H/98H;它们在有相应的中断请求时置位;IE0、IE1、TF0、TF1在相应的中断被响应后自动复位,TI/RI须在中断服务程序中由软件复位。
6.5中断允许寄存器IE各位定义是什么?
请写出允许T1定时器溢出中断的指令?
解:
IE各位的定义如下:
D7D6D5D4D3D2D1D0
EAESET1EX1ET0EX0
⑴EX0(IE.0)——外部中断0中断允许位。
⑵ET0(IE.1)——T0中断允许位。
⑶EX1(IE.2)——外部中断1中断允许位。
⑷ET1(IE.3)——T1中断允许位。
⑸ES(IE.4)——串行口中断允许位。
⑹EA(IE.7)——CPU中断允许位。
当EA=1,允许所有中断开放,总允许后,各中断的允许或禁止由各中断源的中断允许控制位进行设置;当EA=0时,屏蔽所有中断。
允许T1定时器溢出中断的指令为:
1)、采用字节操作指令:
MOVIE,#88H
2)、采用位操作指令:
SETBEA
SETBET1
6.6试写出设定和上的中断请求为高优先级和允许它们中断的程序。
此时,若和引脚上同时有中断请求信号输入,试问MCS51先响应哪个引脚上的中断请求?
为什么?
解:
程序为:
SETBPX0
SETBPX1
SETBEA
SETBEXO
SETBEX1
若、引脚上同时有中断请求,则MCS-51先响应引脚上的中断请求,因为MCS-51内部规定:
的优先级高于。
6.7MCS51响应中断是有条件的,请说出这些条件是什么?
中断响应的全过程如何?
解:
MCS-51响应中断的条件为:
P211;
中断响应的过程为:
1、先将程序计数器PC的内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2;
2、关闭中断,以防在响应中断期间受其他中断的干扰;
3、将对应中断源的中断入口地址装入PC,去执行中断服务程序。
6.8写出并记住8031五级中断的入口地址。
8031响应中断的最短时间是多少?
解:
INT0、T0、INT1、T1、串行口中断的入口地址分别为:
0003H、000BH、0013H、001BH、0023H;
8031响应中断的最短时间为3个机器周期。
6.9在MCS51中,哪些中断可以随着中断被响应而自动撤除?
哪些中断需要用户来撤除?
撤除的方法是什么?
解:
MCS-51中,定时器/计数器溢出中断、边沿触发方式的外部中断可以随着中断被响应而自动撤除;电平触发方式的外部中断、串行口中断需要用户来撤除;串行口中断需要用户用软件的方法撤除,电平触发方式的外部中断需要用户用软件和硬件相结合的方法撤除(具体方法见P213)。
6.10试写出为边负沿触发方式的中断初始化程序。
解:
中断初始化程序为:
SETBIT0;设置INT0为负边沿触发
SETBEA;开中断允许总控位
SETBEX0;开INT0中断
6.23MCS51有哪三种扩展外部中断源方法?
各有什么特点?
解:
MCS-51扩展外部中断源的方法有:
1、借用定时器/计数器溢出中断扩展外部中断源,特点是最多只能扩展两个外部中断源。
2、采用查询法扩展外部中断源,特点是需要必要的支持硬件和查询程序,且当扩展的外部中断源个数较多时,查询时间太长。
6.24写出定时器T1作为外部中断源的初始化程序。
解:
外部中断请求输入线接T1引脚,相应的定时器T1初始化程序为:
MOVTMOD,#60H
MOVTL1,#0FFH
MOVTH1,#0FFH
SETBEA
SETBET1
SETBTR1
第七章
7.2外设端口有哪两种编址方法?
各有什么特点?
解:
1、外设端口的单独编址。
特点:
(1)需要专用的I/O指令,实现CPU和外设间的数据传送;
(2)I/O端口地址是独立的;
(3)CPU要有一条能区分是I/O访问还是存储器访问的控制引脚。
2、外设端口和存储器统一编址。
特点:
(1)无需专用的I/O指令,也不需要区分是I/O访问还是存储器访问的控制引脚。
(2)I/O端口地址是内存地址中的一部分。
7.3I/O数据有哪四种传送方式?
各在什么场合下使用?
解:
CPU和外设之间的数据传送方式有四种:
同步传送方式(无条件传送方式)、异步传送方式(又称为查询传送方式或条件传送方式)、中断传送方式和DMA方式(直接数据通道传送方式)。
四种传送方式应用的场合:
无条件传送:
外设需与CPU保持同步,适合于慢速、简单的外设,如LED数码管、按键或按钮等。
查询传送:
简单实用,工作可靠,但CPU效率较低;适合于速度与CPU相当的外设。
中断传送:
外设主动,可与CPU并行工作,但硬件比较复杂,每次传送需要大量额外时间开销;适合于速度较低的外设或要求实时处理的外设。
DMA传送:
DMAC控制,外设直接和存储器进行数据传送,适合数据传送速度快且是批量传送的场合。
7.6MCS51对内部四个并行I/O端口由哪三种操作方式?
各有什么特点?
解:
1、输出数据方式:
2、读端口数据方式:
3、读引脚方式:
7.8决定8255选口地址的引脚有哪几条?
作用是什么?
解:
决定8255选口的引脚有三条:
。
=0表示8255被选中,8255工作;=1表示8255未被选中,8255不工作。
=00、01、10、11分别表示寻址8255的A口、B口、C口和控制端口。
7.98255如何辨认方式控制字和C口单一置复位控制字?
方式控制字各位定义如何?
解:
8255通过控制字的D7位来区分:
D7=1表示是方式选择控制字,D7=0表示是C口单一置位复位控制字。
8255方式控制字的定义如下:
(考试时的提示:
8255的方式控制字格式为:
D7=1;D6D5,A组的方式选择,00:
模式0,01:
模式1,1×:
模式2;D4,0:
A口用作输出,1:
A口用作输入;D3,0:
C口高四位用作输出,1:
C口高四位用作输入;D2,B组的方式选择,0:
模式0,1:
模式1;D1,0:
B口用作输出,1:
B口用作输入;D0,0:
C口低四位用作输出,1:
C口低四位用作输入。
)
7.23什么叫显示缓冲区?
显示缓冲区一般放在哪里?
显示缓冲区中通常存放的是什么?
解:
显示缓冲区是存放被显示字符的一段存储区域;它一般放在内部RAM中;通常存放被显示字符在字形码表中的地址偏移量。
7.27什么叫窜键?
CPU处理窜键的方法是什么?
CPU消除按键抖动的方法是什么?
解:
窜键是指用户在操作时常常因不小心同时按下了一个以上的按键;CPU处理窜键的原则是把最后放开的按键认作真正被按的按键;CPU处理窜键的方法见P286;CPU处理按键抖动的方法是:
CPU在检测到有键按下时延时20ms再进行列向扫描。
7.12在采用8255扩展I/O口时,若把8255A口用作输入,A口每一位接一个开关,B口用作输出,B口每一位接一个发光二极管。
请编写A口开关接1时B口相应位发光二极管点亮的程序。
解:
硬件连接图如下:
以上的硬件设计使8255的基本地址为4000H~4003H,接在A口的开关接通时使相应的PA位为逻辑0(低电平)。
驱动程序如下:
MOVDPTR,#4003H;8255初始化
MOVA,#10010000B;A口方式0输入,B口方式0输出
MOVX@DPTR,A
LOOP3:
MOVDPTR,#4000H
MOVXA,@DPTR
CPLA;对A取反
MOVDPTR,#4001H
MOVX@DPTR,A
SJMPLOOP3
END
7.29、设单片机时钟为12MHZ,请利用定时器T0编出令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:
2(高电平时间短)
解:
参考程序如下:
ORG0000H
LJMP0050H
ORG000BH
LJMP0100H
ORG0050H
MOVTMOD,#01H
MOVTH0,#0FDH
MOVTL0,#65H
SETBEA;
SETBET0;orMOVIE,#82H
SETBP1.0
SETBTR0
SJMP$
ORG0100H
JBP1.0,RESETP10
SETBP1.0
MOVTMOD,#01H
MOVTH0,#0FDH
MOVTL0,#65H
RETI
RESETP10:
CLRP1.0
MOVTMOD,#01H
MOVTH0,#0FAH
MOVTL0,#0CBH
RETI
END
第八章
8.7DAC0832和MCS51接口时有哪三种工作方式?
各有什么特点?
适合在什么场合下使用?
解:
1、直通方式,适合于不需要微机参与的控制系统。
2、单缓冲方式,适合于需要受微机控制的单路模拟输出的场合。
3、双缓冲方式,适合于同时需要受微机控制的多路模拟输出的场合。
8.13决定ADC0809模拟电压输入路数的引脚有哪几条?
解:
决定ADC0809模拟电压输入路数的引脚有四条:
ALE、ADDC、ADDB、ADDA,它们的具体作用见P317。
8.14解:
ORG0000H
LJMPMAIN
ORG0013H
LJMPINT1ZDFW
ORG0050H
MAIN:
MOVSP,#6FH
SETBIT1
SETBEA
SETBEX1
MOVR0,#20H
MOVDPTR,#0000H
MOVX@DPTR,A
SJMP$
ORG0100H
INT1ZDFW:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPH
MOVX@DPTR,A
CJNER0,#28H,DONE
CLREX1
DONE:
RETI
END
第一章:
单片机的定义,MCS-51单片机基本型的资源。
第二章习题与思考题:
2.3、2.4、2.5、2.7、2.8、2.11、2.12、2.13、2.16、2.22。
第三章习题与思考题:
3.3、3.4、3.5、3.13、3.20、3.26。
第四章习题与思考题:
4.2、4.3、4.25。
第六章习题与思考题:
6.2、6.4、6.5、6.6、6.7、6.8、6.9、6.10、6.23、6.24。
第七章习题与思考题:
7.2、7.3、7.6、7.8、7.9、7.12、7.23、7.27、7.29。
第八章习题与思考题:
8.7、8.13。
实验二、例4.5
TMOD的格式的提示
(提示:
定时器方式控制寄存器TMOD的格式为:
D7、D6、D5、D4分别为控制定时器T1的GATE位、位、M1、M0,GATE=0表示与外部中断0无关;GATE=1表示与外部中断0有关;=0表示工作于定时器模式,=1表示工作于计数器模式;M1M0=00、01、02、03分别表示工作于方式0、1、2、3。
D3、D2、D1、D0的定义与D7、D6、D5、D4相同,不过是控制定时器T0的。
)
8255方式控制字格式的提示
(提示:
8255的方式控制字格式为:
D7=1;D6D5,A组的方式选择,00:
模式0,01:
模式1,1×:
模式2;D4,0:
A口用作输出,1:
A口用作输入;D3,0:
C口高四位用作输出,1:
C口高四位用作输入;D2,B组的方式选择,0:
模式0,1:
模式1;D1,0:
B口用作输出,1:
B口用作输入;D0,0:
C口低四位用作输出,1:
C口低四位用作输入。
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课后 习题 答案 胡汉才编说课 讲解