单片机原理复习资料.docx
- 文档编号:5636591
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:18
- 大小:140.85KB
单片机原理复习资料.docx
《单片机原理复习资料.docx》由会员分享,可在线阅读,更多相关《单片机原理复习资料.docx(18页珍藏版)》请在冰豆网上搜索。
单片机原理复习资料
一、简答题
1、对于一条访问数据存储器的指令,如何区别是访问片内数据存储器还是访问片外数据存储器?
(P21)
答:
1)指令不同,片内用mov,片外用movx2)信号不同…
2、简述
控制线的作用。
(P13)
答:
引脚是外部程序存储器选通信号,接高电平时,程序从内部执行,就是单片机内部的程序存储器有效,接低电平时,程序从外面扩展的ROM开始执行。
3、简述键盘的工作原理。
(参考接口书)
答:
首先进行全扫描,判断是否有键按下(让行线全部输出0,读出列线,若全1,则无键按下,否则有键按下),若有键按下再进行逐行扫描,判断是哪个键按下(从第0行开始,每扫描一行时,令该行对应的行线为0,其余行线为1,然后读入列线状态,检测是否有列线为0,若无,则行号加1,顺序扫描下一行;若无,检测状态为0的行号,由该行号和扫描的列号即可确定被按下的键号)。
4、为何说P1口是“准双向接口”?
(P27)
答:
P1口统称用作通用I/O使用,但与P0口在电路结构上有些不同。
首先,它不再需要多路开关MUX;其次电路内部已有上拉电阻,与场效应管共同组成输出驱动电路,电路的输出不是三态的,所以P1口是准双向口,P1口用作输出口使用时,已能向外提供推拉电流负载,无须再外接上拉电阻。
5、设串口工作于方式3,SMOD=0,f=11.059MHz,定时器/计数器1工作于方式2,TL1、TH1的初值为FAH,则串口的波特率是多少?
请写出计算过程。
(P110)
答:
方式1、3为可变波特率,用T1做波特率发生器。
波特率=2SMOD*f/(32*12(2n-X))其中,X是定时器初值,n为8
故串口波特率=20*11.059*106/(32*12(28-0FAH))=4800bit/s。
6、访问位地址2BH和字节地址2BH的区别是什么?
答:
位地址2BH:
字节中的一位,而字节地址2BH是指RAM单元中的一个字节地址,以2BH开始的连续8个存储单元。
(位:
1位,字节:
8位)
7、51系列程序存储器的编址规律是怎样的?
如何知道单片机执行指令时,是从片内ROM中取指令,还是从片外ROM中取指令?
(P13)
答:
编址规律:
先片内,后片外,统一编址,地址连续,一般不重叠。
若为高,执行内部程序指令,为低则从外部程序存储器读取指令。
在8031中,没有内部存储器,因而直接接地。
8、简述
控制信号线的作用。
(P13)
答:
为外部程序存储地址允许输入端。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接地。
为能执行内部程序指令,
必须接Vcc。
9、MCS-51有几个中断优先级?
如何设定?
以及它们的入口地址。
(P72)
答;MCS-51的中断系统提供两个中断优先级,可以编程进行设置。
将IP某一位设置为1,相应位的中断优先级就设置为最高。
默认状态下中断优先级由高到低的顺序是:
外部中断0,定时器/计数器0溢出中断,外部中断1,定时器/计数器1溢出中断,串行通信中断,定时器/计数器2溢出中断。
外部中断0(IE0)——0003H,定时器/计数器0溢出中断(TF0)——000BH,外部中断1(IE1)——0013H,定时器/计数器1溢出中断(TF1)——001BH,串行口中断(RI+TI)——0023H,定时器/计数器2溢出中断(TF2+EXF2)——002BH。
10、用于外部数据传送的指令有哪几条?
有何区别?
(P41)
答:
共四条:
MOVX@Ri,A
MOVX@DPTR,A
MOVXA,@Ri
MOVXA,@DPTR
其中,
和
中,Ri和DPTR所寻址的地址位数不一样,即Ri是从00h—ffh,DPTR是从0000h—ffffh;
和
中,数据传送的方向不一样,即前两条是将累加器A中的内容送到数据指针指向片外RAM地址中,后两条是将数据指针指向片外RAM地址中的内容送到累加器A。
11、MCS-51定时器/计数器作定时器以及计数器使用时,计数脉冲由谁提供?
这与什么因素有关?
(P84)
答:
计数器是对外部脉冲计数,对从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进行计数。
定时器是对计算机内部的基准时钟源产生的脉冲进行计数。
定时时间与初值和晶振频率有关。
12、什么是振荡周期、时钟周期、机器周期、指令周期?
一个机器周期的时序如何划分?
它们之间的关系?
(P85)
答:
振荡周期:
单片机提供定时信号的振荡源的周期,即晶体振荡器直接残生的振荡信号,用Tosc表示。
时钟周期:
节拍脉冲或T周期,它是处理操作的最基本的单位。
时钟周期是振荡周期的两倍,是对振荡器2分频的信号。
时钟周期又称状态周期。
机器周期:
完成一个基本操作需要的时间,也叫CPU周期。
指令周期:
CPU从内存取出一条指令并执行这条指令的时间总和。
一般由若干个机器周期组成。
关系:
一个指令周期包含若干个机器周期,一个机器周期包含若干个时钟周期。
振荡周期Tosc=1/fosc,fosc为振荡频率。
时钟周期S=2Tosc。
AT89S52单片机的一个机器周期由6个时钟周期组成。
一个机器周期由6个时钟周期(12个振荡周期)组成。
13、MCS-51内部四个并行I/O口各有什么异同?
作用是什么?
(P25)
答:
P0口在实际引用中,多作为地址/数据分时复用总线使用。
P1口作通用I/O端口使用,不仅可以以8位一组进行输入、输出操作,还可以逐位分别定义各口线为输入/输出线。
AT89S52的P1.0和P1.1是多功能引脚,P1.0可作为定时器/计数器2的外部技术触发输入端T2,P1.1可作定时器/计数器2的外部控制输入端T2EX。
P2口不仅可作通用I/O端口,还可用作地址总线口使用。
P3口也是一个8位准双向I/O口,还具有第二功能。
(见P29表2-6)
14、简述MCS-51单片机的中断响应过程(P68)
答:
1)保护断点。
保存下一条将要执行的指令的地址,就是把这个地址送入堆栈。
2)寻找中断入口。
中断入口地址又称为中断矢量。
根据8个不同的中断源所产生的中断,查找相应中断服务程序的入口地址,这个时候计算机的程序计数器PC就指向中断服务程序所在的地址。
3)执行中断处理程序。
这个时候程序计数器PC就逐条执行中断服务程序,直到程序执行完成为止。
4)中断返回。
执行完中断指令后,需要把原来保存在堆栈里面的地址返回来,这个时候程序计数器PC就重新指向原来的主程序,继续执行原来的程序。
15、A/D转换接口中采样保持电路的作用是什么?
省略采样保持电路的前提条件是什么?
答:
A/D转换接口中采样保持电路的作用是:
能把一个时间连续的信号变换为时间离散的信号,并将采样信号保持一段时间.
当外接模拟信号的变化速度相对于A/D转换速度来说足够慢,在转换期间可视为直流信号的情况下,可以省略采样保持电路.
16、阐明MCS-51单片机响应中断后由硬件自动完成的操作?
答:
响应中断后,由硬件执行如下功能:
1)根据中断请求源的优先级高低,使相应的优先级状态触发器置1;
2)保留断点,即把程序计数器PC的内容推入堆栈保存;
3)清相应的中断请求标志位IE0、IE1、TF0或TF1;
4)把被响应的中断服务程序的入口地址送入PC,从而转入相应的中断服务程序。
17、波特率?
8051单片机的串口在4种工作方式下的波特率分别如何确定?
(P101、109)
答:
波特率:
每秒钟传送的二进制数的位数。
方式0为固定波特率:
波特率=fosc/12
方式2可选两种波特率:
波特率=(2SMOD/64)*fosc
当SMOD=1时,波特率=fosc/32
当SMOD=0时,波特率=fosc/64
方式1、3为可变波特率,用T1作波特率发生器。
波特率=(2SMOD/32)*T1溢出率,T1溢出率为T1溢出一次所需时间的倒数。
波特率=(2SMOD*fosc)/(32*12(2n-X))
其中:
X是定时器初值
初值X=2n-(2SMOD*fosc)/(32*波特率*12)
18、设串行异步通信的传送速率为2400波特,传送的是带奇偶校验的ASCII码字符,每个字符包含10位(1个起始位,7个数据位,1个奇偶校验位,1个停止符),问每秒钟最多可传送多少个字符?
答:
(1+7+1+1)=10位2400/10=240个字符每秒钟最多可传送240个字符。
19、JMP、AJMP、SJMP指令有何区别?
(P49)
答:
跳转的范围不一样,可以说是到达的远近距离不一样。
存储空间占用不一样。
长转移指令访问的程序存储器空间为16地址64KB,绝对转移指令访问的程序存储器空间为11位地址2KB空间。
AJMP的范围是11位地址,也就是2K的空间内,占用存储空间2个字节,执行周期24个时钟周期。
SJMP的范围是8位地址,也就是256BIT的空间内,占用存储空间2个字节,执行周期24个时钟周期。
JMP一般配合DPTR使用,存储空间1个字节,执行周期24个时钟周期。
一般用于多分枝选择的时候使用,比如按键处理。
补充:
1、8051的存储器由哪几部分组成?
片内RAM分为哪几个性质和用途不同的区域?
(P21)
答:
存储器组成:
片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。
片内RAM:
采用MOV指令访问,使用字节寻址或位寻址,占256字节,地址为00H~FFH。
四个区域:
1)4组通用寄存器,可用作RAM使用,R0、R1可位寻址;
2)位寻址区,全部可按位寻址;3)数据缓冲区,只能字节寻址;
4)特殊功能寄存器区,可字节寻址,低半字节为0H,8H可位寻址。
3、在8051单片机中,什么是特殊功能寄存器?
特殊功能寄存器与其它片内RAM单元有什么区别?
(P21)
答:
特殊功能寄存器是指有特殊用途的寄存器集合,也称为专用寄存器,本质上是一些有特殊功能的片内RAM单元,反映单片机的运行状态。
区别:
功能已作了专门的规定,用户不能修改其结构,可以分为两类,一类是与芯片的引脚有关,另一类作为片内功能的控制用。
4、中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别?
(P75)
答:
中断返回指令RETI,CPU执行完这条指令后,把响应中断时所置位的优先级激活触发器清零,然后从堆栈中弹出两个字节的内容(断点地址)装入程序计数器PC,CPU就从原来被中断处重新执行被中断的程序。
普通子程序返回指令RET,把压栈中的断点地址赋予PC指针,程序返回到断点执行。
执行过程:
(SP)->PCH,然后(SP)-1->SP,(SP)->PCL,然后(SP)-1->SP。
RETI和RET都有将压入堆栈的PC指针返回,但RETI还有将中断优先级标志清0,通知中断系统中断服务程序完成。
5、分析8051单片机数据传送指令中MOV、MOVC、MOVX的作用。
(P41)
答:
MOV(片内):
数据传送指令。
MOVC(片外ROM):
查表指令,对存放在程序存储器中的数据表格进行查找传送,使用变址寻址方式。
MOVX(片外RAM):
实现累加器A与片外RAM间的数据传送,使用寄存器寻址方式。
6、用于外部数据传送的指令有哪几条?
有何区别?
(P41)
答:
查表指令(2条):
MovcA,@A+DPTR;((A)+(DPTR))->(A)表格地址单元中内容送到累加器
MovcA,@A+PC;((PC)+1)->(PC),((A)+(PC))->(A)表格地址单元中的内容送到累加器A
累加器A与片外数据存储器RAM传送指令(4条)
Movx@DPTR,A;(A)->((DPTR))累加器中的内容送到数据指针指向片外RAM地址中
MovxA,@DPTR,,((DPTR))->(A)数据指针指向片外RAM地址中内容送到累加器A
MovxA,@Rj;((Rj))->(A),寄存器Rj指向片外RAM地址中内容送到累加器A
Movx@Rj,A;(A)->((Rj)),累加器内容送到A寄存器Rj指向片外RAM地址中
7、MCS-51单片机扩展系统中,为什么P0口要接一个8位的锁存器,而P2口却不接?
(P220)
答:
在扩展存储器时,P0口分时兼起着地址总线和数据总线的作用。
单片机的地址锁存允许端ALE引脚接到74LS73的使能端G,在ALE脉冲下降沿的这一瞬间P0口上的低8位地址信息得以有效输出。
单片机的片外程序存储器读选通信号(片外取指信号)端PSEN接到2716的输出允许端OE,在PSEN脉冲上升沿的这一瞬间实现取指,复用为地址总线和数据总线的P0口在取指瞬间即已用作数据总线,为了使送到2716的低8位地址信息在该瞬间仍能保持有效,可见必须添用地址锁存器。
8、单片机系统中的定时和计数功能有何区别?
分别适用于什么场合?
简述其工作原理。
答:
定时是对规定间隔内输入的信号个数进行计数,用来指示经历的时间,是对计算机内部的基准时钟源产生的脉冲进行计数。
计数是用来指示在任意间隔内输入信号(事件)的个数,是对外部脉冲计数。
定时器主要用来完成系统运行过程中的定时功能,计时器则主要用来对于外部时间的计数。
工作原理P84图5-1
9、单片机用于外界过程控制中,为何要进行A/D、D/A转换?
答:
单片机用于外界过程控制中,本身只能识别和处理数字量,但在实际应用中所要处理的量往往是非数字量即模拟量,并往往还是非电量的模拟物理量,如温度、压力、流量等等,它们必须经过转换才能为单片机所处理,即A/D转换;另一方面,在单片机实时控制以及对图像、语音的处理完后,又必须转换成相应的模拟量,即D/A转换。
10、用线选法和译码扩展存储器各有什么特点?
(P123)
答:
线选法是直接以系统的地址作为存储芯片的片选信号,为此只需把高位地址线与存储芯片的片选信号直接连接即可,其优点是简单明了,不需增加额外的电路,适用于小规模单片机系统的存储器扩展,缺点是存储空间不连续。
译码法是适用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号,这是一种最常用的存储器编制方法,能有效地利用空间,特点是存储空间连续,适用于大容量多芯片存储器扩展,缺点是硬件设计需要增加译码器。
11、简述MCS-51单片机扩展时/WE、/RD控制信号线的作用。
答:
/WE为写选通信号,当其有效时才允许向RAM写入。
片外数据存储器写信号
/RD是片外数据存储器读信号,当其有效时才允许对RAM或者I/O接口读
12、请说明动态扫描和静态扫描显示方式的特点。
(P222)
答:
静态显示时,数据是分开送到每一为LED上的而动态显示是数据送到每一个LED上,再根据位选线来确定是哪一位LED被显示。
静态显示亮度很高,但口县占用较多,动态显示则好一点,适合在显示位数较多的场合。
9、何谓堆栈?
为什么要设置堆栈?
栈区是怎么样确定的?
数据进栈、出栈有何种规律?
出栈用什么指令?
进栈用什么指令?
进栈、出栈时堆栈指针将怎样变化?
答:
堆栈是一种数据结构,它是一个8位寄存器,指示堆栈顶部在内部RAM中的位置。
堆栈的设立时为了中断操作和子程序的调用而用于保存数据的,即常说的断点保护和现场保护。
数据进栈、出栈有“后进先出”原则,也即最先入栈的数据放在堆栈的最底部,而最后入栈的数据放在栈的顶部。
进栈、出栈分别用PUSH和POP指令。
二、程序设计题
1.将一双字节数存入片内RAM.设该待存双字节数高字节在工作寄存器R1中,低字节在累加器A中,要求高字节存入片外的48H单元,低字节存入47H单元。
MOVR0,#47h
MOV@R0,A
INCR0
XCHA,R1
MOV@R0,A
XCHA,R1;恢复原R0和A内容
2.将片内RAM80H~89H单元中的10个数相加,和的低8位存入8AH,高8位存入8BH。
MOVR0,#80H
MOVR1,#09H
MOV8Ah,#00H
MOV8Bh,#00H
MOVA,@R0
INCR0
LOOP:
ADDA,@R0
JNCLP;若无进位
INC8BH;若有进位,高位加1
LP:
INCR0
DJNZR1,LOOP
MOV8AH,A;
低八位结果存入8AH
3.编写程序将片外数据存储器地址为1000H~102FH的数据块,全部搬迁到片内RAM40H~6FH中,并将原数据块区域全部清零。
MOVDPTR,#1000H
MOVR0,#30H
MOVR1,#40H
LOOP:
MOVXA,@DPTR
MOV@R1,A
CLRA
MOVX@DPTR,A
INCDPTR
INCR1
DJNZR0,LOOP
4、统计自P1口输入的数字串中的正数、负数及零的个数,统计的个数分别存放在R0、R1、R2三个工作寄存器中。
CLRA
MOVR0,A
MOVR1,A
MOVR2,A
ENTER:
MOVA,P1
JZZERO;为零
JBP1.7,NEG;最高位为1(负数)
INCR0;否则为正数
SJMPENTER
ZERO:
INCR2
SJMPENTER
NEG:
INCR1
SJMPENTER
5、设被加数和加数分别在以ADR1和ADR2为初址的片内数据存储器中,自低字节起,由低字节依次存放;他们的字节数为L;请编程将他们加得的和放在原存放被加数的单元中。
CLRC
MOVR0,#ADR1
MOVR1,#ADR2
MOVR2,#L
LOOP:
MOVA,@R0
ADDCA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR2,LOOP
6.将ROM中自3000H单元起50个数,按序移至片外RAM自3080H单元起的内存区间去。
MOVDPTR,#3000H
MOVR1,#32H
MOVR2,#0
LOOP:
MOVA,R2
MOVCA,@A+DPTR
MOVR3,A
MOVA,#8OH
ADDA,R2
MOVDPL,A
MOVA,R3
MOVX@DPTR,A
INCR2
MOVDPL,#0
DJNZR1,LOOP
7、设有100个有符号数,连续存放在以2000H为首址的片外数据存储器中,试编程统计其中正数、负数和零的个数,统计的个数分别放在R0、R1、R2中。
START:
CLRA
MOVR0,A
MOVR1,A
MOVR2,A
MOVDPTR,#2000H
MOVR3,#100
LOOP:
MOVXA,@DPTR
JZZERO
JBA.7,NEG
INCR0
SJMPL
ZERO:
INCR2
SJMPL
NEG:
INCR1
L:
INCDPTR
DJNZR3,LOOP
8、已知振荡器振荡频率为12MHz,要求定时器/计数器0产生10ms的定时,试编写初始化程序。
振荡器振荡频率为12MHz,则机器周期为(1/12MHZ)*12=1μs
设计数器工作于方式1,计数初值为x。
则(216–x)×1μs=10ms,故x=65536-10000=55536=D8F0H
初始化程序如右图:
9、单片机系统串行口工作于模式3,要求传送波特率为1200Hz,作为波特率发生器的定时器T1工作在方式2时,请求出计数初值为多少?
设单片机的振荡频率为6MHz。
定时器工作于方式2,故n=8。
串行口工作于方式3,设计数初值为X,根据书上110页计算公式:
(1)、若SMOD=1,即波特率加倍时
X=28-(2×6MHZ/32×1200HZ×12)=256-26=230
(2)、若SMOD=0,即波特率不加倍时
X=28-(1×6MHZ/32×1200HZ×12)=256-13=243
三、综合应用题
1、有某微机系统用2片EPROM芯片组成的存储器扩展电路如下图,请回答:
1)芯片U1、U2的首址与末址
2)与U1以及U2的
端相连的是8031的哪一个控制信号
3)图中存储器的总容量(以K为单位)。
解答:
1)当P2.5为低电平0时选中芯片U1,当为高电平1时选中芯片U2.,假设没有用到的引脚为高电平,则U1的首址为:
0C000H、末址为:
0DFFFH。
U2的首址分为:
0E000H、末址为:
0FFFFH。
2)与U1以及U2的
端相连的是8031的#PSEN控制信号。
3)图中一片存储器有13根地址线,容量为8K,则存储器的总容量为16K。
2、有某微机系统用2片静态RAM芯片组成的存储器扩展电路如下图,请回答:
1)芯片U1、U2的首址与末址。
2)与U1以及U2的
端、
端相连的分别是8031的哪一个控制信号。
3)图中存储器的总容量(以K为单位)。
解答:
1)当P2.5、P2.6为01时选中芯片U1,当为10时选中芯片U2.,
假设没有用到的引脚P2.7为高电平,则U1的首址为:
0C000H、末址为:
0DFFFH。
U2的首址分为:
0A000H、末址为:
0BFFFH。
2)与U1以及U2的
端相连的是8031的#RD控制信号、
端相连的是8031的#WR控制信号.
3)图中一片存储器有13根地址线,容量为8K,则存储器的总容量为16K。
3、有某微机系统用4片EPROM芯片组成存储器扩展电路如下图,请回答:
1)芯片U1、U2、U3、U4的首址与末址。
2)与EPROM芯片的
端相连的是8031的哪一个控制信号。
3)图中存储器的总容量(以K为单位)。
解答:
1)当P2.7、P2.6、P2.5、P2.4为1110时选中芯片U1,为1101时选中芯片U2,为1011时选中芯片U3,为0111时选中芯片U4,则
U1的首址为:
0E000H、末址为:
0EFFFHU2的首址为:
0D000H、末址为:
0DFFFH
U3的首址分为:
0B000H、末址为:
0BFFFHU4的首址为:
7000H、末址为:
7FFFH
2)与EPROM芯片的
端相连的是8031的#PSEN控制信号.
3)图中一片存储器有12根地址线,容量为4K,则存储器的总容量为16K。
4、MCS-51单片机外扩展一片8255,画出系统电路原理图,写出地址分布。
(15分)
解答:
系统的电路原理图见书P137。
图中8255A的片选端#CS接到单片机的P2.7端,A1、A0接到锁存后的P0.1、P0.0端,假设未用到的地址线取1,则8255A各端口的地址为A口:
7FFCH、B口:
7FFDH、C口:
7FFEH、控制口:
7FFFH。
6、某微机系统用2片2764芯片组成的R0M存储器系统如下图,请回答:
1)图中采用的译码法与线选法相比有什么特点?
2)写出芯片2764
(1)、2764
(2)的地址范围。
3)与2764
端相连的是8031的哪一个控制信号。
4)图中存储器的总容量(K为单位)5)系统中74LS373与74LS138芯片各自的功能是什么?
解答:
图中的译码法采用是全译码法,该译码法与线选法相比,不存在地址重叠现象,地址是连续的,而且译码的地址范围远远大于线译码法。
当P2.7、P2.6、P2.5为010时,#Y2输出低电平,选中2764
(1),片内地址A12~A0从全0变化到全1,该地址范围为4000H~5FFFH;
当P2.7、P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 复习资料