单片机习题集.docx
- 文档编号:4110283
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:16
- 大小:29.93KB
单片机习题集.docx
《单片机习题集.docx》由会员分享,可在线阅读,更多相关《单片机习题集.docx(16页珍藏版)》请在冰豆网上搜索。
单片机习题集
16.十进制数65的8421BCD为 01100101。
21.25的8421BCD为00100101。
24.53的8421BCD为01010011。
8.若使用MCS-51片内部程序存储器引脚
应该接 电源 。
9.MCS-51有4组工作寄存器组,它们的地址范围是 00-1FH 。
10.单片机复位后,P0口为 FFH 。
12.单片机复位后,中断控制位EA为0。
13.8031含0KBROM。
14.单片机8031引脚
必须接 地 。
2.80C51中断有 2个优先级。
3.80C51中断嵌套最多2级。
4.单片机8031有 2个外部中断源。
5.单片机80C51有2个外部中断源。
二、填空题
1.用串口扩展并口时,串行接口工作方式应选为方式 0 。
2.RS-232是___串_______(串、并)行接口标准。
二、程序设计
1.片内RAM40H开始的单元内有10个二进制数,编程找出其中最大值并存于50H单元中。
START:
MOVR0,#40H
MOVR7,#09H
MOVA,@R0
LOOP:
INCR0
MOV30H,@R0
CJNEA,30H,NEXT
NEXT:
JNCBIE1
MOVA,30H
BIE1:
DJNZR7,LOOP
MOV50H,A
RET
2.片内RAM40H开始的单元内有10个无符号二进制数,编程找出其中最小值并存于50H单元中。
START:
MOVR0,#40H
MOVR7,#09H
MOVA,@R0
LOOP:
INCR0
MOVB,@R0
CJNEA,B,NEXT
NEXT:
JCBIE1
MOVA,B
BIE1:
DJNZR7,LOOP
MOV50H,A
RET
3.编程将片外RAM3000H开始的20字节的数据传送到内部RAM30H开始的单元中去。
START:
MOVDPTR,#3000H
MOVR7,#20
MOVR0,#30H
LOOP:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR7,LOOP
RET
4.编程将内部RAM40H开始的10字节的数据传送到片外RAM4000H开始的单元中去。
START:
MOVDPTR,#4000H
MOVR7,#10
MOVR0,#40H
LOOP:
MOV@R0,A
MOVXA,@DPTR
INCDPTR
INCR0
DJNZR7,LOOP
RET
5.编程统计内部RAM40H开始的10个带符号数中负数的个数,结果放在4FH单元内。
START:
MOVR0,#40H
MOVR2,#10
MOV4FH,__0_______
LOOP:
MOVA,@R0
JNBACC.7,__NEXT_____
INC4FH
NEXT:
INC_R0_________
DJNZR2,__LOOP______
RET
6.在内部RAM20H开始的存放了一个字符串,字符串以00H结束。
试编程统计字符串中字母A的个数,结果放在1FH单元中。
MOVR0,__#20H________
MOV1FH,#00H
LOOP:
MOVA,@R0
INC_R0________
CJNEA,#41H,__NEXT_______
INC_1FH________
NEXT:
CJNEA,#00H,_LOOP_______
RET
7.编程将片外RAM3000H开始的20字节数字的ASCII码转换为BCD码后,存放到内部RAM30H开始的单元中去。
START:
MOVDPTR,#3000H
MOVR7,#20
MOVR0,#30H
LOOP:
MOVXA,@DPTR
ANLA,_#30H______
MOV@R0,A
INCDPTR
INCR0
DJNZR7,LOOP
RET
8.片内RAM30H开始的单元中有20个无符号数,试编程求它们的和(和<256),结果存在40H单元。
ADDIO:
MOVR0,#30H
MOVR7,#19
MOVA,@R0
LOOP:
INCR0
ADDA,@R0
DJNZR7,LOOP
MOV40H,A
RET
2.图中,片选信号
和转移控制信号都连接到地址线P2.7。
输入寄存器DAC寄存器地址都是2FFFH。
用下面的程序将在运放输出端VOUT产生程控波形。
设VREF=-5V,输出电压位0~5V。
试回答问题:
(1)图中DAC0832为哪种连接方式?
(2)当数字量为40H时,输出VOUT为多少?
(3)下面的程序段可以产生何种波形?
画出输出波形的示意图。
程序段:
MOVDPTR,#2FFFH
MOVA,#00H
LOP1:
MOVX@DPTR,A
INCA
CJNEA,#0FFH,LOP1
LOP2:
MOVX@DPTR,A
DECA
CJNEA,#0,LOP2
SJMPLOP1
3.8031与DAC0832连接如图所示。
片选信号
和转移控制信号都连接到地址线P2.7,寄存器地址为7FFFH,输出电压为0~5V。
执行下面的程序将在运放输出端VOUT产生程控波形。
请回答问题:
(1)图中DAC0832为哪种连接方式?
(2)当数字量为20H时,输出VOUT为多少?
(3)下面的程序段可以产生何种波形?
画出输出波形的示意图。
程序段:
MOVDPTR,#7FFFH
MOVA,#00H
LOOP:
MOVX@DPTR,A
INCA
AJMPLOOP
4.某一单片机系统,需扩展2片8KB的EPROM、2片8KB的RAM,采用74LS138作为地址译码器,具体接法如图所示。
试分析电路图,并写出每一片存储芯片的地址范围。
】
5.8031与DAC0832的连接如图所示,片选信号
和转移控制信号都连接到地址线P2.7,地址为2FFFH,输出电压为0~5V。
运行下面的程序将在放大器输出端产生程控波形VOUT。
请回答问题:
(1)当数字量为40H时,输出VOUT为多少?
(2)画出输出波形的示意图,说明为何种波形。
(3)说明如何调整输出波形的周期。
程序段:
MOVDPTR,#2FFFH
LOOP:
MOVA,#0FFH
MOVX@DPTR,A
ACALLDELAY;DELAY为延时1s子程序
MOVA,#00H
MOVX@DPTR,A
ACALLDELAY
AJMPLOOP
6.单片机与DAC转换器可以构成程控信号发生器。
设D/A转换器地址为3000H,输出电压范围为0~5V。
(1)下面的程序段可以产生何种波形?
画出输出波形的示意图。
(2)输出波形的周期为多少?
程序段:
MOVDPTR,#2FFFH
LOOP:
MOVR2,#5
MOVA,#00H
LOP1:
MOVX@DPTR,A
ACALLDELAY;DELAY为延时1s子程序
ADDA,#50
DJNZR2,LOP1
SJMPLOOP
7.图中所示,D/A转换器地址为是7FFFH,输出电压范围为0~5V。
请回答问题:
(1)DAC0832的分辨率为几位?
(2)执行下面的程序段可以产生何种波形?
画出输出波形的示意图。
(3)输出波形中的直流分量为多少?
程序段:
MOVDPTR,#7FFFH
MOVA,#80H
LOP1:
MOVX@DPTR,A
INCA
CJNEA,#0FFH,LOP1
LOP2:
MOVX@DPTR,A
DECA
CJNEA,#80,LOP2
SJMPLOP1
8.某系统的存贮器及接口配置如图所示,所用芯片为1K×8的静态RAM及并行接口8255。
试确定每片存贮器的地址范围。
(注:
Y0-Y7、CS为低电平有效)
9.利用单片机和DAC0832可以构成程控信号发生器。
设D/A转换器地址为2000H,输出电压为0~5V。
执行下面的程序即可在运放输出端VOUT获得程控波形。
请回答问题:
(1)当数字量为30H时,输出VOUT为多少?
(2)下面的程序段可以产生何种波形?
画出输出波形的示意图。
程序段:
MOVDPTR,#2000H
MOVA,#0FFH
LOOP:
MOVX@DPTR,A
DECA
AJMPLOOP
10.试编写程序模拟下面的硬件逻辑电路。
A、B、C、D分别从P1.0、P1.1、P1.2、P1.3输入;F从P1.7输出。
11.下图为DAC0832与单片机的连接示意图。
片选信号
和转移控制信号都连接到地址线P2.7,地址是3FFFH,输出电压为0~5V。
执行下面的程序可获得程控波形。
请回答问题:
(1)图中DAC0832为哪种连接方式?
(2)当数字量为60H时,输出VOUT为多少?
(3)下面的程序段可以产生何种波形?
画出输出波形的示意图。
程序段:
MOVDPTR,#3FFFH
LOOP:
MOVA,#0H
MOVX@DPTR,A
ACALLDELAY;DELAY为延时1s子程序
MOVA,#0FFH
MOVX@DPTR,A
ACALLDELAY
AJMPLOOP
12.下图为数模转换器与MCS-51单片机的连接示意图,它的地址为2FFFH,输出电压范围如图中所示。
请回答问题:
(1)DAC0832的分辨率为多少位?
(2)当数字量为70H时,输出VOUT为多少?
(3)下面的程序段可以产生何种波形?
画出输出波形的示意图。
程序段:
MOVDPTR,#2FFFH
LOOP:
MOVR2,#3
MOVA,#00H
LOP1:
MOVX@DPTR,A
ACALLDELAY;DELAY为延时1s子程序
ADDA,#50
DJNZR2,LOP1
SJMPLOOP
1.计算机中的数称为机器数,它的实际值叫真值。
1.何谓程序状态字PSW?
各位的定义是什么?
程序状态字PSW是一个8位寄存器,寄存当前指令执行后的状态,为下条或以后的指令的执行提供状态条件。
Cy、AC、RS1、RS0、OV、P(意义略)
2.何谓地址/数据分时复用总线?
在什么情况下使用这种工作方式?
地址/数据分时复用总线是指P0口既是一个真正的双向数据总线口,又是分时输出低8位地址口。
单片机在访问外部存储器时,使用这种工作方式。
3.若80C51片内ROM的内容已不符合要求,那么片内硬件如何继续使用?
把80C51的
引脚接地,片外扩接EPROM芯片,就等于宣布片内RO)M作废,完全执行片外EPROM中的程序。
这样,片内硬件资源不受影响,可继续使用。
4.MCS-51单片机内部256B的数据存储器可分为几个区?
分别作用是什么?
MCS-51单片机片内数据存储器可分为:
00H~7FH单元组成的低128B的片内RAM区、80H~FFH单元组成的高128B的专用寄存器区。
其中低128B的RAM区又分为:
00H~1FH单元为工作寄存器区、20H~2FH单元为位寻址区以及30H~7FH单元为用户RAM区。
工作寄存器区可作通用寄存器用,用户RAM区可作堆栈和数据缓冲用。
专用寄存器区又称特殊功能寄存器。
5.MCS-8051单片机内部包含哪些主要功能部件?
8位CPU;振荡器和时钟电路;4KROM;128字节的RAM;SFR;4个并行接口;1个全双工串行I/O口;2个16位定时器/计数器;5个中断源及中断控制器;位处理器等。
6.MCS-51单片机有几种复位方式?
应注意什么事项?
单片机的复位有上电自动复位和按钮手动复位两种。
使用时应注意:
上电复位的最短时间应保证为振荡周期建立时间加上两个机器周期的时间。
当单片机运行程序出错或进入死循环时,可用按钮复位来重新启动。
7.如何将80C51当80C31使用?
把80C51的
引脚接地,片外扩接EPROM芯片,就等于宣布片内ROM作废。
完全执行片外EPROM中的程序。
这样,80C51就可当80C31使用。
8.主机复位后,PC的内容是什么?
有何特殊含义?
主机复位后PC=0000H。
开机后机器从0000H单元开始执行。
9.MCS-51的ALE线的作用是什么?
在主机不访问外部数据时它的输出频率是多少?
ALE允许地址锁存信号。
在主机不访问外部数据时,它的输出频率为振荡频率的1/6。
10.开机复位后,CPU使用的是哪组工作寄存器?
他们的地址是什么?
CPU如何确定和改变当前工作寄存器组?
系统复位后,CPU选用第0组工作寄存器,即地址分别为00H~07H。
如需改变当前工作寄存器,可设置PSW状态字中的RSl、RS0。
如RS1、RS0为00则指向第0组;为01则指向第1组;为10则指向第2组;为11则指向第3组。
11.当主频为12MHz时,一个机器周期为几微秒?
执行一条指令最长需要几微秒?
一个机器周期为1微秒。
执行一条指令最长需要4微秒。
12.何谓堆栈?
栈指针SP的作用是什么?
通常为什么要重新定义指针?
堆栈是一组编有地址的特殊的存储单元,通常是在数据存储器中开辟的一个存储区域。
堆栈顶的地址由栈指针SP指示;堆栈单元中的信息称为堆栈元素,堆栈元素的压入和弹出遵循后进先出的原则。
在主机复位后,栈指针SP的初值为07H,为避免与工作寄存器重叠,一般在程序初始化时应重新定义SP,再定位堆栈区域。
1.把累加器A写成A与写成ACC有什么不同?
A和ACC虽指的是同一个寄存器,但在指令中它们是有区别的。
Acc在汇编后的机器指令中必有一个字节的操作数是Acc的字节地址E0H,A则隐含在指令操作码中。
所以,符号指令中的A不能用Acc代替;反之,特殊功能寄存器直接寻址和位名称寻址要用Acc,而不能用A代替。
2.MCS-51有哪几种寻址方式?
寄存器寻址寄存器间接寻址立即数寻址直接寻址变址寻址相对寻址位寻址
1.80C51指令中没有暂停或程序结束指令,END指令能不能实现程序的正常结束?
MCS-51指令中确实没有暂停或程序结束指令。
在上机调试程序时,一定要注意在源程序末尾加上SJMP$等死循环(简称踏步)指令,或者干脆采用程序末尾加设断点的调试方法。
不能.因为END属于伪指令,根本就没有相应的机器码,它的作用仅仅是告诉编译程序,将某一段源程序翻译成机器码的工作到此为止。
也就是说,它是提供给编译系统的结束命令,而不是提供给CPU执行指令的结束命令。
2.为什么MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突?
访问不同存储器,使用不同的指令。
如访问ROM用MOVC,访问片内RAM则用MOV,片外RAM用MOVX。
不同的指令控制信号有所不同,故可避免总线冲突。
3.指令LCALLaddr16和指令LJMPaddr16有何异同?
相同点:
都可以转到pc=addr16处执行。
不同点:
前者转移前保护断点(下一条)指令地址;后者只转移,不保护下一条指令地址。
4.什么是指令?
何谓指令系统?
指令是指主机能直接识别和接受并指挥计算机执行某种操作的命令。
指令系统是指一台计算机所有指令的集合。
4.将R2的低4位转换成ASCII码形式43H
8.将R3的低4位转换成ASCII码形式41H
12.
(1)将一个字节内的两个BCD数拆开并变成相应的ASCII码,存入两个RAM单元
(2)34H35H
16.将20H单元中8位无符号二进制数转换成三位BCD码,并存放在FIRST(百位)和SECON(十位,个位)两个单元中00H69H
19.将R2的低4位转换成ASCII码形式42H
23.查找在片内RAM中20H~50H单元中出现0的次数,结果在51H中。
24.将20H单元中8位无符号二进制数转换成三位BCD码,并存放在30H(百位)和31H(十位,个位)两个单元中00H16H
28.统计字母A出现的次数,结果在51H中。
31.统计字母A的个数,结果在2FH单元中
32.将(45H)中的内容转换成ASCII码32H42H
1.编写中断服务程序应注意那些问题?
1)由于中断的发生是随机的,因而使得由中断驱动的中断服务程序难以把握、检测和调试,这就要求在设计中断和中断服务程序时应特别谨慎,力求正确;2)在输入/输出的数据处理频度很高或实时处理要求很高时,不宜采用中断方式。
2.中断的含义是什么?
为什么要采用中断?
中断是处理事件的一个过程,一般是由计算机内部或外部某种紧急事件引起并向主机发出请求处理信号,主机在允许情况下响应请求,暂停正在执行的程序,保存好断点及断点处的现场,转去执行中断处理程序,处理完后自动返回到原断点处。
采用中断技术具有以下优点:
1)可使多种功能(设备)同时工作,只有需占用主机时才安排处理,大大提高了计算机系统的速度和主机的效率;2)有利于实时处理;3)有利于随机故障的处理。
3.何谓断点?
为什么要进行断点、现场保护?
那些信息应考虑保护?
如何实现保护?
断点是指主程序被中断处的地址。
断点保护是为了保证中断服务程序处理完后能够正确返回;现场保护是为了保证中断服务程序处理完后并回到断点后能继续主程序被中断时的状态往下执行,确保主程序的连续性。
一般应保护ACC、PSW以及中断服务子程序中使用到的寄存器。
保护方法采用堆栈操作。
4.80C51响应中断的条件是什么?
①首先要有中断源发出有效的中断申请;②CPU中断是开放的、即中断总允许位EA=1,CPU允许所有中断源申请中断;
申请中断的中断源的中断允许位为1,即此中断源可以向CPU申请中断。
以上是CPU响应中断的基本条件。
如果上述条件满足,则CPU一般会响应中断,但是,若有下列任何一种情况存在,则中断响应会被阻止:
①CPU正处在为一个同级或高级的中断服务中;②现行机器周期不是所执行的指令的最后一个机器周期。
作此限制的目的在于使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行;③当前指令是返回指令(RET、RETI)或访问IE、IP的指令。
因为安MCS-51中断系统的特性规定,在执行完这些指令之后,还应再继续执行一条指令,然后才能响应中断。
5.MCS-51有哪些中断源?
MCS-51共有5个中断源。
分别是:
2个外部中断源、2个定时/计数器中断源、1个串行口中断源。
6.中断服务子程序与普通子程序有何异同?
相同点:
都是让CPU从主程序转去执行子程序,执行完毕后又返回主程序。
不同点:
中断服务子程序是随机执行的,而普通于程序是预先安排好的;中断服务子程序以RETI结束,而一般子程序以RET结束。
7.单片机对中断优先级处理的原则是什么?
(1)低级不能打断高级,高级能够打断低级;
(2)一个中断已被响应,同级的被禁止;
(3)同级,按查询顺序,
→T0→
→T1→串行接口
1.波特率、数据传输速率的含义各是什么?
波特率——每秒传送多少个二进制位,单位是bit/s。
数据传送速率(或字符传送速率)——每秒传送多少个字符,单位是字符/秒。
2.什么是全双工串行通信?
MCS-51系列单片机的串行通信有几种工作方式?
全双工是用两根通信线各自连接发送/接收端,由两根单向线组组成双向传输,通信系统在任何时候均可实现接收、发送双向传输。
MCS-51系列单片机的串行通信有4种工作方式
3.80C51单片机定时器/计数器作定时和计数用时,其计数脉冲分别由谁提供?
作定时器时:
计数脉冲来自单片机内部,其频率为振荡频率的1/12。
作计数据时:
计数脉冲来自单片机外部,即P3.4(T0)和P3.5(T1)两个引脚的输入脉冲。
四、综合题
1.计数器初值=D8F0H
参考程序:
MOVTMOD,#10H
SETBTR1
LOOP:
MOVTH1,#0D8H
MOVTL1,#0F0H
JNBTF1,$
CLRTF1
CPLP1.1
SJMPLOOP
2.计数器初值=D8F0H
参考程序:
MOVTMOD,#10H
MOVA,#01H
SETBTR1
LOOP:
MOVTH1,#0D8H
MOVTL1,#0F0H
JNBTF1,$
CLRTF1
RLA
SJMPLOOP
3.全双工:
可以双向同时发送和接受数据
51单片机可以实现全双工通信
波特率为1100
3.参考程序
MOVP1,#0FFH
LOOP:
JBP1.7,NEXT
CLRP1.0
SJMPLOOP
NEXT:
SETBP1.0
SJMPLOOP
1.什么是伪指令?
在汇编语言程序设计中有何作用?
伪指令又称汇编程序控制译码指令,属说明性汇编指令。
伪指令不影响程序的执行,仅产生供汇编用的某些指令,在汇编时执行某些特殊操作。
1.单片机用于外界过程控制中,为何要进行A/D、D/A转换?
单片机只能处理数字形式的信息,但是在实际工程中大量遇到的是连续变化的物理量,温度、压力、流量、光通量、位移量以及连续变化的电压、电流等。
对于非电信号的物理量,必须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为0~5V电平的模拟量。
所以必须加接模拟通道接口,以实现模拟量和数字量之间的转换。
A/D(模/数)转换就是把输入的模拟量变为数字量,供单片机处理;而D/A(数/模)转换就是将单片机处理后的数字量转换为模拟量输出。
2.具有8位分辨率的A/D转换器,当输入0~5V电压时,其最大量化误差是多少?
对于8位A/D转换器,实际满量程电压为5V电压时,则其量化单位1LSB=5V/255≈0.0196V。
量化误差为1/2LSB=0.0098V
三、综合题
2.
(1)单缓冲方式
(2)1.25V
(3)三角波
3.
(1)单缓冲方式
(2)0.63V
(3)锯齿波
4.分析过程
2764
(1)地址:
0000-1FFFH
2764
(2)地址:
2000-3FFFH
6264
(1)地址:
4000-5FFFH
6264
(2)地址:
6000-7FFFH
5.
(1)1.25V
(2)方波
(3)通过改变延时子程序的延时时间,可以调整输出波形周期。
6.
(1)阶梯波
(2)输出波形的周期为2s
7.
(1)8位
(2)三角波
(3)3.75V
8.4#:
0000H-03FFH
3#:
0400H-07FF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 习题集