单片机实验指导书Word格式文档下载.docx

上传人:b****3 文档编号:18432737 上传时间:2022-12-16 格式:DOCX 页数:48 大小:1.80MB
下载 相关 举报
单片机实验指导书Word格式文档下载.docx_第1页
第1页 / 共48页
单片机实验指导书Word格式文档下载.docx_第2页
第2页 / 共48页
单片机实验指导书Word格式文档下载.docx_第3页
第3页 / 共48页
单片机实验指导书Word格式文档下载.docx_第4页
第4页 / 共48页
单片机实验指导书Word格式文档下载.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

单片机实验指导书Word格式文档下载.docx

《单片机实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word格式文档下载.docx(48页珍藏版)》请在冰豆网上搜索。

单片机实验指导书Word格式文档下载.docx

EA/Vpp程序存储器的内外部选通线,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

MCS-51单片机的指令时序

MCS-51的时序单位有四个:

节拍、状态、机器周期和指令周期。

1个节拍(P)=1个振荡脉冲周期

1个状态(S)=2个节拍=2个振荡脉冲周期

1个机器周期(T)=6个状态=12个振荡脉冲周期

1个指令周期=几个周期周期

MCS-51单片机存储器结构

程序存储器

MCS-51具有64kB程序存储器寻址空间,对于内部有ROM的AT89SXX等单片机,正常运行时,

则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。

0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中放一条无条件转移指令,让CPU直接去执行用户指定的程序。

0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:

0003H—000AH 

外部中断0中断地址区。

000BH—0012H 

定时/计数器0中断地址区。

0013H—001AH 

外部中断1中断地址区。

001BH—0022H 

定时/计数器1中断地址区。

0023H—002AH 

串行中断地址区。

数据存储器

MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是内部数据存储区和一个外部数据存储区。

MCS-51内部RAM有128或256个字节的用户数据存储(不同的型号有分别)。

MCS-51的数据存储器均可读写,部分单元还可以位寻址。

8051内部RAM共有256个单元,这256个单元分为两部分。

其一是地址从00H—7FH单元(共128个字节)为用户数据RAM。

从80H—FFH地址单元(也是128个字节)为特殊寄存器(SFR)单元。

从图1中可清楚地看出它们的结构分布。

在00H—1FH共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以R0—R7来命名,称为通用寄存器。

由程序状态字寄存器(PSW)来管理它们,CPU只要定义PSW的第3和第4位(RS0和RS1),即可选中这四组通用寄存器。

对应的编码关系如图2所示。

单元地址

MSB 

位地址 

LSB

2FH

7FH

7EH

7DH

7CH

7BH

7AH

79H

78H

2EH

77H

76H

75H

74H

73H

72H

71H

70H

2DH

6FH

6EH

6DH

6CH

6BH

6AH

69H

68H

2CH

67H

66H

65H

64H

63H

62H

61H

60H

2BH

5FH

5EH

5DH

5CH

5BH

5AH

59H

58H

2AH

57H

56H

55H

54H

53H

52H

51H

50H

29H

4FH

4EH

4DH

4CH

4BH

4AH

49H

48H

28H

47H

46H

45H

44H

43H

42H

41H

40H

27H

3FH

3EH

3DH

3CH

3BH

3AH

39H

38H

26H

37H

36H

35H

34H

33H

32H

31H

30H

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

06H

05H

04H

03H

02H

01H

MCS-51有21个特殊功能寄存器,它们被离散地分布在内部RAM的80H—FFH地址中,用户不能修改其结构。

表2是特殊功能寄存器分布一览表。

标识符号

地址

寄存器名称

0E0H

累加器

0F0H

B寄存器

0D0H

程序状态字

81H

堆栈指针

DPTR

82H、83H

数据指针(16位)含DPL和DPH

0A8H

中断允许控制寄存器

0B8H

中断优先控制寄存器

P0

80H

I/O口0寄存器

P1

90H

I/O口1寄存器

P2

0A0H

I/O口2寄存器

P3

0B0H

I/O口3寄存器

87H

电源控制及波特率选择寄存器

98H

串行口控制寄存器

99H

串行数据缓冲寄存器

88H

定时控制寄存器

89H

定时器方式选择寄存器

8AH

定时器0低8位

8CH

定时器0高8位

8BH

定时器1低8位

8DH

定时器1高8位

程序计数器PC(programCounter)

PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。

PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按我们的要求去执行。

累加器ACC(Accumulator)

累加器A是一个最常用的专用寄存器,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。

加、减、乘、除法运算的指令,运算结果都存放于累加器A或AB累加器对中。

寄存器B

在乘除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,其结果存放于AB寄存器对中。

除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B中。

程序状态字(ProgramStatusWord)

