单片机课题笔记电子稿最新32课时.docx
- 文档编号:9843728
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:97
- 大小:461.27KB
单片机课题笔记电子稿最新32课时.docx
《单片机课题笔记电子稿最新32课时.docx》由会员分享,可在线阅读,更多相关《单片机课题笔记电子稿最新32课时.docx(97页珍藏版)》请在冰豆网上搜索。
单片机课题笔记电子稿最新32课时
第一章概述
计算机的类型、特点及特点:
1.大、中型:
体积大,成本高,科学计算速度快。
2.小型:
服务器、网络、图形处理
3.微型:
PC机
4.单板机:
工业控制
5.单片机:
工业控制、智能仪表、仪器(家用电器等)
什么叫计算机?
包含硬件和软件,且硬件含以下五大部分的机器及为计算机。
硬件:
1:
中央处理器:
CPU
2内存储器:
内存
3外存储器:
如硬盘,软盘,光盘和一些磁带机等等
4输入设备:
键盘,鼠标,扫描仪,麦克声控,摄像头都算
5输出设备:
打印机,显示器等等
单片微型计算机就是将CPU、RAM、ROM(或EPROM、FlashROM)、定时器/计数器和多种I/O接口都集成到一块集成电路芯片上的微型计算机,简称单片机。
单片机是应工业控制需要而诞生的,其特点是一块芯片就构成了一台计算机,因此这类芯片就称为Single-ChipMicrocomputer,中文名译为“单片机”。
单片机主要由CPU、存储器(程序存储器ROM、数据存储器RAM)、I/O接口电路(并行接口、串行接口)三部分组成,还包括定时器/计数器、中断控制器等部分。
(8031、8051CPU中除了图中存储器模块没有外,其他模块均包含)
单片机的发展:
Intel公司:
MCS-48,(8位)
MCS-51(8031/8051CPU),(8位)
MCS-96/98,(16位)
注意:
这里所说的8位与16位指数据总线数,表明计算机同时处理数据的能力。
第二章单片机的结构、引脚、时序
§1CPU内部结构
一、CPU内部结构图
核心:
运算器,ALU
二、寄存器组
什么叫寄存器?
1位置——在CPU内部
2作用——放运算前数据或运算后结果
1、程序计数器PC,16位(相当于8086中的IP)
作用:
放当前指令所在地址。
(可自动调整)
寻址范围:
0000H---FFFFH,64K
程序计数器PC。
PC是一个16位的不同寻址专用寄存器,用作程序存储器的地址指针,每次仅存放下一条指令的地址。
当CPU读取指令时,PC的内容送往地址总线上,根据地址编码从程序存储器中取出指令代码后,PC中的数据具有自动加1功能,指向下一个地址的另一条指令,以保证程序按顺序执行。
2、累加器A(或ACC),指令寄存器。
它是一个8位寄存器,用于暂时存放待执行的指令,等待译码,以确定相应功能的操作控制。
(相当于AX)
作用:
主要用于进行+-×÷运算。
例:
MOVA,#3:
立即数3→A
ADDA,#1;A←3+1
3、通用寄存器B,8位
作用:
主要用于×÷运算。
例:
MOVA,#2
MOVB,#3
MULAB:
BA←2×3(结果为16位的,B存高8位,A存低8位)
4、程序状态字PSW,8位(相当于F寄存器)
作用:
放A中数据的状态特征。
程序状态寄存器PSW。
PSW是一个8位的特殊功能寄存器,用于保存当前指令执行后的有关状态,为后面的程序指令执行提供状态转向条件。
许多指令的执行结果将影响PSW相关的状态标志。
PSW寄存器各位状态标志定义如下:
CY(PSW.7):
保存当前指令运算结果产生的进位(或错位),CY=1表示有进位(或错位),CY=0表示无进位(或错位)。
AC(PSW.6):
辅助进位标志,又称之为半字节进位标志,若运算结果累加器A中的A3位向A4位有进位,则AC=1,否则AC=0,常用于十进制调整。
F0(PSW.5):
用户自定义的状态标志位,可由编程者根据实际需要通过软件进行设置或测控。
RS1(PSW.4)、RS1(PSW.3):
用于选择片内RAM区的工作寄存器组,由于工作寄存器组共有4组,每组均有R0~R7共8个8位工作寄存器,单片机运行时,仅能有一组工作寄存器投入工作,其余3组只能作普通的RAM存储器单元使用。
OV(PSW.2):
溢出标志位。
溢出是指当运算结果数值的绝对值超过允许表示的最大值时,就会产生所谓的“溢出”。
主要用于有符号数运算的溢出检测判断。
当两个有符号数进行运算时,次高位D6产生向最高位D7进位(错位),而最高位D7不能产生进位(错位),或D6不产生进位(错位),而D7产生进位(错位)时,则OV=1,有溢出,否则OV=0,无溢出。
即最高位和次高位不同时有进位或错位时OV=1,有溢出;否则OV=0,无溢出。
PSW.1:
保留位,暂无定义。
PSW.0:
奇偶校验标志位。
根据运算结果累加器A中“1”的奇偶性来确定取值,当“1”的个数为奇数时P=1,偶数时P=0。
5、堆栈指针SP,8位
堆栈指针SP。
SP是一个8位的特殊功能寄存器,它作为堆栈指针总是指向栈顶。
单片机在片内RAM区中开辟某一个地址连续区域作为堆栈,理论上堆栈能位于RAM128个字节的任何单元。
但由于系统在复位有效时,栈指针SP的初始值为07H,这显然与工作寄存器区域重叠,因此必须通过软件重新定义SP,一般情况下在片内RAM的30H单元开始建立栈区。
先进后出,后进先出,自动加1,指针指向栈顶。
例:
MOVSP,#70H
MOVA,18H
PUSHA
POPB;SP=71H-1H=70H
弹后:
B=11H
6、数据指针DPTR,16位寄存器
DPH—8位,DPL—8位
作用:
用来存放8031CPU以外(片外)RAM和ROM地址。
数据指针DPTR。
数据指针DPTR是由两个8位特殊功能寄存器DPH和DPL组合成16位的专用寄存器,用作外扩展程序存储器和数据存储器的地址指针,仅能采用间接访问方式读写存储器。
RAM:
随机存储器
ROM:
只读存储器
图中,ROM和RAM属片外存储器
8031可接最大存储器128K.
DPTR寻址:
0000H—FFFFH,64K的范围
例:
图1:
MOVDPTR,#1000H;DPTR=1000H
MOVXA,@DPTR;把片外RAM中地址为1000H中的内容→A.
(MOVX访问片外RAM)
图2:
MOVDPTR,#1001H
MOVCB,@DPTR
(MOVC访问片外ROM)
7、通用寄存器
R0—R7,共8个寄存器,均是8位
MOVR1,A;(A)赋值给R1
若PSW中,RS1、RS0=00,即R1为片内地址为01H单元
三、存储器结构
1、ROM结构
8031片内无ROM,片外外接EPROM或EEPROM芯片。
最多外接64K,0000H—FFFFH
2、RAM结构
(内存指的就是RAM)
8031片内有256个字节RAM,片外接RAM芯片,64K。
片内组成:
单片机片内RAM区地址空间为00H~FFH,可划分为两部分:
00H~7FH为低128字节地址,并进一步划分为工作寄存器区、位寻址区和数据缓冲堆栈区三个区域,80H~FFH为高128字节地址,为特殊功能寄存器(SFR)的区域。
低128个字节(00H—7FH):
每个单元为8位二进制数(一个字节)。
1、工作区
由PSW中RS1、RS0决定,R0—R7为0—3组其中一组,
共有4×8=32个字节,00H—1FH。
工作寄存器区(00H~1FH)共有32个字节单元,工作寄存器又称为通用寄存器,一般作为数据运算和传送时的暂存地址单元。
工作寄存器划分有4个区,每个区有R0~R7八个工作寄存器。
每个工作寄存器有8位,可以用寄存器的名称寻址,也可用直接字节地址方式寻址。
当用寄存器寻址方式时,由程序状态字PSW中的RS1和RS0两位确定工作寄存器区,如表所示。
表工作寄存器表
RS1RS0
区号
寄存器名
字节地址
RS1RS0
区号
寄存器名
字节地址
00
0区
R0
R1
R2
R3
R4
R5
R6
R7
00H
01H
02H
03H
04H
05H
06H
07H
01
1区
R0
R1
R2
R3
R4
R5
R6
R7
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
10
2区
R0
R1
R2
R3
R4
R5
R6
R7
10H
11H
12H
13H
14H
15H
16H
17H
11
3区
R0
R1
R2
R3
R4
R5
R6
R7
18H
19H
1AH
1BH
1CH
1DH
1EH
1FH
四个区的工作寄存器组均可选作为CPU当前用的工作寄存器,通过特殊功能寄存器PSW中的RS0、RS1两位的数据来设置,但每次只能允许其中一组被选中。
CPU复位有效时,自动选中第0区的工作寄存器组,其余三个区的工作寄存器组仅能作为普通RAM存储单元使用。
RS1RS0
R0-----R7的物理地址(指8031CPU内部ROM中的地址)
00
00H---07H
01
08H---0FH
10
10H---17H
11
18H---1FH
2、位寻址区,共16个字节
位寻址区(20H~2FH)有16个字节地址单元,共有128位。
该区域既可用字节直接寻址方式访问,也可采用位寻址方式访问。
128位每一位都有一个单独的位地址编码(00H~7FH),这些位存储单元可以构成布尔处理机,能对位地址直接寻址,执行置位、清0、取反、为0跳转或为1跳转等操作,能实现复杂的组合逻辑功能。
通常把各种程序状态标志、位控制变量都设置在位寻址区内。
另外,有部分的特殊功能寄存器也具有位寻址功能。
表2-3位寻址区中的位地址
字节
地址
位地址
D7
D6
D5
D4
D3
D2
D1
D0
2FH
7F
7E
7D
7C
7B
7A
79
78
2EH
77
76
75
74
73
72
71
70
2DH
6F
6E
6D
6C
6B
6A
69
68
2CH
67
66
65
64
63
62
61
60
2BH
5F
5E
5D
5C
5B
5A
59
58
2AH
57
56
55
54
53
52
51
50
29H
4F
4E
4D
4C
4B
4A
49
48
28H
47
46
45
44
43
42
41
40
27H
3F
3E
3D
3C
3B
3A
39
38
26H
37
36
35
34
33
32
31
30
25H
2F
2E
2D
2C
2B
2A
29
28
24H
27
26
25
24
23
22
21
20
23H
1F
1E
1D
1C
1B
1A
19
18
22H
17
16
15
14
13
12
11
10
21H
0F
0E
0D
0C
0B
0A
09
08
20H
07
06
05
04
03
02
01
00
字节地址为20H—2FH,每个字节地址中都有8个位地址。
如:
把字节地址为20H中的最低位D0置1。
MOVA,20H;A←(20H),20H位字节地址
ORLA,#01H;(A)∪01H
MOV20H,A:
(A)→20H
——SETB00H;(00H)=1(1位),把1位置1
实际上:
(20H)中D0位位地址为00H。
如:
把字节地址21H中D7位清“0”
CLR0FH;(0FH)=0
共有16×8=128个位地址,为00H—7FH
只有该区有位地址。
区别:
两边平衡原则
MOVA,20H;20H为字节地址
MOVC,20H;20H为位地址,C为PSW中的进位位
3、用户区,30H—7FH
把字节地址30H~7FH当作普通的RAM存储单元,一般用于数据的暂存、缓冲区域,CPU对这一空间只能进行字节直接寻址,不能采用位寻址。
在实际应用的程序设计中,往往需要一个先进后出的RAM区,用以保存CPU的现场数据,这种先进后出的缓冲器区域被称为堆栈。
堆栈原则上可以设在片内RAM的任意区域,但为避免出现功能设置在地址上的重叠现象,堆栈一般设在30H~7FH的范围内,栈顶的位置由栈指针SP控制。
SP在复位后的值为07H,显然,这和工作寄存器区重叠,因此,必须对堆栈重新定义。
(4)、特殊功能寄存器(SFR)(80H~0FFH)
对于单片机内部的I/O口锁存器、定时器/计数器、串行口的控制字、中断控制的设置、堆栈指针及数据指针的设置、运算的结果、状态等都是用特殊功能寄存器来实现的。
AT89S51单片机片内共有26个特殊功能寄存器,被离散地设置在80H~FFH地址空间内,见图2-10。
由于128个字节单元仅用了26个,大部分是空的暂没有定义,因此对这部分地址单元访问无效。
特殊功能寄存器按字节操作时,仅可用直接寻址方式,不管是使用寄存器符号,或是使用寄存器的字节地址,均为直接寻址方式,不能视为寄存器寻址方式。
在26个特殊功能寄存器中,它们的字节地址凡能被8整除,即字节地址的尾数为8或0的特殊功能寄存器具有位寻址操作功能。
AT89S51单片机共有11个寄存器,除能字节寻址外,还具有位寻址功能。
如表所示。
表特殊功能寄存器位地址
字节
地址
位地址
寄存器
符号
0FFH
0F0H
F7
F6
F5
F4
F3
F2
F1
F0
B
0E0H
E7
E6
E5
E4
E3
E2
E1
E0
ACC
CY
AC
F0
RS1
RS0
OV
—
P
0D0H
D7
D6
D5
D4
D3
D2
D1
D0
PSW
—
—
—
PS
PT1
PX1
PT0
PX0
0B8H
BF
BE
BD
BC
BB
BA
B9
B8
IP
0B0H
B7
B6
B5
B4
B3
B2
B1
B0
P3
EA
—
—
ES
ET1
EX1
ET0
EX0
0A8H
AF
AE
AD
AC
AB
AA
A9
A8
IE
0A0H
A7
A6
A5
A4
A3
A2
A1
A0
P2
SM0
SM1
SM2
REN
TB8
RB8
T1
RI
98H
9F
9E
9D
9C
9B
9A
99
98
SCON
90H
97
96
95
94
93
92
91
90
P1
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
88H
8F
8E
8D
8C
8B
8A
89
88
TCON
80H
87
86
85
84
83
82
81
80
P0
第二节8031引脚
40个引脚,包含I/O口,控制口,电源口等。
一、I/O口
1、P1口(P1.7—P1.0)
双向并行I/O口,指令操作进行数据I/O,类似8255。
2、P3口(P3.7—P3.0)控制口
构成单片机系统用
P3.0:
RXD(串行口输入端);
P3.1:
TXD(串行口输出端);
P3.2:
(外部中断0信号输入端);
P3.3:
(外部中断1信号输入端);
P3.4:
T0(定时器/计数器0外部计数脉冲输入端);
P3.5:
T1(定时器/计数器1外部计数脉冲输入端);
P3.6:
(外部数据存储器的写选通);
P3.7:
(外部数据存储器的读选通);
3、P2口(P2.7—P2.0)
输出高8位地址,AB
4、P0口(P0.7—P0.0)
双重作用,输出低8位地址/8位数据线,复用,分时输出
二、控制口
1.振荡器电路外接晶振引脚
XTAL1(19脚)、XTAL2(18脚):
当使用片内振荡器的时钟电路方式时,电路接法如图2-2所示,C1、C2为微调电容,通常取20~30pF。
图2-3为使用外部振荡器的时钟电路方式,使用该时钟电路方式时,高低脉冲电平持续时间应不短于20ns,否则工作不稳定。
2、
EPROM选择线,输入信号线
2.
:
①、为1时,8031访问片内ROM
②、为0时,8031访问片外ROM
对8031而言,
=0.(接地)
3、ALE
(30脚):
地址锁存允许/编程脉冲信号端,双功能引脚。
当CPU访问外部程序存储器或外部数据存储器时,该引脚提供一个ALE地址允许信号(由正向负跳变),将低8位地址信息锁存片外的地址锁存器中。
输出地址锁存器(74LS373),信号输出线。
下降沿时把P0口输出低8位地址存入地址锁存器(外接的)。
74LS373引脚图
地址锁存器常采用74LS373,373为三态输出的8D锁存器,如图所示。
各引脚意义如下:
LE:
锁存允许端
:
输出允许端
D0~D7:
数据输入端
Q0~Q7:
输出端。
当
=0时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。
若
=0,LE=1,输出端Q0~Q7状态与输入端D1~D7状态相同;LE由1变为0(下降沿),输入端D0~D7数据锁入Q0~Q7。
当
=1时,Q0~Q7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
4、/PSEN
(29脚):
该引脚为外部程序存储器读选通信号,低电平有效。
当单片机访问外部程序存储器读取及执行指令代码时,产生
信号,但在执行片内程序存储器读取指令码时不产生
信号。
在读写内部RAM单元的数据时,亦不产生
信号。
输出,低电平有效,选择外部ROM
5、RESET
RST(9脚):
单片机复位输入端,高电平有效。
在单片机上电后,振荡器稳定有效运行的情况下,若RST端脚能维持两个机器周期(24个振荡周期)以上的高电平,则可使单片机系统复位有效。
所谓复位,是指使单片机CPU和系统中有关部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机的复位方式主要有上电自动复位和按钮手动复位两种,如图2-8所示。
图2-8a、b电路均有上电复位和按钮复位功能。
图2-8a为电平复位电路,当单片机系统上电时,电路通过电容C充电瞬间加给RST引脚一个高电平脉冲,可使复位有效;单片机工作运行后,按下S按钮也可以使系统复位完成。
图2-8b用脉冲复位的电路,由于电容C两端电压不能突变,此时反相器输出为高电平加给RST引脚维持高电平时间大于10ms以上。
输入,引脚上强行加高电平,复位(上电)、重启(死机)。
6、电源
VCC(40脚):
直流电源供电电压4.0~5.0V。
VSS(GND20脚):
电源负极(即电源地电平)。
第三节8031外接ROM和RAM.(P65图2-12)
一般微机的CPU外部都有单独的地址总线、数据总线和控制总线,而MCS-51单片机由于受引脚的限制,数据线和地址线是复用的,而且由I/O口线兼用。
为了将它们分离出来,以便同单片机片外的芯片正确地连接,需要在单片机外部增加地址锁存器(如74LS373),从而构成与一般CPU相类似的片外三总线,如图所示。
(1)地址总线(AB)
地址总线用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选择。
地址总线是单向的,只能由单片机向外发送信息。
图6.1中,由P0口提供低8位地址A0~A7,P2口提供高8位地址A8~A15。
由于P0口要分时作为数据线和地址线用,因此P0口输出的低8位地址必须用锁存器锁存。
而P2口具有输出锁存的能力,故不需要外加锁存器。
ALE(地址锁存允许)信号作为地址锁存器的锁存控制信号,由MCS-51单片机的P0口送出的低8位有效地址信号是在ALE信号变高的同时出现的,并在ALE由高变低时(下降沿),将出现在P0口的地址信号锁存到外部地址锁存器中,直到下一次ALE变高时,地址才发生变化。
扩展片外存储器时,所需地址线的根数与存储器的字节单元数有关,设地址线的数量为n,则满足下式:
(2)数据总线(DB)
数据总线用于单片机与存储器之间或单片机与I/O端口之间传送数据。
数据总线是双向的,可以进行两个方向的数据传送。
图6.1中,数据总线由P0口提供,其宽度为8位(数据总线的宽度应与单片机处理数据的字长一致)。
P0口是应用最频繁的通道,单片机与外部交换的数据、指令、信息等绝大部分都通过P0口传送。
(3)控制总线(CB)
控制总线是单片机发出的,以控制片外ROM、RAM和I/O口读/写操作的一组控制线。
除了地址线和数据线之外,在扩展系统中还需要一些控制信号线,以构成扩展系统的控制总线。
这些信号有的是单片机引脚的第一功能信号,有的则是第二功能信号。
其中包括:
ALE:
地址锁存允许信号,以实现低8位地址的锁存。
:
片外程序存储器的读选通信号。
:
片内、片外程序存储器的访问控制信号。
当
=0时,只访问片外ROM,而不论片内有无ROM。
因此在扩展并使用片外ROM时,
必须接地。
(P3.7)和
(P3.6)作为扩展数据存储器和I/O端口的读、写选通信号,执行MOVX指令时,这两个信号分别自动有效。
MCS-51外接片外RAM最大可扩展到64KB:
MCS-51外接片外ROM最大可扩展到64KB:
总结:
①、/PSEN=0时,访问片外ROM.(只读)
②、/PSEN=1时,访问片外RAM,/RD=0时,读操作,/WR=0时,写操作
第四节简单时序图(补充)
第五节、存储器组织
程序存储器和数据存储器
根据单片机的应用特点而决定,大部分的单片机在存储器结构上通常采用哈佛型结构。
单片机的存储器配置在物理结构上有3个存储空间:
片外程序存储器、片内数据存储器、片外数据存储器。
从逻辑结构上则有3个存储器地址空间:
片内外统一编址的64KB程序存储器地址空间,片内128B的数据存储器地址空间和片外64KB的数据存储器地址空间。
指令系统采用不同形式的指令,产生不同的控制信号,访问这3个不同逻辑的存储地址空间。
下图表示单片机存储器的空间结构。
第三章指令系统
第一节指令系统格式
一条指令对应着一种基本操作,因此在一条指令中的内容通常包括操作性质和操作对象,例如“加”操作,操作对象是两个数,一个是被加数,另一个是加数。
指令中除了要表达进行加法运算这一操作性质外,还必须指明参与操作的两个数或这两个数的存放地点(地址),以及相加结果应放何处。
在计算机中,指令都是以二进制代码形式表示和存放的,这种二进制码称为指令代码或机器码。
MCS-51系列单片机的指令由操作码和操作数两大部分组成,其指令格式为:
操作码[操作数1],[操作数2],[操作数3]
方括号“[]”内的字段表示可有可无。
(1)操作码表示指令进行何种操作,即操作性质。
一般为英语单词的缩写。
(2)操作数指出了参加操作的数据或数据存放的地址,即操作对象。
它以一个或几
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课题 笔记 电子 最新 32 课时