单片机习题与思考题.docx
- 文档编号:24299217
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:44
- 大小:167KB
单片机习题与思考题.docx
《单片机习题与思考题.docx》由会员分享,可在线阅读,更多相关《单片机习题与思考题.docx(44页珍藏版)》请在冰豆网上搜索。
单片机习题与思考题
习题与思考题1
1-1微型计算机通常由哪些部分组成?
各有哪些功能?
答:
微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设
备组成。
控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根
据指令发出控制信号,使计算机有条不紊的协调工作;运算器主要完成算数运算和逻辑
运算;存储器用于存储程序和数据;输入/输出接口电路完成CPU与外设之间相连;输
入和输出设备用于和计算机进行信息交流的输入和输出。
1-2单片微型计算机与一般微型计算机相比较有哪些区别?
有哪些特点?
答:
与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和I/O
端口引脚具有复用功能;软件上,采用面向控制的指令系统和硬件功能具有广泛的通用
性,以及品种规格的系列化。
单片机还具备体积小、价格低、性能强大、速度快、用途
广、灵活性强、可靠性高等特点。
1-3简述计算机的工作过程。
答:
计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程
1-4单片机的几个重要指标的定义。
答:
单片机的重要指标包括位数、存储器、I/O口、速度、工作电压、功耗和温度。
1-5单片微型计算机主要应用在哪些方面?
答:
单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方
面。
1-6为什么说单片微型计算机有较高的性能价格比和抗干扰能力?
答:
因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计
,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具备较高的性能、
价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是
存贮于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较高的
抗干扰能力。
1-7简述单片机嵌入式系统的定义和特点。
答:
单片机嵌入式系统是嵌入到对象体系中的专用计算机系统;其特点是面向特定应用、与
各个行业的具体应用相结合、硬件和软件高效率、软件固
习题与思考题2
2-1MCS-51单片机内部包含哪些主要功能部件?
它们的作用是什么?
答:
MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时/计数器、多功能I/O口
和中断控制等基本功能部件。
单片机的核心部分是CPU,CPU是单片机的大脑和心脏。
程序存储器用于存放编好的程序或表格常数。
数据存储器用于存放中间运算结果、数据
暂存和缓冲、标志位等。
定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时
,它是定时器;当它对外部事件进行计数时,它是计数器。
I/O接口的主要功能包括:
缓冲与锁存数据、地址译码、信息格式转换、传递状态(外
设状态)和发布命令等。
中断控制可以解决CPU与外设之间速度匹配的问题,使单片机可以及时处理系统中许
多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。
2-2MCS-51单片机的核心器件是什么?
它由哪些部分组成?
各部分的主要功能是什么?
答:
单片机的核心部分是CPU,可以说CPU是单片机的大脑和心脏。
它由运算器、控制器
和布尔(位)处理器组成。
运算器是用于对数据进行算术运算和逻辑操作的执行部件。
控制器是CPU的大脑中枢,它的功能是逐条对指令进行译码,并通过定时和控制电路
在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作,完成指令
规定的操作。
2-3MCS-51单片机的EA、ALE和PSEN端的功能是什么?
答:
ALE——ALE为地址锁存允许信号,在访问外部存储器时,ALE用来锁存P0送出的低
8位地址信号。
PSEN——外部程序存储器的读选通信号。
当访问外部ROM时,PSEN产生负脉冲作
为外部ROM的选通信号;在访问外部RAM或片内ROM时,不会产的PSEN信
号。
PSEN可驱动8个LSTTL门输入端。
EA——访问外部程序存储器控制信号。
对8051和8751,它们的片内有4KB的程序存
储器。
当EA为高电平时,CPU访问程序存储器有两种情况:
一是访问的地址空间在0~4K范围内,CPU访问片内程序存储器;二是访问的地址超出4K时,CPU将自动执
行外部程序存储器的程序。
对于8031,EA必须接地,只能访问外部ROM。
2-4程序计数器(PC)有多少位?
它的主要功能是什么?
答:
程序计数器有16位,它的功能和一般微型计算机的相同,用来存放下一条要执行的指
令的地址。
当按照PC所指的地址从存储器中取出一条指令后,PC会自动加l,即指向
下一条指令。
2-5简述MCS-51单片机片内RAM区地址空间的分配特点。
答:
片内数据存储器分为工作寄存器区、位寻址区和数据缓3个区域。
工作寄存器使用内部RAM中地址为00H~1FH的32个单元,并分成4个工作寄存器组
,每个组有8个工作寄存器,名称为R0~R7。
对于内部RAM中地址为20H~2FH的16个单元,CPU不仅具有字节寻址功能,而且
还具有位寻址功能。
这16个单元共128位,每一位都赋予1个位地址,位地址范围是
00H~7FH。
30H~7FH是数据缓冲区,即用户RAM区,共80个单元。
2-8MCS-51单片机的21个特殊功能寄存器中,哪些具有位寻址能力?
答:
MCS-51单片机中的程序状态字寄存器(PSW),B寄存器,累加器(ACC),端口P0~P3,控制寄存器中用于中断控制的中断优先级控制寄存器(IP)和中断允许控制寄存
器(IE),用于设置定时/计数器和串行口工作方式的定时/计数器控制寄存器(TCON)
、串行口控制寄存器(SCON)具有位寻址能力。
2-9程序状态字寄存器(PSW)的作用是什么?
答:
PSW寄存器是8位寄存器,用做程序运行状态的标志,字节地址为D0H。
可以进行位
寻址。
2-10MCS-51单片机的P3口具有哪些功能?
答:
P3口是双功能口,除了作为准双向通用I/O口使用外,每一根口线还具有第二种功能
,P3口的各位如不设定为第二功能则自动处于第一功能。
P3的第二功能涉及到串行口
、外部中断、定时器,与特殊功能寄存器有关。
2-11MCS-51单片机的片外总线是由哪些总线构成的?
答:
P0口的第二功能是在访问外部存储器时,分时提供低8位地址和8位双向数据总线,
这时先用做地址总线再用做数据总线。
2-12MCS-51单片机对外有几条专用控制线?
答:
4条。
有RST/VPD,ALE/PROG,PSEN和EA/VPP专用控制线。
2-13单片机时钟电路有何用途?
起什么作用?
答:
单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是单片机控制器中
的时序电路发出的。
单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。
为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地按时序进
行工作。
MCS-51系列单片机内部有一个高增益反相放大器,用于构成振荡器,但要形
成时钟脉冲,外部还需附加电路。
2-14什么是时钟周期、状态周期、机器周期和指令周期?
当单片机时钟频率为12MHz时,
一个机器周期是多少?
ALE引脚的输出频率是多少?
答:
时钟周期也称为振荡周期,定义为时钟脉冲频率(fosc)的倒数,它是计算机中最基本
的、最小的时间单位。
时钟周期经2分频后成为内部的时钟信号,用作单片机内部各功能部件按序协调工作的
控制信号,称为状态周期,用S表示。
完成一个基本操作所需要的时间称为机器周期。
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,所需
要的机器周期数也不同。
当单片机时钟频率为12MHz时,一个机器周期为1μs。
ALE引脚的输出频率为2MHz
。
2-15什么时候需要复位操作?
对复位信号有何要求?
答:
复位是单片机的初始化操作。
单片机系统在上电启动运行时,都需要先复位。
上电复位利用电容器的充电实现。
在时钟电路工作后,在RST端连续给出2个机器周
期的高电平就可完成复位操作。
MCS-51单片机的上电加按键复位电路当复位按键按下
后,复位端通过51Ω的小电阻与+5V电源接通,迅速放电,使RST引脚为高电平;当
复位按键弹起后,+5V电源通过2kΩ电阻对22μF电容重新充电,RST引脚端出现复位
正脉冲。
习题与思考题3
3-1什么是寻址方式?
MCS-51指令系统有哪些寻址方式?
相应的寻址空间在何处?
答:
在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的
地址单元。
如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。
MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻
址、基址加变址寻址、相对寻址和位寻址等七种。
对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采用直
接寻址方式,不能采用寄存器间接寻址,对8032/8052等单片机内部RAM的高128个
字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令
只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问,而内部RAM的
低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。
3-2访问内部RAM单元可以采用哪些寻址方式?
访问外部RAM单元可以采用哪些寻址方
式?
访问特殊功能寄存器(SFR)可以采用哪些寻址方式?
答:
对特殊功能寄存器只能采用直接寻址方式,单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址,外部扩展的数据存储器只能用MOVX指令访问,而内部
RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。
3-4试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。
(1)立即寻址方式;
(2)寄存器寻址方式;(3)寄存器间接寻址方式答:
(1)立即寻址方式:
MOV30H,#0FH
(2)寄存器寻址方式:
MOVR5,#0FH
MOV30H,R5(3)寄存器间接寻址方式:
MOV@R1,#0FH
MOV30H,@R1
3-5SJMP指令和AJMP指令都是字节转移指令,它们有什么区别?
各自的转移范围是多
少?
能否用AJMP指令代替程序中的所有SJMP指令?
为什么?
答:
AJMP和SJMP的区别有:
(1)跳转范围不同。
AJMPaddr1;短跳转范围:
2KB
SJMPrel;相对跳转范围:
-128~+127
(2)指令长度不同。
(3)指令构成不同。
AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。
不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC
值指向的地址会不同,导致程序出现错误。
3-7写出实现下列要求的指令或程序片段。
(1)将R0的内容传送到R1;
(2)内部RAM的20H单元内容传送到寄存器R1;
(3)内部RAM的20H单元的D7和D3位清零,其它位保持不变;
(4)外部RAM的1000H单元内容传送到内部RAM的60H单元中;
(5)外部RAM的1000H单元内容传送到寄存器R2;
(6)清除累加器高4位。
答:
(1)MOVA,R0
MOVR1,A
(2)MOVR1,20H
(3)MOVA,20H
ANLA,#77H
(4)MOVDPTR,#1000H
MOVXA,@DPTR
MOV60H,A
(5)MOVDPTR,#1000H
MOVXA,@DPTR
MOVR2,A
(6)ANLA,#0FH
3-8试编写一段程序,将内部数据存储器30H、3lH单元内容传送到外部数据存储器1000H、
1001H单元中。
答:
MOVA,30H
MOVDPTR,#1000H
MOV@DPTR,A
MOVA,31H
MOVDPTR,#1000H
MOV@DPTR,A
3-9试编写一段程序,将外部数据存储器40H单元中的内容传送到0l00H单元中。
答:
MOVDPTR,#0040H
MOVA,@DPTRMOV0100H,A
3-10试编写—段程序,将R3中的数乘4(用移位指令)。
答:
MOVA,R3
MOV23H,#02HL0:
DJNZ23H,L1L1:
RLASJMPL0
3-11试编写—段程序,将R2中的各位倒序排列后送入R3中。
答:
MOVA,R2MOV23H,#08HL0:
DJNZ23H,L1L1:
RLASJMPL0
MOVR3,A
3-12试编写—段程序,将P1口的高5位置位,低3位不变。
答:
MOVA,P1ORLA,#F8HMOVP1,A
习题与思考题4
4-1MCS-51系列单片机汇编语言进行程序设计的步骤如何?
答:
单片机汇编语言进行程序设计的步骤:
(1)分析题意,明确要求;
(2)确定算法;(3)画程
序流程图,用图解来描述和说明解题步骤;(4)分配内存工作单元,确定程序与数据区的
存放地址;(5)编写源程序;(6)程序优化;(7)上机调试、修改和最后确定源程序。
4-2常用的程序结构有哪几种?
特点如何?
答:
常用的程序结构有顺序、分支、循环、查表及子程序结构;特点是程序的结构清晰、易
于读写和验证、可靠性高。
4-3子程序调用时,参数的传递方法有哪几种?
答:
传递方法有传递数据、传送地址和通过堆栈传递参数。
4-4编写程序,将片内30H~39H单元中的内容送到以2000H为首的外部存储器。
答:
ORG0000H
START:
MOVR0,#30H
MOVDPTR,#2000H
MOVR1,#10
CLRA
LOOP:
MOVA,@R0
MOVX@DPTR,A
DECR1
DJNZR1,LOOP
END
4-5编写程序,采用算术平均值滤波法求采样平均值,设8次采样值依次放在20H~27H的
连续单元中,结果保留在A中。
答:
FILT:
CLRA
MOVR2,AMOVR3,AMOVR0,#20HMOVR7,#08H
FILT1:
MOVA,@R0ADDA,R3MOVR3,ACLRAADDCA,R2MOVR2,A
INCR0DJNZR7,FILT1FILT2:
SWAPARLA;R2/8,XCHA,R3SWAPA
RLA;R3/8,ADDA,#80HANLA,#1FHADDCA,R3END
4-6编写程序,将存放在内部RAM起始地址为20H和30H的两个3字节无符号相减,结
果存放在内部RAM单元70H、71H、72H中(低位对应低字节)。
答:
ORG0000HSTART:
MOVR0,#20HMOVR1,#30HMOVR2,#03H
CLRCS0:
LCALLXUMOV70H,ALCALLXUMOV70H,ALCALLXU
MOV70H,AS1MOVA,@R0SUBBA,@R1INCR0INCR1RET
END
习题与思考题5
5-1写出一个C51程序的结构。
答:
全局变量说明
类型说明main()
{
声明部分
语句部分
}
类型说明函数名1(形式参数)
{
声明部分
语句部分
}
类型说明函数名n(形式参数)
{
声明部分
语句部分
}
5-2哪些变量类型是MCS-51单片机直接支持的?
答:
MCS-51单片机直接支持的变量类型是:
char及其数组和指针、bit、sbit、sfr和sfr16
5-3如何定义内部RAM的可位寻址区的字符变量?
答:
charbdata字符变量名,或bdatachar字符变量名。
5-4试编写一段程序,将内部数据存储器30H、3lH单元内容传送到外部数据存储器1000H、
1001H单元中去。
答:
#include
{
unsignedinttemp;temp=DWORD[0x0030];XWORD[0x1000]=temp;
while
(1);
}
5-5试编写一段程序,将外部数据存储器40H单元中的内容传送到50H单元。
答:
方法一:
#include
{
XBYTE[0x0050]=XBYTE[0x0040];while
(1);
}
方法二:
#include
{
unsignedcharxdata*xp;unsignedchardatatemp;xp=0x0040;
temp=*xp;xp=0x0050;*xp=temp;while
(1);
}
5-6试编写—段程序,将R3中的数乘以4。
答:
#include
{unsignedintdata*a;#pragmaasmMOV30H,R3#pragmaendasm
a=0x30;*a=*a*4;while
(1);
}
5-7试编写—段程序,将R2中的各位倒序排列后送入R3中。
答:
考虑C中没有循环移位,对于这种很低级的运算,采用嵌入汇编的方式完成。
#include
voidmain(void)
{#pragmaasmMOVR7,#08HMOVR3,#00HDEL:
CLRCYMOVA,R2
RLCAMOVR2,AMOVA,R3RRCAMOVR3,ADJNZR7,DEL
#pragmaendasmwhile
(1);}
5-8试编写—段程序,将P1口的高5位置位,低3位不变。
答:
#include
{P1|=0xf8;while
(1);}
5-9设8次采样值依次存放在20H~27H的连续单元中,采用算术平均值滤波法求采样平均
值,结果保留在30H单元中。
试编写程序。
答:
#pragmasmall#include
voidmain(void)
{unsignedchar*dp=0x20,i;floattemp=0;for(i=0;i<8;i++)
{temp+=*dp;dp++;}temp/=8;dp=0x30;*dp=temp;
while
(1);}
5-10从20H单元开始有一无符号数据块,其长度在20H单元中。
编写程序找出数据块中最
小值,并存入21H单元。
答:
#pragmasmall#include
{unsignedchar*dp,num,min,i;dp=0x20;num=*dp;dp++;
for(i=1;i
dp=0x21;*dp=min;while
(1);}
5-11混合编程应注意的问题是什么?
答:
(1)被调函数要在主函数中说明,在汇编程序中,要使用伪指令使CODE选项有效并
声明为可再定位段类型,并且根据不同情况对函数名作转换;
(2)对为其他模块使用的符号进行PUBILC声明,对外来符号进行EXTRN声明;
(3)参数的传递。
在混合语言编程中,关键是入口参数和出口参数的传递,C51编译
器可使用寄存器传递参数,也可以使用固定存储器或使用堆栈,由于MCS-51的堆栈深
度有限,因此多用寄存器或存储器传递。
用寄存器传递最多只能传递三个参数,需选择
固定的寄存器。
5-12如何编写高效的单片机C51程序?
答:
(1)选择小存储模式;
(2)尽可能使用最小数据类型;(3)尽量使用“unsigned”数据类
型;(4)尽量使用局部变量;(5)选择高效率的编译器。
习题与思考题6
6-3外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有
何不同?
怎样设定?
答:
采用中断电平触发方式时,中断请求标志IT0=0,CPU在每个机器周期的S5P2期间采
样,一旦在P3.2(INT0)引脚上检测到低电平,则有中断申请,使IE0置位(置1),
向CPU申请中断。
在电平触发方式中,在中断响应后中断标志位IE0的清0由硬件自
动完成,但由于CPU对P3.2(INT0)引脚没有控制作用,使中断请求信号的低电平可
能继续存在,在以后的机器周期采样时又会把已清0的IE0标志位重新置1,所以,在
中断响应后必须采用其它方法撤消该引脚上的低电平,来撤除外部中断请求信号,否则
有可能再次中断造成出错。
采用边沿触发方式时,IT0=1,CPU在每个机器的S5P2期间采样,当检测到前一周期为
高电平,后一周期为低电平时,使标志IE0置1,向CPU申请中断,此标志位一直保持
到CPU响应中断后,才由硬件自动清除。
在边沿触发方式中,为保证CPU在两个机器
周期内检测到由高到低的负跳变,高电平与低电平的持续时间不得少于一个机器周期的
时间。
6-4试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?
若可能,则应如何
设置中断源的中断级别?
否则,请简述不可能的理由。
(1)定时器T0中断,定时T1中断,外中断1NT0,外中断INT1,串行口中断;
(2)串行口中断,外中断1NT0,定时器T0中断,外中断INT1,定时器T1中断;
(3)外中断INT0、定时器T1中断,外中断INT1,定时器T0中断,串行口中断。
答:
(1)可以,将定时器T0中断,定时T1设置为高优先级中断,将外中断1NT0,外中断
INT1,串行口中断
(2)可以,将串行口中断设置为高优先级中断,将外中断1NT0,定时器T0中断,外
中断INT1,定时器T1中断设置为低优先级中断;
(3)不行,因为MCS-51单片机有2级中断优先级别,同级中断还存在按次序决定的
第二优先级结构,由高到低依次为外中断1NT0、定时器T0中断、外中断INT1、定时
器T1中断、串行口中断。
6-5MCS-51中断响应时间是否固定?
为什么?
答:
MCS-51中断响应时间不固定。
对一个单一中断系统,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 习题 思考题