版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章
中断系统、定时器/计数器和串行口 §5-1MCS-51的中断系统 §5-2
定时/计数器 §5-3MCS-51单片机的串行口单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章1
§5-1MCS-51的中断系统一、中断概述 1、
中断源 中断源指引起正在执行的程序中断,转而执行中 断服务程序的设备或事件。可分为硬中断、软中断。 MCS-51单片机的5个中断源: ①外部中断2个:、,中断请求信号分别由P3.2、P3.3输入,低电平有效、脉冲下降沿有效可选。 入口地址:0003H,0013H。 ②定时/计数溢出中断2个:T0、T1,计数溢出时置“1”TF0、TF1位,从而发出内部中断请求。 入口地址:000BH,001BH。 §5-1MCS-51的中断系统2
③串行中断1个:串行接收或发送完一帧数据时就产生一个内部中断请求RI或TI。 入口地址:0023H。
2、
中断处理过程 包含:中断请求、中断响应、中断服务、中断返回四个阶段. ①中断请求:中断源将相应请求中断的标志位置 “1”,表示发出请求,并由CPU查询。 ②中断响应:在一条指令的最后一个周期按优先级 顺序查询中断标志,为“1”并满足响应条件时响应。 ③串行中断1个:串行接收或发送完一帧数据时就产3 响应操作:断点压栈→撤除中断标志→关闭低同级中断允许→中断入口地址送PC。
实际上响应中断的主要操作是有硬件自动产生一条长调用指令LCALL。 ③中断服务:根据入口地址转中断服务程序,包含 保护现场、执行中断主体、恢复现场。 ④中断返回:断点出栈→开放中断允许→返回原程序。
3、中断优先级及其嵌套 优先级2个---高优先级、低优先级,可通过SFR寄存器IP设置。 中断嵌套原则为高优先级的中断不能被低优先的中断所中断,同级中断不能相互中断。 响应操作:断点压栈→撤除中断标志→关闭低同级4 4、中断控制的特点①中断是随机发生的,并且是可编程的。②通过执行特定功能的程序段而获得预定目的。 5、MCS-51中断汇集 4、中断控制的特点5
二、中断控制 通过对特殊功能寄存器TCON、SCON、IE、IP等四个寄存器的设定而实现。 1、中断请求控制 (1)定时中断、外中断请求控制寄存器TCON 字节地址88H,位地址8FH~88H,与中断请求有关的各位表示如下: TF1、TF0:T1/T0溢出中断请求标志。IE1、IE0:外中断/请求标志。IT1、IT0:外中断/触发方式定义位,“1”—后沿触发 二、中断控制6
(2)串行中断请求控制寄存器SCON 串行中断请求由TI、RI的逻辑“或”得到。即不论是发送标志还是接收标志,都将发生串行中断请求。 字节地址98H,位地址9FH~98H,与中断请求有关的各位表示如下: TI为发送中断,RI为接收中断,为“1”时,请求中断,响应后必须由用户软件清零。 (3)中断请求的撤销 中断响应后,必须及时清除TCON、SCON中的已响应中断请求标志,否则,会引起中断的重复查询和响应。 (2)串行中断请求控制寄存器SCON7
①外中断请求的撤销:对于边沿触发方式:由于触发信号过后就消失,撤销自然也就是自动的。 对于电平触发方式:需通过软硬件结合的方法来实 现撤销。 ②定时中断请求的撤销:定时中断后,硬件自动清 “0”。③串行中断请求的撤销:不能自动清“0”,须用软件 的方法在中断服务子程序中进 行清“0”。 2、中断允许控制 由SFR寄存器IE设置,分二级允许控制。以EA位作为总控,以各中断源的允许位作为分控。 ①外中断请求的撤销:8
IE字节地址A8H,位地址AFH~A8H,与中断允许有关的各位表示如下: 单片机复位后,(IE)=00H,因此,整个中断系统为禁止状态。
3、中断优先级控制 由SFR寄存器IP设置,有2个优先级,相应位置“1”,为高优先级。相应位置“0”,为低优先级。 IE字节地址A8H,位地址AFH~A8H,与中断允9
IP字节地址B8H,位地址BFH~B8H,与中断优先有关的各位表示如下: 注意:5个中断优先位全部置“1”时,和全部清0效果一样,为同优先级中断,按自然优先级处理,即为→T0→→T1→串行口,优先级依次从高到低。
三、中断应用 1、中断应用的准备工作 IP字节地址B8H,位地址BFH~B8H,与中断优先10(1)中断初始化设置:定义SP、IP、IE和外中断触发 方式选择;(2)中断服务程序:中断入口、现场保护、中断主体 程序、恢复现场返回。
2、应用举例
例5-1通过P1.0~P1.7控制发光二极管,输出两种节日灯,并利用外中断P3.2,在两种状态之间切换。要求:主程序中状态:亮1灯左移循环,间隔1S,中断程序中的状态:以1秒间隔8灯依次亮起,再依次熄灭,循环3次后返回。(1)中断初始化设置:定义SP、IP、IE和外中断触发11
主流程图(略),程序如下: ORG 0000H LJMP MAIN ORG 0003H ;中断入口 LJMP INT0 ORG 0030H MAIN: MOV SP, #60H SETB IT0 ;设定下跳有效 SETB EX0 ;开中 SETB EA MOV IP, #01H MOV A, #01H
LOOP: MOV P1, A RL A LCALL DELAY AJMP LOOP 主流程图(略),程序如下:12
中断服务程序流程图: 中断服务程序流程图: 13
中断服务程序:
INT0: PUSH ACC CLR A MOV R0, #00H LOOP1: SETB C RLC A MOV P1, A LCALL DELAY JNB ACC.7, LOOP1 LOOP2: CLR C RLC A MOV P1, A LCALL DELAY JB ACC.7, LOOP2 INC R0 CJNE R0, #03H, LOOP1 POP ACC RETI DELAY: (略) ;1秒延时 中断服务程序:14
§5-2
定时/计数器一、定时/计数器构成1、定时方法软件延时通过执行循环而获得延时,短时间延时;硬件延时由硬件电路实现延时,长时间延时;可编程定时通过对系统时钟脉冲的计数而获得延时。2、MCS-51单片机的定时/计数器 16位定时/计数器T0、T1,分别由4个8位计数器组成,均属SFR寄存器。T0由TH0、TL0构成,字节地址为8CH、8AH;T1由TH1、TL1构成,字节地址为8DH、8BH; §5-2定时/计数器15
MCS-51单片机定时器结构示意图3、MCS-51单片机定时/计数器的功能 归根结底是计数器。 (1)定时功能对片内机器周期进行计数,即每个机器周期产生一个计数脉冲,计数加1。
16
(2)计数功能对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进行计数,下降沿计数加1。
二、定时/计数器的控制寄存器 与定时/计数器有关的控制寄存器有3个:1、定时器控制寄存器TCON(88H) SFR寄存器TCON既参与定时控制又参与中断控制,有关定时控制的有4位,表示如下: (2)计数功能对片外从T0(P3.4)、T1(P3.517
TF1/TF0:当T1/T0的计数器计数溢出时,该位置“1”。TR1/TR0:T1/T0运行控制位。软件将其置“1”时,启动T1/T0工作。2、设定定时器工作方式寄存器TMOD(89H) SFR寄存器TMOD用于2个定时器/计数器T1/T0的工作方式设定,各位的含义表示如下:
18
GATE:门控位,定义T1/T0的启动方式,逻辑如图:C/:定时/计数功能选择位。 为“0”,作定时器用;为“1”,作计数器用。M1M0:工作方式选择位。 00方式0 13位计数器 01方式1 16位计数器 10方式2 初值自动重装8位计数器 GATE:门控位,定义T1/T0的启动方式,逻辑如图:19 11方式32个8位计数器,仅适用于T0
3、中断允许控制寄存器IE(A8H)三、定时器/计数器工作方式1、工作方式0M1M0=00——13位计数器(1)结构 由TH0的全部8位和TL0的低5位构成,如下页图。当TL0低5位计数满时直接向TH0进位,并当全部13位计数满溢出时,TF0置“1”。(2)TMOD值: 作定时器:TMOD=00000000=00H 作计数器:TMOD=00000100=04H 11方式32个8位计数器,仅适用于T020(3)计数初值 最大计数值为213=8192 △T=(213—计数初值)×机器周期(12/fosc) 计数初值=213—欲计数脉冲数=213—△T/机器周期单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章21
2、工作方式1M1M0=01——16位计数器方式1时的电路逻辑结构如图所示作定时器,TMOD=01H;作计数器,TMOD=05H;△T=(216—计数初值)×机器周期(12/fosc)计数初值=216—欲计数脉冲数=216—△T/机器周期 2、工作方式1M1M0=01——16位计22 例如:定时500us,fosc=6MHz时, 初值=216—500/2=65536-250=65286=FF
06H 那么:TH0=FFH,TL0=06H
3、工作方式2M1M0=10——自动复位的8位计数器
以TL0作计数器,而TH0作为预置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。逻辑结构,如图所示: 例如:定时500us,fosc=6MHz时,23 作定时器,TMOD=02H; 作计数器,TMOD=06H; 最大计数值为28=256,若fosc=12MHz,则方式2的最大定时时间为256us。当作为定时器用时,定时时间的计算公式: △T=(28—计数初值)×机器周期(12/fosc) 计数初值=28—欲计数脉冲数=28—△T/机器周期例如:定时500,fosc=6MHz时,初值=28—500/2=6=06H则:TH0=TL0=06H4、工作方式3M1M0=11——2个8 位计数器(仅限于T0)在T0方式3下,T0、T1的设置和使用是不同的。(1)T0方式3TL0:使用T0原有控制资源,功能与方式0、1相同。TH0:借用T1的TR1、TF1,只能对片内机器周期脉冲计数,作8位定时器。 作定时器,TMOD=02H;24 T0方式3时的T0、T1电路逻辑结构,如图所示 T0方式3时的T0、T1电路逻辑结构,如图所示25 T0方式3时的T0初值计算完全同方式2(2)T0方式3下的T1
T0方式3时,T1仍然可工作于方式0~方式2,如上页图所示。C/控制位仍可使T1工作在定时器或计数器方式,只是由于其TR1、TF1被T0的TH0占用,因而没有计数溢出标志可供使用,计数溢出时只能将输出结果送至串行口,即用作串行口波特率发生器。
T0方式3下的T1方式2,因定时初值能自动恢复,用作波特率发生器更为合适。四、定时/计数器的应用 【例5-2】已知fosc=6MHz,利用T1定时500us,在P1.0口输出周期为1ms的方波脉冲,使用方式0~方式2编程。 T0方式3时的T0初值计算完全同方式226解:1)方波波形如图所示: 2)计数初值:方式0:计数初值=213—欲计数脉冲数=213—△T/机器周期 =213-500/2=1F06H∴TH1=F8H,TL1=06H方式1:计数初值=216—欲计数脉冲数=216—△T/机器周期 =216-500/2=FF06H∴TH1=FFH,TL1=06H方式2:计数初值=28—欲计数脉冲数=28—△T/机器周期 =28-500/2=06H∴TH1=TL1=06H 3)定时到达P1.0的翻转方法:查询方式、中断方式 4)流程、程序如下:
单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章27
方式0:采用查询方式 程序:流程: ORG 0030H START: MOV TMOD,#00H MOV TH1, #0F8H MOV TL1, #06H MOV IE, #00H SETB TR1 WT: JNB TF1, WT CPL P1.0 CLR TF1 MOV TH1, #0F8H MOV TL1, #06H SJMP WT 方式0:采用查询方式28方式1:采用中断方式 ORG 0000H LJMP START
ORG 001BH LJMP 0100H ORG 0030H START: MOVTMOD,#10H
MOV TH1, #0FFH MOV TL1, #06H MOV IE, #88H MOV IP, #00001000B
SETB TR1 SJMP $中断服务程序: ORG 0100H CPL P1.0
MOV TH1, #0FFH MOV TL1, #06H RETI 方式1:采用中断方式29
方式2:采用中断方式 ORG 0000H LJMP START
ORG 001BH LJMP 0100H ORG 0030H START: MOV TMOD,#20H
MOV TH1, #06H MOV TL1, #06H MOV IE, #88H MOV IP, #08H SETB TR1 SJMP $ 中断服务程序: ORG 0100H
CPL P1.0 RETI 方式2:采用中断方式30【例5-3】用软件延时和定时器中断方式、查询方式定时的方法编程,试设计控制六盏LED灯的程序,设晶振fosc=12MHZ,要求: 1)K合上后,L1~L6轮流点亮1秒,如此循环 2)K断开后,全灭,等待下次启动 3)要求用T0定时器、软件程序延时两种方案实现解:(1)硬件原理图及I/O分配,如图所示; (2)用定时器T0方式1实现延时: ①定时器T0初值:
定时时间:tmax=65536×1us=65.536ms,取50ms 1秒延时实现:50ms延时20次T0的初值:=216-50000us/1us=15536=3CB0H TMOD=(00000001)B=01H【例5-3】用软件延时和定时器中断方式、查询方式31
②控制流程 查询方式:通过对TF0的查询,获得50ms延时,并循环20次,获得1S延时 中断方式:通过T0溢出中断,获得50ms延时,并循环20次,获得1S延时
32单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章33③指令代码(略) (3)用软件程序延时 ORG0000H LJMPSTART ORG0030HSTART:MOVP3,#04H MOVA,#01HLOOP1:MOVP1,#00H WT:JBP3.2,WTLOOP2:MOVP1,A MOVR7,#10DL3:MOVR6,#200DL2:MOVR5,#125
③指令代码(略)34
DL1:JNBP3.2,LOOP1 DJNZR5,DL1
DJNZR6,DL2 DJNZR7,DL3 JBACC.5,JP1 RLA AJMPLOOP2 JP1:MOVA,#01H AJMPLOOP2
35§5-3MCS-51单片机的串行口一、串行通信基本概念1、并行通信和串行通信通信的基本方式:并行通信:数据的各位同时送出。传送距离:小于30米。串行通信:数据的各位逐位送出,只需一对传送线即可完成传送。传送距离:几米~几千公里。§5-3MCS-51单片机的串行口362、串行通信(1)串行通信的数据传送方向。 单工、半双工、全双工三种方式(2)串行通信的工作方式同步方式:数据按块传送,包括同步字符、数据块。异步方式:数据按字符传送,每一个字符均按固定的字符格 式传送,又被称为帧,如图。 包含字符的起始位、数据位、校验位、停止位四个部分。2、串行通信373、串行通信的波特率(Baudrate) (1)波特率:传送数据位的速率,一般指每秒种传送二进 制代码的位数。单位:bps。 (2)通用异步接收/发送器(UART):用于数据串、并转 换的串行接口电路。 包括串行化电路(发送器)、并行化电路(接收器)、控制电路3部分。二、MCS-51单片机的串行口 全双工的串行口(P3.0、P3.1):能同时进行发送和接收。既可作UART用,也可作同步移位寄存器使用,还可用于网络通信,其帧格式可有8位、10位和11位,并能设置各种波特率。3、串行通信的波特率(Baudrate)381、串行口的结构 MCS-51单片机的串行口主要由2个物理上独立的串行数据缓冲器SBUF、输入移位寄存器和控制器等组成。 还有2个SFR寄存器SCON和PCON,用于串行口的初始化编程。 结构如图所示。单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章39 串行口的发送和接收是以SBUF的名义进行读或写,它们共用一个地址99H。 发送:执行写命令MOVSBUF,A指令,发送完后使中断标志TI置“1”。 接收:当RI=0时,置“1”允许接收位时,即启动接收,并时使RI=1。执行读命令MOVA,SBUF时,即可从接收SBUF取出信息并由内部总线送CPU。2、串行口控制寄存器
SCON用于存放串行口的控制和状态信息,PCON用于改变串行口的通信波特率,波特率发生器可由定时器T1方式2构成。(1)串行控制寄存器SCON单元地址98H,位地址9FH~98H。寄存器及位地址表示如下: 串行口的发送和接收是以SBUF的名义进行读或写,它40 SCON:SM0和SMl串行口工作方式选择位。SM2多机通信控制位,主要用于方式2和方式3。若置SM2=1,则允许多机通信。REN允许接收控制位。由软件置1或清0,只有当REN=l时才允许接收,相当于串行接收的开关;若REN=0、则禁止接收。TB8发送数据的第9位(D8)装入TB8中。在方式2或方式3中.根据发送数据的需要由软件置位或复位。在许多通信协议中可作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。在方式0和方式1中,该位末用。 SCON:41RB8接收数据的第9位。在方式2或方式3中、接收到的第9位数据放在RB8位。它或是约定的奇/偶校验位,或是约定的地址/数据标识位。TI发送中断标志。在一帧数据发送完时被置位。在方式0串行发送第8位结束时,或其它方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,TI置位意味着向CPU提供“发送缓冲器SBUF已空”的信息,CPU可以准备发送下一帧数据。串行口发送中断被响应后,TI不会自动复0,必须由软件清0。RB8接收数据的第9位。在方式2或方式3中、接收到的42RI接收中断标志。在接收到一帧有效数据后由硬件置位。在方式0中,第8位数据发送结束时,由硬件置位;在其它三种方式下,则在接收到停止位中间时由硬件置位。RI=1,中请中断。表示一帧数据接收结束,并已装入接收SBUF中,要求CPU取走数据。CPU响应中断,取走数据。RI也必须由软件清0,(2)电源控制寄存器PCON 字节地址87H,不可位寻址。它的D7位SMOD为串行口波特率控制位,可由软件置位或清零。若SMOD=1,则使工作在方式1、2、3时的波特率加倍。RI接收中断标志。在接收到一帧有效数据后由硬件置位。43串行口的工作方式串行口的工作方式443、串行工作方式0——同步移位寄存器方式 方式设定:SM0SM1=00,通过执行MOVSCON,#00H。此时: RXD(P3.0):数据的发送或接收口。 TXD(P3.1):输出同步移位脉冲。 发送、接收的是8位数据,不设起始位和停止位,低位在前,波特率固定为fosc/12。。 在串行方式0时,是将串行口变成并行口使用。并要有串并转换芯片74LS164、74LS165转换。3、串行工作方式0——同步移位寄存器方式45方式0时序方式0时序46方式13、串行工作方式1——8位UART,波特率由T1决定。 方式设定:SM0SM1=01串行方式1波持率=/〔216一初值〕方式13、串行工作方式1——8位UART,波特率由47方式1方式148常用的波特率及定时器初值常用的波特率及定时器初值49三、MCS-51串行口方式0驱动数码管 1、LED数码管 (1)结构 COM:显示器位选线a~dp:显示器段选线三、MCS-51串行口方式0驱动数码管50
发光管驱动额定电流:10~40mA,静态取下限。 (2)静态显示及其段码 静态显示:利用8位锁存功能的I/O口线驱动一个数码管,多 个数码管同时显示,需增加I/O口线。 段码形成:在COM送入低电平或高电平,然后控制个各笔 段引脚电平,即可形成相应段码。【例5-4】:利用P1口并行输出控制八段数码管,设小数点暗,采用共阳顺序、共阴顺序、共阴逆序确定0~9的显示程序为:
解:1)共阳顺序显示硬件结构如图: 2)共阳顺序、共阴顺序、共阴逆序的段码如下:
51共阳顺序段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H共阴顺序段码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dp→a)共阴逆序段码:FCH,60H,DAH,F2H,66H,B6H,BEH,E0H,FEH,F6H(a→Dp)单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章522)并行输出,循环显示0~9秒的显示程序:DIR: MOV R0,#0 MOV DPTR,#TABLOOP:MOV A,R0 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R0 CJNE R0,#0AH,LOOP AJMP DIRTAB:DBC0H,F9H,A4H DBB0H,99H,92H DB82H,F8H,80H,90H2)并行输出,循环显示0~9秒的显示程序:532、串行口方式0驱动数码管 (1)串行口与并行口转换控制①
串入并出移位寄存器74LS164图(a)②
并入串出移位寄存器74LS165图(b)2、串行口方式0驱动数码管54(2)利用74LS164驱动共阴数码管【例5-5】:利用8031串行口控制八段数码管,设小数点暗,采用共阴逆序,设计循环显示0~9秒的程序。 解:1)硬件结构图(共阴逆序、小数点暗) 2)控制流程、程序(2)利用74LS164驱动共阴数码管55START:MOV SCON,#00H MOV R0, #00H CLR ES;禁止中断 MOV DPTR, #TABLE LOOP:MOV A, R0 MOVC A, @A+DPTR CLR TI MOV SBUF, A LCALL DELAY INC R0 CJNE R0, #10, LOOP MOV R0, #00H AJMP LOOPTABLE:DB 0FCH,60H,0DAH,0F2H,66H DB0B6H,0BEH,0E0H,0FEH,0F6HORG 0100HDELAY:1秒延时程序(略) RETSTART:MOV SCON,#00H56本章小结
1、
定时器/计数器的工作方式和初值设定、方式0~方式2应用和定时编程举例2、
中断及中断请求源、特殊功能寄存器IP,IE、简单应用 3、串行口的组成和功能、串行口的工作方式及波特率方式0 应用及简单编程举例重点:掌握定时器/计数器的初值计算及定时程序编制,串行口工作于方式0的发送/接收数据。难点:对TMOD、SCON等特殊功能寄存器参数设定,中断系统现场保护。本章小结57第五章
中断系统、定时器/计数器和串行口 §5-1MCS-51的中断系统 §5-2
定时/计数器 §5-3MCS-51单片机的串行口单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章58
§5-1MCS-51的中断系统一、中断概述 1、
中断源 中断源指引起正在执行的程序中断,转而执行中 断服务程序的设备或事件。可分为硬中断、软中断。 MCS-51单片机的5个中断源: ①外部中断2个:、,中断请求信号分别由P3.2、P3.3输入,低电平有效、脉冲下降沿有效可选。 入口地址:0003H,0013H。 ②定时/计数溢出中断2个:T0、T1,计数溢出时置“1”TF0、TF1位,从而发出内部中断请求。 入口地址:000BH,001BH。 §5-1MCS-51的中断系统59
③串行中断1个:串行接收或发送完一帧数据时就产生一个内部中断请求RI或TI。 入口地址:0023H。
2、
中断处理过程 包含:中断请求、中断响应、中断服务、中断返回四个阶段. ①中断请求:中断源将相应请求中断的标志位置 “1”,表示发出请求,并由CPU查询。 ②中断响应:在一条指令的最后一个周期按优先级 顺序查询中断标志,为“1”并满足响应条件时响应。 ③串行中断1个:串行接收或发送完一帧数据时就产60 响应操作:断点压栈→撤除中断标志→关闭低同级中断允许→中断入口地址送PC。
实际上响应中断的主要操作是有硬件自动产生一条长调用指令LCALL。 ③中断服务:根据入口地址转中断服务程序,包含 保护现场、执行中断主体、恢复现场。 ④中断返回:断点出栈→开放中断允许→返回原程序。
3、中断优先级及其嵌套 优先级2个---高优先级、低优先级,可通过SFR寄存器IP设置。 中断嵌套原则为高优先级的中断不能被低优先的中断所中断,同级中断不能相互中断。 响应操作:断点压栈→撤除中断标志→关闭低同级61 4、中断控制的特点①中断是随机发生的,并且是可编程的。②通过执行特定功能的程序段而获得预定目的。 5、MCS-51中断汇集 4、中断控制的特点62
二、中断控制 通过对特殊功能寄存器TCON、SCON、IE、IP等四个寄存器的设定而实现。 1、中断请求控制 (1)定时中断、外中断请求控制寄存器TCON 字节地址88H,位地址8FH~88H,与中断请求有关的各位表示如下: TF1、TF0:T1/T0溢出中断请求标志。IE1、IE0:外中断/请求标志。IT1、IT0:外中断/触发方式定义位,“1”—后沿触发 二、中断控制63
(2)串行中断请求控制寄存器SCON 串行中断请求由TI、RI的逻辑“或”得到。即不论是发送标志还是接收标志,都将发生串行中断请求。 字节地址98H,位地址9FH~98H,与中断请求有关的各位表示如下: TI为发送中断,RI为接收中断,为“1”时,请求中断,响应后必须由用户软件清零。 (3)中断请求的撤销 中断响应后,必须及时清除TCON、SCON中的已响应中断请求标志,否则,会引起中断的重复查询和响应。 (2)串行中断请求控制寄存器SCON64
①外中断请求的撤销:对于边沿触发方式:由于触发信号过后就消失,撤销自然也就是自动的。 对于电平触发方式:需通过软硬件结合的方法来实 现撤销。 ②定时中断请求的撤销:定时中断后,硬件自动清 “0”。③串行中断请求的撤销:不能自动清“0”,须用软件 的方法在中断服务子程序中进 行清“0”。 2、中断允许控制 由SFR寄存器IE设置,分二级允许控制。以EA位作为总控,以各中断源的允许位作为分控。 ①外中断请求的撤销:65
IE字节地址A8H,位地址AFH~A8H,与中断允许有关的各位表示如下: 单片机复位后,(IE)=00H,因此,整个中断系统为禁止状态。
3、中断优先级控制 由SFR寄存器IP设置,有2个优先级,相应位置“1”,为高优先级。相应位置“0”,为低优先级。 IE字节地址A8H,位地址AFH~A8H,与中断允66
IP字节地址B8H,位地址BFH~B8H,与中断优先有关的各位表示如下: 注意:5个中断优先位全部置“1”时,和全部清0效果一样,为同优先级中断,按自然优先级处理,即为→T0→→T1→串行口,优先级依次从高到低。
三、中断应用 1、中断应用的准备工作 IP字节地址B8H,位地址BFH~B8H,与中断优先67(1)中断初始化设置:定义SP、IP、IE和外中断触发 方式选择;(2)中断服务程序:中断入口、现场保护、中断主体 程序、恢复现场返回。
2、应用举例
例5-1通过P1.0~P1.7控制发光二极管,输出两种节日灯,并利用外中断P3.2,在两种状态之间切换。要求:主程序中状态:亮1灯左移循环,间隔1S,中断程序中的状态:以1秒间隔8灯依次亮起,再依次熄灭,循环3次后返回。(1)中断初始化设置:定义SP、IP、IE和外中断触发68
主流程图(略),程序如下: ORG 0000H LJMP MAIN ORG 0003H ;中断入口 LJMP INT0 ORG 0030H MAIN: MOV SP, #60H SETB IT0 ;设定下跳有效 SETB EX0 ;开中 SETB EA MOV IP, #01H MOV A, #01H
LOOP: MOV P1, A RL A LCALL DELAY AJMP LOOP 主流程图(略),程序如下:69
中断服务程序流程图: 中断服务程序流程图: 70
中断服务程序:
INT0: PUSH ACC CLR A MOV R0, #00H LOOP1: SETB C RLC A MOV P1, A LCALL DELAY JNB ACC.7, LOOP1 LOOP2: CLR C RLC A MOV P1, A LCALL DELAY JB ACC.7, LOOP2 INC R0 CJNE R0, #03H, LOOP1 POP ACC RETI DELAY: (略) ;1秒延时 中断服务程序:71
§5-2
定时/计数器一、定时/计数器构成1、定时方法软件延时通过执行循环而获得延时,短时间延时;硬件延时由硬件电路实现延时,长时间延时;可编程定时通过对系统时钟脉冲的计数而获得延时。2、MCS-51单片机的定时/计数器 16位定时/计数器T0、T1,分别由4个8位计数器组成,均属SFR寄存器。T0由TH0、TL0构成,字节地址为8CH、8AH;T1由TH1、TL1构成,字节地址为8DH、8BH; §5-2定时/计数器72
MCS-51单片机定时器结构示意图3、MCS-51单片机定时/计数器的功能 归根结底是计数器。 (1)定时功能对片内机器周期进行计数,即每个机器周期产生一个计数脉冲,计数加1。
73
(2)计数功能对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进行计数,下降沿计数加1。
二、定时/计数器的控制寄存器 与定时/计数器有关的控制寄存器有3个:1、定时器控制寄存器TCON(88H) SFR寄存器TCON既参与定时控制又参与中断控制,有关定时控制的有4位,表示如下: (2)计数功能对片外从T0(P3.4)、T1(P3.574
TF1/TF0:当T1/T0的计数器计数溢出时,该位置“1”。TR1/TR0:T1/T0运行控制位。软件将其置“1”时,启动T1/T0工作。2、设定定时器工作方式寄存器TMOD(89H) SFR寄存器TMOD用于2个定时器/计数器T1/T0的工作方式设定,各位的含义表示如下:
75
GATE:门控位,定义T1/T0的启动方式,逻辑如图:C/:定时/计数功能选择位。 为“0”,作定时器用;为“1”,作计数器用。M1M0:工作方式选择位。 00方式0 13位计数器 01方式1 16位计数器 10方式2 初值自动重装8位计数器 GATE:门控位,定义T1/T0的启动方式,逻辑如图:76 11方式32个8位计数器,仅适用于T0
3、中断允许控制寄存器IE(A8H)三、定时器/计数器工作方式1、工作方式0M1M0=00——13位计数器(1)结构 由TH0的全部8位和TL0的低5位构成,如下页图。当TL0低5位计数满时直接向TH0进位,并当全部13位计数满溢出时,TF0置“1”。(2)TMOD值: 作定时器:TMOD=00000000=00H 作计数器:TMOD=00000100=04H 11方式32个8位计数器,仅适用于T077(3)计数初值 最大计数值为213=8192 △T=(213—计数初值)×机器周期(12/fosc) 计数初值=213—欲计数脉冲数=213—△T/机器周期单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章78
2、工作方式1M1M0=01——16位计数器方式1时的电路逻辑结构如图所示作定时器,TMOD=01H;作计数器,TMOD=05H;△T=(216—计数初值)×机器周期(12/fosc)计数初值=216—欲计数脉冲数=216—△T/机器周期 2、工作方式1M1M0=01——16位计79 例如:定时500us,fosc=6MHz时, 初值=216—500/2=65536-250=65286=FF
06H 那么:TH0=FFH,TL0=06H
3、工作方式2M1M0=10——自动复位的8位计数器
以TL0作计数器,而TH0作为预置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。逻辑结构,如图所示: 例如:定时500us,fosc=6MHz时,80 作定时器,TMOD=02H; 作计数器,TMOD=06H; 最大计数值为28=256,若fosc=12MHz,则方式2的最大定时时间为256us。当作为定时器用时,定时时间的计算公式: △T=(28—计数初值)×机器周期(12/fosc) 计数初值=28—欲计数脉冲数=28—△T/机器周期例如:定时500,fosc=6MHz时,初值=28—500/2=6=06H则:TH0=TL0=06H4、工作方式3M1M0=11——2个8 位计数器(仅限于T0)在T0方式3下,T0、T1的设置和使用是不同的。(1)T0方式3TL0:使用T0原有控制资源,功能与方式0、1相同。TH0:借用T1的TR1、TF1,只能对片内机器周期脉冲计数,作8位定时器。 作定时器,TMOD=02H;81 T0方式3时的T0、T1电路逻辑结构,如图所示 T0方式3时的T0、T1电路逻辑结构,如图所示82 T0方式3时的T0初值计算完全同方式2(2)T0方式3下的T1
T0方式3时,T1仍然可工作于方式0~方式2,如上页图所示。C/控制位仍可使T1工作在定时器或计数器方式,只是由于其TR1、TF1被T0的TH0占用,因而没有计数溢出标志可供使用,计数溢出时只能将输出结果送至串行口,即用作串行口波特率发生器。
T0方式3下的T1方式2,因定时初值能自动恢复,用作波特率发生器更为合适。四、定时/计数器的应用 【例5-2】已知fosc=6MHz,利用T1定时500us,在P1.0口输出周期为1ms的方波脉冲,使用方式0~方式2编程。 T0方式3时的T0初值计算完全同方式283解:1)方波波形如图所示: 2)计数初值:方式0:计数初值=213—欲计数脉冲数=213—△T/机器周期 =213-500/2=1F06H∴TH1=F8H,TL1=06H方式1:计数初值=216—欲计数脉冲数=216—△T/机器周期 =216-500/2=FF06H∴TH1=FFH,TL1=06H方式2:计数初值=28—欲计数脉冲数=28—△T/机器周期 =28-500/2=06H∴TH1=TL1=06H 3)定时到达P1.0的翻转方法:查询方式、中断方式 4)流程、程序如下:
单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章84
方式0:采用查询方式 程序:流程: ORG 0030H START: MOV TMOD,#00H MOV TH1, #0F8H MOV TL1, #06H MOV IE, #00H SETB TR1 WT: JNB TF1, WT CPL P1.0 CLR TF1 MOV TH1, #0F8H MOV TL1, #06H SJMP WT 方式0:采用查询方式85方式1:采用中断方式 ORG 0000H LJMP START
ORG 001BH LJMP 0100H ORG 0030H START: MOVTMOD,#10H
MOV TH1, #0FFH MOV TL1, #06H MOV IE, #88H MOV IP, #00001000B
SETB TR1 SJMP $中断服务程序: ORG 0100H CPL P1.0
MOV TH1, #0FFH MOV TL1, #06H RETI 方式1:采用中断方式86
方式2:采用中断方式 ORG 0000H LJMP START
ORG 001BH LJMP 0100H ORG 0030H START: MOV TMOD,#20H
MOV TH1, #06H MOV TL1, #06H MOV IE, #88H MOV IP, #08H SETB TR1 SJMP $ 中断服务程序: ORG 0100H
CPL P1.0 RETI 方式2:采用中断方式87【例5-3】用软件延时和定时器中断方式、查询方式定时的方法编程,试设计控制六盏LED灯的程序,设晶振fosc=12MHZ,要求: 1)K合上后,L1~L6轮流点亮1秒,如此循环 2)K断开后,全灭,等待下次启动 3)要求用T0定时器、软件程序延时两种方案实现解:(1)硬件原理图及I/O分配,如图所示; (2)用定时器T0方式1实现延时: ①定时器T0初值:
定时时间:tmax=65536×1us=65.536ms,取50ms 1秒延时实现:50ms延时20次T0的初值:=216-50000us/1us=15536=3CB0H TMOD=(00000001)B=01H【例5-3】用软件延时和定时器中断方式、查询方式88
②控制流程 查询方式:通过对TF0的查询,获得50ms延时,并循环20次,获得1S延时 中断方式:通过T0溢出中断,获得50ms延时,并循环20次,获得1S延时
89单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章90③指令代码(略) (3)用软件程序延时 ORG0000H LJMPSTART ORG0030HSTART:MOVP3,#04H MOVA,#01HLOOP1:MOVP1,#00H WT:JBP3.2,WTLOOP2:MOVP1,A MOVR7,#10DL3:MOVR6,#200DL2:MOVR5,#125
③指令代码(略)91
DL1:JNBP3.2,LOOP1 DJNZR5,DL1
DJNZR6,DL2 DJNZR7,DL3 JBACC.5,JP1 RLA AJMPLOOP2 JP1:MOVA,#01H AJMPLOOP2
92§5-3MCS-51单片机的串行口一、串行通信基本概念1、并行通信和串行通信通信的基本方式:并行通信:数据的各位同时送出。传送距离:小于30米。串行通信:数据的各位逐位送出,只需一对传送线即可完成传送。传送距离:几米~几千公里。§5-3MCS-51单片机的串行口932、串行通信(1)串行通信的数据传送方向。 单工、半双工、全双工三种方式(2)串行通信的工作方式同步方式:数据按块传送,包括同步字符、数据块。异步方式:数据按字符传送,每一个字符均按固定的字符格 式传送,又被称为帧,如图。 包含字符的起始位、数据位、校验位、停止位四个部分。2、串行通信943、串行通信的波特率(Baudrate) (1)波特率:传送数据位的速率,一般指每秒种传送二进 制代码的位数。单位:bps。 (2)通用异步接收/发送器(UART):用于数据串、并转 换的串行接口电路。 包括串行化电路(发送器)、并行化电路(接收器)、控制电路3部分。二、MCS-51单片机的串行口 全双工的串行口(P3.0、P3.1):能同时进行发送和接收。既可作UART用,也可作同步移位寄存器使用,还可用于网络通信,其帧格式可有8位、10位和11位,并能设置各种波特率。3、串行通信的波特率(Baudrate)951、串行口的结构 MCS-51单片机的串行口主要由2个物理上独立的串行数据缓冲器SBUF、输入移位寄存器和控制器等组成。 还有2个SFR寄存器SCON和PCON,用于串行口的初始化编程。 结构如图所示。单片机原理与应用授课(东北石油大学教学课件李玉爽)第五章96 串行口的发送和接收是以SBUF的名义进行读或写,它们共用一个地址99H。 发送:执行写命令MOVSBUF,A指令,发送完后使中断标志TI置“1”。 接收:当RI=0时,置“1”允许接收位时,即启动接收,并时使RI=1。执行读命令MOVA,SBUF时,即可从接收SBUF取出信息并由内部总线送CPU。2、串行口控制寄存器
SCON用于存放串行口的控制和状态信息,PCON用于改变串行口的通信波特率,波特率发生器可由定时器T1方式2构成。(1)串行控制寄存器SCON单元地址98H,位地址9FH~98H。寄存器及位地址表示如下: 串行口的发送和接收是以SBUF的名义进行读或写,它97 SCON:SM0和SMl串行口工作方式选择位。SM2多机通信控制位,主要用于方式2和方式3。若置SM2=1,则允许多机通信。REN允许接收控制位。由软件置1或清0,只有当REN=l时才允许接收,相当于串行接收的开关;若REN=0、则禁止接收。TB8发送数据的第9位(D8)装入TB8中。在方式2或方式3中.根据发送数据的需要由软件置位或复位。在许多通信协议中可作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。在方式0和方式1中,该位末用。 SCON:98RB8接收数据的第9位。在方式2或方式3中、接收到的第9位数据放在RB8位。它或是约定的奇/偶校验位,或是约定的地址/数据标识位。TI发送中断标志。在一帧数据发送完时被置位。在方式0串行发送第8位结束时,或其它方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,TI置位意味着向CPU提供“发送缓冲器SBUF已空”的信息,CPU可以准备发送下一帧数据。串行口发送中断被响应后,TI不会自动复0,必须由软件清0。RB8接收数据的第9位。在方式2或方式3中、接收到的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社工督导协议书
- 政府扶贫协议书
- 货款对抵协议书
- 私了赔偿协议书
- 自愿集资协议书
- 教育责任协议书
- 砸墙协议书模板
- 红顶科技协议书
- 购买虾塘协议书
- 拓展公司协议书
- 贵州兴义电力发展有限公司2026年校园招聘考试题库附答案
- 农业推广计划课件
- 苏教版四年级数学上册期末考试卷(附答案)
- 2025云南省人民检察院招聘22人笔试考试备考试题及答案解析
- 2026年湖南中医药高等专科学校单招职业技能测试题库新版
- 骏马奔腾启新程盛世华章谱未来-2026年马年学校元旦主持词
- 剪刀式登高车专项施工方案
- 22863中级财务会计(一)机考综合复习题
- 安庆师范学院论文格式
- 专业技术指导委员会工作总结报告
- 2025-2030智慧消防系统远程监控平台与城市火灾防控效果规划研究
评论
0/150
提交评论