单片机课程复习提纲

更新时间:2024-04-06 23:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机课程复习提纲

1. 单片机由哪几个部件组成?CPU包括哪两部分?

中央处理器(CPU)、存储器(RAM、ROM、EPROM)和各种输入/输出接口(定时器、计数器、并行I/O口、串行口、A/D转换器、脉冲调制器PWM等) 运算器、控制器和寄存器组(专用)

2. 运算器和控制器由哪些电路组成?

运算器:暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器

控制器:定时控制逻辑电路、指令寄存器、译码器、地址指针DPTR及程序计数器PC、堆栈指针SP等

3. 51单片机的数据总线是多少位?从哪些引脚输出?哪些指令会在数据总线上输入或输

出数据?数据线在什么时候有效?

8位。从P0,P1,P2,P3共32个引脚输出。

4. 51单片机的地址总线是多少位?从哪些引脚输出?哪些指令会在地址总线上输入或输

出数据?高8位地址和低8位地址在什么时候有效?

地址总线16位,P2为地址总线高8位,P0作为地址复用,读写控制线RD WR ALE PSEN等

5. ALE、PSEN、RD、WR、EA引脚有和作用。什么时候有效?

RD:读外部数据信号 WR:写外部存储器信号

PSEN:外部程序存储器选通信号 EA:内外程序选择信号 ALE:地址锁存信号

6. 51单片机由多少个独立存储空间,它们的地址范围是什么?

内部程序存储器 地址范围0000H-0FFFH 共4KB 外部程序存储器 0FFFH-0FFFFH 共64KB

内部数据存储器 00H-FFH 共256个字节(其中包括低128字节和特殊功能寄存器SFR 128个字节)

外部数据存储器可扩展至64KB

CPU访问片内外程序存储器ROM指令用MOVC

访问片外数据存储器RAM指令用MOVX 访问片内RAM用MOV

7. PSW 、DPH、DPL、SP、PC、TCON、SCON、TMOD、IE、IP是什么寄存器。各有

何用处?

PSW: 程序状态寄存器; TCON:定时器/计数器控制; DPH:数据指针高字节; TMOD:定时器/计数器方式控制; DPL:数据指针低字节; IE:中断方式控制; SP:堆栈指针; IP:中断优先等级控制。 PC:程序计数器;

8. 51单片机标志寄存器有多少位,这些标志位有何意义,什么时候置1?什么时候置0?

标志寄存器(PSW)有8位;

寄存器 寄存器 奇偶

进位 辅助进位 保留 溢出标志 保留

组选择 组选择 校验

PSW . CY AC F0 RS1 RS0 OV F1 P Cy(PSW.7)——进位标志位。 当运算结果产生进位时, Cy =1; 当运算结果没有产生进位时, Cy =0。

AC(PSW.6)——辅助进位(或称半进位)标志。 当运算结果的D3向D4产生进位时, AC =1; 当运算结果的D3向D4没有产生进位时, AC =0。 OV(PSW.2)——溢出标志位。 当运算结果产生溢出时, OV =1;

当运算结果没有产生溢出时, OV =0。 P(PSW.0)——奇偶标志位。

当A中1的个数为奇数时, P =1; 当A中1的个数为偶数时, P =0。 9. P3口的复用功能时什么?

P3.0 RXD 串行数据接受 P3.1 TXD 串行数据发送 P3.2 INIT0 外部中断0申请 P3.3 INIT1 外部中断1申请

P3.4 T0 定时器/计数器0计数输入 P3.5 T1 定时器/计数器1计数输入 P3.6 WR 外部RAM写选择 P3.7 RD 外部RAM读选择

10. 什么是堆栈?堆栈有何用处?51单片机复位后堆栈设在什么位置?

堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。 SP栈指针是一个专用的8位寄存器,系统复位后,SP初始化为07H,使得堆栈指针实际上是由08H单元开始。

11. 什么是中断?基本的51单片机有多少个中断源?分为多少类型?单片机响应中断的条

