AT89S51单片机简介复习过程

合集下载

第5章 AT89S51的中断系统讲解

第5章 AT89S51的中断系统讲解

5.5 有关中断的几个问题(续)
二、中断响应的主要过程? (1)由硬件自动生成一条长调用指令 :LCALL addr16
(2)执行该指令 ,即把PC的内容压入堆栈以保护 断点,再将相应中断入口地址装入 PC。
各中断源服务程序的 入口地址固定 ,如下所示:
中断源
入口地址
外部中断 0 定时器 /计数器 T0 外部中断 1 定时器 /计数器 T1 串行口中断
5.4 AT89S51 中断系统相关的寄存器(续)
2. SCON 寄存器(串行口控制寄存器) 字节地址 98H,可位寻址。格式如下:
(1)TI —发送中断请求标志位。
串口每发送完一帧串行数据后,硬件自动将TI置“1” 。 必须用软件对TI标志清“0”。
(2)RI —接收中断请求标志位。
串口接收完一个数据帧,硬件自动将RI置“1” 。 必须用软件对RI标志清“0”。
0:禁止串行口中断; 1:允许串行口中断。
3. IE 寄存器(续)
(3)ET1 :定时器/计数器T1的溢出中断允许位
0:禁止T1溢出中断; 1:允许T1溢出中断。
(4)EX1:外部中断 1中断允许位
0:禁止外部中断1中断; 1:允许外部中断1中断。
(5)ET0 :定时器/计数器T0的溢出中断允许位
第 5 章 AT89S51单片机的中断系统
主要内容: 1. AT89S51 中断系统的硬件组成、工作原理。 2. 与中断系统相关的特殊功能寄存器。 3. 中断系统的应用特性。
重点掌握: 1. 中断系统的初始化编程 2. 中断服务子程序的设计
5.1 AT89S51 中断技术概述
中断请求:CPU正执行程序时,单片机外部或内部发生某一
⑸ 串行口中断请求

第2章 AT89S51单片机系统结构和

第2章  AT89S51单片机系统结构和

技术凝聚实力 专业创新出版
2.2.1 8051结构

如图所示为8031、8051、8751的内部总体结构,该结构按功能可划分为8个组成部 分,它们是通过片内单一总线连接起来的。 微处理器(CPU); 数据存储器(RAM); 程序存储器(ROM/EPROM); 特殊功能寄存器(SFR); I/O口; 串行口; 定时器/计数器及中断系统。


当AT89S51工作于节电模式时,CPU进入睡眠模式,但是 所有的端口仍然保持工作状态。节电模式能够通过软件 进入,在这个模式下,所有的内存数据和特殊功能寄存 器的值均保持不变。节电模式能够被任何使能的中断和 硬件复位所结束。 当节电模式是由于硬件复位结束时,程序将从其进入节 电模式的指令继续执行,为了避免在外部引脚有不可预 测的输出,最好不要将写外部端口操作和读取外部内存 放在节电模式指令后的下一步操作。
技术凝聚实力 专业创新出版
2.2.4 特殊寄存器组(SFR)


AT89S51单片机中的特殊功能寄存器(SFR)是非常重要 的内存单元,对于单片机的工程技术人员来说,理解了 SFR也就基本掌握了AT89S51单片机。 AT89S51单片机的SFR包括内部的I/O口锁存器、累加器、 定时器、串行口、中断等各种控制寄存器和状态寄存器, 共26个SFR,它们离散地分布在80H~0FFH的SFR地址空间 内,其余空缺内存位置为保留空间,为将来单片机内核 升级使用,特殊功能寄存器名及对应的地址


SP是一个8为的SFR,它用来指示出堆栈顶部在内部RAM 块中的位置。系统复位后SP的值为07H,若不对SP设置 初值,则堆栈在08H开始的区域,为了不占用工作寄存 器R0~R7的地址,一般在编程时应设置SP的初值。 数据进入堆栈前,SP加1(成为压栈);数据从堆栈中 取出(成为出栈)后,SP减1。

AT89S51单片机中断系统和定时计数器

AT89S51单片机中断系统和定时计数器

