单片机简答汇总
1、 89C51单片机内包含哪些主要逻辑功能部件?
答:80C51系列单片机在片内集成了以下主要逻辑功能部件:
(l)CPU(中央处理器):8位
(2)(4)程序存储器:4KB (或者这样写:4KB的片内Flash ROM 。可寻址64KB 程序存储器 和64KB 外部数据存储器;)
(3)片内RAM:128B (或者写: 片内256B RAM/SFR;)
(4)特殊功能寄存器(SFR):21个
(5)并行I/O口:8位,4个,P0~P3(共32位I/O线);
(6)串行接口:一个全双工uart 的异步串行I/O口
(7)定时器/计数器:16位,2个
(8)内部时钟发生器:1个
2、 89C51的存储器分哪几个空间? 如何区别不同空间的寻址?
答:片内外统一编址64KB ROM(采用16位地址) 用MOVC 指令访问
64KB片外RAM(采用16位地址) 用MOVX 指令访问
256B 片内RAM(采用8位地址) 用MOV 指令访问 3、 89C51内部RAM 低128字节单元划分为哪3个主要部分? 各部分地址范围, 寻址方式, 主要功能是什么?
答:(l)工作寄存器组(00H~lFH) 可用寄存器直接寻址的区域,内部数据RAM 区的00H~lFH,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。
(2)可位寻址RAM 区(20H~2FH) 从内部数据RAM 区的20H~2FH的16个字节单元,共包含128位,是可位寻址的RAM 区。这16个字节单元,既可进行字节寻址,又可实现位寻址。 (3)通用RAM 区(30~7FH) 从内部数据RAM 区的30H~7FH,共80个字节单元,用于设置堆栈、存储数据。可以采用间接字节寻址的方法访问。
4、 89C51单片机RAM 中,哪些单元可以进行位寻址?位单元45H 处于何字节单元的何位? 答:片内RAM 低128字节中的20—2F 单元,SFR 中的字节地址能够被8整除的单元均可进行位寻址。 位单元45H 处于字节地址为28H 的第5位。
答: EA 引脚为外部程序存储器地址允许输入端:当引脚接高电平时,CPU 访问片内EPROM/ROM并执行片内程序存储器中的指令,当PC 超过0FFFH (片内RAM 为4KB )时,将自动转向执行片外ROM 中的程序。当该引脚接低电平时,CPU 访问片外EPROM/ROM并执行外部程序存储器中的程序。若系统使用8031单片机,其EA 引脚应连接至低电平。
7、 什么是振荡周期、状态时钟周期、机器周期和指令周期?(它们之间有什么关系?) 答:振荡周期:晶振的振荡周期。(为最小的时序单位)
状态周期(又称时钟周期):振荡频率经单片机内的二分频器分频后提供给片内CPU 的时钟周期。(一个状态周期=2个振荡周期)
机器周期:CPU 访问存储器一次(如取指令、读存储器、写存储器等)所需要的时间。
(一个机器周期由6个状态周期即12个振荡周期组成。是单片机执行一种基本操作的
时间单位)
指令周期是指单片机执行一条指令所占用的时间。一个指令周期由1~4个机器周期组
成。(根据指令的不同,可包含有1、2、4等机器周期的倍数。)
【单片机是按一定的时序进行工作的,而时序是通过XTAL1和XTAL2引脚跨接振荡器与内部振荡电路共同产生固定频率的波形。我们把振荡频率的倒数称振荡周期。】
8、 89C51有多少根I/O口线?它们与单片机对外的地址线、数据线和控制线有什么关系?
89C51单片机有4 个8位并行I/O 口,对应32根I/O线。它们与单片机对外的地址线、数据线和控制线关系为: P0 口的8位I/O线分时复用8位数据线和低8位地址线;P1口作数据总线;P2 口作高8位地址线;P3口具有第二功能作控制线
9、 I/O接口和I/O端口有什么区别?I/O接口的功能是什么?
答:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。I/O接口是指单片机与外设间的I/O接口芯片。 I/O接口功能:一. 实现和不同外设的速度匹配;二. 输出数据缓存;三. 输入数据三态缓冲。
10、 89C51有哪些复位方式?单片机复位后相关寄存器的状态如何?单片机复位作用? 答:有上电自动复位和手动按键复位两种方式。
单片机复位后PC 的值为0000H ,SP 的值为07H ,P0~P3的值为FFH ,SBUF 为不定值,其它寄存器除系统保留位处均为0(如PSW 00H;DPTR 0000H).
复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU 和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
(了解:内部RAM 状态不受复位的影响,在系统上电时,RAM 的内容是不定的, 说清零是不对的) 11、89C51单片机有哪几个中断源?各中断源中断矢量地址(或中断入口地址)分别是多少? 答:有5个中断源,分别是:INT0(外部中断0)、T0(定时器T0中断)、INT1(外部中断
1)、T1(定时器T1中断)和串行口中断请求TX/RX ,它们的中断矢量地址分别为:03H 、0BH 、13H 、1BH 、23H
(或者写:CPU 响应中断时,中断入口地址:外部中断0为 0003H、定时器T0中断为000BH 、 外部中断1为0013H 、定时器T1中断为 001BH、串行口中断为 0023H)
12、 89C51在什么条件下可响应中断?
答:(1)有中断源发出中断请求
(2)中断中允许位EA=1.即CPU 开中断
(3)申请中断的中断源的中断允许位为1,即中断没有被屏蔽
(4)无同级或更高级中断正在服务
(5)当前指令周期已经结束
(6)若现行指令为RETI 或访问IE 或IP 指令时,该指令以及紧接着的另一条指令已执行完
13、什么是中断优先级?中断优先处理的原则是什么?
答:中断优先级是CPU 相应中断的先后顺序。原则:
(1)先响应优先级高的中断请求,再响应优先级低的
(2)如果一个中断请求已经被响应,同级的其它中断请求将被禁止
(3)如果同级的多个请求同时出现,则CPU 通过内部硬件查询电路,按查询顺序确定应该响应哪个中断请求,查询顺序:外部中断0→定时器0中断→外部中断1→定时器1中断→串行接口中断
14、简述89C51单片机的中断响应过程。
答:CPU 在每个机器周期S5P2期间顺序采样每个中断源,CPU 在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC ,以便进入相应的中断服务程序。一旦响应中断,89C51首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前的PC 值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC ,于是CPU 接着从中断服务程序的入口处开始执行。对于有些中断源,CPU 在响应中断后会自动清除中断标志。
15、89C51内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成?
答:89C51单片机内有两个16位定时器/计数器,即T0和T1。
T0由两个8位特殊功能寄存器TH0和TL0组成;T1由TH1和TL1组成。
【与之相关的特殊功能寄存器:工作模式寄存器TMOD ,控制寄存器TCON ;用来设置T0、T1的操作模式和控制功能】 16、89C51单片机有几个定时/计数器?它们有几种工作方式和工作模式?每种模式分别是多少位的定时/计数器?各有什么特点?
答:有两个16位定时/计数器,它们有定时和计数两种工作方式,有0、1、2、3四种工作模式,模式0为13位;模式1为16位定时/计数器;模式2为具有自动重装载功能的8为定时/计数器。
T0有模式3,分为两个独立的8位定时/计数器,其启动控制和中断标志均占用T1的相应控制位,T1没有模式3,在T0工作于模式3时,T1可工作于其它3种模式,作为串口的波特率发生器使用。
17、 判断下列两种中断优先级顺序在89C51单片机中断系统中能否实现?不能实现请说明原因,若能实现,说明寄存器IP 的值等于多少?
⑴ 定时器0,定时器1,外中断0,外中断1,串行口中断。 可以,MOV IP,#0AH
(2)外中断0,定时器1,定时器0,外中断1,串行口中断。 可以,MOV IP,#09H
【 了解 类似分析:
(3)串行口中断,外中断0,定时器0,外中断1,定时器1。 可以,MOV IP,#10H
(4)外中断0,定时器1,外中断1,定时器0,串行口中断。
不可以,只能设置一级高级优先级,如果将INT0,T1设置为高级,则优先级顺序为INT0>T1>T0>INT1>串行口中断,若将INT0,T1,INT1设置为高级,则优先顺序为INT0>INT1>T1>T0>串行口中断。
(5)外中断0,外中断1,串行口中断, 定时器0,定时器1 。 可以,MOV IP,#15H
(6) 串行口中断,定时器0,外中断0,外中断1,定时器1。
不可以,若设置串行口中断、T0为高优先级,则优先级顺序为 T0>串行口中断>INT0>INT1>T1
(7)外中断0,外中断1,定时器0,串行口中断,定时器1 。
不可以,若设置INT0、INT1为高优先级,则优先级顺序为 INT0>INT1>T0>T1>串行口中断,若设置INT0、INT1、T0、串行口中断为高级,则优先顺序为 INT0> T0>INT1>串行口中断> T1 】
18、89C51单片机寻址方式? 各种寻址方式分别访问那类存储器(或寻址空间)?
答:有7种寻址方式,分别为:立即数寻址,访问:程序存储器ROM ( 例子:MOV A,#55H;) 直接寻址,访问:片内RAM 低128字节,特殊功能寄存器SFR (例子:MOV A,40H;)
寄存器寻址,访问:工作寄存器组R0~R7,A,B,C,DPTR (例子:MOV 55H,R3 ) 寄存器间接寻址,访问:片内低128字节,片外RAM (例子:MOV A,@R0;MOVX A,@DPTR ) 变址寻址,访问:程序存储器(@A+PC,@A+DPTR) (例子:MOVC A,@+DPTR) 相对寻址,访问:程序存储器256字节范围(PC+偏移量) (例子:SJMP 55H)
位寻址,访问:片内RAM 的20H~2FH,部分特殊功能寄存器 (例子:CLR C; SETB 00H)
【 注意:B 寄存器仅在乘除法指令中为寄存器寻址,其他指令为直接寻址方式 MOV B,R0 R0 为寄存器寻址,B 为直接寻址方式; MUL AB;A,B 为寄存器寻址】 19简述汇编语言中的标号有什么规定?
(1)标号由以英文字母开始的1~8个字母或数字串组成(2)不能使用汇编语言已定义的符号。
(3)标号后必须跟冒号:(4)同一标号在一个程序中只能定义一次。
19、简述单片机通信的原理 (或者简述89C51串行口多机通信的原理和过程。)
答:当一片89C51(主机)与多片89C51(从机)通信时,所有从机的SM2位都置1. 主机首先发送的一帧数据为地址,即从机机号,其中第9位为1,所有的从机接收到数据后,将其中第9位装入RB8中。各从机根据收到的第9位数据(RB8中)的值来决定从机可否再接收主机的信息。若(RB8)=0,说明是数据帧,则使接收中断标志位RI=0,信息丢失;若(RB8)=1说明是地址帧,数据装入SBUF 并置RI=1,中断所有从机,被寻址的目标从机清除其SM2(SM2=0),以接收主机发来的数据帧。其他从机仍然保持SM2=1,直到在以后的地址帧中被选中为止,被访问的从机在接收完数据后再次将其SM2置1.
20、常见的串行总线接口有哪些?它们分别有哪些信号?
答:有SPI 总线接口和I 2C 总线接口。前者的信号线有:SCK (串行时钟线)、MISO (主机输入/从机输出数据线)、MOSI (主机输出/从机输入数据线)、CS (或者SS )(从机选择线);后者的信号线有:SDA (串行数据线)、SCL (串行时钟线)。
(了解:SPI 总线是Freescale (原Motorola )公司推出的的一种同步串行外设接口,I 2C 总线是由NEX 公司推出的串行总线)
21、简述串行口接收和发送数据的过程。
答:串行接口的接收和发送是对同一地址(99H )两个物理空间的特殊功能寄存器SBUF 进行读和写的。当向SBUF 发“写”命令时(执行“MOV SBUF,A”),即向缓冲期SBUF 装载并开始TXD 引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。
在满足串行接口接收中断标志位RI (SCON.0)=0的条件下,置允许接收位REN (SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF 中,同时使RI=1。当发读SBUF 命令时(执行“MOV A, SBUF”),便由接收缓冲期SBUF 取出信息通过89C51内部总线送CPU 。
22、89C51单片机的串行口由哪些功能部件组成?各有什么作用?
答:89C51单片机的串行接口由发送缓冲期SBUF ,接收缓冲期SBUF 、输入移位寄存器、串行接口控制器SCON 、定时器T1构成的波特率发生器等部件组成。
由发送缓冲期SBUF 发送数据,接收缓冲期SBUF 接收数据。串行接口通信的工作方式选择、接收和发送控制及状态等均由串行接口控制寄存器SCON 控制和指示。定时器T1产生串行通信所需的波特率。
23、与串行口有关的特殊功能有哪些,其功能各是什么?
串行口数据缓冲器SBUF 、串行口控制寄存器SCON 、电源控制寄存器PCON 。功能如下: SBUF :发送和接收数据 ;SCON :控制串行口工作方式和状态;PCON :设置波特率加倍 24、89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定? 答:89C51串行口有4种工作方式:
方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。
有3种帧格式:8位、10位,11位
方式0:方式0的波特率为:12/f O SC SMOD 2 方式2:方式2波特率⨯f OSC 64
SMOD 方式1和方式3:方式1和方式3波特率2
32⨯ (T1溢出速率)
SMOD ( 了解一下:方式1和方式3:若T1采用模式1则波特率为2
若T1采用模式2则波特率为2SMOD 32⨯f OSC (/216-初值)12
32⨯f OSC ) 12⨯(256-初值)
24、为什么要按键去抖?简述软件去抖的思想,如果有按键接在P1.0脚上,请写出完整的带去抖功能的键盘程序,要求该键按下再松开时,才执行该键功能。
答:由于通常的按键所用的开关是机诫开关,当开关闭合、断开时并不是马上稳定地接通和断开,而是在闭和与断开瞬间均伴随有一连串的抖动,如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。因此要按键去抖。
思想:检测键闭合后, 延时5~10ms,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正按键。当检测到案件释放后, 也要给5~10ms的延时,待后沿抖动消失后,才能转入该按键的处理程序。
KEY_00:
JB P1.0 KEY_01
LCALL DELAY
JNB P1.0 $
LCALL DELAY
JB P1.0 KEY_00
KEY_01:
.
.
.
RET
25、LED 的静态显示方式与动态显示方式有何区别?各有什么优缺点?
答:静态显示: 1、锁存器输出的段码不变; 2、亮度大, 各位LED 的段选分别控制;
3、位数多硬件电路复杂
动态显示: 1、所有位段码线并连一起 2、各位的亮灭靠片选控制端控制
3、亮度较低,多位控制电路简单
【①静态显示:系统在每一次显示输出后,能保持显示不变,仅仅在待显示数字需要改变时,才更新其数字显示器中锁存的内容。
这种显示占用CPU 时间少,显示稳定可靠。
缺点是:当显示位数较多时,占用I/O较多
②动态显示:CPU 需定时地对每位LED 显示器进行扫描,每位LED 显示器分时轮流工作,每次只能使一位LED 显示,但由于人眼视觉暂留现象,仍感觉所有的LED 显示器都同时显示。 这种显示的优点是使用硬件少,占用 I/O少。
缺点是:占用CPU 时间长,只要不执行显示程序,就立刻停止显示。】
26、CPU 外设之间一般有哪些信息传输方式?各有什么特点?
答:传输方式有①无条件传送方式,②查询传送方式,③中断传送方式,④DMA 方式。 无条件传送方式:在工作时,无需考虑外设状态,在CPU 需要同外设交换信息时,使用IN 或OUT 指令直接对这些外设进行输入/输出操作
查询传送方式:在执行输入/输出指令前,先查询相应设备的状态,当输入设备处于准备好状态,输出设备处于空闲状态时,CPU 才执行输入/输出指令与外设交换信息。在接口电路中既要有数据端口,还要有状态端口。
中断方式:当外设需要与CPU 进行信息交换时,由外设向CPU 发出请求信号,使CPU 暂停正在执行的程序,转去执行数据的输入/输出操作,数据传送结束后,CPU 再继续执行被暂停的程序。
DMA 方式:DMA 传送方式是在存储器和外设之间、存储器和存储器之间直接进行数据传
送,传送过程无需CPU 介入,传输速度基本取决于存储器和外设的速度。
27、简述非编码式键盘行扫描法的工作原理。
答:依次给行线送低电平,其余行线为高电平,然后检查所有列线电平变化。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且可确定此行此列交叉点处的按键被按下。
28、片外三总线结构
答:89C51/S51单片机的片外引脚可构成并行三总线结构:地址总线、数据总线、控制总线。 地址总线:用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选择。地址总线是单向的,只能由单片机向外发送信息。地址总线的数目决定了可直接访问的存储单元的数目。
数据总线:用于单片机与存储器之间或单片机与I/O端口之间传送数据。数据总线的位数与单片机处理数据的字长一致。数据总线是双向的,可以进行两个方向的数据传送。
控制总线:是单片机发出的以控制片外ROM 、RAM 和I/O口读/写操作的一组控制线。
29、由于SPI 系统总线一共只需3~4位数据线即可实现与具有SPI 总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、8~16位地址线、2~3位控制线。
30、准双向口就是做输入用的时候要有向锁存器写1的这个准备动作,所以叫准双向口。而P0~P3口作为一般I/O时,均为准双向口。做输入时,需要先向口锁存器写入全1,使引脚全部悬空,作为高阻抗输入。
在4个口中只有P0口是真正的双向口,而其余的3个口都是准双向口。为此就要求P0口的输出缓冲器是一个三态门。在P0中输出三态门是由两个场效应管组成的,所以说它是一个真正的双向口。而其它3个口中,上拉电阻代替了P0口中的场效应管,输出缓冲器不是三态的,因此不是真正的双向口,而只称其为准双向口。
31、89C51单片机串行接口在方式1及方式2、3接收数据的的确认条件是?
SCON 中的REN (SCON.4)=1,允许接收。当检测到起始位(RXD 上检测到1—>0的跳变)开始,就会接收一帧数据进入移位寄存器,
工作方式1:当满足RI=0且SM2=0,或收到的停止位为1,将接收数据装入串行口的SBUF 和RB8,并置位RI ,否则接收到的数据不能装入SBUF 。
对工作方式2、3:当满足RI=0且SM2=0,或收到的第9位为1,前8位数据送入SBUF ,附加的第9位数据送入SCON 中的 RB8,并置位RI ;否则此次接收无效。