件是什么?

中断是指程序执行过程中,外部或内部事件通过硬件请求CPU迅速处理,CPU要暂停当前得工作,转向为处理外部或内部事件的中断服务程序中去;完成中断服务程序后,CPU继续原来的工作,这样的过程称为中断响应。

基本的51有5个中断源,分为3种类型(外部中断,定时中断,串行中断); 1、外部中断INT0和INT1:

INT0,INT1的中断触发方式有电平触发和跳变触发方式两种: A:当ITn=0,选择电平触发方式。 B:当ITn=l,选择负跳变触发方式。 2、定时/计数器T0、T1和T2

当T0、T1或T2溢出时触发定时器中断请求。

另外,当 EXEN2=1,T2EX(P1.1)引脚的负跳变也会触发T2的中断请求。 3、串行口中断

当串行口接收或发送一帧数据或后发生串行口中断请求。 12. 什么是中断入口?指出各中断源的入口地址。

单片机有6个中断源,正常每个中断源都有自已的中断服务程序,分配在不同的空间,为了中断时很方便地进入到相应的中断服务程序当中执行程序,单片机为此对每个中断源都分配有固定的中断入口地址。 外部中断0(INT0)——0003H; 定时器/计数器1(T1 )——001BH; 定时器/计数器0(T0)——000BH; 串行口(RI、TI)——0023H; 外部中断1(INT1)——0013H; 定时器/计数器2 ——002BH;

13. 51单片机的中断有多少个优先级?为什么要分优先级?如何设定优先级?指出同一个

优先级中断的优先响应次序。

在P89C51中有高、低两个中断优先级,通过中断优先级寄存器IP来设定,IP的状态由软件设定,某位设定为―1‖,则相应的中断源为高优先级中断;某位设定为―0‖,则相应的中断源为低优先级中断 中断源

⒈ 外部中断0(最高) ⒋ 定时器T1中断 ⒉ 定时器T0中断 ⒌ 串行口中断 ⒊ 外部中断1 ⒍ 定时器T2中断(最低)

14. 如何保证中断响应完成后能正确返回主程序?

保留断点:

CPU响应中断后,把主程序执行的位置和有关数据信息保留到堆栈,以备中断处理完毕后,能返回主程序并正确执行。 保护现场:

为了使中断处理程序不影响主程序的运作,故要把断点处的有关寄存器的内容和标志位的状态全部推入堆栈保护起来,即在中断服务程序中把这些寄存器的内容推入堆栈。这样,当中断处理完成后返回主程序时,CPU能够恢复主程序的中断前状态,保证主程序的正确动作。

给出中断入口,转入相应的中断服务程序:

系统由中断源提供的中断向量形成中断入口地址,使CPU能够正确进入中断服务程序。 15. 什么是布尔操作?51单片机哪些单元可以进行布尔操作?

布尔操作即位操作。它以位(bit)作为单位进行运算和操作。 操作单元(操作对象):内部RAM中的位寻址区,即为20H~2FH中连续的128位(位地址00H-7FH),以及特殊功能寄存器SFR中支持位寻址的各位

16. 基本的51单片机有多少个定时计数器?定时计数器有多少种工作方式,如何设定?

基本的有2个定时计时器,有4种工作方式,通过设置M1,M0取不同的工作方式。

17. 定时计数器为什么能定时?如何确定定时时间?定时器的定时初值的自动重装有何意

义?

单片机定时器/计数器的核心是一个可预置的加1计数 器.其基本功能是计数加1。 若是对单片微机的T0或T1 引脚上输入的一个1到0的跳 变进行计数增 l,即是计数功能。

若是对单片微机内部的机器周期进行计数,从而得到定 时,这就是定时功能。

18. 51单片机的定时计数器有哪些启动方式?硬件启动的条件是什么?

(A) 仅软件控制启动

(B) 软、硬件同时控制定时计数器的启动

硬件启动的条件:(外部中断启动定时器)

