单片机原理及应用.docx
- 文档编号:8940655
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:175
- 大小:1.22MB
单片机原理及应用.docx
《单片机原理及应用.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用.docx(175页珍藏版)》请在冰豆网上搜索。
单片机原理及应用
单片机原理及应用
常州轻工职业技术学院
前言
当今,单片微型计算机技术迅速发展,由单片机技术开发的智能化测控设备和产品广泛应用到各个领域,单片机技术产品和设备促进了生产技术水平的提高。
企业迫切需要大量熟练掌握单片机技术,并能开发、应用和维护管理这些智能化产品的高级工程技术人材。
单片机以体积小、功能强、可靠性好、性能价格比高等特点,已成为实现工业生产技术进步和开发机电一体化和智能化测控产品的重要手段。
本教材内容分为十章。
以MCS-51系列单片机为介绍对象,分别介绍MCS-51系列单片机结构原理、MCS-51单片机指令系统、汇编语言程序设计、并行I/O口的使用、并行I/O口的扩展方法及使用、中断系统和定时/计数器、A/D转换接口和D/A转换接口技术、键盘与显示器接口技术等内容。
本教材由杨文新、龚益民、韩迎辉老师编写,谢丽华、刘军良老师参与本书图表的绘制。
编者
2004年7月
目录
第一章认识单片机……………………………………………3
第二章MCS-51单片机指令系统………………………………14
第三章汇编语言程序设计……………………………………27
第四章并行I/O口…………………………………………33
第五章并行I/O口的扩展…………………………………40
第六章中断系统………………………………………………49
第七章定时/计数器………………………………………55
第八章A/D转换接口……………………………………60
第九章D/A转换接口………………………………………63
第十章键盘与显示器接口…………………………………67
附录一WAVE软件的操作使用
附录二ASCII码表
附录三MCS-51单片机指令系统表
附录四单片机练习题
附录五单片机实验指导书
第一章认识单片机
一、什么是单片机
单片机是将CPU、存储器、输入/输出接口、定时/计数器等集成在一块芯片上,是目前销量最大、应用面最广、价格最便宜的微型计算机。
如图1-1所示:
例1-1单片机彩灯控制系统(单片机控制8个发光二极管每隔0.1秒轮流点亮。
)
使用单片机实验板进行演示。
二、典型单片机产品
1.MCS-51系列
美国Intel公司生产的8位字长单片机。
基本型产品有8051、8031、8751等。
2.AT89C51系列
美国ATMEL公司生产的8位字长单片机。
与MCS-51系列单片机兼容,内含4KB的flash存储器。
三、MCS-51单片机的内部的硬件结构及引脚
(一)MCS-51单片机内部的总体硬件结构
8051单片机的内部基本结构,如图1-2所示。
(二)MCS-51单片机的引脚
8051单片机是HMOS工艺制造,外形为40条引脚,如图1-3所示。
因为受芯片引脚数量的限制,有很多引脚具有双功能。
1、主电源引脚
VCC:
芯片工作电源端,接+5V。
Vss:
电源接地端。
2、时钟振荡电路引脚
XTAL1:
内部晶体振荡电路的反相器输入端。
接法如图1-5。
XTAL2:
内部晶体振荡电路的反相器输出端。
接法如图1-5。
3、控制信号引脚
RST————RST为复位信号输入端。
外部接复位电路。
接法如图1-4。
ALE————ALE为地址锁存允许信号。
在不访问外部存储器时,ALE以时钟振荡频率的1/6的固定频率输出,用示波器观察ALE引脚上的脉冲信号是判断单片机芯片是否正常工作的一种简便方法。
————外部程序存储器ROM的读选通信号。
到外部ROM取指令时,
自动向外发送负脉冲信号。
————为访问程序存储器的控制信号。
4、并行I/O端口引脚
P0口(P0.0~P0.7);P1口(P1.0~P1.7);P2口(P2.0~P2.7);P3口(P3.0~P3.7)。
(三)复位电路与时钟电路
1.复位电路
(1)复位电路
单片机的RST引脚是复位信号输入端,RST引脚上保持两个机器周期(24个时钟周期)以上的高电平时,可使单片机内部可靠复位。
单片机常用的外部复位电路如图1-4。
(2)复位状态
复位后,单片机内部的各寄存器的内容将被初始化,包括程序计数器PC和特殊功能寄存器,其中(PC)=0000H,特殊功能寄存器的状态见表1-1。
复位不影响片内RAM和片外RAM中的内容。
表1-1复位后特殊功能寄存器的初始状态
SFR名称
初始状态
SFR名称
初始状态
ACC
00H
TMOD
00H
B
00H
TCON
00H
PSW
00H
TH0
00H
SP
07H
TL0
00H
DPL
00H
TH1
00H
DPH
00H
TL1
00H
P0~P3
FFH
SBUF
不确定
IP
ХХХ00000B
SCON
00H
IE
0ХХ00000B
PCON
0ХХХХХХХB
2.时钟电路
时钟电路用于产生时钟信号,时钟信号是单片机内部各种微操作的时间基准,在此基础上,控制器按照指令的功能产生一系列在时间上有一定次序的信号,控制相关的逻辑电路工作,实现指令的功能。
电容容量范围为30PF±10PF,石英晶体频率的范围为1.2~12MHZ,常用6MHZ或12MHz。
3.时序单位
(1)时钟周期(是时钟信号频率fosc的倒数)
时钟周期=1/fosc
(2)机器周期:
机器周期=12×时钟周期
(3)指令周期
一条指令从被读取到被执行的整个过程所需的时间称为指令周期。
思考题:
fosc分别为6MHZ和12MHZ时,机器周期分别为多少?
四、MCS-51单片机的内部硬件的主要功能
(一)中央处理单元CPU
它由运算器和控制器两部分组成。
1.运算器
运算器是进行各种算术运算和逻辑运算的部件。
与运算器有关的寄存器包括ACC、B、PSW。
(1)累加器ACC(8位寄存器)
(2)B寄存器(8位)
(3)程序状态字寄存器PSW(8位)
PSW主要用于存放程序状态信息以及运算结果的标志,所以又称标志寄存器。
其格式如下(D1位没有定义):
D7D6D5D4D3D2D1D0
CY
AC
F0
RS1
RS0
OV
—
P
CY——进位标志位。
AC——辅助进位标志位。
F0——用户标志位
RS1、RS0——工作寄存器区选择控制位
OV——溢出标志位。
P——奇偶标志位。
2.控制器
(1)控制器的组成
控制器是由程序计数器PC、指令寄存器、译码器、定时与控制电路等组成的。
(2)程序计数器PC
PC是一个16位的寄存器,PC中的内容是下一条将要执行的指令代码的起始存放地址。
当单片机复位之后,(PC)=0000H,引导CPU到0000H地址读取指令代码,CPU每读取一个字节的指令,PC的内容会自动加1,指向下一个地址,使CPU按顺序去读取后面的指令,从而引导CPU按顺序执行程序。
(二)存储器
1.8051的存储器分为两大存储空间:
程序存储器(ROM)空间
(1)片内4KB的程序存储器,其地址为0000H~0FFFH
(2)片外64KB的程序存储器,其地址为0000H~FFFFH
数据存储器(RAM)空间
(1)片内256B的数据存储器,00H~7FH为通用的数据存储区,80H~FFH为专用的特殊功能寄存器区
(2)片外64KB的数据存储器,其地址为0000H~FFFFH
与8051不同的是,8751片内包含4KB的EPROM程序存储器,而8031内部不包含程序存储器。
2.程序存储器
(1)程序存储器主要用于存放程序和表格常数。
(2)程序存储器分为片内、片外两部分,总容量最大为64KB,地址为0000H~FFFFH。
(3)
引脚的接法
对于8051、8751等片内有程序存储器的芯片,
引脚应该接高电平;对于8031这种片内无程序存储器的芯片,
引脚应该接低电平。
3.数据存储器
数据存储器主要用于存放各种数据。
以下只对内部数据存储器进行介绍。
7FH
30H
2FH
20H
1FH
00H
图1-8内部数据存储器的结构
(1)低128B的内部数据存储器
按其功能不同划分为三个区域。
①工作寄存器区(00H~1FH)
该区均分为四个小区,任何时候,只有一个区的工作寄存器可以工作,称为当前工作寄存器区。
当前区的选择可通过对寄存器PSW中的RS1、RS0两个位的设置来进行,见表1-2。
表1-2当前工作寄存器区的选择
RS1
RS0
当前工作寄存器区
0
0
0区
0
1
1区
1
0
2区
1
1
3区
思考题:
单片机复位时,当前工作寄存器区是哪个?
②位寻址区(20H~2FH)
位寻址区有16个单元组成,共128个位,每个位具有位地址,表1-3中表格数据是每个位的位地址。
每个单元也可作一般的数据缓冲单元使用。
位地址映象
7FH
7EH
7DH
7CH
7BH
7AH
79H
78H
77H
76H
75H
74H
73H
72H
71H
70H
6FH
6EH
6DH
6CH
6BH
6AH
69H
68H
67H
66H
65H
64H
63H
62H
61H
60H
5FH
5EH
5DH
5CH
5BH
5AH
59H
58H
57H
56H
55H
54H
53H
52H
51H
50H
4FH
4EH
4DH
4CH
4BH
4AH
49H
48H
47H
46H
45H
44H
43H
42H
41H
40H
3FH
3EH
3DH
3CH
3BH
3AH
39H
38H
37H
36H
35H
34H
33H
32H
31H
30H
2FH
2EH
2DH
2CH
2BH
2AH
29H
28H
27H
26H
25H
24H
23H
22H
21H
20H
1FH
1EH
1DH
1CH
1BH
1AH
19H
18H
17H
16H
15H
14H
13H
12H
11H
10H
0FH
0EH
0DH
0CH
0BH
0AH
09H
08H
07H
06H
05H
04H
03H
02H
01H
00H
表1-3片内RAM的位寻址
字节地址
2FH
2EH
2DH
2CH
2BH
2AH
29H
28H
27H
26H
25H
24H
23H
22H
21H
20H
③用户区(30H~7FH)
为一般数据缓冲区,堆栈区通常也设置在这个区域内。
(2)高128字节(特殊功能寄存器区)
8051内部有21个特殊功能寄存器(简称SFR),它们均为8位的寄存器,离散分布在80H~FFH区域,剩下107个单元是没有定义的,用户不能使用。
见表1-4。
有11个SFR的字节地址可被8整除(地址以0和8结尾),可以位寻址(表中已给出它们的位地址)。
表1-4特殊功能寄存器地址对照表
SPR名称
符号
D7位地址/位定义D0
字节地址
B寄存器
B
F7
F6
F5
F4
F3
F2
F1
F0
(F0H)
累加器A
ACC
E7
E6
E5
E4
E3
E2
E1
E0
(E0H)
程序状态字
PSW
D7
D6
D5
D4
D3
D2
D1
D0
(D0)
CY
AC
F0
RS1
RS0
OV
------
P
中断优先级控制
IP
BF
BE
BD
BC
BB
BA
B9
B8
(B8H)
-----
-----
------
PS
PT1
PX1
PT0
PX0
I/O端口3
P3
B7
B6
B5
B4
B3
B2
B1
B0
(B0H)
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
中断允许控制
IE
AF
AE
AD
AC
AB
AA
A9
A8
(A8H)
EA
---
---
EA
ET1
EX0
ET0
EX0
I/O端口2
P2
A7
A6
A5
A4
A3
A2
A1
A0
(A0H)
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
串行数据缓冲
SBUF
(99H)
串行控制
SCON
9F
9E
9D
9C
9B
9A
99
98
(98H)
SW0
SW1
SW2
REN
TB8
RB8
TI
RI
I/O端口1
P1
97
96
95
94
93
92
91
90
(90H)
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
定时/计数器1(高字节)
TH1
(8DH)
定时/计数器0(高字节)
TH0
(8CH)
定时/计数器1(低字节)
TL1
(8BH)
定时/计数器0(低字节)
TL0
(8A)
定时/计数器方式选择
TWOD
GATE
C/T
W1
W0
GATE
C/T
W1
W0
(89H)
定时/计数器控制
TCON
8F
8E
8D
8C
8B
8A
89
88
(88H)
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
电源控制与波特率选择
PCON
(87H)
数据指针高字节
DPH
(83H)
数据指针低字节
DPL
(82H)
堆栈指针
SP
(81H)
I/O端口0
P0
87
86
85
84
83
82
81
80
(80H)
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
※五、计算机中的数制与编码
(一)常用数制
数制也就是进位制,计算机中常用的进位制有二进制(B字母结尾)、十进制(D字母结尾,可省略)、十六进制(H字母结尾)等。
其中二进制是计算机内部使用的,十进制、十六进制通常是人们书写程序或描述计算机工作过程时使用的。
(二)数制间的转换
三种进制的对应关系见表1-5。
表1-5三种进制数对照表
二进制(B)
十六进制(H)
十进制(D)
二进制(B)
十六进制(H)
十进制(D)
0000
0
0
1000
8
8
0001
1
1
1001
9
9
0010
2
2
1010
.A
10
0011
3
3
1011
B
11
0100
4
4
1100
C
12
0101
5
5
1101
D
13
0110
6
6
1110
E
14
0111
7
7
1111
F
15
1.十进制转换为二进制
整数部分的转换方法称为“除2取余法”。
小数部分的转换方法称为“乘2取整法”。
2.二进制转换成十进制
将二进制数的各个非零位分别乘以位权之后相加求和。
3.十进制转换成十六进制
整数部分的转换方法称为“除16取余法”。
小数部分的转换方法称“乘16取整法”。
4.十六进制转换成十进制
将十六进制数的各个非零位分别乘以位权后相加求和。
5.二进制与十六进制之间的转换
二进制数转换成十六进制数的方法是:
4位二进制数对应于1位十六进制数(对应关系见表1-4)。
十六进制数转换为二进制数的方法是:
将每1位十六进制数用对应的4位二进制数替换。
练习:
1.将194转换成二进制数
2.将120转换成十六进制数
3.将10101000B转换成十进制数
4.将19BH转换成十进制数
5.将二进制数1011011.110B转换为十六进制数
6.将十六进制数7B.25H转换为二进制数
(三)常用二进制编码
1.二进制编码的十进制数
十进制数用二进制编码的形式来表示,称为二——十进制编码,即:
BCD码(BinaryCodeDecimal)。
最常用的是8421BCD码。
表1-5列出了BCD码(8421码)与十进制数的对照表。
互换时,可以按4位对应1位的原则,进行转换。
表1-6BCD(8421)码与十进制数的对照表
十进制数
BCD码
十进制数
BCD码
0
0000
5
0101
1
0001
6
0110
2
0010
7
0111
3
0011
8
1000
4
0100
9
1001
课堂练习:
(1)将79.32转换成BCD码
(2)将BCD码10000110.0101转换成十进制
2.字符编码(ASCll码)
计算机中的各种字符,包括0~9数字、大小写英文字母、标点符号及用于控制的特殊符号等,也必须用二进制编码表示。
在计算机中一般统一使用ASCII码来表示字符。
ASCII码是美国信息交换标准代码的简称。
每个字符的ASCII码是由7位二进制数构成,第八位(最高位)通常定为奇偶校验位。
例如:
数字0~9的ASCII码为30H~39H;大写字母A~Z的ASCII码为41H~5AH。
(四)带符号数的表示
在计算机中是使用数字“0”和“1”来表示数的符号的。
如,“+”号用“0”表示;“–”号用“1”表示。
一个数在计算机中有三种表示方法:
原码、反码、补码。
下面以8位带符号数为例进行介绍。
1、原码
最高位(D7位)作符号位,用“0”或“1”表示数的正或负,其余位为数值位,用来表示该数的大小,即绝对值。
例:
[+112]原码=01110000B
[–112]原码=11110000B
原码所能表示的十进制范围是:
–127~+127。
2、反码
正数的反码与原码相同;负数的反码,符号位为1,数值位是将原码的数值位按位取反(即原来是“0”的,取为“1”,原来是“1”的,取为“0”)。
例:
[+112]反码=01110000B
[–112]反码=10001111B
反码可表示的十进制范围是:
–127~+127。
3、补码表示法
正数的补码与原码相同;负数的补码,符号位为“1”,数值位是将反码的数值位加1形成。
例:
[+112]补码=01110000B
[–112]补码=10010000B
用补码可表示的十进制范围是:
–128~+127。
因为带符号数用补码表示,可以简化运算,所以较常用。
(五)无符号数
无符号的8位二进制数没有符号位,8位均为数值位。
即:
8位无符号二进制数对应的十进制范围为(0~255)。
第二章MCS-51单片机指令系统
一、指令的表达形式
每条指令有两种不同的表达形式:
1.二进制代码(机器码)指令
2.助记符(汇编语言)指令
助记符指令:
MOVA,#30H
二进制代码指令:
0111010000110000
助记符指令必须转换成二进制代码指令才能存入存储器。
本章仅介绍助记符指令格式,对应的机器码格式可参考附录。
二、汇编语言指令格式
操作码[第一操作数][,第二操作数][,第三操作数]
(1)操作码:
用来规定指令进行何种操作,是指令中不能空缺的部分。
(2)操作数:
表示参与指令操作的数据或数据所在的地址。
为可选项。
有两个操作数时,前一个为目的操作数,后一个为源操作数。
三、指令中有关操作数符号的说明
Rn——工作寄存器R0~R7(n=0、1、2…7)。
Ri——工作寄存器R0和R1(i=0或1)。
Direct——内部RAM的单元地址,地址范围为00~FFH。
#data——8位立即数,即常数。
#data16——16位立即数。
addr16——16位目的地址。
Addrll——11位目的地址。
四、MCS-51单片机指令系统
MCS—51的指令按功能分为五大类:
数据传送、算术运算、逻辑运算、控制转移和位操作指令。
(一)数据传送类指令
注意:
源操作数在传送前后保持不变。
1.内部数据传送指令
指令功能说明
MOVA,Rn;A←(Rn)
MOVA,direct;A←(direct)
MOVA,@Ri ;A←((Ri))
MOVA,#data;A←#data
MOVRn,A;Rn←(A)
MOVRn,direct;Rn←(direct)
MOVRn,#data;Rn←#data
MOVdirect,A;direct←(A)
MOVdirect,Rn;direct←(Rn)
MOVdirect,@Ri;direct←((Ri))
MOVdirect1,direct2;direct1←(direct2)
MOVdirect,#data;direct←#data
MOV@Ri,A;(Ri)←(A)
MOV@Ri,direct;(Ri)←(direct)
MOV@Ri,#data;(Ri)←#data
MOVDPTR,#data16;DPTR←#data16
【例2-1】设(30H)=40H,(40H)=10H,(P1)=0CAH,试判断下列程序执行后的结果。
MOVR0,#30H;R0←#30H
MOVA,@R0;A←(30H),(A)=40H
MOVR1,A;R1←(A),(R1)=40H
MOVB,@R1;B←(40H),(B)=10H
MOV@R1,P1;(R1)←(P1),(40H)=0CAH
MOVP2,P1;P2←(P1),(P2)=0CAH
结果是:
(A)=40H,(B)=10H,(40H)=0CAH,(P2)=0CAH
2.外部数据传送指令
此类指令完成对片外RAM单元中数据的读/写操作。
(1)读指令
MOVXA,@DPTR;A←((DPTR))
MOVXA,@Ri;A←((Ri))
(2)写指令
MOVX@DPTR,A;(DPTR)←(A)
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用