单片机上机操作考试题部分答案
- 格式:docx
- 大小:226.39 KB
- 文档页数:47
单片机考试题目及答案一、选择题(每题2分,共20分)1. 单片机是一种集成了CPU、存储器、I/O接口等功能的微型计算机,其英文缩写是:A. CPUB. RAMC. ROMD. MCU答案:D2. 下列哪个是51系列单片机的特有寄存器?A. ACCB. PSWC. SPD. PC答案:B3. 在8051单片机中,以下哪个指令是用于将累加器A的内容与外部数据存储器中的数据进行交换?A. MOV A, @DPTRB. MOVX A, @DPTRC. MOV DPTR, #20HD. MOV A, #20H答案:B4. 8051单片机的定时器/计数器0和1,其定时器模式下的工作方式有:A. 1种B. 2种C. 3种D. 4种答案:C5. 下列哪个中断源在8051单片机中具有最高优先级?A. 定时器0中断B. 外部中断0C. 定时器1中断D. 串行中断答案:B二、填空题(每空2分,共20分)1. 单片机的最小系统通常包括________、________和________。
答案:时钟电路、复位电路、电源电路2. 8051单片机的P0口是________位的双向I/O口。
答案:83. 8051单片机的中断向量地址是固定的,其中外部中断0的中断向量地址是________。
答案:03H4. 8051单片机的定时器0和定时器1都可以被配置为________模式,用于计数外部事件。
答案:计数器5. 在8051单片机中,使用MOV指令可以实现寄存器之间的数据传输,例如MOV A, R0,表示将________的数据传送到________。
答案:R0寄存器;累加器A三、简答题(每题10分,共30分)1. 请简述单片机的中断系统的作用及其重要性。
答案:单片机的中断系统允许单片机在执行程序的过程中,对外部事件或内部条件做出快速响应。
中断系统的重要性在于它能够实现多任务处理,提高系统的实时性和效率。
2. 描述8051单片机的串行通信方式及其特点。
单片机考试题目及答案考试题目一:1. 请简要解释什么是单片机(MCU)?考试题目二:2. 请列举一些常见的单片机芯片品牌和型号,并阐述它们的特点。
考试题目三:3. 简述单片机的内部架构,并解释其中的核心组成部分。
考试题目四:4. 描述单片机的编程方式,包括编程语言及工具。
考试题目五:5. 请简要介绍单片机的输入/输出(I/O)接口。
考试题目六:6. 什么是中断?请阐述单片机中断的原理以及使用方法。
考试题目七:7. 解释什么是模拟信号与数字信号,并举例说明。
考试题目八:8. 请列举几种常用的单片机应用领域,并简要描述其功能。
考试题目九:9. 单片机在工业自动化中的作用是什么?举例说明其应用场景。
考试题目十:10. 简述单片机系统设计的基本步骤以及注意事项。
考试答案:1. 单片机是一种集成了处理器、存储器和各种输入/输出接口的微型计算机系统。
它具有体积小、功耗低、成本低等优点,广泛应用于嵌入式系统、工业自动化、物联网等领域。
2. 常见的单片机芯片品牌和型号包括:ATmega328P(Arduino Uno使用的芯片)、STM32F103系列(STMicroelectronics的ARM Cortex-M3系列芯片)、PIC16F877A(Microchip的8位微控制器芯片),它们分别具有易用性、强大的性能和丰富的外设等特点。
3. 单片机的内部架构包括运算器、存储器、定时器/计数器、中断系统和输入/输出接口等核心组成部分。
运算器用于执行指令和进行运算,存储器用于存储程序和数据,定时器/计数器用于控制时间和计数,中断系统用于处理外部中断请求,输入/输出接口用于与外部设备进行数据交互。
4. 单片机的编程方式包括汇编语言编程和高级语言编程。
汇编语言编程较为底层,直接操作寄存器和位,效率高但难度较大;高级语言编程如C语言等更加易学易用,可以借助开发工具如Keil、Arduino等进行编程。
5. 单片机的输入/输出接口包括通用输入/输出(GPIO)口、模拟输入/输出(ADC/DAC)口、串行通信接口(UART/SPI/I2C)等。
单片机考试题目及答案一、选择题1. 下列单片机中,不属于8位单片机的是:A. 8051B. AVRC. PICD. STM32答案:D. STM322. 在单片机中,下面哪个不是内部存储器:A. RAMB. ROMC. FlashD. EEPROM答案:A. RAM3. 在单片机内,系统时钟频率越高,单片机运行速度越快,对错?A. 对B. 错答案:A. 对二、填空题1. 单片机是一种集成了______的芯片。
答案:微处理器、存储器、外围设备2. 在单片机系统中,指令寄存器用来存放______。
答案:待执行的指令3. 单片机内部时钟频率通常由______提供。
答案:晶振三、判断题1. 单片机中,外部设备通过I/O口与单片机进行通信,可利用端口输入和输出数据。
答案:正确2. 在单片机内部,EEPROM是一种易擦除可编程只读存储器。
答案:错误四、简答题1. 请简述单片机中的中断概念及中断响应过程。
答:中断是单片机在执行程序时,由于处理器内部或外部事件发生而打断其正常工作顺序,转而去执行相应的中断服务程序。
中断响应过程分为五个步骤:中断请求、中断决策、保存现场、跳转执行、中断返回。
2. 请简要介绍单片机中的I/O口及其作用。
答:单片机中的I/O口用于和外部设备进行数据传输,可以输入或输出数字信号,实现与外界的通信。
通过I/O口可以控制LED灯、数码管、继电器等外部设备,也可以接收来自按键、传感器等的输入信号。
以上是单片机考试题目及答案,希望能对您有所帮助。
如有任何疑问,请随时联系我们。
单片机上机操作考试题部分答案1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为。
#include<>#include<>#define uchar unsigned charuchar T_count=0;成下面电路所示的功能,K1,K2对应两个开关按键。
P1口对应发光二极管的状态#include<>#define uint unsigned int#define uchar unsigned charsbit k1=P3^2;sbit k2=P3^3;一个数码管上循环显示“H”“E”“L”“L”“O”,循环的时间为1s。
#include<>#define uchar unsigned char#define uint unsigned intuchar code tab[]={0xf6,0xf9,0xb8,0xb8,0xbf}; uchar T_count=0;uchar i=1;void t0Proc() interrupt 1{TH0=0x3c;TL0=0xb0;if(++T_count==10){P0=tab[i];i=(i+1)%5;T_count=0;}void main(){TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab[0]; 6个数码管上分别显示自己学号的后六位数字。
#include<>#include<>#define uchar unsigned char#define uint unsigned intuchar code tab[]={};一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。
#include<>#define uchar unsigned charvoid delay1s(){uchar i;for(i=0;i<10;i++)TH1=0x3c;TL1=0xb0;TR1=1; 用外中断0来控制,去实现下列功能。
单片机考试题及答案一、选择题(每题2分,共20分)1. 单片机的英文缩写是:A. CPUB. MCUC. ROMD. RAM答案:B2. 下列哪个不是单片机的组成部分?A. 中央处理器B. 存储器C. 输入/输出接口D. 显示器答案:D3. 8051单片机的内部RAM是:A. 128字节B. 256字节C. 512字节D. 1024字节答案:B4. 单片机的程序存储器通常使用的是:A. RAMB. ROMC. EPROMD. EEPROM答案:C5. 单片机的I/O口可以配置为:A. 只读B. 只写C. 推挽输出D. 开漏输出答案:D6. 下列哪个不是单片机的中断源?A. 定时器溢出B. 外部中断C. 串行通信D. 显示器答案:D7. 8051单片机的定时器/计数器的计数范围是:A. 0到255B. 0到511C. 0到1023D. 0到2047答案:A8. 单片机的看门狗定时器的主要作用是:A. 计时B. 计数C. 监视程序运行D. 控制I/O口答案:C9. 下列哪个不是单片机的常用编程语言?A. C语言B. 汇编语言C. Java语言D. C++语言答案:C10. 单片机的I/O口的模式设置通常包括:A. 推挽输出B. 开漏输出C. 上拉输入D. 以上都是答案:D二、填空题(每题2分,共20分)1. 单片机的CPU主要由______、______和______组成。
答案:算术逻辑单元、控制单元、寄存器组2. 单片机的______存储器用于存储程序代码。
答案:程序3. 8051单片机的定时器/计数器有______个。
答案:24. 单片机的中断优先级可以通过______寄存器来设置。
答案:IP5. 单片机的______模式可以减少功耗。
答案:睡眠6. 单片机的______接口允许单片机与外部设备进行数据交换。
答案:I/O7. 单片机的______寄存器用于存储程序计数器的值。
答案:PC8. 单片机的______功能可以防止程序死循环。
单片机考试试题及答案一、选择题(每题2分,共20分)1. 单片机中,CPU的主要功能是()。
A. 存储数据B. 处理数据C. 传输数据D. 显示数据答案:B2. 在8051单片机中,下列哪个寄存器是用于存储程序计数器的地址?A. SPB. PCC. DPTRD. ACC答案:B3. 下列哪项不是单片机的I/O接口?A. 定时器/计数器B. 串行通信接口C. 模数转换器D. 键盘答案:C4. 单片机的中断系统通常由哪两部分组成?A. 中断源和中断服务程序B. 中断向量表和中断服务程序C. 中断向量表和中断源D. 中断源和中断向量表答案:B5. 在8051单片机中,下列哪个指令用于将累加器的内容传送到外部数据存储器?A. MOVXB. MOVC. MOVCD. MUL答案:A二、填空题(每题2分,共20分)1. 单片机的______是单片机的核心部件,负责执行程序。
答案:CPU2. 8051单片机的定时器/计数器共有______个。
答案:23. 在8051单片机中,______指令用于将内部RAM的某个单元的内容传送到累加器。
答案:MOV4. 单片机的______接口用于实现单片机与外部设备的通信。
答案:串行通信5. 单片机的______功能允许它在执行当前任务的同时响应外部事件。
答案:中断三、简答题(每题10分,共30分)1. 请简述单片机的中断优先级是如何工作的?答案:单片机的中断优先级是指在多个中断请求同时发生时,单片机根据中断源的重要性来决定先响应哪一个中断请求。
通常,中断优先级由中断向量表中的地址顺序决定,优先级高的中断源对应的中断向量地址在表中靠前。
2. 描述单片机的I/O接口的作用。
答案:单片机的I/O接口是单片机与外部设备进行数据交换的通道。
它允许单片机接收外部设备的数据输入,并将处理后的数据输出到外部设备。
3. 简述单片机的定时器/计数器的作用。
答案:单片机的定时器/计数器用于提供精确的时间控制和事件计数。
单片机28例1、利用位操作法点亮第三盏灯。
#include <reg52.h>void main(){P2=0xbb;P0=0x99;while(1);}2、利用位操作法点亮第五盏灯。
#include <reg52.h>void main(){P2=0x00;P0=0x80;while(1);}3、利用位操作法点亮第六盏灯。
#include <reg52.h>void main(){P2=0xed;P0=0xb0;while(1);}4、利用位操作法点亮第八盏灯。
#include <reg52.h>void main(){P2=0xb2;P0=0x86;while(1);}5、利用位操作法点亮第一、三、六、八盏灯。
#include <reg52.h>sbit led0=P1^0;sbit led1=P1^1;sbit led2=P1^2;sbit led3=P1^3;sbit led4=P1^4;sbit led5=P1^5;sbit led6=P1^6;sbit led7=P1^7;void main(){led0=0;led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;}6、利用位操作法点亮第四、五、六、七盏灯。
#include <reg52.h>sbit led3=P1^3;sbit led4=P1^4;sbit led5=P1^5;sbit led6=P1^6;void main(){led3=0;led4=0;led5=0;led6=0;}7、利用位操作法点亮第一、三、五、八盏灯。
#include<reg52.h>#define uint unsigned intvoid delay1s(){uint i,j;for(i=300;i>0;i--)for(j=110;j>0;j--);}void main(){P2=0xfe;while(1){P0=0xc0;delay1s();P0=0xf9;delay1s();P0=0xa4;delay1s();P0=0xb0;delay1s();P0=0x99;delay1s();P0=0x92;delay1s();P0=0x82;delay1s();P0=0xf8;delay1s();P0=0x80;delay1s();P0=0x90;delay1s();}}8、利用位操作法点亮八盏灯。
单片机考试题及答案一、选择题(每题2分,共20分)1. 单片机的英文缩写是:A. CPUB. MCUC. RAMD. ROM答案:B2. 下列哪个不是单片机的组成部分?A. 中央处理器B. 存储器C. 显示器D. 总线答案:C3. 8051单片机的时钟频率为12MHz,其机器周期的频率是多少?A. 1MHzB. 6MHzC. 12MHzD. 24MHz答案:B4. 下列哪个指令是8051单片机的无条件跳转指令?A. LJMPB. SJMPC. AJMPD. CJNE答案:A5. 8051单片机的中断优先级由哪个寄存器决定?A. IPB. IEC. P0D. SP答案:A二、填空题(每空2分,共20分)1. 单片机是一种_____的微型计算机,它将_____、_____、_____等集成在一个芯片上。
答案:集成度很高;CPU;存储器;输入/输出接口2. 8051单片机具有_____位的外部数据总线和_____位的外部地址总线。
答案:8;163. 单片机的程序存储器通常使用_____存储器,数据存储器通常使用_____存储器。
答案:ROM;RAM4. 8051单片机的中断系统包括_____个外部中断和_____个定时器中断。
答案:2;25. 单片机的I/O口具有_____和_____功能。
答案:输入;输出三、简答题(每题10分,共30分)1. 简述单片机的中断响应过程。
答案:单片机的中断响应过程包括:中断请求的发出、中断优先级的判断、中断服务程序的调用、中断服务程序的执行、中断返回。
首先,中断源发出中断请求信号,然后单片机根据中断优先级寄存器IP的设置判断哪个中断请求具有更高的优先级。
一旦确定了优先级,单片机会调用相应的中断服务程序,执行中断服务程序中的代码。
中断服务程序执行完成后,单片机会返回到中断发生前的程序执行位置继续执行。
2. 描述8051单片机的定时器/计数器的作用及其工作模式。
答案:8051单片机的定时器/计数器主要用于测量时间间隔或对外部事件进行计数。
单片机考试题目及答案一、单项选择题(每题2分,共20分)1. 单片机中,以下哪个寄存器用于存储程序计数器(PC)的值?A. SPB. PCC. DPTRD. SCON答案:B2. 在8051单片机中,下列哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOV A, @R0B. MOVX A, @DPTRC. MOV A, #dataD. MOV A, R0答案:B3. 下列哪个指令是8051单片机的无条件跳转指令?A. SJMPB. CJNEC. DJNZD. JZ答案:A4. 在8051单片机中,以下哪个中断源的中断优先级最高?A. 外部中断0B. 定时器0中断C. 外部中断1D. 串行通讯中断答案:C5. 8051单片机的定时器/计数器工作在方式1时,其计数器的计数范围是多少?A. 0到255B. 0到65535C. 0到32767D. 0到65536答案:C6. 8051单片机中,哪个指令用于将累加器A的内容与立即数进行逻辑“或”操作?A. ORL A, #dataB. ORL A, directC. ORL A, @R0D. ORL direct, #data答案:A器R0的内容进行逻辑“与”操作?A. ANL A, R0B. ANL R0, AC. ANL A, #dataD. ANL direct, A答案:A8. 8051单片机中,哪个指令用于将累加器A的内容与直接地址中的数据进行逻辑“异或”操作?A. XRL A, #dataB. XRL A, directC. XRL direct, AD. XRL A, @R0答案:B器R0的内容进行逻辑“异或”操作?A. XRL A, R0B. XRL R0, AC. XRL A, #dataD. XRL direct, A答案:A10. 8051单片机中,哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑“与”操作后,结果存回R0?A. ANL A, R0B. ANL R0, AC. ANL A, #dataD. ANL direct, A答案:B二、填空题(每题2分,共20分)1. 8051单片机的内部RAM分为______和______两部分。
单⽚机考试试题含有答案(C卷)⼀、填空题(每题2分,共22分)1.⼗进制数-29的8位补码表⽰为 11100011 。
2. MCS-51的堆栈是软件填写堆栈指针临时在⽚内数据存储区开辟的区域。
3.MCS-51的P0⼝作为输出端⼝时,每位能驱动 8个LS型 TTL负载。
4.MCS-51有5个中断源,有2个优先中断级,优先级由软件填写特殊功能寄存器 Ip 加以选择。
5. MCS-51有4组⼯作寄存器,它们的地址范围是00H-1fH 。
6. 80C51在物理上有 4 个独⽴的存储器空间。
7.MOVX A , @DPTR源操作数的寻址⽅式为寄存器间接寻址。
8.当80C51的RST引脚上保持 2 个机器周期以上的低电平时,80C51即发⽣复位。
9.单⽚机系统复位后,(PSW)=00H,因此⽚内寄存区的当前寄存器是第 0 组。
10.假定累加器A的内容为30H,执⾏指令:1000H: MOVC A,@A+PC后,送⼊A的是程序存储器 1031H 单元的内容。
11.执⾏下列指令序列后,SP的内容为__62H____,61H 单元内容为___68H___,62H单元的内容为_36H_____。
MOV SP,#60HMOV A,#68HMOV PSW,#36HPUSH ACCPUSH PSW⼆、单项选择题(每⼩题1分,共10分)1.在中断服务程序中,⾄少应有⼀条(D)(A)传送指令(B)转移指令(C)加法指令(D)中断转移指令2.JNZ e指令的寻址⽅式是(C )(A)⽴即寻址(B)寄存器寻址(C)相对寻址(D)位寻址3.下⾯哪⼀个部件不是CPU的指令部件( C )(A)PC (B)IR (C)PSW (D)ID4.要把P0⼝⾼4位变0,低4位不变,应使⽤指令( D )(A) ORL P0, #0FH (B) ORL P0, #0F0H (C)ANL P0, #0F0H (D)ANL P0, #0FH5.关于MCS-51的堆栈操作,正确的说法是( C )(A)先⼊栈,再修改栈指(B)先修改栈指针,再出栈(C) 先修改栈指针,再⼊栈(D)以上都不对6.当执⾏MOVX @DPTR, A指令时,MCS-51产⽣下⾯哪⼀个控制信号( C )(A )(B)(C)ALE (D)7. MCS-51的中断源全部编程为同级时,优先级最⾼的是(D )(A)INT1 (B)TI (C)串⾏接⼝(D)INT08.指令AJMP的跳转范围是( C )(A)256B (B)1KB (C)2KB (D)64KB9.对程序存储器的读操作,只能使⽤( D )(A)MOV指令(B) PUSH指令(C) MOVX指令(D) MOVC指令10.必须进⾏⼗进制调整的⼗进制运算( C )(A)有加法和减法(B)有乘法和除法(C)只有加法(D)只有减法三、判断题(每⼩题1分,共10分)1.MCS-51单⽚机内部的寄存器均为8位寄存器。
单片机考试试题带答案————————————————————————————————作者:————————————————————————————————日期:单片机原理及应用试卷A题号一二三四五六七八九总分得分一、填空题(每空1分,共20分)1、单片微型计算机由CPU、存储器和I/O 三部分组成。
2、MCS-51系统中,当PSEN信号有效时,表示从P0口稳定地送出了低8位地址。
3、访问8031片外数据存储器采用的是寄存器间接寻址方式。
4、累加器(A)=80H,执行完指令ADD A,#83H后,进位位CY= 1 。
5、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H入栈,37B0H送入PC。
6、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP加以选择。
7、在变址寻址方式中,以A作为变址寄存器,以PC或DPTR作基址寄存器。
8、中断请求信号有电平触发和脉冲触发两种触发方式9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。
10、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。
11、51的并行I/O口信息有读引脚和读锁存器两种读取方法,读—改—写操作是针对并行I/O口内的锁存器进行的。
12、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。
二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。
每题1.分,共10分)1、计算机能识别的语言是( C )。
(A)汇编语言(B)自然语言(C)机器语言(C)高级语言2、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。
(A)P0和P2口(B)P0口(C)P2和P3口(D)P2口3、在中断服务程序中,至少应有一条( D )。
(A )传送指令 (B )转移指令 (C )加法指令 (D )中断返回指令 4、访问外部数据存储器时,不起作用的信号是( C )。
单片机上机考试题及答案一、选择题(每题2分,共10分)1. 单片机中,以下哪个寄存器用于存储程序计数器的值?A. 累加器B. 堆栈指针C. 程序计数器D. 数据指针答案:C2. 在8051单片机中,哪个指令用于将累加器的内容与外部数据存储器中的数据进行交换?A. MOV A,@R0B. MOVX A,@DPTRC. MOV A,#dataD. MOV A,direct答案:B3. 8051单片机的定时器/计数器工作在方式1时,其计数器的位数是多少?A. 8位B. 12位C. 16位D. 24位答案:B4. 在8051单片机中,以下哪个中断源的优先级最高?A. 外部中断0B. 定时器0中断C. 外部中断1D. 串行通信中断答案:C5. 8051单片机的串行通信中,波特率的设置是由哪个寄存器控制的?A. TMODB. TCONC. SCOND. PCON答案:C二、填空题(每题2分,共10分)1. 8051单片机的内部RAM可以分成______个可寻址的单元。
答案:1282. 在8051单片机中,若要设置定时器为模式2,应将TMOD寄存器的相应位设置为______。
答案:01H3. 8051单片机的外部中断0的中断向量地址是______。
答案:0003H4. 8051单片机的定时器/计数器在方式0下是一个______位的计数器。
答案:85. 8051单片机的串行通信中,若要实现9位数据的传输,应将SCON寄存器的SM0和SM1位设置为______。
答案:00三、简答题(每题5分,共20分)1. 简述8051单片机的中断系统的特点。
答案:8051单片机的中断系统具有5个中断源,其中两个是外部中断,三个是定时器中断。
中断系统具有嵌套中断能力,即一个中断服务程序可以被另一个更高优先级的中断打断。
中断响应时间取决于中断源的优先级和中断服务程序的长度。
2. 描述8051单片机的定时器/计数器的四种工作模式。
答案:8051单片机的定时器/计数器有四种工作模式:模式0(13位计数器),模式1(16位计数器),模式2(8位自动重装载计数器),模式3(仅对定时器0有效,将计数器分成两个独立的8位计数器)。
单片机考试题目及答案一、选择题(每题2分,共20分)1. 单片机的英文缩写是()。
A. CPUB. MCUC. RAMD. ROM2. 下列哪个不是51单片机的内部存储器类型?()A. ROMB. RAMC. EPROMD. EEPROM3. 单片机的I/O口在默认情况下是()。
A. 推挽输出B. 开漏输出C. 高阻态D. 悬浮态4. 单片机的中断系统具有()个优先级。
A. 1B. 2C. 3D. 45. 单片机的定时器/计数器可以用于()。
A. 定时B. 计数C. 脉冲宽度测量D. 所有以上6. 下列哪个指令不是51单片机的指令类型?()。
A. MOVB. ADDC. JUMPD. CALL7. 51单片机的外部中断INT0和INT1的触发方式分别是()。
A. 电平触发,边沿触发B. 边沿触发,电平触发C. 边沿触发,边沿触发D. 电平触发,电平触发8. 下列哪个不是单片机的串行通信协议?()。
A. UARTB. SPIC. I2CD. USB9. 单片机的看门狗定时器主要功能是()。
A. 定时复位B. 定时唤醒C. 定时计数D. 定时中断10. 51单片机的定时器0和定时器1的计数方式分别是()。
A. 8位计数器,16位计数器B. 13位计数器,16位计数器C. 16位计数器,8位计数器D. 13位计数器,13位计数器答案:1. B 2. D 3. C 4. B 5. D 6. C 7. A 8. D 9. A 10. A二、填空题(每题2分,共10分)1. 单片机的最小系统包括_____、_____和_____。
答案:时钟电路,复位电路,电源电路2. 51单片机的P0口作为I/O口使用时,需要外接_____。
答案:上拉电阻3. 单片机的中断服务程序结束后,需要通过_____指令返回。
答案:RETI4. 单片机的I2C通信协议中,主设备通过_____来控制从设备。
答案:时钟信号5. 单片机的看门狗定时器如果未在预定时间内重置,将会导致_____。
单片机上机操作考试题及答案1. 实验目的通过单片机上机操作考试,测试学生对单片机相关知识的掌握程度,以及培养学生动手实践能力和解决问题的能力。
2. 实验要求根据题目要求,使用单片机进行编程,完成所提供的电路连接和操作步骤。
要求学生能够独立完成实验,并且在规定时间内提交答案。
3. 考试题目3.1 题目一:LED流水灯连接8个LED灯,灯依次顺序点亮并循环显示,每个灯的亮灭时间为500ms。
3.2 题目二:数码管计数器使用数码管显示0-9的数字,实现一个计数器功能。
按下按键后计数器加1,并且在数码管上显示当前的计数值。
3.3 题目三:温度采集与显示通过温度传感器采集环境温度,并使用数码管显示当前温度值,温度单位为摄氏度。
4. 考试答案4.1 题目一答案:LED流水灯```C语言#include<reg52.h>sbit LED1 = P0^0;sbit LED2 = P0^1;sbit LED3 = P0^2;sbit LED4 = P0^3;sbit LED5 = P0^4;sbit LED6 = P0^5;sbit LED7 = P0^6;sbit LED8 = P0^7;void delay(unsigned int i) //延时函数{unsigned int j, k;for(j=i; j>0;j--)for(k=121;k>0;k--);}void main(){while(1)LED1 = 0; delay(500); LED2 = 0; delay(500); LED3 = 0; delay(500); LED4 = 0; delay(500); LED5 = 0; delay(500); LED6 = 0; delay(500); LED7 = 0; delay(500); LED8 = 0; delay(500); LED1 = 1; delay(500); LED2 = 1; delay(500); LED3 = 1; delay(500); LED4 = 1; delay(500); LED5 = 1; delay(500); LED6 = 1; delay(500); LED7 = 1; delay(500); LED8 = 1; delay(500); }}4.2 题目二答案:数码管计数器```C语言#include<reg52.h>#define digit P0 //定义数码管的端口sbit key = P2^0; //定义按键引脚unsigned char code DisplayTab[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //显示的0-9 };void delay(unsigned int i) //延时函数{unsigned int j, k;for(j=i; j>0;j--)for(k=121;k>0;k--);}void display(unsigned char num) //显示函数{digit = DisplayTab[num];}void main(){unsigned char count = 0; //计数器变量,初始为0 while(1){if(key == 0) //按下按键{delay(10); //延时去抖动if(key == 0) //确认按键按下{while(key == 0); //等待按键释放count++; //计数器加1if(count >= 10)count = 0;display(count); //显示计数值}}}}```4.3 题目三答案:温度采集与显示```C语言#include<reg52.h>#define digit P0 //定义数码管的端口sbit DQ = P2^7; //定义温度传感器引脚unsigned char code DisplayTab[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //显示的0-9 };void delay(unsigned int i) //延时函数{unsigned int j, k;for(j=i; j>0;j--)for(k=121;k>0;k--);bit Init_DS18B20() //初始化温度传感器{unsigned char err;DQ = 1; //总线拉高delay(2); //延时2毫秒DQ = 0; //总线拉低delay(80); //延时80毫秒DQ = 1; //总线拉高delay(30); //延时30毫秒err = DQ; //读总线电平delay(5); //延时5毫秒return err;}unsigned char Read_One_Byte() //读取一个字节的数据{unsigned char i, dat = 0;for(i=0;i<8;i++)DQ = 0; //总线拉低dat >>= 1;DQ = 1; //总线拉高if(DQ)dat |= 0x80;delay(1); //延时1毫秒}return dat;}unsigned char Read_Temperature() //读温度函数{unsigned char a, b;Init_DS18B20(); //初始化温度传感器delay(1); //延时1毫秒Write_One_Byte(0xcc); //跳过ROMWrite_One_Byte(0x44); //启动温度转换Init_DS18B20(); //初始化温度传感器Write_One_Byte(0xcc); //跳过ROMWrite_One_Byte(0xbe); //读取温度寄存器a = Read_One_Byte(); //读温度指数位b = Read_One_Byte(); //读温度小数位temp = ((b<<8)+a) * 0.0625; //计算温度值 delay(100); //延时100毫秒return temp;}void display(unsigned char num) //显示函数{digit = DisplayTab[num];}void main(){unsigned char temp;while(1){temp = Read_Temperature(); //读取温度display(temp); //显示温度值}}```以上是单片机上机操作考试题及答案,希望对你有所帮助。
1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为0.5s。
#include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar T_count=0;//定时中断void toProc() interrupt 1{TH0=(8192-5000)/32; //恢复初值TL0=(8192-5000)%32;if(++T_count==100) //0.5s移动一位{P0=_crol_(P0,1);T_count=0;}}//主函数void main(){TMOD=0;TH0=(8192-5000)/32; //5ms定时TL0=(8192-5000)%32;EA=1;ET0=1;TR0=1;P0=0xfe;while(1);}#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit k1=P3^2;sbit k2=P3^3;//延时void delay(uint x){uchar i;while(--x){for(i=0;i<120;i++);}}//主函数void main(){while(1){if((k1==0)&&(k2==0)) //K1、K2同时按下{P1=0x00;delay(10);}else if((k1==0)&&(k2==1)) //K1按下,K2不按{P1=0xcc;delay(10);}else if((k1==1)&&(k2==0)) //K2按下,K1不按{P1=0xf0;delay(10);}else{P1=0xff;delay(10);}}}3.在一个数码管上循环显示“H”“E”“L”“L”“O” ,循环的时间为1s。
单片机考试题目及答案6一、单项选择题(每题2分,共20分)1. 单片机的英文缩写是什么?A. CPUB. MCUC. RAMD. ROM答案:B2. 下列哪个不是单片机的组成部分?A. 中央处理单元B. 存储器C. 键盘D. 输入/输出接口答案:C3. 单片机的程序存储器通常使用的是什么类型的存储器?A. RAMB. ROMC. EEPROMD. SRAM答案:B4. 8051单片机的定时器/计数器有几个?A. 1个B. 2个C. 3个D. 4个5. 8051单片机的外部中断有几个?A. 1个B. 2个C. 3个D. 4个答案:B6. 下列哪个不是单片机的输入/输出端口?A. P0B. P1C. P2D. P3答案:D7. 8051单片机的串行通信是采用什么方式?A. 并行通信B. 异步通信C. 同步通信D. 串行通信答案:B8. 8051单片机的看门狗定时器是哪个?A. T0B. T1C. WDGD. T2答案:C9. 单片机的I/O口在默认状态下是什么状态?B. 低电平C. 浮空D. 上拉答案:C10. 8051单片机的振荡器频率为12MHz时,机器周期是多少?A. 1μsB. 0.5μsC. 0.25μsD. 0.125μs答案:B二、填空题(每空1分,共10分)1. 单片机的英文全称是________,简称为________。
答案:Microcontroller Unit,MCU2. 单片机的________是单片机的核心部件,负责执行程序和处理数据。
答案:中央处理单元(CPU)3. 8051单片机的内部RAM共有________字节。
答案:1284. 单片机的________是用于存储程序和数据的半导体存储器。
答案:存储器5. 单片机的________是用于控制单片机与外部设备进行数据交换的接口。
答案:输入/输出接口6. 单片机的________是用于定时或计数的硬件模块。
答案:定时器/计数器7. 单片机的________是用于实现串行数据通信的硬件模块。
单片机测试题与答案一、单选题(共107题,每题1分,共107分)1.FLASH的中文含义是 ( ) 。
A、闪速存储器B、随机存储器C、只读存储器D、电可擦除可编程存储器正确答案:A2.SP的中文含义是( )。
A、堆栈指针B、数据指针C、系统指针D、符号指针正确答案:A3.下列芯片中属于单片机的芯片是 ( ) 。
A、8086B、80386C、8155D、AT89C1051正确答案:D4.累加器A的内容是84H,执行RR A 指令后累加器的内容变为( ) 。
A、42B、80C、08D、不确定正确答案:A5.下列芯片中属于单片机的芯片是 ( ) 。
A、8086B、80286C、80486D、AT89C2051正确答案:D6.对于MCS-51系列单片机来说,立即寻址可寻址的空间是( )。
A、内部RAMB、程序存储器C、特殊功能寄存器D、外部RAM正确答案:B7.累加器A的内容是35H,执行SWAP A 指令后累加器的内容变为( ) 。
A、30B、05C、50D、53H正确答案:D8.下列指令中,对标志位CY有影响的指令是 ( ) 。
A、ADDB、,C、(B)INCD、(C)MOVE、,F、D.ANLG、,正确答案:A9.对于MCS-51单片机来说,一个机器周期是由 ( )个状态周期构成。
A、1B、2C、4D、6正确答案:D10.8051单片机的P3口可以驱动 ( )个LSTTL负载。
A、32B、8C、4D、16正确答案:C11.上电复位后,8051单片机P3口的值是 ( ) 。
A、80B、0FFC、00D、不确定正确答案:B12.8051单片机的工作频率为6MHz,其内部定时器的最大定时时间是 ( ) 。
A、131072μSB、65536μSC、256μSD、8192μS正确答案:A13.累加器A的内容是0ADH,执行RLC A 指令后累加器的内容变为( ) 。
A、5BB、5AC、56D、不确定正确答案:D14.8051单片机的堆栈位于( )中。
单片机上机操作考试题部分答案集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为0.5s。
#include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar T_count=0;//定时中断void toProc() interrupt 1{TH0=(8192-5000)/32; //恢复初值TL0=(8192-5000)%32;if(++T_count==100) //0.5s移动一位{P0=_crol_(P0,1);T_count=0;}}//主函数void main(){TMOD=0;TH0=(8192-5000)/32; //5ms定时TL0=(8192-5000)%32;EA=1;ET0=1;TR0=1;P0=0xfe;while(1);}2.完成下面电路所示的功能,K1,K2对应两个开关按键。
P1口对应发光二极管的状态#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit k1=P3^2;sbit k2=P3^3;//延时void delay(uint x){uchar i;while(--x){for(i=0;i<120;i++);}}//主函数void main(){while(1){if((k1==0)&&(k2==0)) //K1、K2同时按下{P1=0x00;delay(10);}else if((k1==0)&&(k2==1)) //K1按下,K2不按{P1=0xcc;delay(10);}else if((k1==1)&&(k2==0)) //K2按下,K1不按{P1=0xf0;delay(10);}else{P1=0xff;delay(10);}}}3.在一个数码管上循环显示“H”“E”“L”“L”“O” ,循环的时间为1s。
#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab[]={0xf6,0xf9,0xb8,0xb8,0xbf};uchar T_count=0;uchar i=1;void t0Proc() interrupt 1{TH0=0x3c;TL0=0xb0;if(++T_count==10){P0=tab[i];i=(i+1)%5;T_count=0;}}void main(){TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab[0]; //初始化P0口while(1);}4.在6个数码管上分别显示自己学号的后六位数字。
#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code tab[]={};//学号自己设置//延时void delay(uint x){uchar i;while(x--){for(i=0;i<100;i++);}}//主函数void main(){uchar k;uchar wei=0x01;P0=~tab[0];P2=0x01;delay(1000);while(1){for(k=1;k<6;k++){wei=wei<<1;P0=~tab[k]; //发送数字段码P2=wei; //发送位码delay(1000);}}}5.做一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。
#include<reg51.h>#define uchar unsigned charvoid delay1s(){uchar i;for(i=0;i<10;i++){TH1=0x3c;TL1=0xb0;TR1=1; //启动T1while(!TF1); //判断T1有无请求TF1=0;}}void main(){uchar i;uchar t;TMOD=0x10; //选择T1计时while(1){for(i=30;i>0;i--){t=(((i/10)<<4)|(i%10)); //高四位显示十位,低四位显示个位P1=~t;delay1s();}}}6.使用外中断0来控制,去实现下列功能。
其中K1为按键,P1口对应8个发光二极管的状态#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar code tab[]={0xcc,0x30};sbit k1=P3^2;//延时void delay(uint x){uchar i;while(--x){for(i=0;i<120;i++);}}void int0Proc() interrupt 0{P1=0xf0;}//主函数void main(){uchar j;EA=1;EX0=1;IE0=1;while(1){if(k1==1) //未按下{for(j=0;j<2;j++){P1=tab[j];delay(500);}}}}8. 采用定时器方式1使得8个发光二极管按如下方式点亮,循环的时间为2s#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab[]={0x0f,0xf0,0xcc,0x00};uchar T_count=0;uchar i=1;void t0Proc() interrupt 1{TH0=0x3c;TL0=0xb0;if(++T_count==20){P0=tab[i];i=(i+1)%4;T_count=0;}}void main(){TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab[0]; //初始化P0口while(1);}9.在一个数码管上循环显示“0”“1”“5” 3个数字,循环的时间为1s。
#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab[]={0xbf,0x86,0xed};uchar i=1;void intoProc() interrupt 1{TH0=0x3c;TL0=0xb0;if(++T_count==10){P0=tab[i];i=(i+1)%3;T_count=0;}}void main(){TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab[0]; //初始化P0口while(1);10.在4个数码管上稳定显示出“A”“C”“E”“P”四个字符。
#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint x){uchar i;while(x--){for(i=0;i<100;i++);}}void main(){while(1){P0=0xf7; //AP2=0xb9; //CP3=0xf9; //EP1=0xf3; //Pdelay(500);}12.做一个20s的简易秒表,当按键K1按下时,秒表暂停计数,K2按下时,开始计数。
#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbit k1=P3^2;sbit k2=P3^3;uchar T_count=0;uchar i=0;void delay(int x){uchar i;while(x--){for(i=0;i<100;i++);}}void t0Proc() interrupt 1{TH0=0x3c; //恢复定时器0初值TL0=0xb0;{i++;P0=tab[i/10];P2=tab[i%10];if(i==20){i=0;}T_count=0;}}void main(){P0=tab[i];P2=tab[i];TMOD=0x01;TH0=0x3c;TL0=0xb0;while(1){if(k1==0 && k2==1){ET0=0;TR0=0;break;}else if(k1==1 && k2==0){EA=1;ET0=1;TR0=1;break;}}}14.使用外中断1来控制,当无按键按下时8个发光二极管循环点亮,循环点亮的时间为1s,有按键按下时,8个发光二极管全部熄灭。
#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit k1=P3^2;uchar code tab[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};uchar T_count=0;//T0定时void T0Proc() interrupt 1 {TH0=0x3c;TL0=0xb0;if(++T_count==10){P1=~tab[i];i=(i+1)%8;T_count=0;}}//INT1中断函数void Int1Proc() interrupt 2 {P1=0xff;EA=0;EX1=0;IT1=0;ET0=0;TR0=0;}void main(){TMOD=1;EA=1;ET0=1;TR0=1;TH0=0x3c;TL0=0xb0;EX1=1;IT1=1;P1=0xfe;while(1);}16. 完成下面电路所示的功能,K1,K2对应两个开关按键。
P1口对应发光二极管的状态#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit k1=P3^2;sbit k2=P3^3;//延时void delay(uint x){uchar i;while(--x){for(i=0;i<120;i++);}}//主函数void main(){while(1){if((k1==1)&&(k2==1)) //都未按下 0:未按下,1:按下{P1=0x00;delay(10);}else if((k1==1)&&(k2==0)) //k2按下,k1未按下P1=0xf0;delay(10);}else if((k1==0)&&(k2==1)) //k1按下,k2未按下{P1=0xcf;delay(10);}else if((k1==0)&&(k2==0)) //都按下{P1=0x55;delay(10);}}}17.完成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为1s,状态2显示的时间为2s,状态3显示的时间为3s,如此循环#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab[]={0x05,0x06,0x03}; uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1{TH0=0x3c;TL0=0xb0;switch(State){case 0:if(++T_count==10){P1=~tab[i];i=(i+1)%3;T_count=0;State=1;}break;case 1:if(++T_count==20){P1=~tab[i];i=(i+1)%3;T_count=0;State=2;}break;case 2:if(++T_count==30){P1=~tab[i];i=(i+1)%3;i=1;T_count=0;State=0;}break;}}void main(){TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=~tab[0];while(1);}18.彩灯系统,实现8个发光二极管从左到右点亮,每个发光二极管点亮的时间为2s,然后从右到左亮,每个发光二极管点亮的时间为1.5s.#include<reg51.h>#include<intrins.h>#define uchar unsigned charuchar code tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};uchar code tab1[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};uchar State=0;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1{TH0=0x3c;TL0=0xb0;switch(State){case 0:if(++T_count==20){P2=tab[i];i=(i+1)%8;if(i==7){State=1;}T_count=0;}break;case 1:if(++T_count==15){i=(i+1)%8;P2=tab1[i];if(i==7){State=0;i=1;}T_count=0;}break;}}void main(){TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P2=tab[0];while(1);}19.在4个数码管上显示出当天的日期。