INT0(INT1)引脚置高电平,且由软件使TR0(或者TR1)置1

19. 什么是并行通信?什么是串行通信?什么是异步通信?什么是波特率?什么是单工通

信?什么是全双工通信?

并行通信:是指数据的各位同时进行传送的通信方式。 串行通信:是指数据一位一位顺序传送的通信方式。 串行通信的两种基本形式:同步通信和异步通信。

异步通信所传输的数据帧格式是由1个起始位、1~9个数据位、1~2个停止位组成,依靠起始位和停止位保持同步;同步所传输数据帧格式是由多个字节组成的一个帧,每个帧都有两个(或一个)同步字符作为起始位以触发同步时钟开始发送或接收数据。 波特率是指每秒钟传送二进制数码的位数(bit),单位bps(bit per second),bit/s。 信息只能单向传送为单工;

信息能够同时双向传送则称为全双工。

20. 串行口通过哪些寄存器控制?串行口有多少种工作方式?常用的异步串行通信时用哪2

种方式?工作方式0有何用处?

串行口控制寄存器:SCON;电源控制寄存器 PCON ; 串行口有4种工作方式,

8051的串行口方式0是同步移位寄存器方式。应用方式0可以扩展并行I/O口,比如在键盘、显示器接口中,外扩串行输入、并行输出的移位寄存器(如74LS164) ,每扩展一片移位寄存器可扩展一个8位并行输出口,可以用来连接一个LED显示器作静态显示或用作键盘中的8根列线使用。

21. 如何设定51单片机串行通信的波特率?如何设定串行口工作方式控制字? 波特率的设置

方式0:波特率由振荡器的频率(fosc)所确定。 波特率=fosc/12。

方式2: 波特率由振荡器的频率(fosc)和SMOD 位(PCON.7)所确定: 当SMOD位=1时,波特率=fosc/32; 当SMOD位=0时,波特率=fosc/64 方式1和3:

波特率由定时器T1的溢出率和SMOD位(PCON.7)所确定。 波特率=2SMODxfosc/32x 12(256 –TH1) 设定串行口工作方式控制字 位功能 SM0 1 SM1 1 SM2 0 REN 0 TB8 0 RB8 0 TI 0 RI 0 22. 当用P0口输出时,为什么要加上啦电阻?

因为51单片机P0口内部是漏极开路型(作I/O口用时)。

上拉电阻一般用10K,一端接P0口中,一端接VCC,通常都用排阻方便些。

不接上拉电阻的话输出会不正常,比如输出高电平时得不到高电平

23. P0、P1、P2、P3口当作输入时,为什么要先置输出为1?

将数据输入PX端口之前,先要通过内部总线向锁存器写”1“,这样/Q=0,场效应管截止,PX端口输入的“1”才可以送到三态缓冲器的输入端,此时再给三态门的读引脚送一个读控制信号,引脚上的“1”就可以通过三态缓冲器送到内部总线

24. 单片机有哪两种键盘结构,各有什么特点?软件上是如何确定有按键的?如何确定(计

算)按键号码(或叫键值)? 独立式按键:

独立式按键电路简单,配置灵活,但是因为每一个按键需要占用一个IO口,IO口占用量很大,所以它只适合于按键数量少的场合使用。 行列式键盘:

由行线和列线组成,按键位于行线和列线的交叉点上;当键盘上没有键闭合时,所有的行线和列线断开,行线X0~X3呈高电平。当某个键闭合时,该键对应的行列线短路,行线的状态由列线状态决定。 首先检查是否有按键按下,CPU先使所有列线输出为低电平,然后读入所有行线的状态,若行线中有低电平,则表明有键被按下。 判断按键位置。

CPU通过输出口使列线从低位至高列逐列变低电平输出,每次均读入行线的状态,以确定那条列线为―0‖状态。由行、列线的状态就可判断是哪一个键被按下(行、列交叉处) d.计算确定闭合键的键号 N=行首键号+列号

25. 为什么按键的判断时要加去抖动?如何去抖动?

