(4)3个16位的定时器/计数器(51子系列仅有2个定时器),每个定时器/计数器可以设置为计数方式,用于对外部事件信号进行计数,也可以设置为定时方式,满足各种定时要求。
(5)有一个管理6个中断源(51子系列1是5个中断源)、两个优先级的中断控制器。
(6)4个8位并行I/O端,每个端口既可以用作输入,也可以用于输出。
(7)一个全双工的UART(通用异步接收发送器)串行I/O口,用于单片机之间的串行通信,或者单片机与PC机、其它设备、其它芯片之间的串行通信。
(8)片内振荡电路和时钟发生器,只需外面接上一晶振或输入振荡信号就可产生单片机所需要的各种时钟信号。
(9)有一个可寻址64KB外部数据存储器、还可以寻址64KB外部程序存储器的三总线的控制电路。
5.MCS-51单片机的EA引脚有何功能?信号为何种电平? 答:EA为片外程序存储器选择输入端。该引脚为低电平时,使用片外程序存储器,为高电平时,使用片内程序存储器。 6.MCS-51单片机的ALE引脚有何功能?信号波形是什么? 答:ALE为地址锁存信号,每个机器周期输出两个正脉冲。在访问片外存储器时,下降沿用于控制外接的地址锁存器锁存从P0口输出的低8位地址。在没有接外部存储器时,可以将该引脚的输出作为时钟信号使用。
7.MCS-51单片机的存储器分为哪几个空间?如何区分不同空间的寻址?
答:MCS-51单片机有4个存储空间,它们是片内程序存储器和数据存储器,在片外可以扩展的程序存储器和数据存储器。这4个存储空间可以分成三类:片内数据存储空间(256B的RAM和128B的特殊功能寄存器)、片外数据存储空间(64KB)、片内和片外统一编址的程序存储空间(64KB)。
8.简述MCS-51单片机片内RAM的空间分配。内部RAM低128字节分为哪几个主要部分?各部分主要功能是什么?
答:片内数据存储器按照寻址方式,可以分为三个部分:低128字节数据区,高128字节数据区间,特殊功能寄存器区。低128字节数据区分为三个区域:工作寄存器区,位寻找区和通用数据区。工作寄存器区4组工作寄存器;位寻找区既可以做位操作,也可以字节操作;通用数据区用于堆栈和存放程序运行时的数据和中间结果。 9.MCS-51单片机的程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?
答:PSW是一个8位寄存器,用于设定CPU的状态和指示指令执行后的状态。
CY(PSW.7):进位标志。在执行加减运算指令时,如果运算结果的最高位(D7)发生了进位或借位,则CY由硬件自动置1。 AC(PSW.6):半进位标志位,也称为辅助标志位。在执行加减运算指令时,如果运算结果的低半字节(D3)发生了向高半字节进位或借位,则AC由硬件自动置1。
F0、F1(PSW.5和PSW.1):用户标志位。用户可以根据需要对F0、F1赋予一定的含义,由用户置1和清0,作为软件标志。
RS1、RS0(PSW.4和PSW.3):工作寄存器组选择控制位。通过对这两位设定,可以从4个工作寄存器组中选择一组作为当前工作寄存器。
OV(PSW.2):溢出标志位,有两种情况影响该位。一是执行加减运算时,如果D7或D6任一位,并且只一位发生了进位或借位,则OV自动置1,
P(PSW.0):奇偶标志位。每条指令执行完后,该位都会指示当前累加器A中1的个数。如果A中有奇数个1,则P自动置1。 10.MCS-51单片机复位后,CPU使用哪组工作寄存器?它们的地址是什么?用户如何改变当前工作寄存器组?
答:MCS-51单片机复位后,CPU使用0组工作寄存器。它们的地址是00H~07H。通过程序状态字PSW中的RS1、RS0标志位改变当前工作寄存器组。
11.什么叫堆栈?堆栈指针SP的作用是什么?
答:堆栈是在RAM专门开辟的一个特殊用途的存储区。堆栈是按照“先进后出”(即先进入堆栈的数据后移出堆栈)的原则存取数据。堆栈指针SP是一个8位寄存器,其值为栈顶的地址,即指向栈顶,SP为访问堆栈的间址寄存器。
12.测试哪个引脚,可以快捷地判断单片机是否正在工作? 答:若要检查单片机是否工作,可以使用示波器查看ALE引脚是否有脉冲信号输出。
13.MCS-51单片机的P0~P3口结构有何不同?用作通用I/O口输入数据时应注意什么?
答:P2口是一个双功能口,一是通用I/O口,二是以总线方式访问外部存储器时作为高8位地址口。P2与P1口的结构类似,驱动部分基本上与P1口相同。P3口是一个多功能口,P3口除了具有P1口的准双向I/O口的功能之外,还可以使用各引脚所具有的第2功能。P0多了一路总线输出(地址/数据)、总线输出控制电路。 14.P0口用作通用I/O口输出数据时应注意什么?
答:P0口与其它端口不同,它的输出级无上拉电阻。当把它用作通用I/O口时,输出级是开漏电路,故用其输出去驱动NMOS输入时外接上拉电阻,这时每一位输出可以驱动4个LS型TTL负载。用作输入时,应先向端口锁存器写1。
15.什么叫时钟周期?什么叫机器周期?什么叫指令周期?时钟周期、机器周期与振荡周期之间有什么关系?
答:时钟周期即振荡周期:为晶振的振荡周期,是最小的时序单位。状态周期:是振荡频率2分频后的时钟周期。显然,一个状态周期包含2个振荡周期。机器周期(MC):1个机器周期由6个状态周期、即12个振荡周期组成,是量度指令执行时间的单位。指令周期:是执行一条指令所需要的时间。一个指令周期由1~4个机器周期组成。
16.MCS-51单片机常用的复位电路有哪些?复位后机器的初始状态如何?
答:复位电路有两种方式:上电自动复位电路和手动复位电路。复位后,程序计数器PC变为0000H,使单片机从程序存储器地址0000H
单元开始执行。除P0~P3为FFH;SP为07H;SBUF为不确定。大部分特殊功能寄存器清零。
17.MCS-51单片机有几种低功耗工作方式?如何实现,又如何退出? 答:MCS-51单片机有空闲和掉电两种低功耗工作方式。当CPU执行完置IDL=1的指令后,系统就进入空闲方式。进入空闲方式之后,有两种方法可以退出。一种是任何中断请求被响应都可以由硬件将IDL位清0而结束空闲方式。另一种退出空闲方式的方法是硬件复位。当CPU执行完置PD=1的指令后,系统就进入掉电工作方式。对于一般的单片机来说,退出掉电方式的唯一方法是由硬件复位。 18.用C51编程较汇编语言有哪些优势? 答:(1)编程容易
(2)容易实现复杂的数值计算 (3)容易阅读、调试、维护程序 (4)容易实现模块化开发 (5)程序可移植性好
19.C51字节数据、整型数据以及长整型数据在存储器中的存储方式各是怎样的?
答:字符变量(char)无论是unsignedchar数据还是signedchar数据,均为1个字节,即8位,因此被直接存储在RAM中,可能存储在0~0x7f区域(包括位寻址区域),也可能存储在0x80~0xff区域,与变量的定义有关。
整型变量(int)不管是unsignedint数据还是signedint数据,均为2个字节,即16位,其存储方法是高位字节保存在低地址(在前面),低位字节保存在高地址(在后面)。
长整型变量(long)为4个字节,即32位,其存储方法与整型数据一样,是最高位字节保存的地址最低(在最前面),最低位字节保存的地址最高(在最后面)
20.如何定义8位字节型特殊功能寄存器?如何定义16位特殊功能寄存器?如何定义特殊功能寄存器的位变量? 答:sfr特殊功能寄存器名=地址常数