单片机复习试题有答案_第1页
单片机复习试题有答案_第2页
单片机复习试题有答案_第3页
单片机复习试题有答案_第4页
单片机复习试题有答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机复习试题有答案一、单项选择题(每题2分,共30分)1.以下关于8051单片机CPU结构的描述中,错误的是()。A.控制器负责指令译码和时序控制B.运算器包含累加器A和寄存器BC.PC是16位寄存器,用于存储当前指令的地址D.PSW的第3位是用户标志位F0答案:D(PSW的第3位是RS0,用户标志位F0是第5位)2.若8051单片机的晶振频率为12MHz,则其机器周期为()。A.1μsB.2μsC.12μsD.0.5μs答案:A(机器周期=12/晶振频率=12/12MHz=1μs)3.8051单片机片内数据存储器中,可位寻址的空间是()。A.00H-1FHB.20H-2FHC.30H-7FHD.80H-FFH答案:B(20H-2FH共16字节,128个位地址)4.执行指令“MOVA,30H”后,累加器A中的内容是()。A.30H(立即数)B.片内RAM30H单元的值C.片外RAM30H单元的值D.程序存储器30H单元的值答案:A(表示立即数寻址)5.以下指令中,属于寄存器间接寻址的是()。A.MOVA,R0B.MOVA,@R0C.MOVA,30HD.MOVA,30H答案:B(@表示寄存器间接寻址)6.8051的中断源中,优先级最高的是()。A.外部中断0(INT0)B.定时器0中断(T0)C.外部中断1(INT1)D.串行口中断答案:A(默认优先级:INT0>T0>INT1>T1>串行口)7.定时器/计数器T0工作在模式1时,其最大计数值为()。A.8192B.4096C.65536D.256答案:C(模式1是16位定时器,2^16=65536)8.若要使P1口的第3位(P1.3)输出高电平,其余位保持不变,应使用的指令是()。A.CLRP1.3B.SETBP1.3C.MOVP1,08HD.ORLP1,08H答案:D(ORL逻辑或操作可保留其他位,仅置位P1.3)9.8051单片机的ALE引脚在正常工作时,输出的是()。A.地址锁存信号B.外部数据存储器读信号C.外部程序存储器读信号D.复位信号答案:A(ALE用于锁存P0口输出的低8位地址)10.以下关于串行口工作模式的描述中,正确的是()。A.模式0是同步移位寄存器模式,波特率固定为fosc/12B.模式1是10位异步通信,波特率由T1溢出率决定C.模式2是11位异步通信,波特率固定为fosc/32或fosc/64D.模式3与模式2类似,但波特率可变答案:B(模式0波特率fosc/12;模式2波特率fosc/32或fosc/64;模式3波特率与模式1相同)11.执行“CJNEA,50H,LOOP”指令时,若A=40H,则程序将()。A.顺序执行下一条指令B.跳转到LOOP处执行C.比较后A的值被修改为50HD.比较后PSW的CY位被清零答案:B(A<50H,CY=1,跳转)12.8051单片机复位后,PC和SP的初始值分别为()。A.0000H,07HB.0003H,00HC.000BH,7FHD.0000H,00H答案:A(复位后PC=0000H,SP=07H)13.若需要将片外RAM2000H单元的数据读取到累加器A中,应使用的指令是()。A.MOVA,2000HB.MOVXA,@DPTRC.MOVCA,@A+DPTRD.MOVX@DPTR,A答案:B(片外RAM读用MOVXA,@DPTR,需先将2000H存入DPTR)14.以下关于中断优先级寄存器IP的描述中,错误的是()。A.IP的位0(PX0)用于设置外部中断0的优先级B.IP=00H时,所有中断源处于同一优先级C.当两个同优先级中断同时请求时,按默认顺序响应D.高优先级中断可以打断低优先级中断的执行答案:无错误(全正确)15.若晶振频率为6MHz,使用定时器T0模式2实现100μs定时,其初值应为()。A.156(0x9C)B.256(0x00)C.100(0x64)D.206(0xCE)答案:A(机器周期=2μs,100μs需50个周期,初值=256-50=206?计算错误,正确应为:6MHz晶振,机器周期=12/6MHz=2μs,100μs需要50个机器周期,模式2是8位自动重装,初值=256-50=206(0xCE),但原题选项可能有误,正确应为D)二、填空题(每空1分,共20分)1.8051单片机的片内程序存储器容量为______KB(51子系列),片内数据存储器容量为______字节(51子系列)。答案:4,1282.程序计数器PC的作用是______,其宽度为______位。答案:存储下一条要执行指令的地址,163.8051的I/O口在作为通用I/O使用时,P0口需要外接______,P1-P3口内部带有______。答案:上拉电阻,上拉电阻4.指令“MOVC,20H”中的寻址方式是______,其中C表示______。答案:位寻址,进位标志位(CY)5.定时器/计数器的四种工作模式中,模式______是13位定时器,模式______是自动重装8位定时器。答案:0,26.中断响应的三个条件是:______、______、______。答案:中断源有请求,CPU开中断(EA=1),无更高优先级中断正在执行7.串行口工作在模式1时,一帧数据包含______位,其中起始位为______,停止位为______。答案:10,0,18.若SP=60H,执行“PUSHACC”后,SP变为______,ACC的内容被压入______单元。答案:61H,60H9.8051的PSW中,RS1和RS0用于选择______,当RS1=0、RS0=1时,选中的寄存器组是第______组。答案:工作寄存器组,110.执行“DJNZR2,LOOP”指令时,若R2的初始值为01H,执行后R2=______,程序将______(跳转/不跳转)。答案:00H,不跳转三、判断题(每题1分,共10分)1.8051的ALE引脚在访问外部数据存储器时会输出脉冲信号。()答案:×(访问外部RAM时ALE不锁存地址,故不输出脉冲)2.片内RAM的30H-7FH单元只能按字节寻址,不能位寻址。()答案:√(20H-2FH可位寻址,30H-7FH不可)3.中断服务程序的最后必须执行RETI指令,而子程序返回使用RET。()答案:√(RETI会恢复中断优先级状态,RET不会)4.定时器T0工作在模式3时,T1可以作为波特率发生器使用。()答案:√(模式3下T0分为两个8位计数器,T1只能工作在模式0-2)5.指令“MOVA,R0”和“MOVA,@R0”的功能完全相同。()答案:×(前者是寄存器寻址,读取R0的值;后者是寄存器间接寻址,读取R0指向单元的值)6.单片机复位后,P0-P3口的初始状态均为高电平。()答案:√(复位后I/O口锁存器为1,输出高电平)7.串行口发送数据时,TI标志位由硬件自动置1,需软件清零。()答案:√(TI和RI需手动清零)8.程序存储器只能存放程序代码,不能存放常数表。()答案:×(可通过MOVC指令读取程序存储器中的常数)9.当CPU响应中断时,会自动保护PC和PSW的值到堆栈中。()答案:×(仅保护PC,PSW需手动保护)10.8051的定时器/计数器既可以对内部时钟计数(定时模式),也可以对外部脉冲计数(计数模式)。()答案:√(通过C/T位选择)四、简答题(每题6分,共30分)1.简述8051单片机的存储器结构特点。答案:8051采用哈佛结构,程序存储器(ROM)和数据存储器(RAM)独立编址。程序存储器地址范围0000H-FFFFH,片内4KB(51子系列),片外最多64KB,通过EA引脚选择;数据存储器片内128字节(00H-7FH),包括工作寄存器区(00H-1FH)、位寻址区(20H-2FH)和用户RAM区(30H-7FH),片外数据存储器0000H-FFFFH(64KB),通过MOVX指令访问。2.说明中断优先级的处理原则。答案:(1)高优先级中断可以打断低优先级中断(中断嵌套);(2)同级中断按默认顺序响应(INT0→T0→INT1→T1→串行口);(3)同一中断源的多次请求,未响应前只处理一次;(4)中断响应期间,新的同优先级或低优先级请求被忽略。3.比较定时器模式1和模式2的异同。答案:相同点:均为16位(模式1)和8位(模式2)定时器/计数器,通过C/T位选择定时或计数功能,由TRx启动。不同点:模式1是16位不可重装模式,溢出后需手动重装初值;模式2是8位自动重装模式,溢出后自动将THx的值重装到TLx,适合需要重复定时/计数的场景(如波特率发生器)。4.如何设置串行口工作在模式1(异步通信,波特率由T1模式2产生)?答案:(1)设置SCON=0x40(SM0=0,SM1=1,模式1);(2)设置PCON=0x00(SMOD=0,波特率不加倍);(3)设置T1为模式2(TMOD=0x20);(4)计算T1初值:波特率=(2^SMOD/32)×(fosc/12/(256-X)),解得X=256-(fosc×(2^SMOD))/(32×12×波特率);(5)启动T1(TR1=1);(6)允许串行口中断(ES=1),开总中断(EA=1)。5.写出“将片内RAM30H单元的内容与片外RAM2000H单元的内容相加,结果存入片内RAM40H单元”的操作步骤(用指令描述)。答案:(1)读取片内30H到A:MOVA,30H;(2)设置DPTR=2000H:MOVDPTR,2000H;(3)读取片外2000H到B:MOVXA,@DPTR;(4)将原30H的值重新存入A(或交换):XCHA,B;(5)相加:ADDA,B;(6)存入40H:MOV40H,A。五、综合题(每题10分,共30分)1.用C51编写程序,实现P1口控制8个LED(P1.0-P1.7对应LED1-LED8),要求LED1~LED8从左到右(P1.0→P1.7)依次点亮,每个LED亮100ms,循环往复。晶振频率为11.0592MHz,使用定时器T0模式1实现延时。答案:```cinclude<reg51.h>defineucharunsignedchardefineuintunsignedintvoiddelay_100ms(){TMOD=0x01;//T0模式1(16位定时)TH0=0xDC;//100ms定时初值计算:机器周期=12/11.0592MHz≈1.085μs,100ms=100000μs,需要100000/1.085≈92160个周期,初值=65536-92160=0xDC00(TH0=0xDC,TL0=0x00)TL0=0x00;TR0=1;//启动T0while(!TF0);//等待溢出TR0=0;//停止T0TF0=0;//清零标志}voidmain(){ucharled=0x01;//初始LED1亮(P1.0=0,假设LED低电平点亮)while(1){P1=~led;//取反输出(若LED高电平点亮则去掉~)delay_100ms();led<<=1;//左移一位,下一个LED亮if(led==0x00)led=0x01;//循环}}```2.设计一个基于8051的温度采集系统,要求使用DS18B20数字温度传感器,通过P3.2(INT0)引脚接收温度数据,每隔5秒采集一次。画出硬件连接图(文字描述),并说明软件流程。答案:硬件连接:-DS18B20的DQ引脚接P3.2(INT0),VCC接+5V,GND接地,DQ与VCC之间接4.7kΩ上拉电阻。-单片机晶振电路:11.0592MHz晶振接XTAL1和XTAL2,并联两个30pF电容。-复位电路:RST引脚通过10kΩ电阻接VCC,并联10μF电容到地,按键并联在电阻两端(手动复位)。软件流程:(1)初始化:设置INT0为下降沿触发(IT0=1),开总中断(EA=1),允许INT0中断(EX0=1);初始化DS18B20(发送复位脉冲、检测应答)。(2)主循环:等待定时5秒(可通过定时器T1模式1实现,5秒=5000ms,每次定时100ms,计数50次)。(3)定时到后,启动DS18B20转换:发送跳过ROM指令(0xCC)、启动温度转换指令(0x44)。(4)等待转换完成(通过DS18B20的DQ引脚状态判断)。(5)读取温度数据:发送读取温度指令(0xBE),通过P3.2逐位读取9位温度值(低8位和高1位符号位)。(6)数据处理:将二进制温度值转换为十进制(例如,0x07D0=2000,对应20.0℃),存储到片内RAM。(7)重复主循环。3.分析以下汇编程序的功能,并说明每条指令的作用。```asmORG0000HLJMPMAINORG000BHLJMPTIM0_ISRORG0100HMAIN:MOVTMOD,01HMOVTH0,3CH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论