键盘实质上是一组开关,常用的按键都为机械弹性开关,利用机械触点的断、合作用来实现按键功能。当按键或键松开时,由于机械撞击的作用,开关的动作会产生抖动,时间在5~10mS,若不作处理,很容易误把一次按键当多次按键。 解决的办法是:

A:加去抖动硬件电路。

B:用软件延时,待键稳定后再作键输入处理

26. LED数码管有哪两种基本类型?显示的字形码是如何确定的?

有共阴,共阳两种类型,显示的字形码通过对应的led灯按顺序转换为二进制代码得到 27. LED数码管的两种基本显示电路是什么?各有何特点?

静态显示方式:每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新。 其特点为:编程较简单,但占用I/O口线多,一般适用于显示位数较少的场合。

动态显示方式,在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示。

其特点为:占用I/O端线少,电路较简单,编程较复杂,CPU要定时扫描刷新显示。一般适用于显示位数较多的场合。

28. LED数码管单笔画需要3mA左右的电流,如何设计一个合理的驱动电路?

29. 并行扩展RAM、ROM、I/O口需要哪些总线?如何进行片选?

单片机数据总线、地址总线和控制总线,

一是必须先找到该存储单元或I/O端口所在的芯片,一般称为―片选‖ 。

二是通过连到芯片上的地址线在芯片内部进行译码。这样才能确定唯一的存储单元或I/O端口。

30. 片选有哪两种基本方法?如何确定片选的地址范围?

片选常用有“线选”、“地址译码”2种方法。线选法一般是利用单片机的最高几位空余的地址线中一根(如P2.7) 作为某一片存储器芯片或用于应用系统中扩展芯片的片选。 译码法则用译码器对空余的高位地址线进行译码,而译码器的输出作为“片选” 控制线。

31. SPI、IIC、USB总线是串行总线吗?它们各有什么特点?

都是

SPI 是一种四线制串行总线接口,为主/从结构,四条导线分别为串行时钟(SCLK)、主出从入(MOSI)、主入从出(MISO)和从选(SS)信号。

I2C 是一种二线制串行总线接口,工作在主/从模式。二线通信信号分别为开漏 SCL 和 SDA 串行时钟和串行数据。

Universal Serial Bus(通用串行总线)简称USB,是目前电脑上应用较广泛的接口规范,USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,同时对外设有良好的兼容性,最多可连接127台外设。

①由于SPI总线采用硬件进行片选,因此软件的规程相应比较简单。时钟采用边沿触发,速度比I2C总线高,但抗干扰能力比I2C总线差。

②I2C的总线结构可以连接多个主控机。因此总线平时通过上拉电阻接到电源。空闲的主控机要输出高电平,表示不占用总线。与单总线要求不同,挂在总线上的一个设备内部多个单元地址或端口且可以随时访问。而单总线只能通过访问的次序来指定单元。由于I2C增加了用于同步使用的时钟线SCL,可以大大地提高数据的传输速度。

③USB总线采用一对差分数据线进行信号传输,可以热插拔;系统总线供电,低功率设备无需外接电源,采用低功耗设备,并可提供5V/500mA电源;支持设备众多;扩展容易,可以连接多个设备;高速数据传输。

32. 串行扩展RAM、ROM、I/O有什么优缺点?

串行扩展优点就是节省单片机本身的IO口,减少不必要的线路。 缺点就是传输相同数据比直接用单片的并口速率慢。

33. 指出下列指令的寻址方式

MOV C, P1.0; 直接寻址 MOVX A, @A+PC;变址寻址 PUSH PSW 位寻址、直接寻址 SJMP LOOP 相对寻址 DA A 寄存器寻址 INC R1 寄存器寻址 34. 指出下列伪指令的作用

BW ; ORG ; END ; BIT; 1. ORG ——定义程序存放起始地址 2. END ——汇编结束 3. EUQ ——给标识符赋值