程序状态字是一个8位寄存器,用于存放程序运行的状态信息,这个寄存器的一些位可由软件设置,有些位则由硬件运行时自动设置的。

寄存器的各位定义如下,其中PSW.1是保留位,未使用。

下表是它的功能说明,并对各个位的定义介绍如下:

位序

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0

位标志

CY

AC

F0

RS1

RS0

OV

-

P

PSW.7(CY) 

进位标志位,此位有两个功能:

一是存放执行某写算数运算时,存放进位标志,可被硬件或软件置位或清零。

二是在位操作中作累加位使用。

PSW.6(AC) 

辅助进位标志位,当进行加、减运算时当有低4位向高4位进位或借位时,AC置位,否则被清零。

AC辅助进位位也常用于十进制调整。

PSW.5(F0) 

用户标志位,供用户设置的标志位。

PSW.4、PSW.3(RS1和RS0) 

寄存器组选择位。

可参见本章的图2定义。

PSW.2(OV) 

溢出标志。

带符号加减运算中,超出了累加器A所能表示的符号数有效范围(-128—+127)时,即产生溢出,OV=1。

表明运算运算结果错误。

如果OV=0,表明运算结果正确。

PSW.0(P) 

奇偶校验位。

声明累加器A的奇偶性,每个指令周期都由硬件来置位或清零,若值为1的位数奇数,则P置位,否则清零。

数据指针(DPTR)

数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH和低位字节DPL。

堆栈指针SP(StackPointer)

堆栈是一种数据结构,它是一个8位寄存器,它指示堆栈顶部在内部RAM中的位置。

系统复位后,SP的初始值为07H,使得堆栈实际上是从08H开始的。

I/O口专用寄存器(P0、P1、P2、P3)

I/O口寄存器P0、P1、P2和P3分别是MCS-51单片机的四组I/O口锁存器。

数据传送都统一使用MOV指令来进行,这样的好处在于,四组I/O口还可以当作寄存器直接寻址方式参与其他操作。

定时/计数器(TL0、TH0、TL1和TH1)

MCS-51单片机中有两个16位的定时/计数器T0和T1,它们由四个8位寄存器组成的,两个16位定时/计数器却是完全独立的。

我们可以单独对这四个寄存器进行寻址,但不能把T0和T1当作16位寄存来使用。

定时/计数器方式选择寄存器(TMOD)

TMOD寄存器是一个专用寄存器,用于控制两个定时计数器的工作方式。

串行数据缓冲器(SBUF)

串行数据缓冲器SBUF用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,要发送和接收的操作其实都是对串行数据缓冲器进行。

MCS-51定时/计数器

定时/计数器的工作方式

MCS-51单片机内部的定时/计数器的结构如图所示,定时器T0特性功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特性功能寄存器TL1(低8位)和TH1(高8位)构成。

特殊功能寄存器TMOD控制定时寄存器的工作方式,TCON则用于控制定时器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。

TMOD和TCON这两个特殊功能寄存器的格式参见下表:

[1]. 

定时/计数器的方式控制字TMOD,字节地址为89H,其格式如表1:

D7

D6

D5

D4

D3

D2

D1

D0

GATA

M1

M0

←T1方式字段→

←T0方式字段→

[2]. 

定时器控制积存器TCON,字节地址为88H,位地址为88H—8FH,其格式如表2:

TCON结构

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

MCS-51的中断系统

[2].中断处理流程

CPU响应中断请求后,就立即转入执行中断服务程序。

不同的中断源、不同的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述。

现场保护和现场恢复

中断开始前需将个有关寄存器的内容压入堆栈进行保存,以便在恢复原来程序时使用。

中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容。

中断打开和中断关闭

在中断处理进行过程中,可能又有新的中断请求到来,这里规定,现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。

中断服务程序

中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现。

中断返回

在MCS-51单片机中,中断返回是通过一条专门的指令RETI实现的。

[3].MCS-51的中断源

8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制。

TCON寄存器的结构如下:

位地址

8FH

8EH

IE1:

外部边沿触发中断1请求标志,其功能和操作类似于TF0。

IT1:

外部中断1类型控制位,IT1=1,边沿触发。

IT=0是电平触发。

IE0:

外部边沿触发中断0请求标志,其功能和操作类似于IE1。

IT0:

外部中断0类型控制位,其功能和操作类似于IE1。

SCON是串行口控制寄存器,地址为98H,其格式如下:

TI

RI

TI:

MCS-51串行口的发送中断标志,在串行口以方式0发送时,每当发送完8位数据,由硬件置位。

如果以方式1、方式2或方式3发送时,在发送停止位的开始时TI被置1,TI=1表示串行发送器正向CPU发出中断请求,向串行口的数据缓冲器SBUF写入一个数据后就立即启动发送器继续发送。