2、定时/计数器工作方式控制寄存器TMOD
TMOD 位定义 D7 GATE D6 C/T D5 M1 D4 M0 D3 GATE D2 C/T D1 M1 D0 M0
高4位控制T1,低4位控制T0 (1)GATE——门控位。GATE一般情况下设置为 0,此时定时/计数器的运行仅受TR0/TR1控制。 (2)C/T——定时/计数选择位。 C/T=0,为定时方式,对内部的机器周期计数。 C/T=1,为计数方式,对引脚上的脉冲信号计数, 负跳变有效。
最小系统
360Ω
P3.2
S
+5V
+5V 10K
按键信号加到外部中断0的引脚P3.2上,当S不 按下时,P3.2引脚为高电平,按下则为低电平,在 按键的过程中P3.2引脚产生中断请求信号
程序如下:
ORG 0000H
LJMP SETUP
ORG 0003H
SETB IT0
SETB EX0 SETB EA MAIN: LJMP MAIN INEX0P:MOV P1,A RL A RETI END
中断扫描控制方式独立式键盘接口电路 (在LED数码管动态扫描电路基础上)
定义S1~S4四个按键的功能分别为:第一个数码管 上数据加1(0~9循环)、第二个数码管上的数据减1 (0~9循环)、4位数据左移一次、4位数据右移一次。
4.4.4、行列式键盘接口电路
1、接口电路
又称做矩阵 式键盘接口
(2)将列线作为输出线,行线为输入线, 在所有列线输出上0,读行线。
3、中断服务
中断服务就是中断 源 请 求 CPU 做 的 任 务 , 需要编程者用指令来实 现。
4、中断返回 中断返回和子程序的返回类似,需要执 行一条返回指令RETI RETI ;①(SP)→PC15~8,SP-1→SP。 ;②(SP)→PC7~0,SP-1→SP。 中断返回时完成的操作: (1)恢复断点地址。 (2)开放同级中断 。

单片机第3章 AT89S51单片机原理与基本应用系统

单片机第3章  AT89S51单片机原理与基本应用系统
当调用子程序或中断发生时,PC值也会改变。
2、内部数据存储器(内RAM)
AT89S51单片机内部有128B字节划分为三部分: 工作寄存器区、位寻址区和数据缓冲区。
30~7FH
数据 缓冲

位寻址 20~2FH 区
18~1FH 3区 10~17H 2区 08~0FH 1区 00~07H 0区 (R0~R7)
0区(00H~07H)
1区(08H~0FH)
2区(10H~17H)
3区(18H~1FH)
在任一时刻只有一个区作为当前的工作寄存器 区,相应的空间单元作为工作寄存器使用。工作寄 存器区的选择可通过程序状态字PSW中的D4、D3 位实现。不是当前工作寄存器区的可以作为一般的 RAM空间使用。
操作方式:8位整体操作。
二、AT89S51单片机引脚功能
1、电源 VCC(P40)——芯片电源,接+5V。 VSS(P20) ——接电源地。
2、时钟 XTAL1(P19)——晶体振荡电路的反相器
输入端 XTAL2(P18)——晶体振荡电路的反相器
输出端。
使用内部振荡电路时,该引脚外接石英晶 体和补偿电容。使用外部振荡输入时从 XTAL2输入,此时XTAL1需接地。
MOV指令操作 MOVX指令操作
RAM地址空间
1、程序存储器(ROM) 不管是内部的还是外部的ROM,开头的
0003H~002AH空间地址是中断源的入口地址区,是专 用单元,一般情况下用户不能用来存放其它程序。
CPU是根据PC(程序计数器)值从ROM中取指 令来执行的。CPU每从ROM中读取一个字节,自动执 行(PC)+1→PC,即PC指向下一个地址空间,一般 情况下CPU是按ROM地址空间顺序从小到大依次执行。 只有执行的指令是转移类指令,才根据转移类指令所指 示的新地址,调整PC值,然后根据新的PC值从对应的 地址空间中取指令来执行。

第7章AT89S51单片机的定时器计数器

第7章AT89S51单片机的定时器计数器

