中断系统定时器计数器和串行口知识点
第5章 定时与中断1
第5章定时/计数器与中断系统⏹5.1 定时/计数器结构特点及控制⏹5.2 中断系统结构及管理⏹5.3 定时/计数器及中断系统综合应5.1 定时/计数器结构特点及控制⏹5.1.1 定时/计数器结构⏹5.1.2 定时/计数器工作方式⏹5.1.3 定时/计数器控制寄存器⏹5.1.4 定时/计数器常数的计算5.1.1 定时/计数器结构⏹定时/计数器简称定时器,8031单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
⏹T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T 0(P 3.4)和T 1(P 3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
5.1.2 定时/计数器工作方式⏹每个定时/计数器还有4种工作模式,也就是每个定时器可构成4种电路结构模式。
⏹在模式0、1和2,T0和T1的工作模式相同,在模式3,两个定时器的模式不同。
下面以T1为例,分述各种工作模式的特点和用法。
图5-1 定时/计数器T1(T0)工作模式0图5-2 定时/计数器T1(T0)工作模式1图5-3 定时/计数器T1(T0)工作模式2图5-4 定时/计数器T1(T0)工作模式35.1.3 定时/计数器控制寄存器定时器共有2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON两个8位寄存器,设置各个定时器的操作模式和控制功能。
1.工作模式控制寄存器—TMOD (89H )GATE C/T M 10M GATE C/T1M 0M 控 制 T 1控 制 T 089H和T 类同01M 0M 00011011方 式方式0方式1方式2方式301定时器模式计数器模式01与INT 无关00与INT 有关图5-5 定时器工作模式寄存器TMOD2.定时器控制寄存器—TCON(88H)TCON 位地址DD1D2D3D4D5D6D7IT0IE0IT11IETR0TF0TR1TF188898A8B8C8D8E8F见下一节{00:停T 计数1:启T 计数0:无T 中断(硬件复位){1:有T 溢出中断0:无T 中断(硬件复位)10:停T 计数{1:有T 溢出中断1:启T 计数{111图5-6 定时器工作模式寄存器TCON返回本节5.1.4 定时/计数器常数的计算⏹1.计数器初值的计算⏹把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式:TC=M-C⏹式中,M为计数器模值,该值和计数器工作方式有关。
《单片机原理及应用》第6章 51单片机中断系统应用基础
• 姜志海 王蕾 姜沛勋 编著
• 电子工业出版社
第6章 51单片机中断系统应用基础
• 本章主要介绍中断系统的应用。 • 包括:
6.1 中断结构与控制 6.2 中断优先级与中断子程序 6.3 外部中断应用举例 6.4 实验与设计
6.1 中断结构与控制
5个中断源
• 外部中断:外部中断0 /INT0
6.2 中断优先级与中断子程序
• 优先级排列如下(从高到低): 外部中断0 定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口中断
6.3 外部中断应用示例
• 51单片机提供了2个外部中断源 : • 外部中断0请求,占用P3.2引脚,其中断请求号为0 • 外部中断1请求,占用P3.3引脚,其中断请求号为2 • 外部中断源的初始化时通过设置相应的特殊功能寄
注意:
和例题5-6的区别
修改:
(1)按3下S0,P1口的发光状态发生反转 (2)按一下,灯变为闪烁,按一下,灯全亮。
【例6-2】当S0动作时,P1.0端口的电平反向,当外S1 动作,P1.7端口的电平反向
• 修改:
• (1)S0控制P1.0—P1.3的灯,S1控制P1.4—P1.7的灯 。
• (2)按下S0后,点亮8只LED;按下S1后,变为闪烁状 态。
(3)IE寄存器中的EA、EX0、EX1位
• EA为中断允许总控制位;EX0、EX1为外 部中断0中断和外部中断1中断的中断允 许位。如:
• SETB EA;开放总的中断控制 • SETB EX0;允许外部中断0中断 • CLR EX1;禁止外部中断1中断
【例6-1】初始状态时低4位灯亮,高4位的灯灭,编程 实现按一下S0,P1口的发光状态发生反转。
第5章 MCS-51中断、定时计数器及串行接口
22:26
7
保护现场
课本P103
保护现场是指由于CPU执行中断处理程序时, 可能使用主程序中用过的累加器、寄存器或标志位。
为了使这些寄存器的值在中断服务程序中不被 冲掉,进入中断服务程序前,要将它们保护起来。
中断服务程序执行完,必须恢复原寄存器的内 容及原程序中断处的地址,即恢复现场和恢复断点。
22:26
课本P105
一、中断请求控制
(1) TCON中的中断请求标志位 Timer Controller
TCON为定时/计数器控制寄存器,其字节 地址为88H,可位寻址。这个寄存器除了控制定 时/计数器T0和T1的溢出中断外,还控制外部中 断的触发方式和锁存外部中断请求标志位。
图5-3 TCON中的各位定义
22:26
24
2. 中断响应过程
课本P110
CPU响应中断后,由硬件自动执行如下的功能操作:
(1)根据请求源的优先级高低,对相应的优先级状态 触发器置1,自动生成长调用指令LCALL addr16。
(2)保护断点,把程序计数器PC的内容压入堆栈。 (3)清除相应的中断请求标志位。 (4)把被响应的中断源所对应的中断服务程序入口地
…
先进后出
…
POP DPL
POP DPH
POP ACC
RETI
最后1条指令 必须是RETI
27
中断响应过程
处理文档 电话铃响 暂停文档 文档中作暂停记号 电话交谈 找出暂停记号位置 继续处理文档
执行主程序(日常事务程序) 中断申请信号有效(中断请求)
暂停执行主程序响应中断 当前PC及寄存器入栈(保护现场)
22:26
5
中断系统的基本问题
c单片机中断详解
例
例62 设置IP寄存器的初始值;使2个外中断请求 为高优先级;其它中断请求为低优先级
1用位操作指令 SETB PX0 ;2个外中断为高优先级 SETB PX1 CLR PS ;串口为低优先级中断 CLR PT0 ;T0低优先级中断 CLR PT1 ;T1低优先级中断
响应中断请求的条件
四 中断返回
▪中断返回由专门的中断返回指令 RETI来实现
五 中断请求的撤消 2 外部中断请求的撤消 1跳沿方式外部中断请求的撤消是自 动撤消的 2电平方式外部中断请求的撤消
六 外部中断的响应时间 外部中断的最短的响应时间为3
个机器周期:
外部中断响应的最长的响应时间为8个机 器周期
注意:如果已在处理同级或更高级中断; 响应时间无法计算
在一个单一中断的系统里;MCS51单片机对 外部中断请求的响应的时间总是在3~8 个机器周期之间
补充:中断服务程序的设计
一 中断服务程序设计的任务 基本任务:
1设置中断允许控制寄存器IE 2设置中断优先级寄存器IP 3对外中断源;是采用电平触发还是跳沿触发 4编写中断服务程序;处理中断请求 前3条一般放在主程序的初始化程序段中
● TF0—T0溢出中断请求标志位 T0 计 数 溢 出 时 ; 由 硬 件 置 1TF0; 向 CPU 申 请 中
断;CPU响应TF0中断时;硬件自动清0TF0;TF0也可由 软件清0 ● TF1—T1的溢出中断请求标志位;功能和TF0类似 TR1 TR0 2个位与中断无关 当MCS51复位后;TCON 被清0;则CPU关中断;所有中断请求被禁止
3 关于C51中断函数的几点说明续
• C51编译器对中断函数编译时会自动在程序的 开始和结束处加上如下内容:开始处对ACC B DPH DPL和PSW入栈;结束时出栈 中断函 数未加using n修饰符时;开始处还要将R0R1 入栈;结束时出栈 如果中断函数加using n修 饰符;则在开始将PSW入栈后还要修改中PSW 的工作寄存器选择位RS0和RS1
51单片机_片内外设汇总
锁存器
写锁存器
读引脚 返回
片内外设
1.3 P2口
特点: “通用数据I/O端口”和“高八位地址总线”端 口
读锁存器
地址/数据 1/0
控制
Vcc
内部上拉电阻
内部总线
D CL
Q /Q MUX
(地址/数据=0)
锁存器 写锁存器
P2.x 引脚
读引脚
返回上一次
片内外设
与P0口一样,P2口在系统使用外部存储器时,做高八位的 地址总线。 应当注意的是:仅使用外部数据存储器时,P2口分两种情 况: 1)仅仅使用256B的外部RAM时,即使用movx a,@r0指令 访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器, 这时P2口无用,所以在这种情况下,P2口仍然可以做通用 I/O端口。 2)如果访问外部ROM或使用大于256BRAM时,P2口必须 作为外存储器的高八位地址总线。 如:movx a,@dptr ;访问外部数据存储器 movc a,@a+dptr ;访问外部程序存储器 这里使用了16位的寄存器DPTR
片内外设
1. 5 并行端口在使用时应注意的几个问题
“拉电流”还是“灌电流”----与大电流负载的连 接 (我们以美国ATMEL公司生产的AT89C51为例) 1, 使用灌电流的方式与电流较大的负载直接 连接时, 端口可以吸收约20mA的电流而保证端 口电平不高于0.45V(见右上图)。
2,采用拉电流方式连接负载时,AT89C51所 能提供“拉电流”仅仅为80μA,否则输出的 高电平会急剧下降.如果我们采用右下图的方式, 向端口输出一个高电平去点亮LED,会发现,端 口输出的电平不是“1”而是“0”! 当然,不是所有的单片机都是这样,PIC单 片机就可以提供30mA的拉电流和灌电流。单对 于大多数IC电路,最好还是使用“灌电流”去 推动负载。
中断及串行口
IP Bቤተ መጻሕፍቲ ባይዱH PT2 PS
D0 PT1 PX1 PT0 PX0
PX0:外部中断0中断优先级控制位。 PT0:定时计数器T0的中断优先级控制位。
PX1:外部中断1中断优先级控制位。
PT1:定时计数器T1的中断优先级控制位。 PS :串行口中断优先级控制位 PT2:定时计数器T2的中断优先级控制位。 各个中断优先级控制位设置为1,表示设置为高优先级;设置 为0,表示设置为低优先级。
2、定时器中断
8051内部有两个16位的定时器/计数器,对内部定时脉冲(主 脉冲经12分频后)或T0/T1引脚上输入的外部脉冲进行计数。 定时器T0/T1在计数脉冲作用下从全“1”变为全“0”时自动 向CPU提出溢出中断请求,以表明定时器T0或T1的定时时间已 到或计数器已溢出。当 CPU响应定时器中断并转入中断服务程 序时由硬件清0中断标志。不使用中断方式时可由软件清0中断 标志。 已知宽度脉冲
服务 中断响应 结束
撤除
适用于外部中断输入为低电平,且中断服务程序中能够清除该中断 源申请信号的情况。
ITx=1,边沿触发。在INTx端连续采样到一个T 的高电平和紧接着一个T的低电平则IEx=1,由该位 申请中断,既使CPU不能立即响应,中断标志仍保留 等待响应,一旦进入中断程序, IEx被CPU自动清除。 此情况适用于以负脉冲形式输入的外部中断请求。
CPU在每个机器周期中采样中断标志,在 下一个机器周期中按先后顺序查询中断标志。 在查询到某一中断标志为1时,则在下一个机 器周期S1期间按优先级别进行中断处理。中断 系统通过硬件生成长调用指令LCALL,将程序 转移到中断入口地址单元,执行相应的中断服 务程序
响应中断时,CPU先置位优先级状态触发 器,接着再执行由硬件产生的长调用指令 LCALL。该指令将程序计数器PC的内容压入堆 栈保护起来。
项目三定时计数器和中断系统应用
(四)中断入口地址
表3-4 中断入口地址
地址
说明
0003H~000AH
外部中断0中断地址区
000BH~0012H
定时/计数0中断地址区
0013H~001AH
外部中断1中断地址区
001BH~0022H
定时/计数1中断地址区
0023H~002AH
串行中断地址区
定时器/计数器的设计步骤 初始化的内容如下: 设置TMOD寄存器参数 计算计数初值 计算出计数初始值并写入TH0、TL0、TH1、TL1中。 计数器的初始值和实际计数值并不相同,两者的换算关系如下:设实际计数值为C,计数最大值为M,计数初始值为X,则X=M-C。其中计数最大值在不同工作方式下的值不同,具体如下:
单击此处添加文本具体内容,简明扼要地阐述你的观点
202X
项目三、定时计数器和中断系统应用
项目三、定时/计数器和中断系统应用--- 任务1.秒脉冲发生器
能力目标 1.能正确运用定时/计数器产生秒信号 2.秒脉冲发生器程序的编写 3.学会中断控制系统的应用 4.秒脉冲发生器程序的仿真调试方法 学习内容 1.掌握定时/计数器的组成及功能 2.掌握单片机内部结构资源:TH0、TL0、TH1、TL1、TMOD、TCON 3.掌握中断控制系统的概念及定时功能 4.理解预置数的用法和溢出的概念
位控制转移指令 JBC bit,rel; 若(bit)=1时,则转移到标号对应的地址,并且同时bit←0。 例如:JBC TF0,NEXT; 若定时器0数据溢出时,即TF0=1时,则转移到标号NEXT对应的地址,并且同时清定时溢出标志TF0←0,这样下次就可以重新定时/计数。
比较转移指令 CJNE A,#data,rel; ≠data,PC+3+rel跳转到目标地址, =data,PC+3顺序向下执行。 CJNE A,direct,rel; CJNE Rn,#data,rel; CJNE @Ri,#data,rel;
51单片机的功能单元(中断定时器等)
1 1
D C Q Q
D0
1
端口锁存器应为“ 。 端口锁存器应为“1”。 3、替代功能 、
P3.0 TXD RXD INT0 INT1 P3.4 P3.5 P3.6 P3.7 T0 T1 WR RD P3.1 P3.2 P3.3
P3W P3R2
பைடு நூலகம்
变异输入 图3、P3口内部结构
10
5.1.5 P0~P3端口功能总结 P0~P3端口功能总结 使用中应注意的问题: 使用中应注意的问题: P0 ~ P3 口都是并行 I/O 口 , 但 P0 口和 P2 口 还可用来构建数 口都是并行I/O I/O口 口和P 电路中有一个MUX 据总线和地址总线,所以电路中有一个MUX,进行转换。 据总线和地址总线,所以电路中有一个MUX,进行转换。 而P1口和P3口无构建系统的数据总线和地址总线的功能, 口和P 无构建系统的数据总线和地址总线的功能, 因此,无需转接开关MUX MUX。 因此,无需转接开关MUX。 只有P 只有P0口是一个真正的双向口,P1~P3口都是准双向口。 是一个真正的双向口 双向口, 都是准双向口 准双向口。 原因: 口作数据总线使用时, 为保证数据正确传送, 原因 :P0 口作数据总线使用时 , 为保证数据正确传送 , 需 解决芯片内外的隔离问题, 解决芯片内外的隔离问题 , 即只有在数据传送时芯片内外 才接通; 否则应处于隔离状态。 为此, 才接通 ; 否则应处于隔离状态 。 为此 , P0 口的输出缓冲器 应为三态门。 应为三态门。 P3 口具有第二功能 。 因此在 P3 口电路增加了第二功能控制 口具有第二功能。因此在P 逻辑。这是P 口与其它各口的不同之处。 逻辑。这是P3口与其它各口的不同之处。
18
5.1.6
51单片机中断系统详解
51单片机中断系统详解51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源INT0---外部中断0/P3.2 T0---定时器/计数器0 中断/P3.4 INT1---外部中断1/P3.3 T1----定时器/计数器1 中断/P3.5 TX/RX---串行口中断T2---定时器/计数器 2 中断第5 最低4 5 默认中断级别最高第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0中断允许寄存器IE位序号符号位EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2 中断允许位。
ET2=1, 打开T2 中断。
ET2=0,关闭T2 中断。
关,。
ES---串行口中断允许位。
关,。
ES=1,打开串行口中断。
关,。
ES=0,关闭串行口中断。
关,。
ET1---定时器/计数器1 中断允许位。
关,。
ET1=1,打开T1 中断。
ET1=0,关闭T1 中断。
EX1---外部中断1 中断允许位。
EX1=1,打开外部中断1 中断。
EX1=0,关闭外部中断1 中断。
ET0---定时器/计数器0 中断允许位。
ET0=1,打开T0 中断。
EA 总中断开关,置1 为开;EX0 为外部中断0 (INT0) 开关,。
ET0 为定时器/计数器0(T0)开EX1 为外部中断1(INT1)开ET1 为定时器/计数器1(T1)开ES 为串行口(TX/RX)中断开ET2 为定时器/计数器2(T2)开ET0=0,关闭T0 中断。
EX0---外部中断0 中断允许位。
EX0=1,打开外部中断0 中断。
EX0=0,关闭外部中断0 中断。
中断优先级寄存器IP位序号位地址------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 -------,无效位。
第5章MCS-51的中断系统
例:写出INT1为低电平触发的中断系统初始化程序
SETB EA; SETB EX1 SETB PX1 CLR IT1
二、 中断服务程序
1、编写中断程序应注意以下几点: ① 为了要跳到用户设计的中断服务程序,在相应入口 地址安排一条跳转指令; ② 在中断服务程序的末尾,安排一条返回指令RETI; ③ 由于在响应中断时,CPU只自动保护断点,所以 CPU的其他现场的保护和恢复也必须由用户在中断服 务程序中安排。
1、T0/T1中断撤除:自动清除TF0 TF1
2、TX/RX中断撤除:不能自动撤除,必须软件清“0” CLR RI CLR TI ANL SCON ,#0FCH
3、外部中断请求的撤除
对于负边沿触发的外部中断,CPU在响应中断后是 用硬件自动清除中断请求标志IE0或IE1。
电平触发时,虽然自动清除中断请求标志IE0或IE1。但 不及时撤除低电平的话会重复响应中断,必须采取措施。
中断允许寄存器IE的单元地址是A8H,各控制位也可 位寻址,故既可以用字节传送指令也可以用位操作指 令来对各个中断请求加以控制。 例:开放T/C1的溢出中断
MOV IE,#88H;
SETB EA SETB ET1
二、 对中断优先级的控制
MCS-51具有两个中断优先级,可由软件设置每个中断 源为高优先级中断或低优先级中断,可实现二级中断 嵌套。
可在中断服务程序开 头安排如下程序: INSVR:ANL P1 ,#0FEHORL Fra bibliotek1,#01H …
RETI END
§4 中断系统的初始化及应用
一、中断系统的初始化 中断初始化是指用户对TCON、SCON、IE等特殊功能 寄存器中的各控制位进行赋值。
中断系统的初始化步骤: 1、 CPU开中断或关中断 2、 某中断源中断请求的允许或禁止(屏蔽) 3、 设定所用中断的中断优先级 4、若为外部中断,则应规定低电平还是负边沿的中断 触发方式
微机原理及单片机应用技术第8章 80C51的中断与定时计数器
定时/计数器的结构
T1引脚
TH1
TL1
TH0
T0引脚
TL0
机器周 期脉冲
TH1、TL1
内部总线
TH0、TL0
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
TCON
TMOD
TCON
外部中断相关位
T1方式
T0方式
TMOD
2020/10/27
21
计数脉冲源
定时/计数器的工作原理
76543210
TCON TF1 TR1 TF0 TR0
字节地址:88H
TFx:Tx溢出标志位。响应中断后TFx有硬件自动清0。 用软件设置TFx可产生同硬件置1或清0同样的效果。
TRx:Tx运行控制位。置1时开始工作;清0时停止工作。 TRx要由软件置1或清0(即启动与停止要由软件控制)。
2020/10/27
2020/10/27
24
定时/计数器的控制示意图
M1M0 工作方式
说
明
00 方式0 13位定时/计数器
01 方式1 16位定时/计数器
10 方式2 8位自动重装定时/计数器
11
方式3
T0分成两个独立的8位定时/计数器; T1此方式停止计数
注意:TMOD不能进行位寻址
2020/10/27
26
控制寄存器TCON
第八章 80C51的中断系统与定时计数器
8.1 80C51单片机的中断系统 8.2 80C51中断处理过程 8.3 80C51单片机的串行口
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
4 中断系统
DELAY:MOV
D1:MOV D2:MOV DJNZ DJNZ
R5,#40
R6,#20 R7,#248 R7,$ R6,D2
;延时0.2秒子程序
DJNZ
RET END
R5,D1
29
【例】利用中断设计一个应用系统,实时显示 P3.2引脚上出现的负跳变脉冲的个数。设此脉 冲数为0~999999个,以压缩BCD码从低位到高 位依次存入3AH、3BH、3CH。 分析:解此题利用中断系统,主程序对中断系 统进行初始化以及实时显示脉冲个数;利用 P3.2引脚上出现的负跳变信号作为中断请求信 号,每中断一次,将3AH~3BH单元内容按 BCD码加1。
;主程序 ;外部中断0中断入口
;初始化 ;INT0为边沿触发 ;开放中断
27
X0:PUSH ACC ;中断服务程序 PUSH PSW ;保护现场 SETB RS0 ;使用工作寄存器组1 CLR RS1 MOV R2,#10 ;闪烁5次(亮、灭10次) MOV A,#00H ;使LED全亮的数据 LP:MOV P1,A LCALL DELAY CPL A DJNZ R2,LP POP PSW POP ACC ;恢复现场 MOV P1,A RETI ;中断返回
;中断返回
33
MOV
MOV MOV
3AH,#0
3BH,#0 3CH,#0 ;计数单元置初值
31
LP:LCALL CZ SJMP X0:PUSH LP
;调用拆字子程序 ;循环显示
LCALL DISP 调用显示子程序 ACC ;中断服务程序,从0003H转来
PUSH
MOV ADD DA
PSW ;保护现场
A,3AH ;取计数值的个位、十位 A,#1 A
51单片机中断系统
《测量与机电控制》核心课程
§5.5 中断系统
1、T0方式0 — 13位方式
振荡器 1/12
T0 TR0 GATE
INT0
+
计数脉冲输 入
定时 器
C/T=0
TL0 TH0 TF0
C/T=1 控制端 低5位 8
位
&
13位计数器
计数 器
《测量与机电控制》核心课程
在TMOD中,各有一个控制位(C/T),分别用于 控制定时/计数器T0和T1是工作在定时器方式还是计数器 方式。
《测量与机电控制》核心课程
§5. 0
TH TL
TH TL0
1
微
溢出
1
0
溢出
处
启动 / 停
理器μP
止 内部总线
工作方式 工作方式
TCON
TMOD
微处理器与T/C的关系
计数输入端P3.4/P3.5作为边沿触发的外部中断的输入, 这时C/T工作于计数方式,计数的初始值为FFH。 (2)利用逻辑电路实现外部中断:
5V
INT0
A
ORG
0003H
B
AJMP INT0
OC门
P1.0 P1.1 P1.2
C INT0:PUSH PSW PUSH A JB P1.2, EI1 JB P1.1, EI2 JB P1.0, EI3 《。测。量与。机电。控制》核心课程
单片机的中断为固定入口式中断,即一响应中断就转入固定入
口地址执行中断服务程序。这些单元中往往是一些跳转指令。
中断优先级(2个)
每个中断源都可由程序指定为高优先级或底优先《级测。量与机电控制》核心课程
《AT89C52单片机原理》知识点梳理
1、单片微型计算机具有结构简单、控制功能强、抗干扰性和可靠性好、性价比高、便于实现嵌入式应用、易于产品化等特点。
2、单片机由中央处理器(控制器、运算器)、存储器、定时器/计数器、并行I/O 口、串行I/O口、中断系统等组成。
3、中央处理器CPU主要由运算器和控制器构成。
运算器的核心部件是算术/逻辑单元,主要完成算术运算与逻辑运算。
4、存储器分为程序存储器和数据存储器,主要功能是存放程序和数据。
5、串行I/O接口用于单片机与串行设备或其他单片机系统的通信。
6、中断是指CPU暂停正在执行的程序转而处理中断源服务程序,在执行完中断服务程序后再返回原来正在执行的程序断点出继续执行。
7、总线包括数据总线、地址总线、控制总线。
8、单片机的发展趋势:提高CPU处理能力、微型化、低电压和低功耗、集成更多资源、引脚的多功能化、低噪声和高可靠性、推行串行扩展总线、Flash型单片机成为主流9、单片机特点:控制性能和可靠性高;体积小、价格低、、易与产品化;外部扩展能力强;性能高、速度快;低功耗、低电压10、嵌入式系统:计算机的一种应用形式,通常指嵌入在其他设备中的微处理机系统。
11、微控制器(MCU)、微处理器(MPU)、数字信号处理器(DSP)、混合处理器和片上系统(SoC)12、AT89C52单片机是低电压、高性能的CMOS8位单片机,片内含8KB的可反复擦鞋Flash只读程序存储器和256B的随机存取数据存储器。
13、运算器的功能主要是进行算术运算、逻辑运算、位处理操作和数据的传送,主要包括算术/逻辑运算单元、累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态字寄存器PSW等。
14、累加器ACC是一个8位寄存器。
15、执行乘法和除法指令时,使用寄存器B。
执行乘法或除法之前,寄存器B 用来存放乘数或除数,乘法或除法指令执行完成后,寄存器B用来存放乘积的高8位或除法的余数。
16、程序状态字寄存器PSW是一个8位的标志寄存器,用来存放当前指令执行后的有关状态。
单片机原理与应用 第五章
第五章MCS-51单片机的中断系统5.1 中断系统概述中断:CPU暂时停止正在执行的程序,自动转去执行需紧迫处理的事件(程序),并在处理完毕后能够返回原来程序暂停的位置,接着继续执行。
5.2 中断源和中断控制5.2.1 中断源:能够让CPU暂停执行的信号(硬件)。
8051单片机有5个中断源:2个内部定时器/计数器T0和T1溢出中断:F0和TF1。
2个外部输入INT0(P3.2)和INT1(P3.3)中断:IE0和IE1。
1个串行口发送/接收中断:TI / RI。
1. 定时器/计数器中断控制寄存器TCON (88H)(1) IT0当IT0=0时,为负电平触发方式,即INT0(P3.2脚)为低电平时,置IE0=1。
当IT0=1时,为边沿负跳变触发方式,即INT0从高变为低电平时,置IE0=1。
(2) IE0为外部中断0的触发标志(申请中断):(当INT0的电平变化时由硬件置位)硬件置位IE0=1时,向CPU请求中断。
在CPU响应中断请求后,当IT0=1时,IE0自动清零;而当IT0=0时,IE0不能自动清零。
(3) IT1 为外部中断1的触发方式控制位:(由软件置位)同IT0。
(4) IE1 为外部中断1的触发标志(申请中断):同IE0。
(5) TF0为T0的溢出标志(申请中断):当T0的(TH0、TL0)计满溢出时,硬件置TF0为“1”,并向CPU申请中断。
CPU响应中断后,TF0自动清零。
(6) TF1为T1的溢出标志(申请中断):当T1的(TH1、TL1)计满溢出时,硬件置TF1为“1”,并向CPU申请中断。
CPU响应中断后,TF1自动清零。
2. 串行口控制寄存器SCON (98H)1) TI2) RI:串行口接收中断标志位。
接收完成后RI=1。
5.2.2 中断控制1. 中断允许控制寄存器IE (A8H)1) EA当EA=0时,所有中断都禁止;当EA=1时,所有中断都允许。
2) ES:串行口中断允许控制位当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断。
51单片机定时器、串口、中断
51单⽚机定时器、串⼝、中断⽂章⽬录MCS-51功能单元⼀、定时器&计数器1. 数量:两个可编程的16位的定时器/计数器T0和T1;都是16位加法计数结构;分为⾼8位和低8位;TH0、TL0,TH1、TL1;定时器/计数器T0、T1是80C51的中断源之⼀,当数据寄存器溢出,则向CPU申请中断。
数据寄存器的复位状态为0。
为使计数值或定时值满⾜⾃⼰的要求,需预先将数据寄存器赋值,称为初值设定,中断中也要重新设定初值。
2. 定时器和计数器本质:都是计数器,对下降沿进⾏计数,计数达到溢出后置为标志位或者进⼊中断;3. 两者的区别:定时器是对内部的机械周期脉冲进⾏计数,每个脉冲都是⼀个机械周期;定时时间=机器周期*(2^L-初值) (L=13,16,8)计数器则是通过外部IO⼝进⾏脉冲计数,⼀个脉冲加⼀个数;对应IO⼝:T0-P3.4,T1-P3.5;计数长度:计数长度=(2^L-初值) (L=13,16,8)两者的模式切换通过TMOD控制4. TMOD结构图:5. TMOD详解GATE:门控位GATE =1,由中断引脚INT0(P3.2)、INT1(P3.3)和TCON中的位TR0、TR1共同控制来启动定时器/计数器GATE =0,由TR0和TR1置位来启动定时器/计数器**(⼀般为0)**C/!T:模式选择位:1时,计数器模式;0时,定时器模式;M0 & M1共同控制⼯作⽅式:项⽬开发⼀般⽤01,考试⼤概率考00;6. 启动停⽌与中断控制寄存器TCONTFx:定时器或者计数器溢出时置位1,请求中断,中断程序进⼊后⾃动清零;TRx:定时器启动控制位,当其等于1时定时器/计数器启动;7. 中断允许控制寄存器:IEETx:定时器/计数器的中断允许位EA:CPU总中断的允许位8. 定时器/计数器使⽤:(重点)⼯作⽅式的设置://设置定时器0⼯作在16位模式//C语⾔TMOD=0x01; //定时器//汇编MOV TMOD, #01H;计数初值的计算+装载:伪代码://机械周期1us,设置500us中断⼀次为FE0C//C语⾔TH0=0xFE;TL0=0x0C;//汇编MOV TH0, #0FEH ;MOV TL0, #0cH ;中断允许位的设置:伪代码://CEA=1;ET0=1;//assemblySETB EA ;turn on all interruptSETB ET0 ;turn on 0 interrupt开启定时器:伪代码://cTR0=1;//assemblySETB TR0 ;turn onCLR TR0 ;turn off !9. 使⽤实例:定时器使⽤⽅式(中断⽅式):ORG 0000H;AJMP MAIN;ORG 001BH;AJMP IRQ1;MAIN:MOV TMOD, #00H ;⼯作模式0,⾼8+低5MOV TH1, #0FCHMOV TL1, #03HSETB TR1;SETB ET1;SETB EA;AJMP $;IRQ1:MOV TMOD, #00HMOV TH1, #0FCHCPL P1.0RETI ;中断返回⼀定要加!计数器使⽤⽅式(中断⽅式):ORG 0000H;AJMP MAIN;ORG 001BH;AJMP IRQ1;MAIN:MOV TMOD, #04H ;计数器模式MOV TH1, #0FCH ;⼀千个下降沿中断⼀次 MOV TL1, #03HSETB TR1;SETB ET1;SETB EA;AJMP $;MOV TMOD, #00HMOV TH1, #0FCHCPL P1.0RETI ;中断返回⼀定要加!查询⽅式则是判断TF溢出标志,变⾼后进⼊⾃定义韩式处理数据,清空标志;⼆、并⾏⼝&串⾏⼝并⾏⼝:并⾏传输数据(不常⽤)占据资源⼤,错误率⾼,但快串⾏⼝:(重要)稳定,占据IO⼝⼩,准确,稍微慢1. 串⾏⼝控制寄存器SCON:SM0和SM1:串⾏⼝⽅式选择位;00-移位寄存器⽅式01-8位UART,波特率可变10-9位UART,波特率为fosc/64或fosc/32(PCON决定)11-9位UART,波特率可变⽅式1为常⽤通信⽅式;⽅式2、3为多机通信,⽅式0为移位寄存器,不常⽤;重要标志位:TI:发送完成标志RI:接收完成标志2. 串⼝波特率与定时器1关联,公式如下:波特率=2^SMOD * fosc / [32 * 12(2^K-初值)];(fosc系统主频)波特率翻倍寄存器:PCON只有最⾼位(SMOD)有效:为1时波特率翻倍,为0时不翻倍⽅式1串⼝通信接收代码:ORG 0000HLJMP MAINORG 0023HLJMP RX_TIMAIN:MOV SCON, #50HMOV PCON, #00HMOV TMOD, #02HMOV TH1, #0FDHMOV TL1, #0FDHSETB TR1SETB EASETB ESRX_TI:PUSH ACCMOV TH1, #0FDHMOV TL1, #0FDHMOV A, SBUF;处理POP ACCRETI发送套⽤代码:MOV SBUF, AJNB TI, $CLR TIRET三、中断系统所有中断控制位:TCON:TF1、TF0:定时器溢出标志、请求中断:IE1、IE0:外部中断溢出请求:IT1、IT0:外部中断触发⽅式选择-1下降沿触发、0低电平触发SCON:内部TI、RI触发接收发送中断。
单片机时钟中断解析
单片机时钟中断解析本文根据<新概念51单片机C语言教程>整理一. 中断一般概念51单片机一共设有5个中断源. 引起CPU中断根源, 成为中断源. 中断嵌套, 也即单片机在处理一个中断时又发生了一个中断, 单片机中断当前中断程序, 转而去处理新的中断程序. 中断优先级, 通过中断优先级寄存器设置.1. 中断源及其默认优先级其中, T2是52单片机独有的.2. 中断控制中的特殊功能寄存器SFR(1). 中断允许寄存器IE(Interrupt Enable)(2). 中断优先级寄存器IP(Interrupt Priority)二. 单片机的定时器中断定时器/计数器实质是一个16位的加1计数器, 由高8位(THx)和低8位(TLx)两个寄存器组成. TMOD是定时器/计数器的工作方式寄存器, 确定工作方式和功能; TCON是控制寄存器, 控制T0, T1的启动和停止及设置溢出标志.1. 定时器/计数器工作方式寄存器TMOD定时器/计数器工作方式寄存器在特殊功能寄存器中, 字节地址为0x89, 不能位寻址, TMOD 用来确定定时器的工作方式及功能选择. 单片机复位时TMOD全部被清0. 各位的含义如下:2. 定时器/计数器控制寄存器TCON3. 中断服务程序的C语言写法C51的中断函数格式如下:void func_name() interrupt 中断号[using 工作组]{//中断服务程序内容}●中断号: 指单片机中几个中断源的序号. 是编译器识别不同中断的唯一符号.●工作组: 可选部分. 指这个中断函数使用单片机内存中4组工作寄存器中的哪一组, C51编译器在编译时会自动分配工作组, 故通常省略.C语言中断程序示例如下:void T1_time() interrupt 3{TH1 = (65536-10000)/256;TL1 = (65536-10000)%256;}三. 补充1. 普通51系列单片机存储空间资源分配情况。
第4章 MCS-51单片机中断、定时系统及串行数据通信
表4-2 中断源入口地址表 中断源 外部中断0 中断服务程序入口地址 0003H
定时器/计数器T0 外部中断1 定时器/计数器T1 串行口中断
000BH 0013H 001BH 0023H
单片机的两个相邻中断源中断服务程序入口地址 相距只有8个单元,一般中断服务程序容纳不下,因此 在该中断的入口地址处放一条长跳转指令LJMP,这 样就可以转到64KB的任何可用区域了。在2KB范围内 转移可用短跳转AJMP指令。
表4-1 同级中断源优先级排列顺序
中断源
外部中断0(IE0) 定时器/计数器T0中断(TF0) 外部中断1(IE1) 定时器/计数器T1中断(TF1)
同级内的优先级
最低级
串行口中断(RI+TI)
最高级
当单片机系统复位后,IE中各位均被清0,所有 中断源禁止;IP中各位均被清0,5个中断源均为低优 先级。
SET SET
SET
ET0 ET1
EA
;定时器/计数器0允许中断 ;定时器/计数器1允许中断
;CPU开中断
用字节操作指令 MOV IE,#8AH 或 MOV A8H,#8AH
(2)中断优先级控制寄存器(IP) MCS-51单片机系统的中断源有两个优先级,每 个中断源均可由中断优先级寄存器IP来设置优先级别。 IP的字节地址为0B8H,位地址为0B8H~0BFH。与 中断有关的控制位如下: 位地址 0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H
TMOD是定时器的工作方式寄存器,TCON是控制 寄存器,用于对T0和T1的管理和控制。
2.定时器/计数器的结构的工作原理 16位定时器/计数器的核心是一个加1计数器,如图 4-4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章中断系统、定时器/计数器和串行口考试知识点:1、中断系统(1)中断的概念中断:CPU正在执行程序的过程中,由于CPU之外的某种原因,有必要暂停该程序的执行,转而去执行相应的处理程序,待处理程序结束之后,再返回原程序断点继续运行的过程。
①定时器控制寄存器TCON格式如下:位 D7 D6 D5 D4 D3 D2 D1 D0TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0位地址 8F 8E 8D 8C 8B 8A 89 88IT0=0,为电平触发方式。
低电平有效。
IT0=1,为边沿触发方式。
输入脚上电平由高到低的负跳变有效。
IE0=1,说明有中断请求,否则IE0=0。
②中断允许控制寄存器IE其各位的定义如下:位 D7 D6 D5 D4 D3 D2 D1 D0代号 EA —— ES ET1 EX1 ET0 EX0EA: 开放或禁止所有中断。
ES:开放或禁止串行通道中断。
ET1:开放或禁止定时/计数器T1溢出中断。
EX1:开放或禁止外部中断源1。
ET0:开放或禁止定时/计数器T0溢出中断。
EX0:开放或禁止外部中断源0。
③中断优先级控制寄存器IP各位的定义如下:位 D7 D6 D5 D4 D3 D2 D1 D0代号——— PS PT1 PX1 PT0 PX01为高优先级、0为低优先级。
如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。
查询次序为:外部中断0、T0中断、外部中断1、T1中断、串行中断。
(4)响应中断的必要条件①有中断源发出中断请求。
②中断允许寄存器IE相应位置“1”,CPU中断开放(EA=1)。
③无同级或高级中断正在服务。
④现行指令执行到最后一个机器周期且已结束。
若现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且其紧接着的指令也已执行完。
(5)中断的相应过程①首先设置相应的优先级状态触发器,以便屏蔽后面的同级或低级中断请求。
②保护现场程序断点地址,即把当前PC的内容送入堆栈(硬件执行LCALL指令)。
③进入指定的中断服务程序入口地址。
2、定时器/计数器(1)定时计数的基本原理定时功能:每个机器周期计数器加1。
计数功能:T0(P3.4)和T1(P3.5)输入计数脉冲,每一来一个脉冲计数器加1。
(2)用于定时计数的寄存器的设置①定时器控制寄存器TCON格式如下:位 D7 D6 D5 D4 D3 D2 D1 D0TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0位地址 8F 8E 8D 8C 8B 8A 89 88TF1、TF0——计数溢出标志位。
当计数器产生计数溢出时,由硬件置1。
采用查询方式,它是供查询的状态位。
采用中断方式,作为中断请求信号。
TR1、TR0——计数运行控制位。
为1时,启动定时器/计数器工作;为0时,停止定时器/计数器工作。
②工作方式控制寄存器TMOD其格式如下:GATE:门控位。
当GATE=1时,同时INTx为高电平,且TRx置位时,启动定时器,外部启动。
当GATE=0时,每当TRx置位时,就启动定时器,是内部启动方式。
C/T:选择定时器功能还是计数器功能。
该位置位时选择计数器功能;该位清零时选择定时器功能。
M1M0:这两位指定定时/计数器的工作方式,可形成四种编码,对应四种工作方式:M1 M0 方式说明0 0 0 TLx低5位与THx中8位构成13位计数器0 1 1 TLx与THx构成16位计数器1 02 可自动再装入的8位计数器,当TLx计数溢出时,THx内容自动装入TLx。
1 13 对定时器0,分成两个8位的计数器;对定时器1,停止计数。
(3)各种工作方式计数初值计算公式方式0:定时时间T=(8192-计数初值)×机器周期计数次数C=8192-X方式1:定时时间T=(65536-计数初值)×机器周期计数次数C=65536-X方式2:定时时间T=(256-计数初值)×机器周期计数次数C=256-X3、串行口(1)串行通信的基本概念①通信方式有2种:并行通信,串行通信。
并行通信是指数据的各位同时进行传送(发送或接受)的通信方式。
串行通信指数据是一位一位按顺序传送的通信方式。
②串行通信的传输方式有3种:单向(或单工)配置,只允许数据向一个方向传送;半双向(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;全双向(全双工)配置,允许同时双向传送数据。
③在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,在帧格式中,一个字符由4个部分组成:起始位,数据位,奇偶校验位和停止位。
④设备同步对通信双方有2个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。
(2)8051串行口的结构①串行口控制寄存器SCON:数据格式SM0、SM1:串行口工作方式选择位。
可以设置4种工作方式。
SM0、SM1 工作方式功能说明波特率00 方式0 8位移位寄存器方式f osc/1201 方式1 8位异步通信方式T1溢出率的16或32分频10 方式2 9位异步通信方式f osc的32或64分频11 方式3 9位异步通信方式T1溢出率的16或32分频SM2:允许方式2、3多机通信控制位。
串口工作方式 SM2位功能说明方式0 SM2=0 此位无意义,设为0方式1 SM2=1只有接收到有效的停止位,才将数据送入接收缓冲器保存,并置RI=1,否则数据丢失,不置位RISM2=0 无论是否接收到有效的停止位,都将数据保存,并置位RI方式2、3 SM2=1只有接收到第9位为1,才将数据送入接收缓冲器保存,并置RI=1,否则数据丢失,不置位RISM2=0 无论是否接收到第9位为1,都将数据保存,并置位RI②电源控制寄存器PCON:用来控制串行口的波特率倍增,以及在CHMOS系列单片机中实现电源控制,其格式如下:87H SMOD PD IDL(3)89c51单片机串行口的4种工作方式传送的数据位数叙述如下:①方式0:移位寄存器输入/输出方式。
串行数据通过RXD线输入或者输出,而TXD线专用于输出时钟脉冲给外部移位寄存器。
方式0可用来同步输出或接收8位数据(最低位首先输出),波特率位fosc/12。
其中fosc为单片机的振荡器频率。
②方式1:10位异步接收/发送方式。
一帧数据包括1位起始位(0)、8位数据位和1位停止位(1)。
串行接口电路在发送时能自动插入起始位和停止位;在接收时,停位进入特殊功能寄存器SCON的RB8位。
方式1的传送波特率是可变的,可通过改变内部定时器的定时值来改变波特率。
③方式2:11位异步接收/发送方式。
除了1位起始位、8位数据位和一位停止位之外,还可以擦入第9位数据位。
④方式3:同方式2,只是波特率可变。
辅助练习:一、填空题1.当使用慢速外设时,最佳的传输方式是()。
2.MCS-51单片机有()个中断源,有()个中断优先级,优先级由软件填写特殊功能寄存器()加以选择。
3.MCS-51单片机中,T0中断服务程序入口地址为()。
4.外部中断请求标志位是()和()。
5.MCS-51单片机晶振频率为12MH Z ,相应单重中断的最短时间是(),最长时间是()。
6.MCS-51单片机外部中断有()种中断信号触发方式,若选用外部中断0为边沿触发方式,则需要指令()。
7.MCS-51单片机中断系统选用外部中断1和定时器/计数器T1中断为高优先级,则中断优先级控制字(IP)= ()。
8.对采用电平触发方式的外部中断,必须在中断返回前()。
9.()指令以及任何访问()和()寄存器的指令执行完后,CPU不能马上相应中断。
10.MCS-51单片机有()个16位可编程定时器/计数器,有()种工作方式。
11.MCS-51单片机的最大计数值为(),此时工作于方式()。
12.若定时器/计数器工作于方式0时,为()位的定时器/计数器,TL的低()位计满溢出时,向高()位的TH进位。
13.当定时器/计数器T0工作在方式3时,要占用定时器/计数器T1的()和()两个控制位。
14.当把定时器/计数器T0定义为一个可自动重新装入初值的8位定时器/计数器时,()作为8位计数器,()为常数寄存器。
15.使用定时器T1设置串行通信的波特率时,应把定时器T1设定为工作方式2,即()。
16.在定时器/计数器T0工作方式3下,TH0溢出时,()标志将被硬件置1去请求中断。
17.T0和T1两引脚也可作为外部中断输入引脚,这时TMOD寄存器中的C/T位应为()。
若MO、M1两位置成10B,则计数初值应当是TH=TL=( )。
18.欲使T1停止工作,应执行一条指令(),在工作方式3下,欲使TH0开始工作,应执行一条指令()。
19.串行口中断的中断标志位是由()产生,由()清零。
20.进行串行通信,通信双方需具有相同的()和()。
21.要串行口工作为10位异步串行通信方式,工作方式应选为()。
22.用串行口扩展并行口时,串行口工作方式应选为()。
23.按照数据传送方向,串行通信分为()、()和()。
24.计算机通信主要有两种方式:()和()。
25.异步串行数据通信的帧格式由()、()、()和()组成。
26.在串行通信中,按照传送的帧的格式,分为()和()。
27.串行口启动发送过程是通过执行指令()实现,而接收过程是在接收控制器检测到RXD端的()时启动的。
二、选择题1.CPU响应()中断时,不会由CPU自动清除中断请求标志。
A.外部中断0B. 外部中断1C. 串行口中断D. 定时器/计数器T0溢出中断E. 定时器/计数器T1溢出中断2. MCS-51中,CPU正在处理定时器/计数器T1中断,若有同一优先级的外部中断INT0又提出中断请求,则CPU()。
A. 相应外部中断INT0B. 继续进行原来的中断处理C. 发生错误D. 不确定3. 中断服务程序的最后一条指令必须是()。
A. ENDB. RETC. RETID. AJMP4. 串行口中断的入口地址是()。
A. 0003HB. 000BHC. 0013HD. 001BHE. 0023H5. 在中断服务程序中,至少应有一条()。
A. 传送指令B. 转移指令C. 加法指令D. 中断返回指令6. MCS-51单片机响应中断时,下列哪种操作不会自动发生()。
A. 保护现场B. 保护PCC. 找到中断入口D. 转入中断入口7. MCS-51单片机的中断允许触发器内容为83H,CPU将响应的中断请求是()。
A. INT0 , INT1B. T0 , T1C. T1 串行接口D. INT0 , T08. 若MCS-51单片机的中断源都编程为同级,当它们同时申请中断时,CPU首先响应()。