单片机技术总复习.docx
- 文档编号:28444273
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:61
- 大小:151.49KB
单片机技术总复习.docx
《单片机技术总复习.docx》由会员分享,可在线阅读,更多相关《单片机技术总复习.docx(61页珍藏版)》请在冰豆网上搜索。
单片机技术总复习
2006级单片机技术期末总复习题
第二章习题
1、AT89S51单片机内部包含有哪些主要逻辑功能部件?
答:
8位CPU,4KBFlash程序存储器,128BRAM,4个8位并行I/O接口,2个16位可编程定时/计数器,6个中断源,5个中断矢量、2个优先级,一个全双工串行通信口,片内看门狗定时器,26个SFR,两个数据指针,在线可编程ISP端口。
2、单片机的时钟周期、机器周期、指令周期是如何组成的?
当主频为24MHz时,一个机器周期是多少时间?
复位是否能改变内部RAM单元的内容?
答:
时钟周期:
主频振荡周期。
机器周期:
CPU完成某一个规定操作(如存储器读或写、I/O读或写等)所需要的时间称为机器周期;机器周期又由12个振荡周期组成。
单片机的每个机器周期包括6个时钟周期S(又称为状态周期)。
指令周期:
把执行一条指令所需要的时间称为指令周期;指令周期一般由1~4个机器周期组成。
主频为24MHz时,Tcy=0.5us,执行一条指令最长需要2us。
复位是指使单片机CPU和系统中有关部件都处于一个确定的初始状态,并从这个状态开始工作。
复位不影响片内RAM单元的数据变化,仅影响特殊功能寄存器中的内容,对于部分特殊功能寄存器复位后的初始值具有重要意义。
3、单片机系统复位有效时,片内特殊功能寄存器P0~P3、PC、DPTR、SP、ACC、PSW等的内容各是什么?
复位是否能改变内部RAM单元的内容?
答:
(P0)=(P1)=(P2)=(P3)=FFH,(PC)=0000H,(DPTR)=0000H,(SP)=07H,(ACC)=00H,(PSW)=00H。
复位不能改变内部RAM单元的内容。
4、堆栈有何作用?
是如何进行操作的?
答:
堆栈主要用于断点保护。
进栈时首先SP加1,然后数据入栈;出栈时,数据先出,然后SP减1.
5、单片机的存储器从物理结构上可划分几个空间?
存储器的空间范围是多少?
答:
片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器,存储器的空间范围依次是4KB、64KB、128B、64KB。
6、单片机的片内数据存储器可以分为几个不同功能的区域?
各有什么作用和特点?
答:
工作寄存器区(00H~1FH):
数据运算和传送时的暂存单元。
位寻址区(20H~2FH):
可对位地址直接寻址,执行位操作。
用户RAM(30H~7FH):
用于数据的暂存、缓冲区域。
7、AT89S51单片机有多少个特殊功能寄存器?
哪些既可以进行字节操作,也可以进行位操作?
答:
26个,凡是地址可以被8整除的特殊功能寄存器都可以进行字节操作和位操作。
8、AT89S51单片机的引脚有几根I/O线?
它们与单片机对外的地址总线和数据总线之间有什么关系?
地址总线和数据总线各有几位?
答:
32根。
P2、P0是地址线,P0是数据线。
地址线16位,数据线8位。
9、看门狗定时器WDT有何作用?
它是如何进行操作的?
答:
监控CPU正常执行程序。
当WDT计数器开始计数后,若定时时间炒作16383个机器周期没有对它进行复位的话,便会产生溢出,同时单片机复位。
10、双数据指针是如何应用的?
答:
通过辅助寄存器AUXR1设置,(AUXR1)=0,选择DPTR0,为1选择DPTR1。
15、单片机并行I/O接口有读锁存器操作指令和读引脚操作指令,各有什么区别?
操作时应注意什么?
答:
读锁存器时,锁存器的Q端经BUF1进入内部总线,读引脚时,必须首先执行使锁存器的状态为1的指令。
16、单片机最小应用系统电路包含有哪几部分电路?
各有什么作用?
答:
电源电路:
提供芯片工作电源。
时钟电路:
提供芯片时钟信号。
复位电路:
提供芯片复位信号。
第三章习题
7.完成某种操作可以采用几条指令构成的指令程序实现,试写出完成以下每种操作的指令程序。
(1)将R6的内容传送到R7;
MovA,R6;MOVR7,A
(2)内部RAM单元50H的内容传送到寄存器R6;
MOV50H,R6
(3)外部RAM单元2000H的内容传送到内部RAM单元70H;
MOVDPTR,#2000H;MOVXA,@DPTR;MOV70H,A
(4)外部RAM单元2000H的内容传送到寄存器R6;
MOVDPTR,#2000H;MOVXA,@DPTR;MOVR6,A
(5)外部RAM单元2000H的内容传送到外部RAM单元3000H。
MOVDPTR,#2000H;MOVXA,@DPTR;MOVDPTR,#3000H;MOVX@DPTR,A
8.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。
试分析执行下列程序段后上述各单元内容的变化。
MOVA,@R1;(A)=60H
MOV@R1,40H;(30H)=08H
MOV40H,A;(40H)=60H
MOVR1,#7FH;(R1)=7FH
9.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?
若该指令影响标志位,试指出CY、AC、和OV的值。
(1)MOVA,@R0;(A)=2CH
(2)ANL40H,#0FH;(40H)=0CH
(3)ADDA,R4;(A)=22H(CY)=1
(4)SWAPA;(A)=8EH
(5)DEC@R1;(20H)=0EH
(6)XCHDA,@R1;(A)=EFH(20H)=08H
10.若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?
MOVA,50H;(A)=40H
MOVR0,A;(R0)=40H
MOVA,#00H;(A)=0
MOV@R0,A;(40H)=0
MOVA,3BH;(A)=(3BH)
MOV41H,A;(41H)=(3BH)
MOV42H,41H;(42H)=(3BH)
11.试用位操作和逻辑指令实现下列逻辑操作。
要求不得改变未涉及的位的内容。
(1)使ACC.0置位;CLRACC.0
(2)清除累加器高4位;
ANLA,#0FH
(3)清除ACC.3,ACC.4,ACC.5,ACC.6。
ANLA,#B
12.试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。
MOVR0,#20H
MOVR1,#2FH
MOVR7,#3
LOOP:
MOVA,@R0
MOV@R1,A
INCR0
DECR1
DJNZR7,LOOP
SJMP$
13.试编写程序,完成两个16位数的减法:
7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位。
CLRC
MOVA,#4DH
SUBBA,#4EH
MOV30H,A
MOVA,#7FH
SUBBA,#2BH
MOV31H,A
SJMP$
14.试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。
MOVA,R1
ANLA,#0FH
MOVR1,A
MOVA,R2
ANLA,#0F0H
ORLA,R1
MOVR1,A
15.试编写程序,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。
MOVA,20H
MOVB,21H
MULAB
MOVR2,B
MOVR3,A
16.若(CY)=1,(P1)=B,(P3)=B。
试指出执行下列程序段后,CY、P1口及P3口内容的变化情况。
MOVP1.3,C;(P1.3)=1
MOVP1.4,C;(P1.4)=1
MOVC,P1.6;(C)=0(P1)=B
MOVP3.6,C;(P3.6)=0
MOVC,P1.0;(C)=1
MOVP3.4,C;(P3.4)=1P1=B
17.若单片机的主频为12MHz,试用循环转移指令编写延时50ms的延时子程序。
并说明这种软件延时方式的优缺点。
DELAY:
MOVR6,#50
DEL1:
MOVR7,#250
DEL2:
DJNZR7,DEL2
DJNZR6,DEL1
RET
第4章单片机中断系统及定时器/计数器(习题答案)
1、简述中断、中断源、中断入口、中断优先级和中断嵌套的含义。
答:
中断:
中断原有的程序,转去与外设传送数据。
数据传送完毕后,CPU再回到原有的程序执行。
中断源:
向CPU发出中断请求的来源称之为中断源。
中断入口:
中断向量地址又称为中断入口地址,当某个中断源的中断请求被CPU响应之后,CPU便自动将该中断源的中断入口地址装入程序计数器PC,中断服务程序便从该地址开始执行,直到执行到RETI指令才重新回到原先的断点。
中断优先级:
单片机的中断系统通常允许多个中断源,当几个中断源同时向CPU发出中断请求时,就存在CPU优先响应哪一个中断源请求的问题。
我们通常根据中断源的轻重缓急排队,即规定每一个中断源有一个优先级别,CPU总是响应优先级别最高的中断。
中断嵌套:
高优先级中断源可以中断一个正在执行的低优先级中断源的中断服务程序,即可实现两级中断嵌套,但同级或低优先级中断源不能中断正在执行的中断服务程序。
2、AT89S51单片机能提供几个中断源?
几个中断优先级?
在同一优先级中各中断源的优先顺序如何确定?
答:
AT89S51单片机是一种多中断源的单片机,有6个中断源,比MCS8051单片机的5个中断源多1个,但这个中断源是用于芯片的编程,对用户使用而言也是只有5个可用的中断源,它们分别是外部中断源2个,定时/计数器中断2个和串行口中断1个。
AT89S51单片机中有2个中断优先级,当几个同级的中断源提出中断请求,CPU同时收到几个同一优先级的中断请求时,哪一个的请求能够得到服务取决于单片机内部的硬件查询顺序,其硬件查询顺序便形成了中断的自然优先级,CPU将按照自然优先级的顺序确定该响应哪个中断请求,自然优先级是按照外部中断0、定时/计数器0、外部中断1、定时/计数器1、串行口的顺序依次来响应中断请求。
3、与AT89S51单片机中断系统的控制有关的特殊功能寄存器有哪些?
答:
在AT89S51单片机中,是通过设置一些特殊功能寄存器来对中断信号进行锁存、屏蔽、优先级控制。
它们是寄存器TCON、SCON、IE和IP。
4、AT89S51单片机的外部中断有哪两种触发方式?
如何选择?
答:
外部中断请求有两种方式:
即脉冲触发方式和电平触发方式
IT0(IT1)=1脉冲触发方式,后沿负跳有效。
IT0(IT1)=0电平触发方式,低电平有效。
5、简述AT89S51单片机响应中断的过程。
答:
中断处理过程可分为三个阶段:
即中断响应、中断处理和中断返回。
(1)中断响应
AT89S51单片机中断响应条件为:
①当前不处于同级或更高级中断响应中,这是为了防止同级或低级中断请求中断同级或更高级中断;②当前机器周期必须是当前指令的最后一个机器周期,否则等待。
执行某些指令需要两个或两个以上机器周期,如果当前机器周期不是指令的最后一个机器周期,则不响应中断请求,即不允许中断一条指令的执行过程,这是为了保证指令执行过程的完整性;③如果当前指令是中断返回指令RETI,或读写中断控制寄存器IE、优先级寄存器IP,则必须再执行一条指令后才能响应中断请求。
(2)中断处理
CPU响应中断并转至中断处理程序的入口,从第一条指令开始到返回指令为止,这个过程称为中断处理(也称为中断报务程序处理)。
中断处理的过程即为执行中断服务子程序的过程。
(3)中断返回
中断处理程序的最后一条指令是中断返回指令RETI。
它的功能是将断点弹出送回PC中,使程序能返回到原来被中断的程序继续执行。
AT89S51单片机的RETI指令除了弹出断点之外,还通知中断系统已完成相应的中断处理。
6、AT89S51单片机的哪些中断源在CPU响应后可自动撤除中断请求?
对于不能自动撤除中断请求的中断源用户应采取什么措施?
答:
(1)IE0和IE1:
外中断请求标志位。
当CPU在
(P3.2)或
(P3.3)引脚上采样到有效的中断请求信号时,IE0或IE1位由硬件置“1”。
在中断响应完成后转向中断服务时,再由硬件将该位自动清“0”。
(2)IT0和IT1:
外部中断请求触发方式控制位。
IT0(IT1)=1脉冲触发方式,后沿负跳有效。
IT0(IT1)=0电平触发方式,低电平有效。
它们是根据需要由软件来置“1”或“0"。
(3)TF0和TF1:
定时/计数器溢出中断请求标志位
TF0(或TF1)=1时,表示对应计数器的计数值已由全1变为全0,计数器计数溢出,相应的溢出标志位由硬件置“1”。
计数溢出标志位的使用有两种情况,当采用中断方式时,它作为中断请求标志位来使用,在转向中断服务程序后,由硬件自动清“0";当采用查询方式时,它作为查询状态位来使用,并由软件清“0”。
(4)TR0(TR1):
定时/计数器的运行控制位。
由软件方法使其置“1”或清“0”。
7、AT89S51单片机片内设有几个可编程的定时/计数器?
它们可以有四种工作方式,如何选择和确定?
答:
2个。
主要由TMOD寄存器确定。
TMOD是一个不可以位寻址的8位特殊功能寄存器,字节地址为89H,其高4位专供T1使用的,其低4位专供T0使用的,如下图所示:
TMOD
(89H)
T1
T0
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/
M1
M0
GATE
C/
M1
M0
各位的含义如下:
(1)GATE:
门控位
GATE=0:
表示只要用软件使TCON中的运行控制位TR0(或TR1)置为1,就可以启动T0(或T1)。
GATE=1:
表示只有在
或
引脚为高电平时,并且有软件使运行控制位TR0(或TR1)置为1的条件下才可以启动T0(或T1)。
(2)
:
定时/计数方式选择位
=0:
设置为定时方式,对内部的机器周期进行计数。
=1:
设置为计数方式,通过T0(或T1)的引脚对外部脉冲信号进行计数。
(3)M1、M0:
工作方式选择位
M1M0=00:
为工作方式0,作13位计数器用;
M1M0=01:
为工作方式1,作16位计数器用;
M1M0=10:
为工作方式2,分成了2个独立的8位计数器用;
M1M0=11:
为工作方式3,
8、AT89S51单片机定时器的门控位GATE设置1时,定时/计数器如何启动?
答:
表示只有在
或
引脚为高电平时,并且有软件使运行控制位TR0(或TR1)置为1的条件下才可以启动T0(或T1)。
9、对于定时器T0的工作模式3,由于TR1的控制位已经被T0占用,如何控制定时器T1的开启与关闭?
答:
当T0工作在方式3时,T1只能工作在方式0~方式2,因为它的控制位已以被占用,不能置位TF1,而且也不再受TR1和
的控制,此时T1只能工作在不需要中断的场合,功能受到限制。
一般T0工作在方式3时,T1通常用作串行口波特率发生器,用以确定串行通信的速率。
10、利用定时器T0产生一个50Hz的方波,由P1.1输出,设fosc=12MHz.
答:
(1)思路:
利用T0定时10ms,即可以使定时器T0产生一个50Hz的方波,允许中断,中断服务程序中P1.1
(2)程序设计:
确定工作方式及TMOD
方式1定时,TMOD:
H=01H
计算初值X
X=65536-10000=55536=D8F0H
源程序
主程序:
ORG0000H
LJMPMAIN;转向主程序
ORG000BH;T0中断入口
LJMPINT-T0
MAIN:
MOVTMOD,#01H;T0方式1定时
MOVTH0,#0D8H;定时10ms
MOVTL0,#0F0H
SETBET0;允许T0中断
SETBEA
SETBTR0;启动T0
SJMP$;等待中断
TO中断服务程序
INT–T0:
MOVTH0,﹟0D8H;重装初值
MOVTL0,﹟0F0H
CPLP1.1;P1.0取反
RETI;中断返回
11、什么是串行异步通信?
它有哪些特点?
串行异步通信的数据帧格式是怎样的?
答:
串行通信方式:
数据信号的传送是按位顺序进行,最少只需一根传输线即可完成。
其特点是成本低但速度慢。
计算机与外界的数据传送大多数是串行的,串行通信传送的距离可以从几米到几千公里。
异步通信方式
数据是以帧为单位传送的,每1帧数据由1个字符代码组成,而每1个字符代码又是由起始位、数据位、奇偶校验位和停止位四个部分组成,如图4-9所示:
①起始位:
它为接收端提供同步信息
0电平表示要传送信号,用于通知接收设备开始接收;
1电平表示不传送信号,接收设备在检测到1电平时,不作响应。
②数据位:
它为接收端提供数据信息
数据位可以用5~8位数据来表示。
若是5位数据,则用D0~D4来表示,若是8位数据,则用D0~D7来表示。
③奇偶校验位:
它为接收端提供校验信息或性质信息
排在数据位的后面,占有1位。
如果数据位有8位,则校验位用D8表示。
若作校验使用时,此位自动设置为0或1;若不作校验使用时,此位用来表示本帧信号的性质是地址或数据,1表示传送的为地址帧,0表示传送的为数据帧。
④停止位:
它为接收端提供结束信息
停止位可以用1位、1位半或2位来表示,而且必须用1电平表示。
接收端收到此信息,就认为此字符发送完毕。
在停止位的后面继续为1的位又称为空闲位,
空闲位可有可无,但必须是1电平,这时电路处于等待状态。
只有异步通信才有空闲位,这也是异步通信的特征。
12、什么是波特率?
如果某异步通信的串行口每秒传送250个字符,每个字符由11位组成,其波特率应为多少?
答:
特率对于CPU与外界的通信是很重要的。
1)、波特率(Baudrate):
每秒传送的位数。
波特率是每秒钟传送的二进制代码的位数。
每秒传送一个格式位就是1波特。
即:
1波特=lbps(位/秒)。
11×250=2750bit/s,即2750bps。
13、简述AT89S51单片机内部串行口的4种工作方式的特点与适用场合。
答:
串行口工作方式0
为同步移位寄存器输入/输出方式。
它可以外接移位寄存器以扩展并行I/O口,也可以外接同步输入/输出设备。
此时用RXD(P3.0脚)来输入/输出8位串行数据,用TXD(P3.1脚)来输出同步脉冲。
此方式的波特率是固定的,为fosc/12。
串行口工作方式1
它是最常用的10位且波特率可调的异步串行数据通信方式。
串行口工作方式2和工作方式3:
工作方式2和工作方式3都是每帧11位异步通信格式,由TXD和RXD发送和接收,工作过程完全相同。
只是它们的波特率不同,方式2的波特率是固定的,方式3的波特率是由定时器T1控制的。
主要用于多机通信。
14、为什么定时器T1作串行口波特率发生器时常采用工作模式2?
若已知系统晶振频率fosc,则通信选用的波特率,如何计算其初值?
答:
T1的溢出速率取决于T1的计数速率(计数速率=振荡频率fosc/12)和T1的设定初值。
定时器T1做波特率发生器使用时,因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当,若设定的初值为X,则每过256-X个机器周期,定时器T1就产生一次溢出。
用公式表示为:
T1的溢出速率=(fosc/12)/(256-X), 反过来在已知波特率的条件下,可算出定时器T1工作在方式2的初值:
X=256-fosc×(SMOD+1)/(384×波特率)
15、简述如何利用AT89S51单片机的串行口进行并行I/O口的扩展?
答:
它由CPU和8位移位寄存器74LS164组成。
(1)串行数据转为并行输出的工作过程:
当CPU执行了一条对缓冲寄存器SBUF的写指令“MOVSBUF,A”,立即启动发送,将8位数据以fosc/12的固定波特率从RXD输出,低位在前,高位在后,在TXD的脉冲为时钟信号的作用下,数据一位一位装入74LS164。
对移位寄存器74LS164来说,为“串入并出”。
发送完一帧数据后,中断标志位TI由硬件置1。
可以通过查询TI位来确定是否发送完一组数据,TI=1表示发送缓冲器已空。
另外TI=1也可以作为中断请求信号,向CPU申请串行口发送中断,TI=1表示SBUF已空,可以再接收从CPU来的数据。
当要发送下一组数据或中断响应后,需用软件使TI清0,才可以发送下一组数据。
⑵串行口用于扩展为并行输入口的工作原理
①电路结构:
它由CPU和8位移位寄存器74LS165组成,如图4-15所示:
图4-15串行口用于扩展为并行输入口的工作原理图
②并行转串行输入的工作过程:
当串行口以方式0接收数据时,先置位允许接收控制位REN为1。
此时,RXD为串行数据输入端,TXD仍为同步移位脉冲输出端。
当接收中断标志位RI=0和允许接收控制位REN=1同时满足时,就启动了一次接收。
数据从RXD端串行输入到CPU内的接收缓冲器SBUF,在TXD的同步移位脉冲作用下,从74LS165一位一位地取出数据,对移位寄存器74LS165来说,为“并入串出”。
RXD端由D0(低位)开始接收数据,当接收完第8位数据时,由硬件置位RI。
可以通过查询RI位来确定是否接收到一组数据,RI=1表示接收数据已装入接收缓冲器SBUF,可以由CPU用指令来读取,另外RI=1也可以作为中断请求信号,向CPU申请串行口接收中断,RI=1表示SBUF已满,CPU可以读取SBUF中的数据了。
当接收完一组数据或中断响应后,需用软件使RI清0,以准备接收下一组数据。
第五章复习思考题
5.1试述单片机系统并行扩展的总线结构。
答:
单片机在进行系统扩展时,是用三总线与外部芯片连接。
1.数据总线(DB):
P0口作数据总线(8位);2.地址总线(AB):
P0口作地址总线的低8位,P2口作地址总线高8位(16位),寻址范围64KB。
地址线低8位与数据总线分时复用P0口;3.控制总线(CB):
①使用ALE作地址锁存的选通信号,实现了低8位地址的锁存;②以作为扩展程序存储器的读选通信号;
③以信号作为内外程序存储器的选择信号;
④以和作为扩展数据存储器和I/O端口的读/写选通信号。
5.2通过总线并行扩展的各种芯片的数据线一般都是并联的,为什么不会发生数据冲突?
对连接到总线上的存储器和I/O接口芯片的数据线一般有什么要求?
答:
(1)单片机通过不同的控制线连接不同类型的外部芯片,不同的控制线有效时对应的外部芯片使用数据总线。
例如:
有效时,时外部ROM通过数据线传输数据,当和有效时,是外部RAM通过数据线传输数据。
(2)无需锁存器,直接与单片机数据总线连接。
5.3当单片机系统中的程序存储器和数据存储器的地址重叠时,是否会发生数据冲突?
为什么?
答:
不会发生数据冲突。
单片机通过不同的控制线区分程序存储器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 技术 复习