但是CPU响应中断请求后,转向执行中断服务程序时,并不清零TI,TI必须由用户的中断服务程序清“0”,即中断服务程序必须有“CLRTI”或“ANLSCON,#0FDH”等指令来清零TI。

RI:

串行口接收中断标志.若串行口接收器允许接收,并以方式0工作,每当接收到8位数据时,RI被置1,若以方式1、2、3方式工作,当接收到半个停止位时,TI被置1,当串行口一方式2或3方式工作,且当SM2=1时,仅当接收到第9位数据RB8为1后,同时还要在接收到半个停止位时,RI被置1。

RI为1表示串行口接收器正向CPU申请中断。

同样RI标志栩栩如生由用户的软件清“0”。

[4].中断的控制

IE的结构格式如下。

EA

ES

ET1

EX1

ET0

EX0

AFH

ACH

ABH

AAH

A9H

A8H

EA:

中断总控制位,EA=1,CPU开放中断。

EA=0,CPU禁止所有中断。

ES:

串行口中断控制位,ES=1允许串行口中断,ES=0,屏蔽串行口中断。

ET1:

定时/计数器T1中断控制位。

ET1=1,允许T1中断,ET1=0,禁止T1中断。

EX1:

外中断1中断控制位,EX1=1,允许外中断1中断,EX1=0,禁止外中断1中断。

ET0:

定时/计数器T0中断控制位。

ET1=1,允许T0中断,ET1=0,禁止T0中断。

EX0:

外中断0中断控制位,EX1=1,允许外中断0中断,EX1=0,禁止外中断0中断。

MCS-51有两个中断优先级,即高优先级和低优先级,每个中断源都可设置为高或低中断优先级。

MCS-51还有一个申请优先级寄存IP,IP的格式如下,字节地址是B8H。

PS

PT1

Px1

PT0

PX0

BCH

BBH

BAH

B9H

B8H

PS:

串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,PS=0,串行口定义为低优先级中断。

PT1:

定时器1优先级控制位。

PT1=1,声明定时器1为高优先级中断,PT1=0定义定时器1为低优先级中断。

PX1:

外中断1优先级控制位。

PT1=1,声明外中断1为高优先级中断,PX1=0定义外中断1为低优先级中断。

PT0:

定时器0优先级控制位。

PT1=1,声明定时器0为高优先级中断,PT1=0定义定时器0为低优先级中断。

PX0:

外中断0优先级控制位。

PT1=1,声明外中断0为高优先级中断,PX1=0定义外中断0为低优先级中断。

[5].中断的响应

中断响应的主要内容就是由硬件自动生成一条长调用LCALLaddr16指令,这里的addr16就是程序存储器中相应的中断区入口地址,这些中断源的服务程序入口地址如下:

中断源

入口地址

外中断0

0003H

定时/计数器0

000BH

外中断1

0013H

001BH

串行口中断

0023H

生成LCALL指令后,CPU紧跟着便执行之.首先将PC(程序计数器)的内容压入堆栈保护断点,然后把中断入口地址赋予PC,CPU便按新的PC地址执行程序。

MCS-51的串行通信口

MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。

但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。

这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。

串行数据通信两种形式

异步通信

接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符。

同步通信

同步通信格式中,发送器和接收器由同一个时钟源控制,同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。

串行数据通信的传输速率

串行数据传输速率有两个概念,即每秒转送的位数bps(Bitpersecond)和每秒符号数—波特率(Bandrate),在具有调制解调器的通信中,波特率与调制速率有关。

MCS-51的串行口和控制寄存器

MCS-51单片机串行口寄存器结构如图3所示。

SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。

但这两个寄存器具有同一地址(99H)。

MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。

而从接收缓冲器读出数据即可接收数据。

接收缓冲器前有一级输入移位寄存器,目的在于接收数据时避免发生数据帧重叠现象。

而发送数据时就不需要这样设置,因为发送时,CPU是主动的,不可能出现这种现象。

串行通信控制寄存器SCON

SCON是专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:

SM0

SM1

SM2

REN

TB8

RB8

9FH

9EH

9CH

9BH

9AH

各控制位功能介绍如下:

(1).SM0、SM1:

串行口工作方式控制位。

(SM0,SM1)=00 

 

方式0(SM0,SM1)=01 

方式1

(SM0,SM1)=10 

方式2(SM0,SM1)=11 

方式3 

 

(2).SM2:

多机通信控制位。

多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。

接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。

当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。

工作于方式0时,SM2必须为0。

(3).REN:

允许接收位。

REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。

(4).TB8:

发送接收数据位8。

在方式2和方式3中,TB8是要发送的——即第9位数据位。

在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。

(5).RB8:

接收数据位8。

在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。

(6).TI:

发送中断标志位。

可寻址标志位。

方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。

(7).RI:

接收中断标志位。

接收完第8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1