《单片机应用技术》复习题及答案16电科6.docx
- 文档编号:15688866
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:24
- 大小:35.23KB
《单片机应用技术》复习题及答案16电科6.docx
《《单片机应用技术》复习题及答案16电科6.docx》由会员分享,可在线阅读,更多相关《《单片机应用技术》复习题及答案16电科6.docx(24页珍藏版)》请在冰点文库上搜索。
《单片机应用技术》复习题及答案16电科6
单片机应用技术复习题及答案
一、简答题(回答要点,并简明扼要解释)
第一、二章
1.MCS51系列单片机的内部资源有哪些?
说出8031、8051和8751的区别。
答:
MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。
8031、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。
2.在MCS-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和8位数据线,会不会发生冲突,并说明为什么?
答:
不会。
因为MCS-51单片机访问外部程序存储器用的指针是PC,控制线为
,而访问外部数据存储器时,使用的指针是DPTR,有效的控制信号是
,
。
所以不会发生冲突。
3.MCS-51单片机的内部RAM共有128个字节存储单元(00H~7FH),根据功能可将其划分为三个区域,试述这三个区域的特点及其首末地址
答:
80C51单片机的片内RAM低128单元分为:
1)寄存器区(00H-1FH),32字节,共有四个寄存器组,由RS1和RS0设置,主要为寄存器访问方式,常用数据存储。
2)位寻址区(20H-2FH),16字节,128个位。
主要用于位数据存放,也可用于存放字节数据。
3)普通用户RAM区(30H-7FH),80字节,只用于存放字节数据。
4.存储器的容量如下所示,若它的首地址为0000H,写出它的末地址。
(1)存储容量1KB,末地址为多少?
(2)存储容量4KB,末地址为多少?
答:
(1)末地址为3FFH;
(2)末地址为FFFH
5.简述累加器的ACC的作用
答:
(1)8位专用寄存器。
(2)运算时存放一个操作数。
(3)运算后存放运算结果,所以称它为累加器。
6.DPTR是什么寄存器?
它的作用是什么?
它是由哪几个寄存器组成?
答:
DPTR是数据寄存器;
作用:
1)在访问外部数据存储器时用DPTR作为地址指针,寻址整个64KB外部数据存储器空间;2)用DPTR作为基址寄存器,对程序存储器空间进行访问。
DPTR由DPL和DPH两个8位寄存器构成。
7.说明MCS-51的外部引脚EA的作用?
答:
为访问内/外部程序存储器控制信号。
高电平时,对ROM的读操作先从内部4KB开始,当地址范围超出4KB时自动切换到外部进行;当为低电平,对ROM的读操作限定在外部程序存储器。
8.开机复位后,CPU使用的是哪组工作寄存器?
它们的地址是什么?
CPU如何确定和改变当前工作寄存器组?
答:
开机复位后,CPU使用的是0组工作寄存器;
它们的地址是什么00H~07H;
CPU通过PSW的PSW.4、PSW.3两位来确定和改变当前工作寄存器组。
9.MCS-51单片机的时钟周期与振荡周期之间有什么关系?
一个机器周期的时序如何划分?
答:
时钟周期是单片机最基本的时间单位。
机器周期则是完成某一个规定操作所需的时间。
一个机器周期为6个时钟周期,共12个振荡周期性,依次表示为S1P1、S1P2、……S6P1、S6P2。
10.单片机的复位(RST)操作有几种方法,复位功能的主要作用。
答:
单片机的复位操作方式有:
1、上电复位;2、手动复位。
复位功能的主要作用是:
复位时,PC初始化为0000H,使MCS-51单片机从0000H开始执行程序。
11.简述堆栈。
(1)在程序中断或子程序调用时,为了保护返回地址(断点)和保护现场而设立的RAM区。
(2)用MOVSP,#DATA指令建立堆栈。
(3)存放数据按“后进先出”原则进行。
(4)利用PUSH、POP指令即可进行进栈、出栈操作。
第三章
12.MCS-51指令系统有哪几种寻址方式?
答:
MCS-51指令系统有7种寻址方式,分别为:
寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,相对寻址,基址寄存器加变址寄存器间接寻址(变址寻址),位寻址等方式。
13.MCS-51单片机对I/O口操作有哪几类指令?
并要求每类指令写出两条指令
答:
单片机对I/O口操作有两类指令读引脚指令和读修改写指令例如读引脚指令MOVA,P1;ANLA,P1
读修改写指令ANLP1,#0FH;ORLP1,#0FH
14.若SP=60H,标号LABEL所在的地址为3456H。
LCALL指令的地址为2000H,执行指令如下:
2000H LCALL LABEL后,堆栈指针SP和堆栈内容发生了什么变化?
PC的值等于什么?
如果将指令LCALL 直接换成ACALL是否可以?
如果换成ACALL指令,可调用的地址范围是什么?
答:
1)SP=SP+1=61H (61H)=PC的低字节=03H
SP=SP+1=62H (62H)=PC的高字节=20H
2)PC=3456H
3)可以
4)2KB=2048Byte
第四章
15.为什么外扩存储器时,P0口要外接锁存器,而P2口却不接?
答:
P0口要传送外部数据存储器的低8位地址和8位数据,而P2口只传送外部数据存储器的高8位地址。
16.常用的I/O接口编址有哪两种方式?
它们各有什么特点?
MCS-51的I/O端口编址采用的是哪种方式?
答:
一.独立编址方式:
独立编址方式就是I/O地址空间和存储器地址空间分开编址。
独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。
但是,却需要设置一套专门的读写I/O的指令和控制信号。
二.统一编址方式:
这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。
统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。
MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。
17.MCS-51采用6MHz的晶振,定时0.5ms,如用定时器方式1时的初值(16进制数)应为多少?
(写出计算过程)
答:
T0初值=216-500μm/2μm
=65536-250
=65286
=FF06H
18.8051的定时/计数器T0的有几种工作模式,对各工作模式作简单的叙述。
答:
定时/计数器T0的有4种工作模式:
方式0:
13位定时/计数器;
方式1:
16位定时/计数器;
方式2:
8位重装初值的定时/计数器;
方式3:
2个独立的8位定时/计数器,T1用作波特率发生器。
19.定时/计数器用作定时器时,其计数脉冲由谁提供?
定时时间与哪些因素有关?
答:
定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
20.THX与TLX(X=0,1)是普通寄存器还是计数器?
其内容可以随时用指令更改吗?
更改后的新值是立即刷新还是等当前计数器计满后才能刷新?
答:
THX与TLX(X=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值是立即刷新。
但在读THX、TLX的值时,应该先读THX值,后读TLX,再读THX。
若两次读得THX相同,则可确定读得的内容正确。
若前后两次读得的THX有变化,再重复上述过程。
21.MCS51的中断系统有几个中断源?
几个中断优先级?
如何用指令设置各中断源的优先级别?
如果同一级别同时存在多个中断申请时,CPU按什么顺序响应(按自然优先级顺序写出各个中断源)?
各个中断源的入口地址是多少?
;
答:
MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:
INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H
22.定时器T1中断,用指令如何实现?
CPU响应中断后,转到何处开始执行服务程序?
此中断服务程序的最后一条指令是什么?
功能怎样?
答:
1)用指令SETBTF1产生中断。
2)CPU响应中断后,转到001BH处开始执行服务程序。
3)中断服务程序的最后一条指令是RETI
4)RETI的功能是将断点地址弹给PC,返回断点。
23.CPU响应中断的条件有哪些?
答:
1、CPU没有处在一个同级或高级的中断服务中
2、查询中断请求的机器周期是当前指令的最后一个机器周期
3、当前指令不是返回指令(RET,RETI)或访问IE、IP的指令。
24.想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?
请举例加以说明。
答:
以外部中断0为例说明,外部中断0的入口地址是0003H,想将外部中断0的中断服务程序放置在程序存储区的任意区域可使用跳转指令。
如:
ORG0003H
LJMP INT0
…
INT0:
…………
…
RETI
25.已知一MCS51单片机系统使用12MHZ的外部晶体振荡器,计算:
1)该单片机系统的状态周期与机器周期各为多少?
2)当单片机的定时器0(T0)工作在方式2时,T0的最大定时时间为多少?
答:
1)状态周期=2/fosc=0.167μm
机器周期=12/fosc=1μm
2)TMAX=28×机器周期
=256×1=256μm
26.在由8031CPU芯片设计的系统中,若规定外部中断0为电平触发方式,高优先级,此时,特殊功能寄存器TCON、IE、IP为多少?
答:
TCON=00H
IE=81H
IP=01H
若规定外部中断1边沿触发方式,高优先级,写出初始化程序。
答:
初始化程序如下:
SETBEA
SETBEX1
SETBPX1
CLRIT1
27.编制中断服务程序时,为什么在主程序的初始化程序中,必须设置SETB EA这条指令,以及在中断服务程序中为什么通常需要保护现场和恢复现场?
答:
中断允许寄存器IE中有1个总的开关中断控制位EA,当EA=0时,所有的中断请求被屏蔽,CPU不接受任何中断;只有当EA=1时,CPU才开放中断。
所以主程序的初始化程序中,必须设置SETB EA这条指令。
现场是指中断时刻单片机中某些寄存器和储存器单元中的数据或状态,为了使中断服务程序的执行不破坏这些数据和状态,以免在中断返回后影响主程序的运行,因此要这些数据和状态送入堆栈保存,这就是现场保护。
中断结束后,在返回主程序谦,则需要把保存的现场数据和状态从堆栈中弹出,以恢复那些寄存器和存储器单元中的原有内容,这就是现场恢复。
24.中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?
答:
中断服务子程序返回指令RETI和普通子程序返回指令RET的区别在于:
RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断。
28.8051的串行通信的有几种工作模式,请对各工作模式作简单的叙述。
答:
串行通信共有4种工作模式,分别是:
模式0:
8位同步移位寄存器;TXD时钟端,RXD数据端,波特率fosc/12
模式1:
10位两机的异步通信;TXD数据发送端,RXD数据接收端,波特率可变,
模式2:
11位可多机的异步通信;TXD数据发送端,RXD数据接收端,波特率fosc/32或fosc/64。
模式3:
11位可多机的异步通信;TXD数据发送端,RXD数据接收端,波特率可变,波特率可变,公式与模式1同。
29.通信波特率为2400bps,fosc=11.2592MHZT1工作在模式2,其SMOD=0计算T1的初值X。
答:
通信波特率为2400bps,fosc=11.2592MHZT1工作在模式2,其SMOD=0计算T1的初值X。
根据波特率= ,得出n=76800
根据 ,得出X=244,即X=F4H
二、编程题
1、从P1口引脚读入数据,并将该数据写入外部RAM2100H单元。
MOVP1,#0FFH
MOVDPTR,#2100H
MOVA,P1
MOV@DPTR,A
2、将内部RAM30H单元的内容求补后,送回30H单元。
MOVA,30H
CPLA
ADDA,#1
MOV30H,A
3、使外部RAM2100H单元内容的高两位清“0”,其余位变反。
MOVDPTR,#2100H
MOVA,@DPTR
CPLA
ANLA,#3FH
MOV@DPTR,A
4、将R6寄存器的内容取反,送到内部RAM20H单元。
MOVA,R6
CPLA
MOVR6,A
MOV20H,A
5、将R6寄存器的内容高4位与低4位交换,送到内部RAM20H单元。
MOVA,R6
SWAPA
MOVR6,A
MOV20H,A
6、将程序存储器0600H单元内容送到内部RAM30H单元中。
MOVDPTR,#0600H
CLRA(或MOVA,#0H)
MOVCA,@A+DPTR
MOV30H,A
7、请将ROM1000H单元内容送外部RAM1000H单元。
MOVDPTR,#1000H
CLRA(或MOVA,#0H)
MOVCA,@A+DPTR
MOVX@DPTR,A
8、请将ROM1000H单元内容送R6单元。
MOVDPTR,#1000H
CLRA(或MOVA,#0H)
MOVCA,@A+DPTR
MOVR6,A
9、将外部RAM2100H单元的内容取反后,送回原单元。
MOVDPTR,#2100H
MOVXA,@DPTR
CPLA
MOVX@DPTR,A
10、将外部RAM2200H单元内容的高4位清“0”,低4位不变。
MOVDPTR,#2200H
MOVXA,@DPTR
ANLA,#0FH
MOVX@DPTR,A
11、将外部RAM3100H单元的内容求补后,送回原单元中。
MOVDPTR,#3100H
MOVXA,@DPTR
CPLA
ADDA,#01H(或INCA)
MOVX@DPTR,A
12、将内部RAM30H单元的内容求补后,送到31H单元。
MOVA,30H
CPLA
ADDA,#1(或INCA)
MOV31H,A
13、使外部RAM2000H单元内容的高两位置“1”,其余位变反。
MOVDPTR,#2000H
MOVXA,@DPTR
CPLA
ORLA,#0C0H
MOVX@DPTR,A
14、将工作寄存器R7的内容求补。
MOVA,R7
CPLA
INCA(或ADDA,#1)
MOVR7,A
15、编制定时器T1中断初始化程序,采用方式2。
MOVTMOD,#20H
MOVTL1,#DATA
MOVTH1,#DATA
SETBTR1
SETBET1
SETBEA
16、编制定时器T0中断初始化程序,采用方式1。
MOVTMOD,#01H
MOVTL0,#DATA1
MOVTH0,#DATA2
SETBTR0
SETBET0
SETBEA
17、编制中断初始化程序,外部中断0开中断(边沿触发),定时器0开中断,定时器1关中断。
SETBIT0
SETBEX0
STEBET0
CLRET1
SETBEA
18、编制中断初始化程序,外部中断1开中断(边沿触发)、定时器0关中断、定时器1开中断、串行口关中断。
SETBIT1
SETBEX1
CLRET0
SETBET1
CLRES
SETBEA
19、编程将内部RAM25H和26H单元的BCD码转换成压缩BCD码存放在30H单元中。
MOVA,26H
SWAPA
ORLA,25H
MOV30H,A
20、编程将内部RAM30H和31H单元中的低4位合并为一个字节,存放在40H单元中.
ORG0000H
MOVA,30H
ANLA,#0FH
SWAPA
MOVB,A
MOVA,31H
ANLA,#0FH
ADDA,B
MOV40H,A
RET
21、编程将内部RAM30H~3FH单元内容送到外部RAM1000H~100FH单元。
ORG0000H
MOVR0,#30H
MOVDPTR,#1000H
MOVR7,#10H
AT0:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,AT0
RET
22、编程将程序存储器2000H~200FH单元内容送到内部RAM40H~4FH单元。
ORG0000H
MOVR0,#40H
MOVDPTR,#2000H
MOVR7,#10H
AT0:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR7,AT0
RET
23、编程将外部RAM1500H~1507H单元内容送到内部RAM30H~37H单元。
ORG0000H
MOVR0,#30H
MOVDPTR,#1500H
MOVR7,#8
AT0:
MOVXA,@DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR7,AT0
RET
24、编写统计内部RAM20H单元中所存的单字节数二进制位中1的个数,存于21H中。
ORG0000H
AT0:
MOVR1,#00H
MOVR7,#08H
MOVA,20H
AT1:
JBACC.7,AT2
SJMPAT3
AT2:
INCR1
AT3:
RLA
DJNZR7,AT1
MOV21H,R1
END
25、编写一循环程序,将内部RAM的20H~2FH共16个连续单元清零。
ORG0000H
AT0:
MOVR0,#20H
MOVR2,#0FH
CLRA
AT1:
MOV@R0,A
INCR0
DJNZR2,AT1
RET
26、编程程序,将外部RAM4000H~40FFH单元内容全部置“1”。
ORG0000H
AT0:
MOVA,#0FFH
MOVR0,#0FFH
MOVDPTR,#4000H
AT1:
MOVX@DPTR,A
INCDPTR
DJNZR0,AT1
END
27、试编写程序,查找在内部RAM的40H~60H单元中是否有0FFH这一数据。
若有,则将51H单元置为“00H”;若未找到,则将51H单元置为“01H”
ORG0000H
AT0:
MOVR0,#40H
MOVR2,#20H
AT1:
MOVA,@R0
CJNEA,#0FFH,AT2
MOV51H,#00H
SJMPAT3
AT2:
INCR0
DJNZR2,AT1
MOV51H,#01H
AT3:
END
28、编写一循环程序,查找内部RAM30H~50H单元中出现FFH个数,并将查找搭结果存入51H单元。
ORG0000H
AT0:
MOVR0,#30H
MOVR2,#20H
MOVR3,#00H
AT1:
MOVA,@R0
CJNEA,#0FFH,AT2
INCR3
AT2:
INCR0
DJNZR2,AT1
MOV51H,R3
END
29、设在内RAM40H开始的存储区有若干个字符和数字,已知最后一个为字符“F”(并且只有一个),试统计这些字符数字的个数,结果存入30H单元中。
ORG0000H
AT0:
MOVR0,#40H
CLRA
AT1:
CJNE@R0,#46H,AT2
SJMPAT3
AT2:
INCA
INCR0
SJMPAT1
AT3:
INCA
MOV30H,A
END
三、应用题
1.设计一个循环灯程序,如图所示,使这些发光二极管每次只点亮一个(高电平亮),依次一个一个地点亮,循环不止(从D0开始)。
ORG0000H
AT0:
MOVR7,#8
MOVA,#01H
AT1:
MOVP0,A
RLA
ACALLD1MS
DJNZR7,AT1
SJMPAT0
D1MS:
RET
END
2.根据图示电路(P0接LED),设计一个程序,开机后LED显示0,以后每按一次键(P2.7),显示的数字加1,显示9后,再回到0,并照此循环。
(LED为共阴极,0-9的字形段码依次为3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH)
ORG0000H
AT0:
MOVDPTR,#TAB
MOVR7,#10
MOVR1,#00H
AT1:
MOVA,R1
MOVCA,@A+DPTR
MOVP0,A
JBP2.7,$
INCR1
DJNZR7,AT1
SJMPAT0
LAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7EH,6FH
END
3.设计一个循环灯程序,如图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机应用技术 单片机 应用技术 复习题 答案 16
![提示](https://static.bingdoc.com/images/bang_tan.gif)