单片机复习题带答案.
- 格式:doc
- 大小:117.50 KB
- 文档页数:17
单片机复习题库(含答案)单片机复习题库(含答案)一、单选题1. 下面哪个不是单片机的特点?A. 集成度高B. 执行速度快C. 操作简便D. 存储容量大答案:D2. 在单片机的复位电路中,常用的复位方式是:A. 程序复位B. 硬件复位C. 软件复位D. 手动复位答案:B3. 单片机中断的触发方式有以下哪几种?A. 内部触发B. 外部触发C. 软件触发D. 手动触发答案:A、B、C4. 单片机中的位操作指令是指对数据的哪一部分进行操作?A. 高字节B. 低字节C. 位D. 字节答案:C5. 单片机工作模式中,可以通过设置谁来控制单片机工作状态?A. 硬件B. 软件C. 中断D. 外部信号答案:B二、判断题1. 单片机的外部中断一般需要使用外部中断触发器。
答案:错2. 单片机的I/O口可以设置为输入、输出或者双向。
答案:对3. 单片机的Flash存储器是一种非易失性存储器。
答案:对4. 单片机的片内RAM存储器可以直接运行程序。
答案:对5. 单片机的位操作指令是指对数据的整个字节进行操作。
答案:错三、填空题1. 单片机的中断向量表一般存储在()中。
答案:ROM2. 单片机的外部中断触发方式可以选择为()或者()。
答案:上升沿触发、下降沿触发3. 单片机的位操作指令是通过()实现对数据位的读、写或者置位等操作。
答案:位地址4. 单片机的运算指令可以对()进行算术运算或者逻辑运算。
答案:寄存器中的数据5. 单片机的GPIO口是指()。
答案:通用输入输出口四、简答题1. 请简要解释单片机的中断工作原理。
答案:单片机在执行程序的过程中,可以根据外部或者内部的中断请求来暂停当前的工作,转而执行中断服务程序。
当中断请求触发时,单片机会保存当前的程序计数器和其它寄存器的状态,然后跳转到对应的中断服务程序。
该程序处理完中断事件后,再返回到原来的程序继续执行。
通过中断,可以提高单片机的响应速度和处理能力。
2. 请简要说明单片机的I/O口使用方法。
单片机试题(附答案)一、单选题(共107题,每题1分,共107分)1.8051单片机的P0口可以驱动()个LSTTL负载。
A、4B、16C、8D、2正确答案:C2.在51系列单片机应用系统中启动ADC0809进行A/D转换时,使用()指令。
A、MOVXB、(B)MOVXC、MOVD、MOVE、A,@A+DPTR正确答案:A3.8051单片机的P0口做为输出口在驱动NMOS负载时必须接()。
A、下拉电阻B、上拉电阻C、地D、电源正确答案:B4.8051单片机的工作频率为6MHz,其内部定时器的最大定时时间是()。
A、8192μSB、131072μSC、256μSD、65536μS正确答案:B5.MCS-51单片机复位后程序计数器PC=()。
A、0FFFFB、2000C、0100D、0000H正确答案:D6.对于MCS-51单片机来说,上电复位所需的最短时间是振荡周期建立时间加上()个机器周期时间。
A、1B、2C、4D、8正确答案:B7.对于MCS-51单片机来说,上电复位所需的最短时间是振荡周期建立时间加上()个机器周期时间。
A、2B、4C、8D、16正确答案:A8.累加器A的内容是0ADH,执行RLA指令后累加器的内容变为()。
A、56B、5AC、(C)5BD、不确定正确答案:C9.堆栈指针的英文缩写是()。
A、STB、SPC、SD、S正确答案:B10.累加器A的内容是89H,执行RLA指令后累加器的内容变为()。
A、10B、11C、12D、13H正确答案:D11.下列芯片中属于单片机的芯片是()。
A、Z80B、8086C、80586D、M68HC08正确答案:D12.对于8751单片机,当其引脚EA接低电平时,可扩展的外部程序存储器最大为()k字节。
A、64B、60C、32D、16正确答案:A13.LJMP跳转空间最大可达到()。
A、2KB、(B)256C、(C)128D、64KB正确答案:D14.对于MCS-51单片机来说,上电复位所需的最短时间是振荡周期建立时间加上()个机器周期时间。
单片机复习题一、选择1.二进制数110110110对应的十六进制数可表示为( )。
A. 1D3H B.1B6H C.DBOH D. 666H2.-3的补码是( )。
A. 10000011 B. 11111100 C.11111110 D.111111013.CPU主要的组成部部分为( )。
A.运算器,控制器 B.加法器,寄存器 C. 运算器,寄存器 D.运算器,指令译码器4.INTEL 8051 CPU是( )位的单片机。
A. 16 B.4 C. 8 D.准16位5.对于以 8051为核心的小单片机应用系统来说,/EA脚总是( )A.接地B.接电源C. 悬空D.不用6.程序计数器PC用来( )。
A.存放指令 B.存放正在执行的指令地址C. 存放下一条的指令地址 D.存放上一条的指令地址7.指令和程序是以( )形式存放在程序存储器中。
A. 源程序B. 汇编程序C. 二进制编码 D.BCD码8.单片机应用程序一般存放在( )中。
A. RAM B.ROM C. 寄存器 D.CPU9.单片机8051的XTALl和XTAL2引脚是()引脚A. 外接定时器 B.外接串行口 C. 外接中断 D.外接晶振10.8031复位后,PC与SP的值为( )。
A.0000H,00H B.0000H,07H C.0003H,07H D. 0800H,00H11.P0,P1口作输入用途之前必须( )。
A. 相应端口先置1 B.相应端口先置0 C.外接高电平 D.外接上拉电阻12.8051的内部RAM中,可以进行位寻址的地址空间为( )。
A. 00H~2FH B. 20H~2FH C. 00H~FFH D. 20H~FFH13.8051的程序计数器PC为16位计数器,其寻址范围是( ) 。
A. 8KB. 16K C. 32K D. 64K14.8051单片机中,唯一一个用户不能直接使用的寄存器是( )。
A.PSW B. DPTR C. PC D. B15.对MCS-51单片机来说,其内部RAM( )。
单片机复习题及答案一、选择题1、单片机能够直接运行的程序是()。
A 汇编语言源程序BC 语言源程序 C 高级语言程序D 机器语言程序答案:D解析:单片机只能直接运行机器语言程序,其他语言编写的程序都需要经过编译或解释转换为机器语言程序才能被单片机执行。
2、单片机复位后,程序计数器 PC 的值为()。
A 0000HB 0003HC 000BHD 0013H答案:A解析:单片机复位后,PC 被初始化为 0000H,程序从 0000H 地址开始执行。
3、当 MCS-51 单片机接有外部存储器,P2 口可作为()。
A 数据输入口B 数据输出口C 高 8 位地址口D 低 8 位地址口答案:C解析:P2 口在访问外部存储器时,作为高 8 位地址输出口。
4、要使 MCS-51 能够响应定时器 T1 中断、串行接口中断,它的中断允许寄存器 IE 的内容应是()。
A 98HB 84HC 42HD 22H答案:A解析:IE 寄存器中,ET1 位(定时器 T1 中断允许位)和 ES 位(串行口中断允许位)需要置 1,其他位为 0,对应的二进制值为10011000,即 98H。
5、在 MCS-51 单片机中,需要软件实现中断撤销的是()。
A 定时中断B 外部中断的脉冲方式C 外部中断的电平方式D 串行口中断答案:C解析:外部中断的电平方式需要软件清除中断标志来撤销中断。
二、填空题1、 MCS-51 单片机的内部数据存储器可以分为_____、_____和_____三个区域。
答案:工作寄存器区、位寻址区、数据缓冲区2、单片机的堆栈是在_____中开辟的一个区域,遵循_____的数据存储原则。
答案:内部 RAM、先进后出3、当单片机的晶振频率为 12MHz 时,机器周期为_____μs。
答案:1解析:机器周期= 12 /晶振频率,所以当晶振频率为 12MHz 时,机器周期为1μs。
4、 MCS-51 单片机有_____个中断源,其中外部中断有_____个。
单片机考试题目及答案一、选择题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灯、数码管、继电器等外部设备,也可以接收来自按键、传感器等的输入信号。
以上是单片机考试题目及答案,希望能对您有所帮助。
如有任何疑问,请随时联系我们。
51单片机考试题和答案一、单项选择题(每题2分,共20分)1. 51单片机中,以下哪个寄存器用于存储程序计数器(PC)的内容?A. SPB. PCC. DPTRD. ACC答案:B2. 51单片机中,哪个寄存器用于存储数据指针?A. SPB. PCC. DPTRD. ACC答案:C3. 51单片机的定时器/计数器有几种工作模式?A. 2种B. 3种C. 4种D. 5种答案:C4. 51单片机中,哪个寄存器用于存储堆栈指针?A. SPB. PCC. DPTRD. ACC答案:A5. 51单片机中,以下哪个指令是无条件跳转指令?A. SJMPB. AJMPC. LJMPD. CJNE答案:A6. 51单片机中,以下哪个指令是调用子程序的指令?A. SJMPB. AJMPC. LJMPD. CALL答案:D7. 51单片机中,以下哪个指令是返回子程序的指令?A. SJMPB. AJMPC. LJMPD. RET答案:D8. 51单片机中,以下哪个指令是累加器清零的指令?A. CLR AB. MOV A, #0C. MOV A, R0D. CLR C答案:A9. 51单片机中,以下哪个指令是将立即数传送到累加器的指令?A. CLR AB. MOV A, #0C. MOV A, R0D. CLR C答案:B10. 51单片机中,以下哪个指令是将累加器的内容传送到寄存器R0的指令?A. CLR AB. MOV A, #0C. MOV R0, AD. CLR C答案:C二、填空题(每题2分,共20分)1. 51单片机的内部RAM共有______字节。
答案:1282. 51单片机的外部数据存储器最大容量可达______KB。
答案:643. 51单片机的外部程序存储器最大容量可达______KB。
答案:644. 51单片机的定时器/计数器有______个。
答案:25. 51单片机的中断源共有______个。
答案:66. 51单片机的串行通信可以工作在______种模式。
单片机考试题及答案一、选择题(每题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. 简述单片机的定时器/计数器的作用。
答案:单片机的定时器/计数器用于提供精确的时间控制和事件计数。
单片机原理及应用考试题及答案一、单选题(共54题,每题1分,共54分)1.5转换成十六进制数是()。
A、49HB、94.8HC、111HD、49.8H正确答案:D2.指令MUL AB 执行前(A)=18H ,(B)=05H,执行后,A、B的内容是()。
A、90H,05HB、90H,00HC、78H,05HD、78H,00H正确答案:D3.MCS-51单片机的总线不包含():A、通信总线B、数据总线C、地址总线D、控制总线正确答案:A4.用8051的定时器T1作计数方式,用模式2,则工作方式控制字为A、20HB、06HC、60HD、02H正确答案:C5.8031单片机的内部主要组成部分不包含():A、CPUB、ROMC、I/O接口D、定时计数器正确答案:B6.已知(A)=59H,(PSW)=80H,执行指令ADDC A,#4CH后CY和AC的内容为():A、0,1B、1,1C、0,0D、1,0正确答案:A7.若(SP)=40H,当执行一条RET指令后,SP的值为():A、3EHB、42HC、38HD、41H正确答案:A8.当RS1RS0=10时,Rn的地址是():A、08H~0FHB、18H~1FHC、00H~07HD、10H~17H正确答案:D9.DIV AB 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令正确答案:B10.当(IP)=14H时,优先级最低的中断源是():A、外部中断0B、定时计数器0C、外部中断1D、定时计数器1正确答案:D11.单片机应用程序一般存放在()。
A、RAMB、ROMC、寄存器D、CPU正确答案:B12.在中断服务程序中至少应有一条()A、转移指令B、加法指令C、传送指令D、中断返回指令正确答案:D13.指令MOVC A,@A+DPTR 源操作数的寻址方式是():A、寄存器寻址B、直接寻址C、立即数寻址D、寄存器间接寻址E、变址寻址F、相对寻址G、位寻址正确答案:E14.MOVC A, @A+PC是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令正确答案:A15.已知(A)=88H,(PSW)=80H,执行指令SUBB A,#66H后PSW的内容为():A、C4HB、04HC、C0HD、00H正确答案:B16.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是()A、MOVB、MOVXC、MOVCD、以上都行正确答案:B17.反码9AH的真值是():A、-102B、-101C、102D、101正确答案:B18.下列指令能使R0的最高位置0的是()。
单片机复习题含答案一、选择题1、单片机是将()、存储器、I/O 接口集成在一块芯片上的微型计算机。
A CPUB 控制器C 运算器D 累加器答案:A解析:单片机是将 CPU、存储器、I/O 接口集成在一块芯片上的微型计算机。
2、单片机复位后,PC 的值为()。
A 0000HB 0003HC 000BHD 0013H答案:A解析:单片机复位后,程序计数器 PC 的值为 0000H,即程序从0000H 开始执行。
3、当单片机的晶振频率为 12MHz 时,一个机器周期为()μs。
A 1B 2C 4D 6答案:A解析:机器周期= 12 /晶振频率。
当晶振频率为 12MHz 时,机器周期= 12 / 12MHz =1μs。
4、 MCS-51 单片机的堆栈区应建立在()。
A 片内数据存储区的低 128 字节单元B 片内数据存储区的高 128 字节单元C 片外数据存储区D 程序存储区答案:A解析:MCS-51 单片机的堆栈区应建立在片内数据存储区的低 128 字节单元,并且遵循“先进后出”的原则。
5、若单片机的定时器/计数器工作在方式 1 下,是()位的定时器/计数器。
A 8B 13C 16D 32答案:C解析:在方式 1 下,单片机的定时器/计数器是 16 位的。
6、在 MCS-51 单片机中,要将 P1 口的高 4 位清零,低 4 位不变,应使用指令()。
A ANL P1,0FHB ORL P1,0FHC XRL P1,0F0HD MOV P1,0FH答案:A解析:ANL 是逻辑与操作,将 P1 与 0FH 进行与操作,即可将高 4 位清零,低 4 位不变。
7、执行 MOV IE,81H 指令的意义是()。
A 屏蔽所有中断B 开放外部中断 0C 开放外部中断 1D 开放外部中断 0 和 1答案:B解析:81H 转换为二进制为 10000001B,对应 IE 寄存器的设置,即开放外部中断 0。
8、在 MCS-51 单片机中,若要访问外部数据存储器,其指令操作码应为()。
一、单项选择题1.利用下列( D )关键字可以改变工作寄存器组A、interruptB、sfrC、whileD、using2.C51中一般指针变量占用( C )字节存储。
A、一个B、两个C、三个D、四个3.使用宏来访问绝对地址时,一般需包含的库文件是(B)A、reg51.hB、absacc.hC、intrins.hD、startup.h4.执行#define PA8255 XBYTE[0x3FFC];PA8255=0x7e;后存储单元0x3FFC的值是( A )A、Ox7eB、8255HC、未定D、7e5.设有int i;则表达式i=1,++i,++i||++i,i的值为( C )A、1B、2C、3D、46.设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是( C )A、10,11,12B、11,12,12C、10,12,12D、11,11,127.设有int i;则表达式i=1,++i,i||++i,i的值为( B )A、1B、2C、3D、48、单片机8051的XTAL1和XTAL2引脚是(D )引脚。
A、外接定时器B、外接串行口C、外接中断D、外接晶振9、单片机的定时器/计数器设定为工作方式1时,是(D )。
A、8位计数器结构B、2个8位计数器结构C、13位计数器结构D、16位计数器结构10、串行口每一次传送( C )字符。
A、1个字节B、1bitC、1帧D、1 串11、计算机能直接识别的语言是( C )。
A、汇编语言B、自然语言C、机器语言D、C语言12、MCS—51单片机的CPU主要的组成部分为(A )。
A、运算器、控制器B、加法器、寄存器C、运算器、加法器D、运算器、译码器13、MCS-51系列单片机芯片是双列直插式封装的,有( C )个引脚。
A、24B、30C、40D、5014、MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是(A )。
A、T0B、INT1C、串行接口D、INT015、P0口作数据线和低8位地址线时(C )。
A、应外接上拉电阻B、不能作I/O口C、能作I/O口D、应外接高电平二、判断题:(每小题1分,共10分。
正确的在括号内打“√”,错误的打“×”。
判对得分,不判、判错均不得分。
)1.若一个函数的返回类型为void,则表示其没有返回值。
(Y )2.特殊功能寄存器的名字,在C51程序中,全部大写。
(Y)3.“sfr”后面的地址可以用带有运算的表达式来表示。
(N )4.#include <reg51.h>与#include “reg51.h”是等价的。
(Y )5.sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上。
(N)6.Continue 和break都可用来实现循环体的中止。
(N)7.若一个函数的返回类型为void,则表示其没有返回值。
(Y )8.所有定义在主函数之前的函数无需进行声明。
(N )9.int i,*p=&i;是正确的C说明。
(Y )10.7&3+12的值是15。
(Y )11.一个函数利用return不可能同时返回多个值。
(Y)12、51单片机只能做控制用,不能完成算术运算。
(N )13、MCS-51的中断源全部编程为同级时,优先级最高的是INT1。
(N )14、MCS-51单片机的CPU能同时处理8位二进制数据。
(Y )15、单片机的主频越高,其运算速度越快。
(N )16、为了消除按键的抖动,常用的方法有硬件和软件两种方法。
(Y )三、填空(每空1分,共20分。
在空白处填上正确的内容)1.KeiL C51软件中,工程文件的扩展名是_ _UV2______,编译连接后生成可烧写的文件扩展名是____ hex _______。
6.若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为__ 900 ______。
7.数组是一组有固定数目和相同类型成分分量的有序集合。
8.变量的指针就是变量的地址;指针变量的值是指针。
9.在C语言中,把多个不同类型的变量结合在一起形成的一个组合型变量,称为结构变量,简称结构。
10.C51的数据类型有基本类型、结构类型、指针类型、空14.C51的存储模式有small 、compact 和large 。
15.C51程序与其他语言程序一样,程序结构也分为顺序结构、选择结构、循环结构三种。
16.数组的一个很重要的用途就是查表。
17.在单片机扩展时,P0 口和P2 口为地址线,P0 口又分时作为数据线。
采用方法可判断是否有键抖动。
四、问答题(共20分)1.简述C51语言和汇编语言的比较(5分)使用C51语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势:①编程调试灵活方便;②生成的代码编译效率高;③模块化开发;④可移植性好;⑤便于项目的维护;2.简述单片机的C语言的特点(7分)单片机的C语言的特点主要体现在以下几个方面:①无需了解机器硬件及其指令系统,只需初步了解MCS-51的存储器结构;② C51能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件控制有限;而汇编语言可以完全控制硬件资源;③ C51在小应用程序中,产生的代码量大,执行速度慢;但在较大的程序中代码效率高;④ C51程序由若干函数组成,具有良好的模块化结构,便于改进和扩充;⑤ C51程序具有良好的可读性和可维护性;而汇编语言在大应用程序开发中,开发难度增加,可读性差;⑥ C51有丰富的库函数,可大大减少用户的编程量,显著缩短编程与调试时间,大大提高软件开发效率;⑦使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而C语言程序是面向用户的程序设计语言,能在不同机型的机器上运行,可移植性好。
3.哪些变量类型是51单片机直接支持的?(5分)答:C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针型等。
C51编译器支持的数据类型、长度和值域如表1-1所示。
表1-1 C51的数据类型4.简述C51的数据存储类型(10分)答:我们都知道,8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。
8051单片机内部的数据存储区是可读写的,8051派生系列最多可有256字节的内部数据存储区,其中低128字节可直接寻址,高128字节(从0x80到0xFF)只能间接寻址,从20H开始的16字节可位寻址。
内部数据区可分为3个不同的存储类型:data、idata 和bdata。
外部数据区也是可读写的,访问外部数据区比访问内部数据区慢,因为外部数据区是通过数据指针加载地址来间接访问的。
C51提供两种不同的存储类型xdata和pdata访问外部数据。
程序存储区是只能读不能写。
程序存储区可能在8051单片机内部或者在外部或者内外都有,这由8051单片机的硬件决定。
C51提供了code存储类型来访问程序存储区。
每个变量可以明确地分配到指定的存储空间,对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部存储器中,而把较少使用的变量放在外部存储器中。
各存储区的简单描述如表1-2所示。
表1-2 C51存储类型与8051存储空间的对应关系以上介绍的是C51的数据存储类型,C51存储类型及其大小和值域如表1-3所示。
表1-3 C51存储类型及其大小和值域5.简述C51对51单片机特殊功能寄存器的定义方法(5分)答:MCS-51通过其特殊功能寄存器(SFR)实现对其内部主要资源的控制。
MCS-51单片机有21个SFR,有的单片机还有更多的SFR,它们分布在片内RAM的高128字节中,其地址能够被8整除的SFR一般可以进行位寻址。
关于MCS-51单片机的特殊功能寄存器参看附录A。
对SFR只能用直接寻址方式访问。
C51允许通过使用关键字sfr、sbit或直接引用编译器提供的头文件来实现对SFR的访问。
(1)使用关键字定义sfr为了能直接访问特殊功能寄存器SFR,C51提供了一种自主形式的定义方法。
这种定义方法与标准的C语言不兼容,只适用于对8051系列单片机进行C编程。
这种定义的方法是引入关键字“sfr”,语法如下:sfr 特殊功能寄存器名字 = 特殊功能寄存器地址;如:sfr SCON=0x98;/*串口控制寄存器地址98H*/sfr TMOD=0X89;/*定时器/计数器方式控制寄存器地址89H*/(2)通过头文件访问SFR8051系列单片机的寄存器数量与类型是极不相同的,因此对单片机特殊功能寄存器的访问可以通过对头文件的访问来进行。
为了用户处理方便,C51编译器把MCS-51单片机的常用的特殊功能寄存器和特殊位进行了定义,放在一个“reg51.h”或“reg52.h”的头文件中。
当用户要使用时,只需要在使用之前用一条预处理命令“#include <reg51.h>”把这个头文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名称了。
用户可以通过文本编辑器对头文件进行增减。
(3)SFR中位定义在8051单片机的应用问题中,经常需要单独访问SFR中的位,C51的扩充功能使之成为可能,使用关键字“sbit”可以访问位寻址对象。
特殊位(sbit)的定义,像SFR一样不与标准C兼容。
与SFR定义一样,用关键字“sbit”定义某些特殊位,并接受任何符号名,“=”号后将绝对地址赋给变量名。
这种地址分配有三种方法:第一种方法:sbit 位名=特殊功能寄存器名^位置;当特殊功能寄存器的地址为字节(8位)时,可使用这种方法。
特殊功能寄存器名必须是已定义的SFR的名字。
“^”后的“位置”语句定义了基地址上的特殊位的位置。
该位置必须是0~7的数。
如:第二种方法:sbit 位名=字节地址^位置;这种方法是以一个整常数为基地址,该值必须在0x80~0xFF之间,并能被8整除,确定位置的方法同上。
第三种方法:sbit 位名=位地址;这种方法将位的绝对地址赋给变量,地址必须在0x80~0xFF之间。
6.C51 的data、bdata、idata 有什么区别?(6分)答:data、bdata、idata是表明数据的存储类型,data是指片内RAM的低128字节,可在一个周期内直接寻址;bdata是指片内RAM的位寻址区,16字节;idata是指片内RAM的256字节,必须采用间接寻址。