单片机原理与应用复习资料.docx
- 文档编号:28452112
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:25
- 大小:425.44KB
单片机原理与应用复习资料.docx
《单片机原理与应用复习资料.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用复习资料.docx(25页珍藏版)》请在冰豆网上搜索。
单片机原理与应用复习资料
1.10100110B=(166)D=(A6)H。
2.253.25=(11111101.01)B=(FD.4)H。
3.X=-111001lB,原码:
11110011B,补码:
10001101B。
4.X=-71D,原码:
11000111B,补码:
10111001B。
5.通用计算机包括运算器、控制器、存储器、输入设备和输出设备五大部分组成。
6.根据传递信息种类,总线分为地址总线、数据总线、控制总线。
7.若在一块半导体芯片上,集成了微处理器、存储器、输入/输出接口、定时器/计数器以及中断系统等微型计算机的主要功能部件,构成一台完整的微型计算机,就是单片机。
8.P0在作为通用I/O使用时,需外接上拉电阻。
9.P1作为输入输出口前,要先向该口进行写1操作,然后P1口才可正确读出外部信号。
10.当单片机运行时,RST引脚上持续时间大于2个机器周期(24个时钟振荡周期)的高电平,就可以完成复位操作。
11.在基址加变址寻址方式中,以(A)作变址寄存器,以(DPTR)或(PC)作基址寄存器。
12.51单片机,当
引脚为高电平时,单片机访问片内程序存储器,但在PC值超过0FFFH,即超出片内程序存储器的4K地址范围时,将自动转向执行外部程序存储器内的程序。
13.程序计数器是一个16位的加1计数器,其中存放的是ROM中存储单元的地址。
14.程序计数器中存放的是下一条将要执行的指令所在的ROM存储单元的地址。
15.80C51单片机由P2、P0组成16位地址总线,P2作为高8位地址总线,P0口作为低8位地址总线。
16.51单片机共有5个中断源,其中外部中断源有2个,内部中断源有3个。
17.80C51单片机由一个全双工可编程串行口。
18.PC中总是存放下一条要执行的指令的地址。
19.片内数据存储器分为工作寄存器区、位寻址区、堆栈及数据缓冲区、特殊功能寄存器区。
20.CPU根据程序状态字寄存器PSW中RS0和RS1的值来选择当前的工作寄存器组。
21.堆栈区是存储器中一个特殊的存储区,数据按照“先进后出”或“后进先出”的方式存取的操作。
22.80C51单片机系统复位后,SP的初始值为07H。
23.1个机器周期=6个状态周期=12个时钟周期。
24.80C51单片机包括中央处理器、内部存储器、并行I/O接口、片内外设(定时器/计数器、中断系统、串行口)、振荡器等部分,各部分之间通过片内总线进行连接。
25.80C51系统单片机的工作方式包括:
复位方式、程序执行方式、低功耗方式。
26.标号是用户定义的一个符号,表示指令或数据的存储单元地址。
27.C语言程序都是由若干个函数组成的,每个程序有且只有一个主函数,一个C程序总是从main()函数开始执行。
28.CBYTE以字节方式寻址CODE区,XBYTE以字节方式寻址XDATA区。
29.80C51系列单片机的指令系统共有111条指令。
30.P0口由于输出电路是漏极开路,必须外接上拉电阻才能有高电平输出。
31.指令ANLP0,#data执行过程中分成“读——修改——写”三步。
32.数码管按内部发光二极管的连接方式分为共阳极数码管和共阴极数码管两种。
33.LED数码管,在轮流显示过程中,每位数码管的点亮时间为1—2ms,熄灭时间不能超过20ms。
34.P0口作为地址/数据分时复用的端口,可以输入/输出数据,也可与外加的锁存器配合用来输出地址。
35.80C51单片机中的中断系统有5个中断源,两个中断优先级,可实现两级中断服务程序嵌套。
36.为了保证CPU能检测到负跳变,
的高低电平至少应保持一个机器周期。
37.CPU响应串行口发送中断时,CPU并不自动清除TI中断标志位,必须在中断服务程序中由软件对TI清零。
38.CPU响应串行口接收中断时,CPU并不自动清除RI中断标志位,必须在中断服务程序中由软件对RI清零。
39.中断处理过程一般包括中断请求、中断排队(优先级控制)、中断响应、中断服务以及中断返回5个部分。
40.51子系列单片机的中断系统有5个中断源,他们分别是外部中断0、定时器/计数器TO溢出中断、外部中断1、定时器/计数器T1、串行口中断。
41.51子系列单片机内部有两个独立的16位可编程定时器/计数器。
42.51单片机定时器/计数器的方式0由TL0的低5位和TH0的高8位构成13位的计数器。
43.51单片机定时器/计数器的方式2,工作于8位自动重装初值的8位定时器/计数器方式。
44.异步通信的每帧数据由4部分组成:
起始位、字符代码数据位、奇偶校验位、停止位。
45.串行通信中,常用的校验方法有奇偶校验、代码和校验、循环冗余码校验。
46.波特率是指单位时间内传送的信息量,即每秒传送的二进制位数。
47.80C51单片机内部的串行通信接口是一个全双工的通用异步收发器。
48.计算机中I/O端口的编址方式有独立编址和统一编址两种方式。
80C51单片机采用统一编址。
49.独立编址是指I/O端口的地址空间与存储器地址空间相互独立,完全分开。
50.统一编址是指I/O端口与数据存储器共用一个地址空间。
51.8255A有3个8位并行I/O口,即具有3个通道,有3种工作方式。
52.矩阵式键盘采用动态扫描法识别闭合的按键。
识别过程分两步:
首先识别有无按键闭合,然后再确定是哪个键闭合。
53.产生存储器芯片片选信号的方法有两种:
线选法和译码法。
54.DAC0832余80C51单片机的接口有三种连接方式:
直通方式、单级缓冲方式和双极缓冲方式。
55.D/A转换器主要有基准电压、模拟电子开关、电阻解码网络和运算放大器组成。
56.A/D转换器有逐次逼近式、双积分式、计数比较式等。
1.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。
试分析执行下列程序段后下面各单元内容的为多少?
MOVA,@R1
MOV@R1,40H
MOV40H,A
MOVR1,#7FH
该程序段执行后:
(A)=60H,(30H)=08H
2.若(50H)=40H,试写出执行以下程序段后下面各单元中的内容各为多少?
MOVA,50H
MOVR0,A
MOVA,#00H
MOV@R0,A
MOVA,#3BH
MOV41H,A
MOV42H,41H
该程序段执行后:
(R0)=40H,(40H)=00H,(42H)=3BH。
3.如果(70H)=60H,(60H)=20H。
P1口为输入口,当输入状态B7H,执行下面程序:
MOVR0,#70H
MOVA,@R0
MOVR1,A
MOVB,@R1
MOVP1,#0FFH
MOV@R0,P1
该程序段执行后:
(70H)=B7H,(B)=20H,(R1)=60H,(R0)=70H。
4.累加器A内容为6AH,R1内容为43H。
执行指令ADDA,R1后,结果为(A)=ADH,CY=0,AC=0,OV=1,P=1。
5.已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。
下述程序执行后:
POPDPH
POPDPL
MOVDPTR,#4000H
RLA
MOVB,A
MOVCA,@A+DPTR
PUSHAcc
MOVA,B
INCA
MOVCA,@A+DPTR
PUSHAcc
RET
ORG4000H
DB10H,80H,30H,50H,30H,50H
问:
A=(50H),SP=(52H),(51H)=(30H),(52H)=(50H),PC=(5030H)。
5.已知晶振频率
=12MHz,要求定时器0工作在方式1,产生10ms的定时。
试对定时器进行初始化编程。
voidinit_time0(void)
{
TMOD=0x01;//设置T0为定时器模式,工作在方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;//启动T0
}
voidinit_time0(void)
{
TMOD=0x01;//设置T0为定时器模式,工作在方式1
TH0=0xd8;
TL0=0xf0;
TR0=1;//启动T0
}
6.已知晶振频率
=12MHz,要求定时器0工作在方式2,要求每隔200us产生一定时信号,试对定时器进行初始化。
voidinit_time0(void)
{
TMOD=0x02;//设置T0为定时器模式,工作在方式2
TH0=0x38;
TL0=0x38;
TR0=1;//启动T0
}
voidinit_time0(void)
{
TMOD=0x02;//设置T0为定时器模式,工作在方式2
TH0=(256-200)%256;
TL0=(256-200)%256;
TR0=1;//启动T0
}
1.80C51单片机内部包含哪些主要功能部件?
各有什么主要功能?
答:
80C51系列单片机内部包含中央处理器(CPU)、内部存储器(ROM、RAM)、并行I/O接口、片内外设(定时器/计数器、中断系统、串行口)、振荡器等部分。
CPU是整个单片机的核心部件,相当于人的大脑和心脏,主要完成运算和控制功能。
片内数据存储器为随机存取存储器,用于存放可读/写的数据。
片内程序存储器为只读存储器,用于存放程序指令、常数及数据表格。
并行输入/输出端口(I/O口)通过传送指令实现数据的输入和输出操作。
定时器/计数器用于实现内部定时或外部计数的功能,并能根据定时或计数的结果实现控制功能。
中断系统的主要作用是对来自单片机内部或外部的中断请求进行处理,完成中断源所要求的任务。
串行口用于实现单片机与外部设备之间的串行数据传送。
振荡器用于产生单片机工作时所需的时钟脉冲。
2.80C51单片机的存储器地址空间如何划分?
各地址空间的地址范围和容量是多少?
在使用上有何特点?
答:
80C51单片机采用的是程序存储空间和数据存储空间分开的哈佛结构,由于存储器有片内和片外之分,因此在物理上共有4个存储空间:
片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。
在具体编址时,80C51单片机的存储器又分为如下三个存储空间:
片内片外统一编址的程序存储器:
64KB(0000H~FFFFH),如图所示;
片内数据存储器:
256B(00H~FFH),如图(a)所示;片外数据存储器:
64KB(0000H~FFFFH),如图(b)所示。
3.80C51系列单片机的片内RAM可以分为几个不同的区域?
各区的地址范围及其特点如何?
答:
根据使用功能不同,片内数据存储器可一分为四,分别为工作寄存器区、位寻址区、堆栈及数据缓冲区、特殊功能寄存器区(SFR)。
各区的地址范围及特点如下:
(1)工作寄存器区(00H~1FH)
工作寄存器区共32个字节,分成4个组(0、1、2、3),每组有8个寄存器,分别用R0~R7表示,称为工作寄存器。
(2)位寻址区(20H~2FH)
位寻址区共有16字节,128位,位地址为00H~7FH。
CPU能直接寻址这些位,进行置1、清0、求“反”、传送和逻辑运算等位操作,即80C51单片机片内含有布尔处理器。
在程序设计时,还常常将这些位用作软件标志位。
(3)堆栈及数据缓冲区(30H~7FH)
51子系列内部RAM的堆栈及数据缓冲区共有80个单元,字节地址范围为30H~7FH,52子系列内部RAM的堆栈及数据缓冲区共有208个单元,字节地址范围为30H~FFH,用于存放用户数据或作为堆栈区使用。
(4)特殊功能寄存器
特殊功能寄存器SFR也称专用寄存器(不包括PC),主要用于管理片内和片外的功能部件,如定时器/定时器、中断系统、I/O接口等。
4.什么是堆栈?
堆栈指示器SP的作用是什么?
在堆栈中存取数据时的原则是什么?
在程序设计中,为什么有时要对堆栈指针SP重新赋值?
答:
堆栈是一种数据结构,是片内RAM的一段特殊存储区域,遵循“先进后出”的原则。
堆栈区主要用于数据的暂存、中断与子程序调用时断点和现场的保护与恢复。
堆栈指针SP是一个8位寄存器,用于存放栈顶地址,即SP的内容为栈顶地址。
在堆栈中存取数据时的原则遵循“先进后出”的原则。
80C51单片机系统复位后,SP的初始值为07H,即从内部RAM的08H开始就是8051的堆栈区,这个位置与工作寄存器组1的位置相同。
因此,实际应用中需根据需要在主程序开始处通过传送指令对堆栈指针SP进行重新设置,即堆栈初始化。
原则上堆栈设在内部RAM中的任何一个区域均可,但为避免数据冲突,而且堆栈区要有一定的深度,一般设在低128B的高端(如60H~7FH)较为合适,如将SP设置为60H。
5.什么是中断系统?
中断系统的功能是什么?
答:
中断系统是指实现中断过程的硬件逻辑和实现中断功能的指令的统称。
为了满足单
片机系统中各种中断的要求,中断系统一般具备如下基本功能:
(1).能实现中断及返回
(2).能实现优先权排队
(3).能实现中断嵌套
6.8051单片机的中断源有几个?
各个中断的标志位是什么?
CPU响应各个中断时,其中断入口地址是多少?
答:
80C51单片机的中断系统有5个中断源,它们是:
(1)外部中断0:
由INT0(P3.2)引脚输入,由外部中断0触发方式选择位IT0选择其为低电平有效还是下降沿有效,当CPU检测到INT0引脚上出现有效的中断请求信号时,中断请求标志位IE0置1,向CPU申请中断。
(2)外部中断1:
由INT1(P3.3)引脚输入,由外部中断1触发方式选择位IT1选择其为低电平有效还是下降沿有效,当CPU检测到INT1引脚上出现有效的中断请求信号时,中断请求标志位IE1置1,向CPU申请中断。
(3)定时器/计数器T0溢出中断请求,当T0定时时间到或计数满后,中断请求标志位TF0由硬件置1,向CPU申请中断。
(4)定时器/计数器T1溢出中断请求,当T1定时时间到或计数满后,中断请求标志位TF1被硬件置1,向CPU申请中断
(5)串行口中断请求,当串行口接收完一帧数据时,中断请求标志RI被硬件置1,或当串口发送完一帧数据时,中断请求标志TI被硬件置1。
7.80C51单片机内部有几个定时器/计数器?
它们由哪些特殊功能寄存器控制?
答:
80C51单片机内部有两个独立的16位可编程定时/计数器,分别称为定时器0(简称T0)和定时器1(简称T1),它们由TH0、TL0、TH1、TL1、TMOD与TCON六个寄存器控制,其中TH0、TL0寄存器分别是T0的16位计数寄存器的高、低8位,TH1、TL1寄存器分别是T1的16位计数寄存器的高低8位,而方式控制寄存器TMOD与控制寄存器TCON均是8位的,每一位的作用各不相同。
8.定时器/计数器的4种工作方式如何设定?
4种工作方式各有何特点?
答:
定时器/计数器有四种工作方式,由模式控制寄存器TMOD中的M1、M0两位进行设置,4种工作方式的特点如下表
9.为什么要进行按键消抖?
按键消抖的方法有几种?
解:
按键是利用机械触点的合、断来实现键的闭合与释放,由于弹性作用,机械触点在闭合及断开瞬间会有抖动的过程,从而使键输入电压的信号也存在抖动现象。
去除抖动的方法一般有硬件和软件两种。
硬件方法就是在按键输出通道上添加去抖动电路,从根本上避免电压抖动的产生,去抖动电路可以是单稳态电路或者滤波电路。
软件方法通常是在检测到有键按下时延迟10~20ms的时间,待抖动期过去后,再次检测按键的状态,如果仍然为闭合状态,才认为是有键按下,否则认为是一个扰动信号。
按键释放的过程与此相同,都要利用延时进行消抖处理。
由于人的按键速度与单片机的运行速度相比要慢很多,所以,软件延时的方法简单可行,而且不需要增加硬件电路,成本低,因而被广泛采用。
10.80C51单片机串行口有几种工作方式?
如何选择?
简述其特点?
答:
四种工作方式,由SCON中的SM0、SM1进行定义:
方式0:
同步移位寄存器的输入输出方式,主要用于扩展并行输入或输出口,波特率固定。
方式1:
10位数据的异步通信口,波特率可变。
方式2:
11位数据的异步通信口,波特率固定。
方式3:
11位数据的异步通信口,波特率可变。
11.I2C总线的特点是什么?
I2C总线的起始信号和终止信号是如何定义的?
四.编程器
1.试编写程序,完成两个16位数的减法:
7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,30H单元存差的高8位,31H单元存差的低8位。
CLRCY
MOV30H,#7FH
MOV31H,#4DH
MOVR0,#31H
MOVA,@R0
SUBBA,#4E
MOV@R0,A;保存低字节相减结果
DECR0
MOVA,@R0
SUBBA,#2BH
MOV@R0,A;保存高字节相减结果
2.将RAM中20H地址开始的10个字节的内容相加,结果放在RAM的40H和41H单元中。
ORG0000H
LJMPSTART
ORG0030H
START:
CLRA
MOV40H,A
MOV41H,A
MOVR0,#20H
MOVR7,#0AH
LOOP:
MOVA,@R0
ADDA,40H
MOV40H,A
CLRA
ADDCA,41H
MOV41H,A
INCR0
DJNZR7,LOOP
SJMP$
END
3.AT89C51单片机与8个发光二极管相连的Proteus仿真电路如图所示,并编程使八个发光二极管由左向右轮流点亮,并不断循环。
#include
#include
#defineuintunsignedint
voiddelay(uintz);
voidmain()
{
P0=0xfe;
while
(1)
{
delay(500);
P0=_crol_(P0,1);
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
4.AT89C51单片机与8个发光二极管相连的Proteus仿真电路如图所示,并编程使八个发光二极管由右向左依次点亮,并不断循环。
#include
#include
#defineuintunsignedint
voiddelay(uintz);
voidmain()
{
P0=0x7f;
while
(1)
{
delay(500);
P0=_cror_(P0,1);
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
5.由8031内部定时器1,按方式1工作,即作为十六位定时器使用每0.1秒钟溢出中断一次。
P1口的P1.0—P1.7分别接发光二极管。
要求编写程序模拟一时序控制装置。
开机后第一秒钟L1、L3亮,第二秒钟L2、L4亮,第三秒钟L5、L7亮,第四秒钟L6、L8亮,第五秒钟L1、L3、L5、L7亮,第六秒钟L2、L4、L6、L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1、L3亮,然后L2、L4亮,……一直循环下去。
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineLEDP1//P1接8个LED灯
unsignedchari=0,m=0;
voidmain()
{
TMOD=0x10;
TH1=0x38;
TL1=0x00;
EA=1;
ET1=1;
TR1=1;
LED=0x00;
while
(1)
{
if(i==10)
{
m++;
i=0;
if(m==8)m=0;
}
if(m==0)LED=0x05;
if(m==1)LED=0x0a;
if(m==2)LED=0x50;
if(m==3)LED=0xa0;
if(m==4)LED=0x55;
if(m==5)LED=0xaa;
if(m==6)LED=0xff;
if(m==7)LED=0x00;
}
}
voidTIME1(void)interrupt3
{
TH1=0x38;
TL1=0x00;
i++;
}
6.编程实现下列要求:
利用定时器/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波。
设系统的晶振频率fosc=12MHz。
解:
由于晶振频率为12MHz,机器周期Tcy=1μs。
(1)计算TH0、TL0的计数初值
由于晶振频率为12MHz,所以机器周期Tcy=1μs,则定时时间为:
T=(2n-x)×Tcy=(216-x)×1μs=10ms,
所以x=65536-10000=55536=D8F0H
即TH0=D8H,TL0=F0H,或者TH0=55536/256,TL0=55536%256
(2)TMOD寄存器初始化
根据题目要求,GATE(TMOD.3)=0,C/T(TMOD.2)=0,M1(TMOD.1)=0,M0
(TMOD.0)=1,定时器/计数器1没有使用,相应的各个位状态随意,均取为0,则(TMOD)=01H。
(3)如下:
程序
#include
#defineuintunsignedint
sbitfangbo=P1^0;
voidmain()
{
TMOD=0x01;//设置T0为定时器模式,工作在方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;//开总中断
ET0=1;//允许T0中断
TR0=1;//启动T0
while
(1);
}
voidtimer1()interrupt1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
fangbo=~fangbo;
}
7.编程实现下列要求:
利用定时器/计数器T1的方式1,产生0.5s的定时,并使P2.7引脚上输出周期为1s的方波。
设系统的晶振频率fosc=12MHz。
答:
因为在晶振频率fosc=12MHz时,定时器在方式1下能获得的最大定时时间为65.536ms,即0.065536s,不能达到0.5s,只能采用多次中断的方式。
选择定时器T1,方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)