图7-4 定时器/计数器方式0的逻辑结构框图
9
方式0为13位计数器,由TLx(x = 0,1)的低5位和THx的
高8位构成。TLx低5位溢出则向THx进位,THx计数溢出则把 TCON中的溢出标志位TFx置“1”。 图7-2中,C/T*位控制电子开关决定2种工作模式。 (1)C/T*=0,电子开关打在上面,T1(或T0)为定时器工
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的
状态控制位C/T* 、GATE、TR0 ,而TH0被固定为一个8位 定时器(不能作为外部计数模式),并使用定时器T1的状态 控制位TR1,同时占用定时器T1的中断请求源TF1。
16
2.T0工作在方式3时T1的各种工作方式 一般情况下,当T1用作串口波特率发生器时,T0才工作在
方式3。T0方式3时,T1可为方式0、1、2,作为串口波特率发
生器,或不需要中断的场合。
17
图7-8
T0方式3的逻辑结构框图
(1)T1工作在方式0
T1的控制字中M1、M0 = 00时,T1工作在方式0,工作 示意图如图7-9所示。
图7-9
T0方式3时T1为方式0工作示意图
(2)T1工作在方式1 当T1的控制字中M1、M0 = 01时,T1工作在方式1,工 作示意见图7-10。
TCON字节地址88H,可位寻址,位地址为88H~8FH。格
式见图7-3。
图7-3 TCON格式
7
第6章已介绍与外中断有关的低4位。这里仅介绍高4位功能。
(1)TF1、TF0—计数溢出标志位 当计数器计数溢出时,该位置“1”。使用查询方式时,此 位可供CPU查询,但应注意查询后,用软件及时将该位清 “0”。使用中断方式时,作为中断请求标志位,进入中断服务

单片机第8章 AT89S51单片机串行通信技术

单片机第8章 AT89S51单片机串行通信技术
AT89S51单片机的串口由2个数据缓冲器、1个移位寄存器和1 个串行控制寄存器等组成。数据缓冲器由串行接收缓冲器和发 送缓冲器构成,它们在物理上是独立的,既可以接收数据也可 以发送数据,还可以同时发送和接收数据。接收缓冲器只能读 出,不能写入,而发送缓冲器则只能写入,不能读出。它们共 用一个地址(99H)。
8.1.3数据缓冲寄存器SBUF
数据缓冲寄存器SBUF用于保存要发送的数据或 者从串口接收到的数据,在特殊功能寄存器区的 地址是99H。CPU执行写 MOV SBUF,A指令便 开始触发串口数据的发送。SBUF便一位一位地 发送数据,发送完成后置标志TI=1;在CPU允许 接收串行数据的时,外部串行数据经RXD送入 SBUF时,电路便自动启动接收,第9位则装入 SCON寄存器的RB8位,直至完成一帧数据后将 RI置1,当串口接收缓冲器接收到一帧数据时,可 以执行MOV A,SBUF指令进行读取。
第8章 AT89S51单片机串行通信接 口技术
单片机原理、应用与仿真
第8章 AT89S51单片机串行通信接口技术
【知识目标】
1.掌握串行口的工作原理及相关的特殊功能寄存器。 2.熟悉标准串行接口的硬件接口设计。 3.掌握串行通信程序的设计。
【技能目标】
1.掌握串行口的硬件接口电路设计及软件驱动程序设计。 2.掌握基于PROTEUS的串行通信接口电路的仿真调试。
98H
位号 SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0
单片机原理、应用与仿真
8.1.1串行口控制寄存器SCON
SM0 SM1:串行口4种工作方式的选择位。如表 8-1所示。
表8-1串行通信工作方式
SM0

单片机第3章 AT89S51单片机的指令系统

单片机第3章 AT89S51单片机的指令系统

单片机第3章 AT89S51单片机的指令系统在单片机的世界里,指令系统就像是指挥单片机工作的“语言”,它决定了单片机能够完成哪些任务以及如何高效地完成这些任务。

AT89S51 单片机的指令系统丰富多样,为我们实现各种功能提供了强大的支持。

首先,让我们来了解一下指令的基本格式。

AT89S51 单片机的指令通常由操作码和操作数两部分组成。

操作码指明了要执行的操作,比如加法、减法、数据传送等;操作数则提供了操作所需的具体数据或者数据的地址。

AT89S51 单片机的指令可以分为数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令等几大类。

数据传送类指令是最为基础和常用的指令之一。

比如 MOV 指令,它可以实现将一个数据从一个位置传送到另一个位置。

例如 MOV A,50H ,就是将十六进制数 50H 传送到累加器 A 中。

算术运算类指令用于进行加、减、乘、除等运算。

