《微控制器应用技术作业》考试复习题(附答案)_第1页
《微控制器应用技术作业》考试复习题(附答案)_第2页
《微控制器应用技术作业》考试复习题(附答案)_第3页
《微控制器应用技术作业》考试复习题(附答案)_第4页
《微控制器应用技术作业》考试复习题(附答案)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

《微控制器应用技术作业》考试复习题(附答案)一、选择题(每题2分,共20分)1.以下关于8051微控制器存储结构的描述,正确的是()。A.程序存储器和数据存储器共享地址空间B.片内数据存储器包含通用寄存器区、位寻址区和用户RAM区C.片外数据存储器最大寻址空间为64KB,与片内数据存储器地址重叠D.程序计数器(PC)是16位寄存器,可直接访问片外程序存储器的任意地址答案:B(解析:8051采用哈佛结构,程序和数据存储器独立;片外数据存储器与片内低128B地址不重叠;PC为16位,但受限于片外程序存储器的实际容量)2.8051微控制器中,用于选择工作寄存器组的特殊功能寄存器是()。A.PSWB.SPC.DPTRD.ACC答案:A(解析:PSW中的RS1、RS0位用于选择0-3组工作寄存器)3.8051的中断系统中,默认优先级最高的中断源是()。A.外部中断0(INT0)B.定时器0中断(T0)C.外部中断1(INT1)D.串口中断(RI/TI)答案:A(解析:默认优先级顺序为:INT0>T0>INT1>T1>串口)4.若8051的晶振频率为11.0592MHz,采用定时器1的模式2(自动重装)作为串口波特率发生器,当波特率为9600bps时,定时器1的初值应为()。(假设SMOD=0)A.0xFDB.0xFAC.0xFBD.0xFE答案:A(解析:波特率计算公式:波特率=(2^SMOD/32)×(fosc/(12×(256-TH1))),代入数据得TH1=0xFD)5.以下关于I/O端口的描述,错误的是()。A.P0口作为通用I/O时需外接上拉电阻B.P2口在访问片外存储器时输出高8位地址C.P3口的第二功能优先于通用I/O功能D.P1口是准双向口,内部自带上拉电阻答案:C(解析:P3口的第二功能与通用I/O功能是分时复用,无优先级之分)6.在ARMCortex-M3微控制器中,NVIC(嵌套向量中断控制器)的主要功能是()。A.管理定时器计数模式B.控制GPIO引脚电平C.处理中断优先级和嵌套D.实现模数转换答案:C(解析:NVIC是Cortex-M系列的中断管理核心,支持中断优先级配置和嵌套)7.以下哪条8051指令是错误的?()A.MOVA,30HB.MOVR0,@R1C.MOVXA,@DPTRD.MOVCA,@A+DPTR答案:B(解析:8051中,寄存器间接寻址的源操作数不能是R0或R1的间接寻址,正确应为MOVA,@R1)8.对于STM32微控制器的GPIO引脚,若配置为“推挽输出”模式,其特点是()。A.高电平由上拉电阻驱动,低电平由内部NMOS管导通B.高低电平均由内部MOS管直接驱动,可输出较大电流C.仅能输出高电平,低电平需外部电路拉低D.适用于I2C总线等需要线与功能的场景答案:B(解析:推挽输出模式下,PMOS和NMOS管交替导通,可直接驱动负载;开漏输出需外接上拉电阻)9.若需要在8051中实现1ms的定时(晶振12MHz),使用定时器0的模式1(16位定时器),则初值应为()。A.0xFC66B.0x039AC.0xFD84D.0x02BC答案:A(解析:机器周期=12/12MHz=1μs,1ms=1000μs,需计数1000次。初值=65536-1000=64536=0xFC66)10.以下关于SPI总线的描述,正确的是()。A.全双工通信,支持多从机B.半双工通信,需单独的时钟线C.同步通信,从机产生时钟信号D.异步通信,采用起始位和停止位答案:A(解析:SPI是全双工同步通信,主设备产生时钟(SCK),通过片选(CS)线选择从机)二、填空题(每空1分,共20分)1.8051微控制器的程序计数器(PC)是____位寄存器,其寻址范围为____KB。答案:16;642.8051的片内数据存储器中,地址00H~1FH为____区,20H~2FH为____区,30H~7FH为____区。答案:工作寄存器;位寻址;用户RAM3.当8051的外部中断0设置为边沿触发方式时,IT0=____(填0或1);若设置为电平触发方式,IT0=____。答案:1;04.STM32的通用定时器(TIMx)支持____、____和____三种计数模式。答案:向上计数;向下计数;中心对齐5.I2C总线的两根信号线是____(时钟线)和____(数据线),总线上的每个设备都有唯一的____位地址(7位地址模式)。答案:SCL;SDA;76.8051的串口工作在模式1时,一帧数据包含____位起始位、____位数据位、____位停止位,共10位。答案:1;8;17.在ARMCortex-M系列中,____寄存器用于存储当前程序的栈顶地址,____寄存器是累加器,用于数据运算。答案:SP(R13);R0(或通用寄存器R0~R7)8.若8051的晶振频率为6MHz,则其机器周期为____μs;若需要产生50ms的定时,使用定时器1的模式1,初值应为____(十六进制)。答案:2;0x3CB0(计算:50ms=50000μs,机器周期2μs,需计数25000次,初值=65536-25000=40536=0x9E58?此处需重新计算:6MHz晶振,机器周期=12/6MHz=2μs。50ms=50000μs,计数次数=50000/2=25000次。初值=65536-25000=40536,转换为十六进制:40536÷256=158(0x9E),余数40536-158×256=40536-40448=88(0x58),故初值为0x9E58)三、简答题(每题6分,共30分)1.简述哈佛结构与冯诺依曼结构的主要区别,并说明8051采用哈佛结构的优势。答案:哈佛结构中程序存储器和数据存储器独立编址,拥有各自的总线;冯诺依曼结构中程序和数据共享同一存储空间和总线。8051采用哈佛结构的优势:程序和数据访问并行,提高了取指和数据读写的效率;程序存储器可采用只读存储器(如ROM),数据存储器采用随机存储器(RAM),增强了系统的稳定性和灵活性。2.说明8051中断响应的完整过程(从检测到中断请求到返回主程序)。答案:(1)CPU在每个机器周期的S5P2期间检测中断请求标志;(2)若中断允许且无更高优先级中断嵌套,CPU在当前指令执行完成后响应中断;(3)保护断点(将PC当前值压入堆栈);(4)清除中断请求标志(部分中断需软件清除);(5)根据中断源的向量地址跳转至中断服务程序;(6)执行中断服务程序;(7)执行RETI指令,恢复断点(弹出PC值),返回主程序。3.比较8051定时器0的模式1和模式2的区别,并说明模式2的典型应用场景。答案:模式1是16位定时器/计数器,计数溢出后需手动重装初值;模式2是8位自动重装模式,THx存放初值,TLx计数溢出后自动将THx值重装到TLx。模式2的典型应用:需要精确重复定时(如串口波特率发生器)或高频脉冲计数场景,避免手动重装初值导致的误差。4.简述STM32微控制器中GPIO引脚的“输入上拉”和“输入下拉”模式的区别,并举例说明其应用。答案:输入上拉模式下,引脚内部连接上拉电阻,无外部信号时默认高电平;输入下拉模式下,内部连接下拉电阻,默认低电平。应用示例:按键检测时,若按键一端接VCC,另一端接GPIO引脚,选择输入下拉模式可避免按键未按下时引脚悬空;若按键一端接地,另一端接GPIO引脚,选择输入上拉模式更合理。5.说明I2C总线的“起始条件”和“停止条件”的时序要求,并解释“应答信号”的作用。答案:起始条件:SCL为高电平时,SDA由高电平跳变到低电平;停止条件:SCL为高电平时,SDA由低电平跳变到高电平。应答信号(ACK):接收方在接收到8位数据后,在第9个时钟周期将SDA拉低,通知发送方数据已接收;若SDA保持高电平(NACK),表示接收方未准备好或数据错误。应答信号确保了总线通信的可靠性。四、分析设计题(共30分)1.(10分)使用8051微控制器设计一个LED闪烁电路(LED接P1.0),要求LED亮1秒、灭1秒,周期2秒。已知晶振频率为12MHz,采用定时器中断实现。(1)画出硬件连接示意图(只需标注关键引脚);(2)计算定时器初值(需写出计算过程);(3)编写完整的C51程序(包括寄存器初始化、中断服务函数)。答案:(1)硬件连接:8051的P1.0引脚通过限流电阻(约330Ω)接LED阳极,LED阴极接地;晶振连接XTAL1和XTAL2,VCC接+5V,GND接地。(2)定时器初值计算:晶振频率12MHz,机器周期=1μs。目标:定时500ms(亮/灭各1秒需两次500ms中断)。定时器0选择模式1(16位),最大定时时间=65536μs≈65.5ms,因此需通过中断次数计数实现500ms。设每次中断时间为50ms,则500ms需10次中断。50ms=50000μs,计数次数=50000/1=50000次。初值=65536-50000=15536=0x3CB0(TH0=0x3C,TL0=0xB0)。(3)C51程序:```cinclude<reg51.h>sbitLED=P1^0;unsignedcharcount=0;//中断次数计数器voidTimer0_Init(){TMOD=0x01;//定时器0模式1TH0=0x3C;//初值高8位TL0=0xB0;//初值低8位ET0=1;//允许定时器0中断EA=1;//开总中断TR0=1;//启动定时器0}voidTimer0_ISR()interrupt1{TH0=0x3C;//重装初值TL0=0xB0;count++;if(count>=10){//50ms×10=500msLED=~LED;//翻转LED状态count=0;//计数器清零}}voidmain(){Timer0_Init();while(1);//主循环等待中断}```2.(10分)设计一个基于8051的UART通信系统,要求通过串口向PC发送字符串“HELLO”(波特率9600bps,晶振11.0592MHz,无奇偶校验,1位停止位)。(1)说明串口工作模式的选择;(2)计算波特率发生器的初值(需写出公式);(3)编写发送函数(要求逐个发送字符,使用查询方式)。答案:(1)串口工作模式选择模式1(10位异步通信,8位数据位)。(2)波特率计算:晶振fosc=11.0592MHz,SMOD=0(默认),波特率=9600bps。公式:波特率=(2^SMOD/32)×(fosc/(12×(256-TH1)))代入数据:9600=(1/32)×(11059200/(12×(256-TH1)))解得:256-TH1=11059200/(12×32×9600)=3TH1=256-3=253=0xFD(模式2自动重装,TH1=TL1=0xFD)。(3)发送函数:```cinclude<reg51.h>defineFOSC11059200LdefineBAUD9600voidUART_Init(){SCON=0x50;//模式1,允许接收(可仅发送时设为0x40)TMOD|=0x20;//定时器1模式2TH1=0xFD;//波特率初值TL1=0xFD;TR1=1;//启动定时器1ES=0;//禁止串口中断(查询方式)EA=1;}voidUART_SendByte(unsignedchardat){SBUF=dat;//发送数据while(!TI);//等待发送完成(TI=1)TI=0;//清除发送标志}voidUART_SendString(charstr){while(str!='\0'){UART_SendByte(str);str++;}}voidmain(){UART_Init();UART_SendString("HELLO");while(1);}```3.(10分)分析STM32F103微控制器中ADC(模数转换器)的单通道采样流程,并设计一个通过ADC1的通道5(PA5)采集0-3.3V电压的程序(要求输出电压值到串口,波特率115200bps)。答案:ADC单通道采样流程:(1)配置GPIO引脚(PA5)为模拟输入模式;(2)初始化ADC1,设置分辨率(如12位)、采样时间、对齐方式(右对齐);(3)选择规则通道5,设置转换顺序为1(仅单通道);(4)使能ADC1并校准;(5)启动ADC转换,查询转换完成标志(EOC);(6)读取转换结果,计算实际电压值(电压=(转换值/4095)×3.3V);(7)通过串口发送电压值。程序示例(基于标准库):```cinclude"stm32f10x.h"include<stdio.h>voidGPIO_Init_Config(){GPIO_InitTypeDefGPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//PA5(ADC1通道5)模拟输入GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStruct);//USART1_TX(PA9)推挽输出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);}voidUSART_Init_Config(){USART_InitTypeDefUSART_InitStruct;USART_InitStruct.USART_BaudRate=115200;USART_InitStruct.USART_WordLength=USART_WordLength_8b;USART_InitStruct.USART_StopBits=USART_StopBits_1;USART_InitStruct.USART_Parity=USART_Parity_No;USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStruct.USART_Mode=USART_Mode_Tx;USART_Init(USART1,&USART_InitStruct);USART_Cmd(USART1,ENABLE);}voidADC_Init_Config(){ADC_InitTypeDefADC_InitStruct;RCC_ADCCLKConfig(RCC_PCLK2_Div6);//ADC时钟=72MHz/6=12MHz(≤14MHz)ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;ADC_InitStruct.ADC_ScanConvMode=DISABLE;//单通道,关闭扫描ADC_InitStruct.ADC_ContinuousConvMode=ENABLE;//连续转换ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//软件触发ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStruct.ADC_NbrOfChannel=1;ADC_Init(ADC1,&ADC_InitStruct);//配置通道5,采样时间55.5周期ADC_RegularChannelConfig(ADC1,ADC_Channel_5,1,ADC_SampleTime_55Cycles5);ADC_Cmd(ADC1,ENABLE);//使能ADC1ADC_ResetCalibration(ADC1);//复位校准while(ADC_GetResetCalib

温馨提示

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

评论

0/150

提交评论