1 / 49

第五章 中断系统、定时器 / 计数器和串行口 §5-1 MCS-51 的中断系统 §5-2 定时 / 计数器 §5-3 MCS-51 单片机的串行口

第五章 中断系统、定时器 / 计数器和串行口 §5-1 MCS-51 的中断系统 §5-2 定时 / 计数器 §5-3 MCS-51 单片机的串行口. §5-1 MCS-51 的中断系统 一、中断概述 1 、 中断源 中断源 指引起正在执行的程序中断,转而执行中 断服务程序的设备或事件。 可分为硬中断、软中断。 MCS-51 单片机的 5 个中断源: ①外部中断 2 个: 、 ,中断请求信号分别由 P3.2 、 P3.1 输入 , 低电平有效、脉冲下降沿有效可选。

kayo
Télécharger la présentation

第五章 中断系统、定时器 / 计数器和串行口 §5-1 MCS-51 的中断系统 §5-2 定时 / 计数器 §5-3 MCS-51 单片机的串行口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 中断系统、定时器/计数器和串行口 • §5-1 MCS-51的中断系统 • §5-2定时/计数器 • §5-3 MCS-51单片机的串行口

  2. §5-1 MCS-51的中断系统 • 一、中断概述 • 1、中断源 • 中断源 指引起正在执行的程序中断,转而执行中 • 断服务程序的设备或事件。 • 可分为硬中断、软中断。 • MCS-51单片机的5个中断源: • ①外部中断2个: 、 ,中断请求信号分别由P3.2、P3.1输入,低电平有效、脉冲下降沿有效可选。 • 入口地址:0003H,0013H。 • ②定时/计数溢出中断2个:T0、T1,计数溢出时置“1”TF0、TF1位,从而发出内部中断请求。 • 入口地址:000BH,001BH。

  3. ③串行中断1个:串行接收或发送完一帧数据时就产③串行中断1个:串行接收或发送完一帧数据时就产 • 生一个内部中断请求RI或TI。 • 入口地址:0023H。 • 2、中断处理过程 • 包含:中断请求、中断响应、中断服务、中断返 • 回四个阶段. • ①中断请求:中断源将相应请求中断的标志位置 “1”,表示发出请求,并由CPU 查询。 • ②中断响应:在一条指令的最后一个周期按优先级 • 顺序查询中断标志,为“1”并满足响应 • 条件时响应。

  4. 响应操作: 断点压栈→撤除中断标志→关闭低同级 • 中断允许→中断入口地址送PC。 • 实际上响应中断的主要操作是有硬件自动产生一 • 条长调用指令LCALL。 • ③中断服务:根据入口地址转中断服务程序,包含 • 保护现场、执行中断主体、恢复现场。 • ④中断返回:断点出栈→开放中断允许→返回原程序。 • 3、中断优先级及其嵌套 • 优先级 2个---高优先级、低优先级,可通过SFR • 寄存器IP设置。 • 中断嵌套 原则为高优先级的中断不能被低优先 • 的中断所中断,同级中断不能相互中断。

  5. 4、中断控制的特点 • ① 中断是随机发生的,并且是可编程的。 • ② 通过执行特定功能的程序段而获得预定目的。 • 5、MCS-51中断汇集

  6. 二、中断控制 • 通过对特殊功能寄存器TCON、SCON、IE、IP等 • 四个寄存器的设定而实现。 • 1、中断请求控制 • (1)定时中断、外中断请求控制寄存器TCON • 字节地址88H,位地址8FH~88H,与中断请求有关的各位表示如下: • TF1、TF0:T1/T0溢出中断请求标志。 • IE1、IE0:外中断/请求标志。 • IT1、IT0:外中断/触发方式定义位,“1”—后沿触发

  7. (2)串行中断请求控制寄存器SCON • 串行中断请求由TI、RI的逻辑“或”得到。即不论 • 是发送标志还是接收标志,都将发生串行中断请求。 • 字节地址98H,位地址9FH~98H,与中断请求有关的各位表示如下: • TI为发送中断 ,RI为接收中断 ,为“1”时,请求中断,响应后必须由用户软件清零。 • (3)中断请求的撤销 • 中断响应后,必须及时清除TCON、SCON中的已响应中断请求标志,否则,会引起中断的重复查询和响应。

  8. ①外中断请求的撤销: • 对于边沿触发方式:由于触发信号过后就消失,撤 • 销自然也就是自动的。 • 对于电平触发方式:需通过软硬件结合的方法来实 现撤销。 • ②定时中断请求的撤销:定时中断后,硬件自动清 “0”。 • ③串行中断请求的撤销:不能自动清“0”,须用软件 • 的方法在中断服务子程序中进 • 行清“0”。 • 2、中断允许控制 • 由SFR寄存器IE设置,分二级允许控制。以EA位作为总控,以各中断源的允许位作为分控。

  9. IE字节地址A8H,位地址AFH~A8H,与中断允 • 许有关的各位表示如下: • 单片机复位后,(IE)=00H,因此,整个中断系统为禁止状态。 • 3、中断优先级控制 • 由SFR寄存器IP设置,有2个优先级,相应位置 • “1”,为高优先级。相应位置“0”,为低优先级。

  10. IP字节地址B8H,位地址BFH~B8H,与中断允许有关的各位表示如下:IP字节地址B8H,位地址BFH~B8H,与中断允许有关的各位表示如下: • 注意:5个中断允许位全部置“1”时,和全部清0效 • 果一样,为同优先级中断,按自然优先级处理,即为 • →T0→ →T1→串行口,优先级依次从高到低。 • 三、中断应用 • 1、中断应用的准备工作

  11. (1)中断初始化设置:定义SP、IP、IE和外中断触发(1)中断初始化设置:定义SP、IP、IE和外中断触发 • 方式选择; • (2)中断服务程序:中断入口、现场保护、中断主体 • 程序、恢复现场返回。 • 2、应用举例 • 例5-1通过P1.0~P1.7控制发光二极管,输出两种节 • 日灯,并利用外中断P3.2,在两种状态之间切换。 • 分析:主程序中状态:亮1灯左移循环,中断程序 • 中的状态:以1秒间隔8灯依次亮起,再依次熄灭,循环 • 3次后返回。

  12. 主流程图(略),程序如下: • ORG 0000H • LJMP MAIN • ORG 0003H ;中断入口 • LJMP 0100H • ORG 0030H • START: 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

  13. 中断服务程序流程图:

  14. 中断服务程序: • ORG 0100H • 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 • RET • DELAY: (略) ;1秒延时

  15. §5-2定时/计数器 • 一、定时/计数器构成 • 1、定时方法 • 软件延时 通过执行循环而获得延时,短时间延时; • 硬件延时 由硬件电路实现延时,长时间延时; • 可编程定时 通过对系统时钟脉冲的计数而获得延时。 • 2、MCS-51单片机的定时/计数器 • 16位定时/计数器T0、T1,分别由4个8位计数器组成,均属SFR寄存器。 • T0由TH0、TL0构成,字节地址为8CH、8AH; • T1由TH1、TL1构成,字节地址为8DH、8BH;

  16. MCS-51单片机定时器结构示意图 • 3、MCS-51单片机定时/计数器的功能 • 归根结底是计数器。 • (1)定时功能 对片内机器周期进行计数,即每 • 个机器周期产生一个计数脉冲,计数加1。

  17. (2)计数功能 对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进行计数,下降沿计数加1。 • 二、定时/计数器的控制寄存器 • 与定时/计数器有关的控制寄存器有3个: • 1、定时器控制寄存器TCON(88H) • SFR寄存器TCON既参与定时控制又参与中断控 • 制,有关定时控制的有4位,表示如下:

  18. TF1/TF0:当T1/T0的计数器计数溢出时,该位置“1”。 • TR1/TR0:T1/T0运行控制位。软件将其置“1”时,启 • 动T1/T0工作。 • 2、设定定时器工作方式寄存器TMOD(89H) • SFR寄存器TMOD用于2个定时器/计数器T1/T0的工作方式设定,各位的含义表示如下:

  19. GATE:门控位,定义T1/T0的启动方式,逻辑如图:GATE:门控位,定义T1/T0的启动方式,逻辑如图: • C/ :定时/计数功能选择位。 • 为“0”,作定时器用;为“1”,作计数器用。 • M1M0:工作方式选择位。 • 00 方式0 13位计数器 • 01 方式1 16位计数器 • 10 方式2 初值自动重装8位计数器

  20. 11 方式3 2个8位计数器,仅适用于T0 • 3、中断允许控制寄存器IE(A8H) • 三、定时器/计数器工作方式 • 1、工作方式0 M1M0=00 ——13位计数器 • (1)结构 • 由TH0的全部8位和TL0的低5位构成,如下页图。 • 当TL0低5位计数满时直接向TH0进位,并当全部13位 • 计数满溢出时,TF0置“1”。 • (2)TMOD值: • 作定时器:TMOD=0000 0 0 00=00H • 作计数器:TMOD=0000 0 1 00=04H

  21. (3)计数初值 • 最大计数值为213=8192 • △T=(213 — 计数初值)× 机器周期(12/fosc) • 计数初值=213 —欲计数脉冲数=213 —△T/ 机器周期

  22. 2、工作方式1 M1M0=01——16位计数器 • 方式1时的电路逻辑结构如图所示 • 作定时器,TMOD=01H; • 作计数器,TMOD=05H; • △T=(216 — 计数初值)× 机器周期(12/fosc) • 计数初值=216 —欲计数脉冲数=216 —△T/ 机器周期

  23. 例如:定时500us,fosc=6MHz时, • 初值=216—500/2=65536-250=65286=FF 06H • 那么:TH0=FFH,TL0=06H • 3、工作方式2 M1M0=10——自动复位的8位计数器 • 以TL0作计数器,而TH0作为预置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。逻辑结构,如图所示:

  24. 作定时器,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=06H • 4、工作方式3 M1M0=11——2个8 位计数器(仅限于T0) • 在T0方式3下,T0、T1的设置和使用是不同的。 • (1)T0方式3 • TL0:使用T0原有控制资源,功能与方式0、1相同。 • TH0:借用T1的TR1、TF1,只能对片内机器周期脉冲计数, • 作8位定时器。

  25. T0方式3时的T0、T1电路逻辑结构,如图所示

  26. 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编程。

  27. 解: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)流程、程序如下:

  28. 方式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

  29. 方式1:采用中断方式 • ORG 0000H • LJMP START • ORG 001BH • LJMP 0100H • ORG 0030H • START: MOV TMOD,#10H • MOV TH1, #0FFH • MOV TL1, #06H • MOV IE, #88H • MOV IP, #0000 1000B • SETB TR1 • SJMP $ • 中断服务程序: • ORG 0100H • CPL P1.0 • MOV TH1, #0FFH • MOV TL1, #06H • RETI

  30. 方式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

  31. 【例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 =(0000 0001)B =01H

  32. ②控制流程 • 查询方式:通过对TF0的查询,获得50ms延时,并循环20次,获得1S延时 • 中断方式:通过T0溢出中断,获得50ms延时,并循环20次,获得1S延时

  33. ③指令代码(略) • (3)用软件程序延时 • ORG 0000H • LJMP START • ORG 0030H • START:MOV P3,#04H • MOV A, #01H • LOOP1:MOV P1, #00H • WT :JB P3.2,WT • LOOP2:MOV P1,A • MOV R7,#10 • DL3:MOV R6,#200 • DL2:MOV R5,#125

  34. DL1:JNB P3.2,LOOP1 • DJNZ R5,DL1 • DJNZ R6,DL2 • DJNZ R7,DL3 • JB ACC.5,JP1 • RL A • AJMP LOOP2 • JP1 :MOV A,#01H • AJMP LOOP2

  35. §5-3 MCS-51单片机的串行口 • 一、串行通信基本概念 • 1、并行通信和串行通信 • 通信的基本方式: • 并行通信:数据的各位同时送出。传送距离:小于30米。 • 串行通信:数据的各位逐位送出,只需一对传送线即可完成传送。传送距离:几米~几千公里。

  36. 2、串行通信 • (1)串行通信的数据传送方向。 • 单工、半双工、全双工三种方式 • (2)串行通信的工作方式 • 同步方式:数据按块传送,包括同步字符、数据块。 • 异步方式:数据按字符传送,每一个字符均按固定的字符格 • 式传送,又被称为帧,如图。 • 包含字符的起始位、数据位、校验位、停止位四个部分。

  37. 3、串行通信的波特率(Baud rate) • (1)波特率:传送数据位的速率,一般指每秒种传送二进 • 制代码的位数。单位:bps。 • (2)通用异步接收/发送器(UART):用于数据串、并转 换的串行接口电路。 • 包括串行化电路(发送器)、并行化电路(接收器)、控制电路3部分。 • 二、MCS-51单片机的串行口 • 全双工的串行口(P3.0、P3.1):能同时进行发送和接 • 收。既可作UART用,也可作同步移位寄存器使用,还可用 • 于网络通信,其帧格式可有8位、10位和11位,并能设置各种 • 波特率。

  38. 1、串行口的结构 • MCS-51单片机的串 • 行口主要由2个物理上独 • 立的串行数据缓冲器SBUF • 、输入移位寄存器和控制 • 器等组成。 • 还有2个SFR寄存器 • SCON和PCON,用于串行 • 口的初始化编程。 • 结构如图所示。

  39. 串行口的发送和接收是以SBUF的名义进行读或写,它串行口的发送和接收是以SBUF的名义进行读或写,它 • 们共用一个地址99H。 • 发送:执行写命令MOV SBUF,A指令,发送完后使中断标志TI置“1”。 • 接收:当RI=0时,置“1”允许接收位时,即启动接收, • 并时使RI=1。执行读命令MOV A,SBUF时,即可从接收 • SBUF取出信息并由内部总线送CPU。 • 2、串行口控制寄存器 • SCON用于存放串行口的控制和状态信息,PCON用于改变串行口的通信波特率,波特率发生器可由定时器T1方式2构成。 • (1)串行控制寄存器SCON • 单元地址98H,位地址9FH~98H。寄存器及位地址表示如下:

  40. SCON: • (2)电源控制寄存器PCON • 字节地址87H,不可位寻址。它的D7位SMOD为串行口波特率控制位,可由软件置位或清零。若SMOD=1,则使工作在方式1、2、3时的波特率加倍。 • 3、串行工作方式0 —— 同步移位寄存器方式 • 方式设定:SM0SM1=00,通过执行MOV SCON,#00H。 • 此时: RXD(P3.0):数据的发送或接收口。 • TXD(P3.1):输出同步移位脉冲。 • 发送、接收的是8位数据,不设起始位和停止位,低位在前,波特率固定为fosc/12。。 • 在串行方式0时,是将串行口变成并行口使用。并要有串并转换芯片74LS164、74LS165转换。

  41. 三、MCS-51串行口方式0驱动数码管 • 1、LED数码管 • (1)结构 • COM:显示器位选线 a~dp:显示器段选线

  42. 发光管驱动额定电流:10~40mA,静态取下限。 • (2)静态显示及其段码 • 静态显示:利用8位锁存功能的I/O口线驱动一个数码管,多 • 个数码管同时显示,需增加I/O口线。 • 段码形成:在COM送入低电平或高电平,然后控制个各笔 段引脚电平,即可形成相应段码。 • 【例5-4】:利用P1口并行输出控制八段数码管,设小数点暗, • 采用共阳顺序、共阴顺序、共阴逆序确定0~9的显示程序为: • 解:1)共阳顺序显示硬件结构如图: • 2)共阳顺序、共阴顺序、共阴逆序的段码如下:

  43. 共阳顺序段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H共阳顺序段码: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)

  44. 2)并行输出,循环显示0~9秒的显示程序: • DIR: MOV R0,#0 • MOV DPTR,#TAB • LOOP:MOV A,R0 • MOVC A,@A+DPTR • MOV P1,A • LCALL DELAY • INC R0 • CJNE R0,#0AH,LOOP • AJMP DIR • TAB:DB C0H,F9H,A4H • DB B0H,99H,92H • DB 82H,F8H,80H,90H

  45. 2、串行口方式0驱动数码管 • (1)串行口与并行口转换控制 • ①串入并出移位寄存器74LS164 图(a) • ②并入串出移位寄存器74LS165 图(b)

  46. (2)利用74LS164驱动共阴数码管 • 【例5-5】:利用8031串行口控制八段数码管,设小数点暗, • 采用共阴逆序,设计循环显示0~9秒的程序。 • 解:1)硬件结构图(共阴逆序、小数点暗) • 2)控制流程、程序

  47. START: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 LOOP • TABLE:DB 0FCH,60H,0DAH,0F2H,66H • DB 0B6H,0BEH,0E0H,0FEH,0F6H • ORG 0100H • DELAY:1秒延时程序(略) • RET

  48. 本章小结 • 1、定时器/计数器的工作方式和初值设定、方式0~方式2应用和定时编程举例 • 2、中断及中断请求源、特殊功能寄存器IP,IE、简单应用 • 3、串行口的组成和功能、串行口的工作方式及波特率方式0 应用及简单编程举例 • 重点:掌握定时器/计数器的初值计算及定时程序编制,串行口 • 工作于方式0的发送/接收数据。 • 难点:对TMOD、SCON等特殊功能寄存器参数设定,中断系 • 统现场保护。

More Related