例如 ADD A, R0 ,就是将累加器 A 的内容和寄存器 R0 的内容相加,结果存放在累加器A 中。

逻辑运算类指令则用于对数据进行与、或、异或等逻辑操作。

比如ANL A, 0FH ,就是将累加器 A 的内容和十六进制数 0FH 进行与运算。

控制转移类指令在程序的流程控制中起着关键作用。

比如JZ label ,如果累加器 A 的内容为 0 ,则程序跳转到指定的 label 处执行。

在实际编程中,我们需要根据具体的需求灵活运用这些指令。

比如,当我们要实现一个简单的加法运算时,可以使用算术运算类指令;当需要在不同的程序段之间跳转时,就需要用到控制转移类指令。

为了更好地理解和运用 AT89S51 单片机的指令系统,我们还需要了解一些指令的执行周期和寻址方式。

指令的执行周期决定了指令执行的速度。

不同的指令执行周期可能不同,这会影响程序的运行效率。

而寻址方式则决定了如何获取操作数。

AT89S51 单片机支持直接寻址、寄存器寻址、寄存器间接寻址、立即寻址等多种寻址方式。

第三章 AT89S51单片机的结构和原理

第三章 AT89S51单片机的结构和原理
VCC RP1
1 2 3 4 5 6 7 8 9 RESPACK-8 1K*8 P17 P16 P15 P14 P13 P12 P11 P10 P14 8 7 6 5 4 3 2 1
U1
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3.7/RD P3.6/WR P3.5/T1 P3.4/T0 P3.3/INT1 P3.2/INT0 P3.1/TXD P3.0/RXD P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 17 16 15 14 13 12 11 10 28 27 26 25 24 23 22 21 32 33 34 35 36 37 38 39
读引脚
读引脚
图3-3 P0口的一位结构图
图3-4 P1口的一位结构图
单片机的引脚(P0口)

P0.0—P0.7: 双向I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向8位数据口 和输出低8位地址复用口;不接外部程序存储器 时可作为8位准双向I/O口使用。
读锁存器 2 地址/数据 控制 =0 0 3 0
5V K
22μF C1 RST
AT89S51
K R2 200Ω
R1 AT89S51 1KΩ
R2 1KΩ
22μF C1
R1 AT89S51 1KΩ
(a)上电复位电路
(b)按键电平复位电路 图3-14 复位电路
(c)按键脉冲复位电路
第五节 I/O口应用举例
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A T89S51单片机简介
一、AT89S51单片机简介
AT89S51 为 ATMEL 所生产的可电气烧录清洗的 8051 相容单芯片,其内部程序代码容量为4KB
(一)、AT89S51主要功能列举如下:
1、为一般控制应用的 8 位单芯片
2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)
3、内部程式存储器(ROM)为 4KB
4、内部数据存储器(RAM)为 128B
5、外部程序存储器可扩充至 64KB
6、外部数据存储器可扩充至 64KB
7、32 条双向输入输出线,且每条均可以单独做 I/O 的控制
8、5 个中断向量源
9、2 组独立的 16 位定时器Array
10、1 个全多工串行通信端口
11、8751 及 8752 单芯片具有数据
保密的功能
12、单芯片提供位逻辑运算指令
(二)、AT89S51各引脚功能介绍:
VCC:
AT89S51 电源正端输入,接+5V。

VSS:
电源地端。

XTAL1:
单芯片系统时钟的反相放大器输入端。

XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。

RESET:
AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

EA/Vpp:
"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。

因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。

如果是使用 8751 内部程序空间时,此引脚要接成高电平。

此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。

ALE/PROG:
ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。

AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。

平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。

此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。

PSEN:
此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。

AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。

PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。

其他三个I/O端口(P1、P2、
P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。

如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。

设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。

PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS 的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。

P2除了当做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。

PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。

如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。

PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。

其引脚分配如下:
P3.0:RXD,串行通信输入。

P3.1:TXD,串行通信输出。

P3.2:INT0,外部中断0输入。

P3.3:INT1,外部中断1输入。

P3.4:T0,计时计数器0输入。

P3.5:T1,计时计数器1输入。

P3.6:WR:外部数据存储器的写入信号。

P3.7:RD,外部数据存储器的读取信号。

相关文档
最新文档