单片机考试知识点总结太原理工大学葬仪落整理教学文稿Word文档下载推荐.docx
《单片机考试知识点总结太原理工大学葬仪落整理教学文稿Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机考试知识点总结太原理工大学葬仪落整理教学文稿Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
ANLP1,#42H
ORLP1,#0ECH
2、下列程序段执行后,(R0)=47H,(48H)=0FFH,(47H)=3FH
MOVR0,#48H
MOV48H,#0
MOV47H,#40H
DEC@R0
DECR0
3、已知(SP)=29H,(DPTR)=1234H,在执行下列指令后,(SP)=2BH,内部RAM(2AH)=34H,(2BH)=12H
PUSHDPL
PUSHDPH
4、简答题
1、简述MCS-51单片机中,振荡周期、机器周期和指令周期的关系。
答:
(1)振荡周期:
振荡周期为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。
(2)时钟周期:
又称状态周期或状态时间S,是振荡周期的两倍,分为P1、P2节拍,通常P1完成算术逻辑操作,在P2节拍完成内部寄存器间的数据传送操作。
(3)机器周期:
一个机器周期由6个状态(时钟周期)(或12个振荡周期)组成。
(4)指令周期:
执行一条指令的全部时间,是机器周期的倍数,MCS-51单片机中指令周期通常由1、2、4个机器周期组成。
2、DAC0832作为数模转换器,其连接方式有几种?
3种。
单缓冲方式、双缓冲方式和直通方式。
(1)直通方式常用于不带微机的控制系统。
(2)单缓冲方式是值DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受8051控制的锁存方式。
(3)对于多路D-A转换,要求同步进行D-A转换输出时,必须采用双缓冲同步方式。
3、8051单片机作定时和计数时,其计数脉冲分别由谁提供?
8051单片机定时计数器共有几种工作模式?
分别是什么?
当用作定时器时,是在内部对CPU的时钟脉冲计数。
当用作计数器时,是对相应输入引脚输入的脉冲信号计数。
工作模式:
(1)工作模式0:
使用低字节的5位和高字节的8位组成13位的计数器,低5位计数溢出后向高位进位计数,高8位计数器计满后置位溢出标志位。
(2)工作模式1:
使用低字节和高字节的16位组成16位计数器。
与0模式的区别仅在计数器长度,定时长度和计数容量不同。
(3)工作模式2:
使用低字节的8位做计数器、高字节的8位作为预置常数的寄存器。
(4)工作模式3:
只适用于定时器/计数器T0,T0分别为两个独立的8位计数器TH0和TL0.
4、MCS-51单片机系统共有几种寻址方式?
有7种寻址方式:
(1)寄存器寻址
(2)直接寻址(3)立即寻址(4)寄存器间接寻址
(5)相对寻址(6)位寻址(7)基址加变址寄存器间接寻址
5、试说明特殊功能寄存器TCON中TF1、TR1、IE1、IT1位的含义是什么?
这些位什么情况下被置位或清除?
TF1T1计数溢出标志位,当计数器T1计数计满溢出时,该位由硬件置1,转到中断服务程序时,再由硬件自动清0.
TR1T1计数运行控制位,由软件置1或清0.为1时允许计数器T1计数,为0时禁止计数器T1计数。
TF0T0计数溢出标志位,当计数器T0计数计满溢出时,由硬件置1,申请中断。
进入中断服务程序后由硬件自动清0.
TR0T0计数运行控制位,由软件置1或清0,为1时允许计数器T0计数,为0时禁止计数器T0计数。
IE0外部中断0(INT0)请求标志位,当CPU采样到INT0引脚出现中断请求后,此位由硬件置1.在中断响应完成后转向中断服务程序时,再由硬件自动清0.
IE1外中断1(INT0)请求标志位,功能同上。
IT0外中断0请求信号方式控制位,当IT0=1,后沿负跳变有效;
IT0=0,低电平有效。
此位可由软件置1或清0.
IT1外中断1请求信号方式控制位,IT1=1,后沿负跳变有效;
IT1=0,低电平有效。
5、应用题
1、将存于外部RAM8000H开始的50H个数据传送到内部0010H开始的区域,请编程实现。
ORG0100H
MOVDPR,#8000H
MOVR0,#10H
MOVR2,#50H
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
END
知识点:
1、各P口功能:
P0口:
8位双向三态I/O口,或分时复用为地址总线(低8位)及数据总线,或作为普通I/O口使用。
P1口:
8位准双向I/O口,常用作普通I/O口使用,个别引脚有第二功能
P2口:
8位准双向I/O口,或用作地址总线(高8位),或作为普通I/O口使用
P3口:
8位准双向I/O口,或作为普通I/O口使用;
或作为第二功能口使用。
P3.0串行输入端口(RXD)P3.1串行输出端口(TXD)P3.2外部中断0(INT0)
P3.3外部中断1(INT1)P3.4T0P3.5T1
P3.6外部数据存储器写选通(WR)P3.7外部数据存储器读选通(RD)
2、引脚EA当EA=1时,访问内部程序存储器,EA=0时,访问外部程序存储器
引脚PSEN外部程序存储器的读选通信号,读取时有效低电平
引脚PROG/ALE当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端扔以不变的频率周期性地出现正脉冲信号,次频率为振荡器频率的1/6,可用作对外输出的时钟,或用于定时,每当访问外部数据存储器的时候,将跳过一个ALE脉冲。
3、PSW中各个位的功能:
PSW.7(CY)进位标志位
PSW.6(AC)辅助进位标志位
PSW.5(F0)标志位
PSW.4PSW.3(RS1\RS0)四组工作寄存器区选择控制位1和位0
00工作0区(00H)011区(08H)102区(10H)113区(18H)
PSW.2(OV)溢出标志位
PSW.1保留位,未用
4、8051单片机的时序定时单位:
节拍、状态、机器周期和指令周期
5、复位:
RST引脚处至少保持24个振荡周期的高电平就可复位
寄存器
内容
PC
0000H
TCON
00H
ACC
T2CON
B
TH0
PSW
TL0
SP
07H
TH1
DPTR
TL1
P0~P3
0FFH
TH2
IP(8051)
XXX00000B
TL2
IP(8052)
XX000000B
RLDH
IE(8051)
0XX00000B
RLDL
IE(8052)
0X000000B
SCON
TMOD
SBUF
不定
PCON(HMOS)
0XXXXXXXB
PCON(CHMOS)
0XXX0000B
6、寻址方式
(1)寄存器寻址方式是对选中寄存器中的数据进行处理,适用于数据放置在寄存器之中的情况。
MOVR1,B;
将寄存器B中的数值送入到寄存器R1中
INCR2;
将寄存器R2中的数值加1
MOVA,R7;
将寄存器R7中的数值送入累加器A
寄存器寻址范围:
寄存器区中8个工作寄存器R0~R7中的一个(由指令操作码的低三位数值确定)、特殊寄存器A,B,DPTR,Cy(进位位,也是位处理机的累加器)也可作为寄存器寻址的对象。
(2)直接寻址方式是对直接指定地址的存储器单元中的数据进行处理,适用于数据放置在可以直接寻址的存储单元之中的情况。
MOV40H,B;
将寄存器B中的数值送入到内部RAM的40H单元中
INC30H;
将内部RAM的30H单元中的数值加1
MOVTL0,R7;
将寄存器R7中的数值送入到特殊功能寄存器TL0中
直接寻址范围:
片内RAM,包括SFR,且SFR只能直接寻址
(3)立即寻址是对指令操作码后的数据进行处理,适用于在程序中直接处理的数据的情况。
MOV38H,#05H;
将数值05H送入到内部RAM的38H单元中
ADDA,#30H;
将A寄存器中的数值加上30H
MOVTH0,#0F2H;
将定时器0高8位设置为数值0F2H
(4)位寻址
MOVC,40H;
把位40H的值送进位位C
位寻址的寻址范围包括:
内部RAM中的位寻址区单元地址为20H-2FH,共16个单元,128个位,位地址是00H-7FH。
特殊功能寄存器中的可寻址位可供位寻址的特殊功能寄存器共有11个,实际有寻址位83个。
注意:
位寻址只能直接寻址。
(5)寄存器间接寻址是将要处理数据的地址放在寄存器中,即用寄存器中的数据作为存储单元的地址数值。
MOV@R1,#05H;
将数值05H送入到以R1内数值为地址的内部RAM单元中
ADDA,@R1;
将累加器A中的数值加上以R1内数值为地址的内部RAM单元中的
数据结果存放于A
MOVXA,@DPTR;
将以DPTR内数值为地址的外部数据存储器的内容送给累加器A
注意:
寄存器间接寻址范围包括内部RAM和外部RAM,且外部RAM只能寄存器间接寻址,访问外部数据存储器的指令助记符与访问内部RAM的助记符不同。
(6)相对寻址方式目的地址=转移指令所在的地址+转移指令字节数+rel
JCrel
JNCrel
JBbit,rel
JNBbit,rel
JBCbit,rel
SJMPrel
(7)基址加变址寄存器间接寻址
专用16位寄存器(DPTR或PC)存放基地址,寄存器A做变址寄存器,仅两条指令:
MOVCA,@A+PC
MOVCA,@A+DPTR
只能读取程序存储器。
7、指令
(1)一般传输指令MOVA,Rn
(2)累加器传输指令
XCHA,Rn(n为0-7之一,将工作寄存器Rn的内容和A的内容交换)
SWAPA;
A的高4位和低4位互换
XCHDA,@Ri;
Ri为R0或R1,将Ri所指单元的低4位与A的低4位互换,高4位不变。
(3)查表指令
MOVCA,@A+DPTR;
将DPTR中的16位地址和A中内容相加得新地址,把此地址内容送A
MOVCA,@A+PC;
将PC值和A的内容相加所得值作为新地址,将此地址单元内容送A
(4)堆栈指令
PUSHdirect;
先将SP加1,再将direct所指单元内容推入SP+1所指的堆栈单元
POPdirect;
先将SP单元的内容弹出到direct单元,再将SP减1
(5)算术运算指令
ADDA,Rn;
将A的内容和Rn的内容相加,结果在A中
ADDCA,Rn;
(A)←(A)+(Rn)+CY,Rn为R0~R7之一(带进位)
SUBBA,Rn;
A中内容减去进位位CY,再减去Rn中内容,结果在A中(带借位)
MUL乘法
DIV除法
ANL(逻辑与,例如,ANLP1,A)
ORL(逻辑或,例如,ORLP2,A)
XRL(逻辑异或,例如,XRLP3,A)
JBC(若目标位置位则跳转并将目标位清零,例如,JBCP1.1,LABEL)
CPL(求补,例如,CPLP3.0)
INC(增量指令,例如,INCP2)
DEC(减量指令,例如,DECP2)
DJNZ(目标寄存器减1后不为零则跳转,例如,DJNZP3,LABEL)
MOVPX.Y,C(将进位位送入端口位)
DAA十进制调整指令,对A中的BCD码加法结果进调整
CLRPX.Y(清除端口位)
SETBPX.Y(置位端口位)
SETBbit;
某位置1
CLRA;
A清0,不影响标志位
CPLA;
A中内容逐位取反
RRA;
A中内容循环右移一位,;
最低位D0移到D7
RLA;
A中内容循环左移一位,;
即D7移到D0,D0移到D1等
RRCA;
CY进入A的最高位,A的最低位进入CY,D2进入D1等
RLCA;
A的最高位进入CY,原CY进入A的最低位D0,D0进入D1等
8、中断
分
类
中断源名称
中断申请标志
触发方式
中断入口地址
外部中断
外部中断0
IE0(TCON.1)
INT0(P3.2)引脚上的低电平/下降沿引起的中断
0003H
内部中断
定时器/计数器T0中断
IF0(TCON.5)
T0定时器/计数器溢出后引起的中断
000BH
外部中断1
IE1(TCON.3)
INT1(P3.3)引脚上的低电平/下降沿引起的中断
0013H
定时器/计数器T1中断
IF1(TCON.7)
T1定时器/计数器溢出后引起的中断
001BH
串口中断
RI
(SCON.0)
TI
(
SCON.1)
串行口接收完成或发送完一帧数据后引起的中断
0023H
中断的功能
(1)可实现高速CPU与慢速外设之间的配合
(2)可实现实时处理
(3)实现故障的紧急处理
(4)便于人机联系
中断的处理过程主要包括:
中断请求、中断响应、中断服务、中断返回4个过程。
EA—中断允许的总控制位。
当EA=0时,中断总禁止,相当于关中断,即禁止所有中断;
当EA=1时,中断总允许,相当于开中断。
此时,每个中断源是否开放由各中断控制位决定。
所以只有当EA=1时,各中断控制位才有意义。
ES—串行口中断允许控制位,当ES=0,禁止该中断;
ES=1,允许串行中断。
ET1—定时器1中断允许控制位,当ET1=0,禁止该中断;
ET1=1,允许定时器1中断
EX1—外部中断1允许控制位,当EX1=0,禁止外部中断1;
当EX1=1,允许外部中断1。
ET0—定时器0中断允许控制位,当ET0=0,禁止该中断;
ET0=1,允许定时器0中断。
EX0—外部中断0允许控制位,当EX0=0,禁止外部中断0;
当EX0=1,允许外部中断0。
定时器控制寄存器(TCON)
该寄存器的字节地址为88H,位地址为88H-8FH,也可以用TCON.0-TCON.7表示
在开放中断的条件下,用下述四个原则使用中断优先级结构:
(1)非中断服务子程序可以被任何一个中断申请所中断,而与优先级结构无关。
(2)如果若干中断同时提出申请,则CPU将选择优先级、优先权最高者予以响应。
(3)低优先级可以被高优先级的中断申请所中断。
换句话说,同级不能形成嵌套、高优先级不能被低优先级嵌套,当禁止嵌套时,必须执行完当前中断服务子程序之后才考虑是否响应另一个中断申请。
(4)同一个优先级里,优先权的顺序是由硬件决定而不能改变的。
但是用户可以通过改变优先级的方法改变中断响应的顺序。
例如,8051单片机中串行口的优先权最低,但是可以在中断优先级寄存器IP中写入10H,则只有串行口是最高优先级。
若同时有若干中断提出申请,则一定会优先响应串行口的申请。
串行口控制寄存器(SCON)
SCON寄存器的字节地址为98H,位地址为98H~9FH,其中的低两位RI和TI锁存串行口的接收中断和发送中断的请求标志位
中断响应的条件:
中断源有中断请求;
此中断源的中断允许位为1;
CPU开中断(即EA=1)。
9、定时器
概念:
在8051单片机中,定时器/计数器就是一个固定长度的二进制计数器,当对输入脉冲信号的数量进行计数时,我们称其为计数器,当对单片机的系统时钟或其它标准时钟进行计数时,由于这类时钟信号本身就表示时间,计数值对应着时间值,所以从这个角度上将其称为定时器。
组成:
在8051单片机中,内部定时器都是可编程控制的定时器/计数器,至少由两部分组成:
脉冲计数电路和控制字寄存器及译码控制电路。
10、串行接口的四种工作方式
(1)模式0(MODE0):
同步移位寄存器方式。
8位数据(先为LSB)从引脚RXD接收/移出,引脚TXD输出移位时钟,波特率固定为晶振频率的1/12。
模式0通常用来扩展输入输出口。
(2)模式1(MODE1):
10位数据被发送(从引脚TXD)或接收(从引脚RXD):
1个启动位,8个数据位,1个停止位。
在接收时,停止位被送入特殊功能寄存器的SCON的RB8位。
波特率是可变的。
(3)模式2(MODE2):
11位数据被发送(从引脚TXD)或接收(从引脚RXD):
1个启动位,8个数据位,可编程的第9个数据位,1个停止位。
发送时,第9位(SCON的TB8位)可被赋予0或1。
例如,可将奇偶校验位送至TB8位。
在接收时,停止位被送入特殊功能寄存器SCON的RB8位。
模式2的波特率可为1/32或1/64晶振频率。
(4)模式3(MODE3):
实际上,除了波特率之外,模式2和模式3是相同的。
模式3的波特率是可变的。
8255A的工作方式0,A口作为输入,B、C口作为输出
取端口A:
0FF7CHB:
0FF7DHC:
0FF7EH控制寄存器地址:
0FF7FH
根据题意写入控制字为10010000=90H.
MOVA,#90H(根据题意计算而变化)
MOVDPTR,#0FF7FH控制寄存器地址→DPTR
MOVX@DPTR,A方式控制字→控制寄存器
MOVDPTR,#0FF7CHA口地址→DPTR
MOVXA,@DPTR从A口读数据
MOVDPTR,#0FF7DHB口地址→DPTR
MOVA,#DATA1要输入的数据DATA1→A
MOVX@DPTR,A将DATA1送B口输出
MOVDPTR,#0FF7EHC口地址→DPTR
MOVA,#DATA2DATA2→A
MOVX@DPTR,A将DATA2送C口输出
DAC0832启动转换程序
ORG0000H
MOVR1,#data1
MOVA,@R1
MOVX@DPTR,A
MOVDPTR,#0BFFFH
MOVR1,#data2
MOVDPTR,#7FFFH
例:
用定时器0,方式2计数,要求每计满100次,将P1.0端取反。
分析:
TMOD=00000110B
计数初值:
TH0=TL0=28-100=156=9CH
程序如下:
ORG1000H
START:
MOVTMOD,#06H
MOVTL0,#9CH
MOVTH0,#9CH
SETBTR0
LOOP:
JBCTF0,DONE;
判计满100次否?
若计满则清零TF0且转DONE
SJMPLOOP
DONE:
CPLP1.0
例7.3已知单片机晶振频率为12MHz,要求使用T0定时0.5ms,使单片机P1.0引脚上连续输出周期为1ms的方波。
分析:
首先算出机器周期=12/(12MHz)=1us,所以0.5ms需要T0计数M次
M=0.5ms/1us=500
256<
500<
8192,所以选择方式0
初值N=213-500=7692=1E0CH
因为选用方式0,低8位TL0只使用低5位,其余的均计入高8位TH0的初值。
TL0=0CH,TH0=0F0H
RESET:
AJMPSTART
ORG000BH
AJMPT0INT
START:
MOVSP,#60H
MOVTH0,#0F0H
MOVTL0,#0CH
SETBTR0
SETBET0
SETBEA
MAIN:
AJMPMAIN
T0中断服务程序
T0INT:
CPLP1.0
MOVTL0,#0C