单片机重点知识点整理Word下载.docx
《单片机重点知识点整理Word下载.docx》由会员分享,可在线阅读,更多相关《单片机重点知识点整理Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
由指令中有一个8位偏移量rel为带符号位的补码,所以控制程序转移的范围为+127~-128。
例如:
SJMP54H;
(80H、54H)
(7)位寻址。
在位寻址指令(位操作指令)中使用的位地址。
单片机在控制、检测的应用中,系统的输入、输出数据有很多属于开关量信号。
这些开关量信号以bit---“位”的形式进行各种运算、处理和存储的。
SETB20H;
将位地址为20H的位置1
SETB90H;
将P1口的d0位置1
五大类指令:
一:
数据传送类指令
内部RAM传送指令
外部RAM传送指令
数据交换类指令
堆栈操作指令
数据交换指令
2算术运算类指令
加法指令
减法指令
乘法指令
除法指令
3逻辑运算类指令
逻辑与指令
逻辑或指令
逻辑异或指令
累加器清零指令
累加器取反指令
循环移位指令
4控制转移类指令
无条件转移指令
条件转移指令
调用及返回指令
空操作指令
5位操作指令
位传送指令
位修改指令
位逻辑操作指令
位判断转移类指令
5行列键盘的扫描过程(4*4键盘)
扫描方法:
1整体扫描:
(1)令Y0=Y1=Y2=Y3=0
(2)读四个行的状态(P1.0~P1.3)若四根线全为1,则无键按下,继续整体扫描,等待有键按下;
若四根线不全为1,则有一个键按下,转到第2步扫描
2具体扫描:
(1)先扫描P1.4,令Y0=0,P1.4=0,Y1=Y2=Y3=1
(2)读X0~X3,若全为1,则按下的键不在该列,转到第二列扫描;
若不全为1,则按下的键在该列。
(3)若在该列,读X0,若X0=0,则0号键按下;
若X0=1,则不是0号键按下,然后再依次读X1~X3
(4)若不在Y0这一列,再扫描Y1这一列,令Y1=0,Y0=Y2=Y3=1,方法同上。
(5)若不在Y1列,再扫描Y2这一列,令Y2=0,Y0=Y1=Y3=1,方法同上。
(6)若不在Y2列,再扫描Y3这一列,令Y3=0,Y0=Y1=Y2=1,方法同上。
6根据串行通信的波特率和定时器的关系计算初值
方式3:
波特率=
方式1时,K=16,方式3时K=8
7并行I/O接口的扩展方法,
常用的扩展方法有:
v简单的I/O口扩展
v可编程I/O口芯片
v利用串行口扩展并行口
8会利用8255进行I/O接口扩展,确定地址范围、接口地址并会简单编程
1.8255的结构和引脚
8255有40个引脚,采用双列直插封装,其引脚图和组成框图
(1)8255A的逻辑结构和信号引脚
1、数据总线:
D0~D7
2、3个并行IO接口:
A口PA0~PA7
B口PB0~PB7
C口PC0~PC7
3、控制总线
A1A0地址线(端口选择线)
10A口
11B口
20C口
11命令状态口
CS片选端端
RESET复位端
RD、WR读写线
总线接口电路
(1)数据总线缓冲器
(2)读/写控制器
8255A的工作方式
⏹8255A共有三种工作方式,即方式0、方式1和方式2。
(1)方式0基本输入/输出方式
⏹方式0适合于无条件数据传送,可供使用的是两个8位口(A口和B口)及两个4位口(C口高位部分和低位部分)。
(2)方式1选通输入/输出方式
方式1下,A口和B口分别用于数据的输入/输出。
而C口则作为数据传送的联络信号。
具体定义见表。
(3)方式2双向数据传送方式
只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。
在这种方式下需使用C口的五位口线作控制线。
方式2适用于查询或中断方式的双向数据传送。
如果把A口置于方式2下,则B口只能工作于方式0。
8255A芯片的各端口地址:
PA端口的地址为7FFCH,
PB端口的地址为7FFDH,
PC端口的地址为7FFEH,
控制寄存器的地址为7FFFH。
可用“MOVX”指令来访问这些端口。
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVA,#90H;
方式0,A口输入C口输出
MOVDPTR,#7FFFH;
控制寄存器地址→DPTR
MOVX@DPTR,A;
写入控制寄存器
MOVDPTR,#7FFCH;
A口地址→DPTR
MOVXA,@DPTR;
接收A口数据
MOVDPTR,#7FFEH;
C口地址→DPTR
将A口读入数据送C口输出
END
9单片机中断源及其入口地址
1.中断源分类
五个中断源,分别是
外部中断0:
INT0,由P3.2提供,
外部中断1:
INT1,由P3.3提供,
T0溢出中断;
由片内定时/计数器0提供
T1溢出中断;
由片内定时/计数器1提供
串行口中断RI/TI;
由片内串行口提供
中断源入口地址
INT00003H
T0000BH
INT10013H
T1001BH
RI/TI0023H
10单片机复位后各主要寄存器的内容
复位后CPU状态
PC:
0000HTMOD:
00H
Acc:
00HTCON:
B:
00HTH0:
PSW:
00HTL0:
SP:
07HTH1:
DPTR:
0000HTL1:
P0~P3:
FFHSCON:
IP:
×
00000BSBUF:
不定
IE:
0×
00000BPCON:
0×
0000B
11指令周期、机器周期、状态周期、振荡周期的概念、关系,根据振荡频率计算这些周期
⑴时钟周期(震荡周期)。
80C51振荡器产生的时钟脉冲频率的倒数,是最基本最小的定时信号。
⑵状态周期
它是将时钟脉冲二分频后的脉冲信号。
状态周期是时钟周期的两倍。
状态周期又称S周期。
在S周期内有两个时钟周期,即分为两拍,分别称为P1和P2
(3)机器周期
80C51单片机工作的基本定时单位,简称机周。
一个机器周期含有6个状态周期,分别为S1、S2、…、S6,每个状态周期有两拍,分别为S1P1、S1P2、S2P1、S2P2…,S6P1、S6P2
机器周期是6个状态周期、12个时钟周期。
当时钟频率为12MHz时,机器周期为1S;
当时钟频率为6MHz时,机器周期为2S。
(4)指令周期
指CPU执行一条指令占用的时间(用机器周期表示)。
80C51执行各种指令时间是不一样的,可分为三类:
单机周指令、双机周指令和四机周指令。
其中单机周指令有64条,双机周指令有45条,四机周指令只有2条(乘法和除法指令),无三机周指令。
牢牢记住:
振荡周期(时钟周期)=晶振频率fosc的倒数;
1个机器周期=6个状态周期
1个机器周期=12个时钟周期;
1个指令周期=1、2、4个机器周期
12指令:
跳转指令的分类及跳转范围
无条件转移指令:
1短转移指令AJMPaddr11;
绝对转移,寻址范围2K;
2.相对转移指令SJMPrel;
寻址范围256B;
转移范围(+127~-128);
3.长转移指令
格式:
LJMPaddr16;
长转移指令,寻址范围65535;
4.散转指令(变址转移)
JMP@A+DPTR单字节操作码为73H
特点:
转移地址由累加器A的内容与DPTR相加形成。
用途:
用来制作一个多分支的转移结构。
条件转移指令:
1累加器A判零转移指令(双字节指令)
JZrel;
若A=0,则PC=PC+2+rel
;
若A≠0,则PC=PC+2
JNZrel;
若A≠0,则PC=PC+2+rel
若A=0,则PC=PC+2
(2)比较不相等条件转移指令(3字节)
减1条件转移指令
调用和返回指令
(一)子程序调用指令:
1,短调用指令ACALLaddr11
2,长调用指令LCALLaddr16
(二)返回指令:
(一)调用指令
1,短调用指令ACALLaddr11
PC+2→PC
SP+1→SP,PC7~0→(SP)
SP+1→SP,PC15~8→(SP)
addr11→PC10~0
2,长调用指令LCALLaddr16
PC+3→PC
addr16→PC
(二)返回指令
RET
操作:
(SP)→PC15~8,SP-1→SP
(SP)→PC7~0,SP-1→SP
格式:
RETI
空操作指令
NOP
功能:
仅使程序计数器PC加一,消耗12个时钟周期,所以时常用作延时。
13定时计数器的工作方式及其特点(位数,功能)
1.方式0—13位方式
t=(213-T0初值)×
机器周期
方式1—16位方式
其定时时间为:
t=(216-T0初值)×
机器周期
方式2—8位自动装入时间常数方式
t=(28-T0初值)×
方式3—2个8位方式
计算计数器的计数初值;
要产生500μs的方波脉冲,只需在P1.0端以250μs为间隔,交替输出高低电平即可实现。
为此,定时间应为250μs。
使用6MHz晶振,则一个机器周期为2μs,设待求计数初值为X,则:
(216–X)×
2×
10-6=250×
10-6
即216–X=125
X=216-125=10000H-7DH
=0FF83H
所以,初值为:
TH1=0FFH,TL1=83H
14长时间延时的实现方法
题目:
单片机采用12M晶振,试编写0.1s延时程序
ORG0100H
MOVR2,#200
LOOP:
MOVR3,#250
DJNZR3,$(2周期)
DJNZR2,LOOP
RET
例2:
50ms延时子程序。
设晶振频率为12MHz,
则机器周期为1us。
DEL:
MOVR7,#200;
1MC
DEL1:
MOVR6,#123;
NOP;
DJNZR6,$;
2MC
DJNZR7,DEL1;
RET;
延时时间:
t=1+200[(1+1+2*123)+2]+2
≈50000us=50ms
15中断允许控制寄存器IE的各个状态
0禁止1允许
D7
D6
D5
D4
D3
D2
D1
D0
EA
ES
ET1
EX1
ET0
EX0
EX0:
外部中断0中断请求允许位。
EX=1,允许外部中断0申请中断;
EX=0,禁止
ET0:
定时器/计数器T0的溢出中断请求允许位。
ET0=1,允许T0溢出申请中断;
ET0=0,禁止T0申请中断
EX1:
外部中断1中断请求允许位。
EX1=1,允许外部中断1申请中断;
EX1=0,禁止
ET1:
定时器/计数器T1的溢出中断请求允许位。
ET0=1,允许T1溢出申请中断;
ET0=0,禁止T1申请中断
ES:
串行口中断请求允许位。
ES=1,允许串行口申请中断;
ES=0,禁止串行口申请中断
EA:
CPU总的中断开放允许位,是80C51单片机所有中断能否触发的先决条件。
EA=1,CPU开放中断,允许所有中断源申请中断;
EA=0,CPU禁止中断,屏蔽所有中断申请
16单片机访问外部RAM和ROM的指令是什么
读写外RAM用MOVX指令,
控制信号是P3口中的RD和WR。
读写ROM用MOVC指令,控制信号是PSEN和EA。
MOVXA,@DPTR
MOVXA,@i;
i=0,1
读ROMMOVCA,@A+DPTR
17根据存储器容量确定地址线和数据线的条数
数据线一般都为8条
1KB=1024=22KB=2
18四个并行I/O接口的作用,简要说明
P0~P3口具有字节寻址和位寻址功能
1普通I/O接口
P0口:
2地址/数据输入输出
3输出外部I/O接口的低8位电平
P1口:
2P1.0/T2:
外部时钟脉冲输入信号
P1.1/T2EX:
输出一定频率的方波信号
P2口:
1普通I/O接口P3口:
2输出外部I/O接口的低8位电平2第二功能
19单片机的工作方式有哪些
80C51单片机的工作方式共有四种:
⑴复位方式;
⑵程序执行方式;
⑶节电方式;
⑷片内ROM编程(包括校验)方式。
20外部中断的有效方式
外部中断的触发方式
外部中断的方式选择是通过定时/计数器及外部中断控制寄存器TCON中的标志位选择的。
1)TCON.2IT1:
外部中断1触发方式控制位。
当IT1=0,外部中断1为电平触发方式。
☐若IT1=1,外部中断1控制为边沿触发方式。
2)TCON.0IT0:
外部中断0触发方式控制。
定时器/计数器作为外部中断源的使用方法
中断和查询结合的方法
21DAC0832与单片机的连接,能看图并简单编程(实现D/A转换)。
10.2.18位D/A转换器0832的应用
1.DAC0832的逻辑结构与引脚功能
D/A转换电路是一个R-2RT型电阻网络,实现8位数据的转换。
对各引脚信号说明如下:
(1)DI7~DI0:
转换数据输入。
(2):
片选信号(输入),低电平有效。
(3)ILE:
数据锁存允许信号(输入),高电平有效。
(4):
第1写信号(输入),低电平有效。
控制输入寄存器是数据直通方式还是数据锁存方式,
当ILE=1和=0时,为输入寄存器直通方式;
当ILE=1和=1时,为输入寄存器锁存方式。
(5):
第2写信号(输入),低电平有效。
(6):
数据传送控制信号(输入),低电平有效。
控制DAC寄存器是数据直通方式还是数据锁存方式,
当=0和=0时,为DAC寄存器直通方式;
当=1和=0时,为DAC寄存器锁存方式。
(7) Iout1:
电流输出1。
(8) Iout2:
电流输出2。
DAC转换器的特性之一是:
Iout1+Iout2=常数。
(9) Rfb:
反馈电阻端。
DAC0832是电流输出,为取得电压输出,需在电压
输出端接运算放大器,Rfb为运算放大器反馈电阻端。
(10)Vref:
基准电压,范围是-10V~+10V。
(11) DGND:
数字地。
(12) AGND:
模拟地。
其主要特性参数:
(1)分辨率:
8位;
(2)增益温度系数:
0.02%;
(3)单电源供电:
电源范围为+5V~+15V;
(4)转换速度:
约1us;
(5)数据输入可采用双缓冲、单缓冲或
直通方式。
主要引脚功能:
(1)IOUT1:
DAC电流输出1端:
当8位输入数字量全为1时,此电流最大;
当8位输入数字量全为0时,此电流为0;
(2)IOUT2:
DAC电流输出2端。
IOUT1+IOUT2=常数;
(3)VREF:
参考电压输入端,可在-10V~+10V范围内选择;
(4)AGND、DGND:
模拟地和数字地。
(5)VCC:
电源,可在+5V~+15V间选择。
DAC0832与8051的接口电路
MCS-51与DAC0832接口时,可以有三种连接方式:
单缓冲方式、双缓冲方式和直通方式。
用DAC产生锯齿波
ORG0200H
MAIN:
MOVDPTR,#7FFFH
MOVA,#00H
WW:
MOVX@DPTR,A
INCA
AJMPWW
DAADREQU7FFFH;
DAC0832端口地址
ORG1000H
STAR:
MOVDPTR,#DAADR
;
选中DAC0832
MOVA,#00H
LP:
MOVX@DPTR,A;
向DAC0832输出数据
INCA
SJMPLP
22会设计8路温度采集系统(会话框图并说明各个部分作用)
温度巡检系统的设计
一设计方案
1.设计描述
本系统使用89C51作为控制单元,对来自温度传感器的信号进行采集,并把采集到的温度数据实时显示。
系统设计上可以进行8路温度数据采集。
但在程序中,只模拟现场3个点温度数据的巡回检测,温度范围0~85(温度信号用电位器可调电压模拟),1对应数字量03H。
每隔15s检测一次,每一路连续检测4次,取其平均值,经标度变换,转为BCD码送LED显示,三路循环显示,每路持续2s。
二硬件系统组成
三软件设计
1.主程序:
完成定时器T0、T1和8255的初始化;
开放CPU、T0、T1中断;
循环调用显示子程序,等待定时中断。
2.定时中断0服务程序
3.定时中断1服务程序
4.温度检测子程序
5.显示子程序
集成温度传感器,测量温度;
---------------1分
信号调理:
信号的放大与转换;
A/D转换;
模拟到数字的转换;
复位电路;
单片机处于初始状态