4. DB ——在指定存储区安排单字节常数或字符 5. DW ——在指定存储区安排单字常数或字符串 6. DS ——在指定存储区安排指定空白单元数 7. BIT —— 将位地址赋给标识符

35. 下列哪些指令会改变标志位

MOV R2,#10; DA A POP PSW ; INC 30H JBC P1.1,LOOP; MUL AB ANL A, R1 DJNZ R1,LOOP

加法指令:ADD、ADC、INC、XADD除了INC不影响CF标志位外,都影响条件标志位。 CF、ZF、SF、OF CF最高位是否有进位

DF若两个操作数符号相同而结果符号与之相反OF=1,否则OF=0. 减法指令:SUB、SBB、DEC、NEG、CMP、CMPXCHG、CMPXCHG8B

前六种除了DEC不影响CF标志外都影响标志位。CMPXHG8B只影响ZF。 CF说明无符号数相减的溢出,同时又确实是被减数最高有效位向高位的借位。 OF位则说明带符号数的溢出

无符号运算时,若减数>被减数,有借位CF=1,否则CF=0.

OF若两个数符号相反,而结果的符号与减数相同则OF=1.否则OF=0. 乘法指令:MUL、IMUL

MUL:如果乘积高一半为0,则CF和OF位均为0,否则CF和OF均为1. IMUL:如果高一半是低一半符号的扩展,则CF位和OF位均为0,否则就均为1. 除法指令:DIV、IDIV 对所有条件位均无定义。 逻辑指令:AND、OR、NOT、XOR、TEST

NOT不允许使用立即数,其它4条指令除非源操作数是立即数,至少要有一个操作数必须存放在寄存器中。另一个操作数则可以使用任意寻址方式。

NOT不影响标志位,其余4种CF、OF、置0,AF无定义,SF、ZF、PF位看情况而定。 定位扫描指令:BSF正向位扫描、BSR反向位扫描

源操作数可以是除立即数以外的任一种寻址方式,目的操作数必须是寄存器,影响ZF位。

36. 将下列十进制数转换为二进制数和十六进制数

152 (10011000,98) 38(100110,26) 37. 将下列十六进制数转换为二进制数和十进制数

63H(1100011,99) 10A2H(1000010100010,4258) 38. 编程将ROM中地址为1000H开始20个的单元内容送到内部RAM(起始单元为30H)。

MOV R0,#30H MOV DPTR,#1000H LOOP: MOV A,R0 ORG 1000H MOV @DPTR,A MOV DPTR,#20H INC R0 MOV A,#0H INC DPTR MOVC A,@A+DPTR CJNE DPTR,#1020H,LOOP MOV 30H,A SJMP $ END END

39. 编程用定时器T0和定时中断方式实现P1.7口输出周期为2秒的方波。

ORG 0000H

AJMP START1

ORG 000BH ;T0中断入口 NOP NOP

JMP MT0

ORG 0100H START1:

MOV SP,#60H MOV TL0,#18H MOV TH0,#0FCH

MOV TMOD,#01H ;置计数器模式 MOV IE,#8BH

SETB TR0 ;启动定时器 NOP NOP

ORG 0000H MOV TMOD,#01H MOV R0,#20 SETB TR0 MOV TH0,#3CH MOV TL0,#0B0H TIME: MOV TH0,#3CH MOV TL0,#0B0H

START2:

AJMP START2 MT0:

PUSH ACC PUSH PSW NOP NOP

MOV A,TL0 ADD A,#18H MOV TL0,A

MOV TH0,#0FCH CPL P1.7 POP PSW POP ACC RETI END

LOOP1: JBC TF0,LOOP2 JMP LOOP1 LOOP2: DJNZ R0,TIME CPL P1.7 RET END

40. 综合设计。要求:

设计一个3位LED数码管动态显示电路,16个行列式键盘电路。和一个启动按键 编程实现按启动键后,将键盘按键键号进行十进制数连续累加,并将结果在数码管上显示。

本文来源:https://www.bwwdw.com/article/srbr.html

Top