《单片机原理与应用技术》习题与思考题.docx
《《单片机原理与应用技术》习题与思考题.docx》由会员分享,可在线阅读,更多相关《《单片机原理与应用技术》习题与思考题.docx(16页珍藏版)》请在冰点文库上搜索。
《单片机原理与应用技术》习题与思考题
《单片机原理与应用技术》习题与思考题
1.单片机基础
1.1什么是单片机?
什么是嵌入式系统?
1.2单片机CPU与通用微机CPU有什么异同?
1.3单片机主要用途是什么?
列举你所知道的目前应用较为广泛的单片机种类。
1.4假设某CPU含有16根地址线,8根数据线,则该CPU最多寻址能力是多少KB?
1.5为什么计算机要采用二进制数?
学习十六进制数的目的是什么?
1.6将下列十进制数转换成二进制数:
270;91;16663;46
1.7把下列十六进制数转换为二进制数和十进制数
(1)41H
(2)1AFH(3)0F1H(4)20FAH
1.8把下列二进制数转换为十六进制数和十进制数
(1)10110011B
(2)10000000B(3)10111B(4)1100B
1.9为什么在计算机中带符号数不用原码表示而用补码表示?
在8位二进制中,-12H的补码是多少?
-12H在16位二进制中的补码又是多少?
1.10用补码方法计算下列各式(设机器字长为8位):
(1)X=7,Y=8,求X+Y;
(2)X=5,Y=9,求X-Y;
(3)X=6,Y=-7,求X+Y;
(4)X=-11,Y=7,求X-Y。
1.11已知X=100110B,y=1100lB,用算术运算规则求:
X+Y;X-Y;X
Y;X/Y
1.12已知X=01111010B,y=10101010B,用逻辑运算规则求:
X
Y;X+Y;X⊕Y;
1.13在计算机里,一般具有哪三类总线?
请说出各自的特征(包括传输的信息类型、单向传输还是双向传输)。
1.14计算机字长的含义是什么?
80C51单片机的字长是多少?
2.单片机组成
2.1在89C51单片机应用系统中
/VPP引脚如何连接?
为什么?
2.289C52单片机内部含有哪几类存储器?
各自的容量是多少?
2.3简述P1口的内部结构。
为什么将P1口引脚作为输入引脚使用前,一定要向P1口锁存器相应位写入“1”。
2.4地址/数据分时复用的含义是什么?
80C31P0口与存储器,如27128相连时,两者之间需要加接什么功能芯片才能锁存低8位地址信息?
2.5指出复位后工作寄存器组R7~R0的物理地址。
2.6如果希望工作寄存器组中R0对应的物理存储单元为10H,请写系统复位后实现这一要求的指令。
2.7说出访问下列寄存器或存储空间可以使用的寻址方式,并举例:
(1)89C51系列内部数据存储器前128字节。
(2)89C52系列内部数据存储器后128字节。
(3)特殊功能寄存器。
2.8在MCS-51单片机应用系统中,外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突,为什么?
外部I/O接口地址是否允许与存储器地址重叠?
为什么?
2.9什么是时钟周期?
什么是机器周期?
什么是指令周期?
89C51CPU机器周期与时钟周期是什么关系?
如果晶振频率为12MHz,则一个机器周期是多少微秒?
2.10MCS-51单片机系统复位后,程序计数器PC的值是什么?
在80C32单片机系统中,当采用两片2764EPROM存储器组成系统的程序存储器时,能否采用线选法连接?
为什么?
2.11分析MCS-51写外部数据存储器的写时序,说明为什么不宜使用74LS373扩展MCS-51的输出口。
2.1289C51CPU复位后内部RAM各单元内容是否改变?
2.13MCS-51单片机通过什么指令读写外部数据存储器?
通过什么引脚选通外部数据存储器?
2.14举例说明Intel的MCS-51有哪些典型品种,它们有何区别?
2.158051单片机内部包含哪些主要功能部件?
各功能部件的主要作用是什么?
2.16MCS-51单片机内部RAM可分为几个区?
各区的主要作用是什么?
2.17ALU单元的作用是什么?
一般能完成哪些运算操作?
2.18程序状态字寄存器PSW各位的定义是什么?
2.19在单片机系统中常使用哪些存储器?
MCS-51存储器结构的主要特点是什么?
程序存储器和数据存储器各有何不同?
2.20MCS-51单片机的P0~P3四个I/O端口在结构上有何异同?
使用时应注意哪些事项?
2.21为什么说单片机具有较强的位处理能力?
2.22MCS-51单片机有几种复位方法?
复位后,CPU从程序存储器的哪一个单元开始执行程序?
3.指令与编程
3.1指令由哪几部分组成?
3.2什么是汇编语言指令?
为什么说汇编语言指令比机器语言指令更容易理解和记忆?
通过什么方式可将汇编语言程序转化为机器语言程序?
3.3MCS-51汇编语言中有哪些常用的伪指令?
各起什么作用?
3.4汇编语言程序和汇编程序两术语含义相同吗?
3.5什么是寻址方式?
对于双操作数指令来说,为什么不需要指定操作结果存放位置?
3.6给出下列指令中每一操作数的寻址方式。
(1)MOVA,#23H
(2)MOV23H,A
(3)MOV90H,23H
(4)MOV23H,@R0
(5)INCA
3.7位地址90H和字节地址90H及P1.0有何异同?
如何区别?
位寻址和字节寻址如何区分?
在使用时有何不同?
3.8要访问专用寄存器和片外数据寄存器,应采用什么寻址方式?
举例说明。
3.9编程将内部RAM的20H单元的内容传送给外部RAM的2000H单元。
3.10编程将内部数据存储器20H~30H单元内容清零。
3.11已知A=83H,R0=17H,(17H):
34H,写出下列程序段执行完后的A中的内容。
ANLA,#17H
ORL17H,A
XRLA,@R0
CPLA
3.12编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将将50H单元置为0FFH,否则清50H单元为0。
3.13已知单片机的晶振为12MHz,分别设计延时0.1s、1s、lmin的子程序。
3.14查找20H~4FH单元中出现00H的次数,并将查找结果存入50H单元
3.15试编程使内部RAM的20H~4FH单元的数据块按降序排列。
3.16内部RAM的20H单元开始有一个数据块,以0DH为结束标志,试统计该数据块长度,将该数据块传送到外部数据存储器7E01H开始的单元,并将长度存入7E00H单元。
3.17试编写一个用查表法查0~9字形段码的子程序,调用子程序前,待查表的数据存放在累加器A中,子程序返回后,查表的结果也存放在累加器A中。
3.18内部RAM的DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM+1单元。
3.19MCS-51内部RAM前128字节支持哪些寻址方式?
请写出用不同寻址方式将内部RAM30H单元信息传送到累加器A的指令或程序片段;内部RAM后128字节支持哪些寻址方式?
请写出将内部RAM80H单元信息传送到累加器A的指令或程序片段。
3.20写出实现下列要求的指令或程序片段,并在仿真机上验证(假设指令代码从2000H单元开始存放)。
(1)将内部RAM20H单元内容与累加器A相加,结果存放在20H单元中。
(2)将8032内部RAM80H单元内容与内部RAM31H单元内容相加,结果存放到内部RAM31H单元中。
(3)将内部RAM20H单元内容传送到外部RAM20H单元中。
(4)将程序状态字寄存器PSW内容传送到外部RAM的0D0H单元中。
(5)将内部RAM00H~7FH单元,共128字节传送到以8000H为首址的外部RAM中。
(6)将外部RAM8000H~803FH单元,共64字节传送到以40H为首址的内部RAM中。
(7)将外部RAM8000H~807FH单元,共128字节传送到以0000H为首址的外部RAM中。
(8)将存放在内部RAM的40H、41H和外部RAM的8000H、8001H的16位二进制数相加,结果存放在内部RAM的40H和41H单元中(假设低位字节存放在低地址中)。
(9)如果0~9七段数码显示器对应的字模码3P,06,5B,4F,66,6D,7D,07,7E6F存放在1000H为首址的程序存储器中,写出将数字4对应的字模码输出到外部RAM3003H单元(即扩展I/O端口地址)的程序段。
(10)使内部RAM20H单元的b7和b3清零,其他位不变。
(11)使内部RAM20H单元的b7和b3置1,b5清零,其他位不变。
(12)将内部RAM20H单元的b7和b3置1,b5取反,其他位不变。
(13)将DPH寄存器的b7、b5位清零,将b2、b0位置1,其他位不变。
(14)将存放在内部RAM40H、41H和外部RAM8000H、8001H的四位BCD码相加,结果存放在内部RAM40H和41H单元中(假设低位字节存放在低地址中)。
(15)将立即数32H传送到内部RAM30H单元中。
(16)将立即数32H传送到8032CPU内部RAM88H单元中。
3.21假设内部RAM(30H)=3FH,累加器A=0FEH,R0=30H,SP=07H,PSW=00H,则执行如下指令后,各存储单元及寄存器内容是什么(假设各小题相互独立)?
(1)MOVA,@R0A=。
(2)INCAA=;PSW=。
(3)MOVA,#01H
(4)MOVA,#04H
ADDA,@R0
INCR0
MOV@R0,A
A=;PSW=;R0=;(30H)=。
(5)ANLA,@R0A=;PSW=。
(6)PUSHACC
PUSP30HA=;PSW=。
3.22假设4位BCD码压缩存放在R3、R2中,试编写BCD减1的程序段,并在仿真机上验证。
3.23输入、编译、运行下列程序段,并指出复位后和程序执行过程中SP、程序计数器PC的变化以及程序执行结束后累加器ACC、内部RAM30H~33H单元内容。
ORG0000H
LJMPMain
ORG1000H
Main:
MOVSP,#6FH
MOVR0,#30H
MOVRl,#32H
MOV30H,#12H
MOV31H,#34H
MOV32H,#76H
MOV33H,#98H
LCALLSUBl
NOP
ORG2000H
SUBl:
PUSHAcc
PUSHPSW
MOVA,@R0
ADDA,@R1
MOV@R0,A
INCR0
RET
3.24假设程序头中含有如下变量定义伪指令。
TXDBUFDATA#40H
BDATADATA#28H
(1)请指出“MOVR0,#TXDBUF”指令、“MOVR0,TXDBUF”指令目的操作数的寻址方式
(2)执行如下程序段后,内部RAM40H~4FH单元内容是什么?
28H单元内容又是什么?
MOVBDATA,#10H
MOVR0,#XDBUF
CLRA
LOOP:
MOV@R0,A
INCA
INCR0
DJNZBDATA,LOOP
END
3.25如果希望快速保护工作寄存器组,请写出将2区作为当前工作寄存器区的程序段。
4.中断、定时器与串口
4.1MCS-51系列单片机能提供几个中断源、几个中断优先级?
各个中断源的优先级怎样确定?
在同一优先级中,各个中断源的优先顺序怎样确定?
4.2简述MCS-51系列单片机的中断响应过程。
MCS-51单片机中断响应时间是否固定?
为什么?
4.3MCS-51有几个中断优先级?
试通过修改IP寄存器,使串行口中断优先级最高,定时器T1的中断优先级最低。
4.4MCS-51外中断有几种触发方式?
一般情况下,采用哪种触发方式较好?
4.5MCS-51单片机如果扩展6个中断源,可采用哪些方法?
如何确定它们的优先级?
4.6CPU响应中断请求后,不能自动清除哪些中断请求标志?
4.7MCS-51CPU在什么时候查询中断请求标志?
满足什么条件才响应?
4.8子程序和中断服务程序有何异同?
为什么子程序返回指令RET和中断返回指令RETI不能相互替代?
4.9如果某一中断服务程序中没有改写工作寄存器R0~R7的指令,则进入中断服务程后,是否需要切换工作寄存器区?
简述原因。
4.10如果
引脚出现100~200ms低电平信号时,在P1.0引脚输出低电平,但
引脚存在尖脉冲干扰。
请问应选择什么触发方式?
请写出中断服务程序。
4.11综述MCS-51系列单片机定时器0、1的结构与工作原理。
8051定时器作定时和计数时,其计数脉冲分别由谁提供?
4.128051定时器的门控信号GATE为1时,定时器如何启动?
4.13MCS-51子系列具有几个定时/计数器?
简述定时/计数器T1的主要用途。
4.14如果系统晶振频率为12MHz,分别指出定时/计数器方式1和方式2最长定时时间。
4.15如果系统的晶振频率为12MHz,利用定时/计数器T0,在P1.0引脚输出周期为100ms的方波。
4.16利用定时/计数器T2的时钟输出功能,在P1.1引脚上输出周期为10ms的方波。
4.17利用定时/计数器T2的时钟输出功能,在P1.1引脚上不断重复输出频率为450Hz,持续和停止时间均为4s的方波信号。
4.18定时器/计数器0已预置为156,且选定用于模式2的计数方式,现在T0引脚上输入周期为lms的脉冲,问:
(1)此时定时器/计数器0的实际用途是什么?
(2)在什么情况下,定时器/计数器0溢出?
4.19以定时器1进行外部事件计数,每计数1000个脉冲后,定时器l转为定时工作方式。
定时10ms后,又转为计数方式。
如此循环不止。
设fosc=6MHz,试用模式1编程。
4.20设:
fosc=12MHz,试编写一段程序,功能为:
对定时器T0初始化,使之工作在模式2,产生200μs定时,并用查询T0溢出标志的方法,控制P1.1输出周期为2ms的方波。
4.21解释下列概念:
(1)并行通信、串行通信;
(2)波特率;(3)单工、半双工、全双工;(4)奇偶校验。
4.22为何T1用作串行口波特率发生器时常用模式2?
若fosc=6MHz,试求出T1在模式2下可能产生的波特率的变化范围。
4.23画出利用串行口方式0和两片74LSl64“串行输入并行输出”芯片扩展16位输出口的硬件电路,并写出输出驱动程序。
4.24编写与PC机串行通信程序:
系统晶振频率为11.0592MHz,波特率为2400,8位数据,1位奇偶校验。
4.258051以方式2进行串行通信,假定波特率为1200,要作奇偶验,以中断方式发送,请编写程序。
4.26假设系统晶振频率为12MHz,试利用定时/计数器T2定时中断功能,实现每25ms将内部RAM80H~87H单元内容依次送P1口。
5.接口与扩展
5.1为什么不宜用外部RAM写选通信号
的后沿(即上升沿)锁存输出数据?
列举常用的I/O扩展芯片。
5.2试用1片74LS244和1片74LS273为8031扩展8位输入端口和8位输出端口,8位输入端口各接1个开关,8位输出端口各接1个发光二极管,要求按下1个开关,相对应的发光二极管发光。
试画出硬件连接图并编制程序。
5.3试设计一个应用系统,画出由一片80C32CPU、一片27128EPROM、一片6264SRAM组成的单片机系统,要求给出有关信号的连接以及各自的存储空间。
5.48255AI/O扩展芯片与8155I/O扩展芯片有何异同?
用8155扩展带程序存储器的单片机CPU(如89C51、87C51)I/O引脚时,CPU与8155如何连接?
5.5一个8031应用系统扩展了l片8155,晶振为12MHz,具有上电复位功能,P2.1~P2.7作为I/O口线使用,8155的PA口、PB口为输入口,PC口为输出口。
试画出该系统的逻辑图,并编写初始化程序。
5.68155TIN端输入脉冲频率为1MHz,请编写能在TOUT引脚输出周期为8ms方波的程序。
5.7用8255AI/O扩展芯片扩展87C52CPUI/O引脚时,需要增加什么芯片?
请画出系统的连接图。
5.8在图(a)所示电路中,如果CPU是80C31,则复位期间和复位后LED是否发光?
为什么?
5.9用DAC0832进行D/A转换时,当输出电压的范围在0~5V时,每变化一个二进制数其输出电压跳变约20mV,即输出是锯齿状的,采取何种措施可使输出信号比较平滑?
5.10请编写89C51单片机通过DAC0832产生锯齿波信号、三角波、梯形波的程序(可以为任意频率)。
5.11当图8-28的ADC0809对8路模拟信号进行A/D转换时,请编写用查询方式工作的采样程序,8路采样值存放在30H~37H单元。
若采用中断方式,请再编写一段相应程序。
5.12
如果将80C31的P1口引脚按矩阵编码方式组织成M
N个检测点,那么在什么情况下,检测点的数目最多?
这时M和N分别是多少?
5.13LED发光二极管与普通整流二极管有什么不同?
LED发光二极管工作电流和导通电压范围分别是多少?
液晶模块显示器LCD与LED七段数码显示器相比有何优点?
5.14状态或数码显示时,对LED的驱动可采用低电平驱动,也可以采用高电平驱动,二者各有什么特点?
5.15欲利用串行口扩展四位LED七段数码静态显示器,请画出相应逻辑电路并编写其显示子程序。
5.16比较图(d)和图(e)电路的优缺点。
如果LED工作电流IF为15mA,电源电压Vcc为5.0V,则图中限流电阻R如何选择(提示:
主要考虑阻值和耗散功率)?
5.17根据LED数码管内部各LED二极管连接方式的不同,可将LED数码管分为几类?
5.18LED数码显示器静态显示驱动方式和动态显示驱动方式各有什么优缺点?
点阵LED显示器只能采用什么显示驱动方式?
5.19
指出图7-15所示显示驱动电路的笔段代码锁存器和位扫描码。
如果PC7~PC4定义为输出,PC3~PC0定义为输入,假设片选信号
接图7-6译码输出端出
,请写入出8255A的初始化指令,并将显示缓冲区35H~30H内容依次送6个显示位显示出来。
5.20
在图7-17所示电路中,如果希望四条边上的所有点阵均发光,请写出软件延迟方式下的显示驱动程序段(假设CPU晶振频率为12MHz)。
5.21在图7-25所示电路中,当光耦输出回路三极管的集电极电流为1.2mA时,输入回路限流电阻R的阻值是多少?
假设电源电压Vcc为5.0V。
5.22写出图7-21(a)所示矩阵键盘电路的扫描程序(采用定时中断检测方式,每隔50ms检测有无按键输入,系统晶振频率为6MHz)。
5.23在8位LED数码管动态显示电路中,如果每位显示时间为2.5ms,则显示刷新频率为多少?
如果每位显示时间为2.0ms,刷新频率不低于25Hz,则最多能显示几位?
5.24矩阵式键盘如何实现中断方式?
请在图8-3的基础上设计中断式键盘,并编写相应中断处理子程序。
5.25
请在图8—1的基础上,设计一个以中断方式工作的开关式键盘,并编写其中断键处理程序。
6.系统设计
6.1简述单片机应用系统开发的一般过程。
6.2单片机应用系统的基本设计原则是什么?
6.3单片机应用系统的干扰源主要有哪些?
列举常用的软件、硬件抗干扰措施。
6.4什么是软件陷阱?
简述硬件看门狗和软件看门狗条件下,软件陷阱指令的异同。
6.5如何迅速判别MCS-51CPU是否工作?
6.6单片机应用系统开发的可行性分析包括哪些内容?
6.7如何提高单片机应用系统的可靠性?
6.8选择单片机的基本原则是什么?
6.9单片机应用系统的硬件设计包括哪些内容?
6.10模块化程序设计的特点是什么?
如何实现模块化程序设计?
6.11目前应用中经常采用的单片机应用系统结构主要有那两种?
它们各自的特点是什么?
6.12在两级多机分散控制结构的单片机应用系统中,两级计算机各完成什么任务?
主机与各单片机的通信方式有哪几种?
6.13单片机开发系统的作用与特点是什么?
6.14单片机应用系统调试的目的是什么?
一般要经历哪几个过程?
6.15在单片机应用系统调试中,常用的调试工具有那些?
它们各自的作用是什么?
6.16硬件调试的基本步骤是什么?
6.17软件调试时可采用哪些程序运行方式?
它们分别在何种场合下运用?
6.18什么是系统联调?
它主要解决哪些问题?
6.19为什么要进行现场调试?
6.20