
单片机课件4MCS51的片内接口.ppt
54页第四章 MCS-51的片内接口内容提要内容提要: :§4-1 MCSMCS-51中断系统中断系统§4-2 §4-2 定时定时 / / 计数器计数器§4-3 §4-3 MCS-51MCS-51片内串行接口片内串行接口§4-1 MCS-51中断系统一、概述一、概述 与上对比,单片机中也有同样的问题与上对比,单片机中也有同样的问题CPU正正 在执行原程序,突然,被意外事情打断,转去执行在执行原程序,突然,被意外事情打断,转去执行 新程序CPU执行新程序结束后,又回到原程序中执行新程序结束后,又回到原程序中 继续执行这样的过程就叫继续执行这样的过程就叫 中断中断 什么叫中断?什么叫中断? 举例:某同学正在教室写作业,忽然被人叫出去,回来举例:某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业这就是生活中中断的例子后,继续写作业这就是生活中中断的例子 • 对突发事故,做出紧急处理对突发事故,做出紧急处理• 根据现场随时变化的各种参数、信息,做出实时监控。
根据现场随时变化的各种参数、信息,做出实时监控• CPUCPU与外部设备并行工作与外部设备并行工作, ,以中断方式相联系以中断方式相联系, ,提高工提高工作效率• 解决快速解决快速CPU与慢速外设之间的矛盾与慢速外设之间的矛盾• 在多项外部设备同时提出中断请求情况下,在多项外部设备同时提出中断请求情况下,CPUCPU能根能根据轻重缓急响应外设的中断请求据轻重缓急响应外设的中断请求 中断的作用:中断的作用:对于对于MCS-51单片机中断系统的组成可以用一句话来讲,单片机中断系统的组成可以用一句话来讲,叫做:叫做:““五源中断,两级管理五源中断,两级管理”” 五个中断源:五个中断源: 入口地址入口地址 外部中断外部中断0((/INT0)) 0003H T0溢出中断溢出中断 000BH 外部中断外部中断1((/INT1)) 0013H T1溢出中断溢出中断 001BH 串口中断串口中断 0023H 二、中断请求源(二、中断请求源(“五源中断五源中断”))中中断断源源的的中中断断请请求求,,如如何何通通知知CPU??利用中断请求标志位来通知!!!利用中断请求标志位来通知!!!以上以上6个中断请求标志位分别分布在个中断请求标志位分别分布在TCON、、SCON两个寄存器中。
两个寄存器中TCONIT0IE0IT1IE1TR0TF0TR1TF1TF1—— T1的溢出中断标志的溢出中断标志 硬件置硬件置1,硬件清,硬件清0(也可软件清(也可软件清0))TF0 —— T0的溢出中断标志同的溢出中断标志同TF1,,只是针对只是针对T0的)的)IE1 —— 外部中断外部中断1((/INT1))请求标志请求标志 外部有中断请求时,硬件使外部有中断请求时,硬件使IE1置置1,硬件清,硬件清0IE0 —— 外部中断外部中断0((/INT0))请求标志请求标志IT1 —— 外部中断外部中断1((/INT1))触发类型控制位触发类型控制位 IT1 = 0 ,,低电平触发低电平触发IT1 = 1 IT1 = 1 ,, 下降沿触发下降沿触发 IT0 ———— 外中断外中断0((/INT0))触发类型控制位,用法同触发类型控制位,用法同IT1 SCON RI TIRB8TB8RENSM2SM1SM0TI —— 串口发送中断标志位串口发送中断标志位 发送完数据,硬件使发送完数据,硬件使TI置置1,软件清,软件清0((CLR TI)) RI —— 串行口接收中断标志位。
串行口接收中断标志位 硬件置硬件置1,软件清,软件清0 在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制 三、中断控制(两级管理)三、中断控制(两级管理)1、中断屏蔽(第一级管理)、中断屏蔽(第一级管理)IEEX0ET0EX1ET1 ES —— —— EAEA ———— 总控制位总控制位 “—” —— 未定义位未定义位ES ———— 串口控制位串口控制位 ET1———— T1中断控制位中断控制位 EX1———— /INT1控制位控制位 ET0———— T0中断控制位中断控制位 EX0———— /INT0控制位控制位 若为若为“1”,开关接通,允,开关接通,允许许例如例如 SETB EA若为若为“0”,开关断开,不,开关断开,不允许允许例如例如 2、中断优先级(第二级管理)、中断优先级(第二级管理)为什么要有为什么要有中断优先级中断优先级??CPU同同一一时时间间只只能能响响应应一一个个中中断断请请求求若若同同时时来来了了两两个个或或两两个个以上中断请求,就必须有先有后以上中断请求,就必须有先有后。
!!!!!! 为此将为此将5个中断源分成高级、低级两个级别,高级优先,由个中断源分成高级、低级两个级别,高级优先,由IP控制 IPPX0PT0PX1PT1 PS——————P S —— 串口的中断优先级别串口的中断优先级别PT1 —— 定时定时 / 计数器计数器T1的中断优先级别的中断优先级别PX1 —— 外部中断外部中断1 的中断优先级别的中断优先级别PT0 —— 定时定时 / 计数器计数器T0的中断优先级别的中断优先级别PX0 —— 外部中断外部中断0 的中断优先级别的中断优先级别该位是该位是“1”时,为高级优先级时,为高级优先级该位是该位是“ 0”时,为低级优先级时,为低级优先级同一级中的同一级中的5个中断源的优先顺序是个中断源的优先顺序是:: /INT0中断中断 T0溢出中断溢出中断 /INT1中断中断 T1溢出中断溢出中断 串口中断串口中断 高高低低出厂前已由厂家固化顺序出厂前已由厂家固化顺序——事先约定事先约定中断优先原则:(概括为四句话)中断优先原则:(概括为四句话)1、低级不打断高级、低级不打断高级2、高级不睬低级、高级不睬低级3、同级不能打断、同级不能打断4、同级、同时中断、同级、同时中断,,事先约定事先约定。
事件事件1事件事件2子程序子程序2子程序子程序1中断中断嵌套嵌套的概念:的概念: 主程序主程序中断中断中断中断四、四、MCS-51中断的响应过程中断的响应过程 CPU每个机器周期都需要顺序检查每个中断源,当检测到有中每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:断请求时,能否响应,还要看下述情况是否存在: ((1))CPU正处理相同级别或更高级别的中断;正处理相同级别或更高级别的中断;((2)正在执行指令,还未到最后一个机器周期;)正在执行指令,还未到最后一个机器周期;((3)正在执行的指令是)正在执行的指令是RETI或访问或访问IP、、IE指令,则执行完上指令,则执行完上 述指令后,再执行一条指令后,才会响应新中断述指令后,再执行一条指令后,才会响应新中断 日常生活中日常生活中的中断与的中断与单片机单片机中断的比较:中断的比较: 某同学某同学 单片机单片机 过程说明过程说明正在看书正在看书 执行主程序执行主程序有人找出去有人找出去 中断信号中断信号 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点出去做事出去做事 执行中断程序执行中断程序 中断服务中断服务回来继续看回来继续看 返回主程序返回主程序 中断返回中断返回响应过程:(假设已使某中断请求标志置响应过程:(假设已使某中断请求标志置1))((1)先使相应优先级状态触发器置)先使相应优先级状态触发器置1;;((2)执行一个硬件子程序的调用,)执行一个硬件子程序的调用, 1)硬件清零相应中断请求标志()硬件清零相应中断请求标志(TI、、RI除外)除外) 2)将当前)将当前PC内容压入堆栈内容压入堆栈——保护断点;保护断点; 3)将中断服务子程序入口地址送)将中断服务子程序入口地址送PC————转移。
转移 返回过程:(返回过程:(RETI执行后)执行后)((1)使相应优先级状态触发器清)使相应优先级状态触发器清02)从堆栈中弹出栈顶的两个字节内容送)从堆栈中弹出栈顶的两个字节内容送PC——恢复断点恢复断点3))CPU接着中断处继续执行原程序接着中断处继续执行原程序 注意:注意:1)保护断点与保护现场以及恢复断点与恢复现场的区别保护断点与保护现场以及恢复断点与恢复现场的区别 2)外部中断响应时间在)外部中断响应时间在3 ~ 8个机器周期之间个机器周期之间 利用外部中断实现单步操作利用外部中断实现单步操作: : 8031+5v在主程序中在主程序中:CLR IT0SETB EASETB PX0SETB EX0 ………在中断服务子程序中在中断服务子程序中:JNB P3.2 , $JB P3.2 , $RETI小结:小结:1、、MCS-51单片机中断系统有几个中断源?分别是什么?单片机中断系统有几个中断源?分别是什么? 事先约定的优先顺序是怎样的?事先约定的优先顺序是怎样的?2、如何进行中断允许控制?如何进行中断优先级控制?、如何进行中断允许控制?如何进行中断优先级控制?3、中断优先的规则是什么?、中断优先的规则是什么? §4-2 §4-2 定时定时 / / 计数器计数器一、定时一、定时/ 计数器的结构计数器的结构51子系列单片机内有子系列单片机内有两个两个十六位十六位增一增一 定时定时 / 计数器计数器TH0计数值高八位计数值高八位TL0计数值低八位计数值低八位TH1计数值高八位计数值高八位TL1计数值低八位计数值低八位TMODTCON工作方式工作方式定时定时 / 计数控制计数控制控控 制制 控控制制1、工作方式控制寄存器、工作方式控制寄存器 TMOD TMOD M0 M1C / GATE M0 M1C / GATET1T0GATE —— 门控位。
门控位 GATE = 0 启动不受启动不受 /INT0或或 /INT1的控制;的控制; GATE = 1 启动受启动受 /INT0 或或 /INT1 的控制 C//T —— 外部计数器外部计数器 / 定时器方式选择位定时器方式选择位 C//T = 0 定时方式;定时方式; C //T = 1 计数方式计数方式 M1M2 ———— 工作模式选择位(编程可决定四种工作模式)工作模式选择位(编程可决定四种工作模式) 2、定时、定时 / 计数器控制寄存器计数器控制寄存器TCON TCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0TR0 —— 定时定时 / 计数器计数器0运行控制位运行控制位 软件置位,软件复位软件置位,软件复位 能否启动定时能否启动定时 / 计数器工作与计数器工作与GATE有关,分两种情况:有关,分两种情况: GATE = 0 时,若时,若TRi = 1,,开启开启Ti计数工作;计数工作;(i = 0或或1)) 若若TRi = 0,,停止停止Ti计数。
计数 GATE = 1 时,若时,若TRi = 1 且且/INTi = 1时开启时开启Ti计数;计数; 若若TRi = 1 且且/INTi = 0时不能开启时不能开启Ti计数 若若TRi = 0,, 停止停止Ti计数 TR1 —— 定时定时 / 计数器计数器1运行控制位运行控制位用法与用法与TR1类似)类似) 二、定时二、定时 / 计数器的四种工作模式计数器的四种工作模式 M1 M0 模式模式 说明说明 0 0 0 13位定时位定时/计数器计数器 高八位高八位TH((7 ~ 0))+ 低五位低五位TL((4 ~ 0)) 0 1 1 16位定时位定时/计数器计数器 TH((7 ~ 0))+ TL((7 ~ 0)) 1 0 2 8位计数初值自动重装位计数初值自动重装 TL((7 ~ 0)) TH((7 ~ 0)) 1 1 3 T0运行,而运行,而T1停止工作,停止工作,8位定时位定时/计数。
计数 1、模式、模式0计数寄存器计数寄存器TLi 低低5位位 + THi8位位 ((T1、、T0的等效逻辑结构)的等效逻辑结构) C//T = 0 ——定时;定时; C//T = 1 —— 对外计数对外计数定时:定时:fosc / 12 = 1 /((12/fosc)) = 1 / T 波形等间隔,次数已定,时间确定波形等间隔,次数已定,时间确定即对机器周期进行计数即对机器周期进行计数 左图定时时间为左图定时时间为 N*T TN个方波个方波计数:脉冲不等间隔计数:脉冲不等间隔 每个下降沿计数一次每个下降沿计数一次 确认一次负跳变需两个机器周期,确认一次负跳变需两个机器周期, 所以,计数频率最高为所以,计数频率最高为fosc / 24 2、模式、模式1与模式与模式0相似与模式与模式0的区别:计数位数不同的区别:计数位数不同计数计数 寄寄 存存 器:器:THi((高高8位)位)+ TLi((低低8位)位) (逻辑图)(逻辑图)3、模式、模式2与模式与模式0、、1的区别:的区别:1)计数位数不同;)计数位数不同; 2)初值自动重装。
初值自动重装 (逻辑图)(逻辑图)4、模式、模式3T0定定时时/计计数数,,而而T1停停止止计计数数,,但但可可作作波波特特率率发发生生器器T0分分成成两两独立定时独立定时/计数器计数器TL0和和TH0TL0使用使用C//T、、GATE、、TR0、、/INT0、、TF0定时定时/计数,计数,TH0使用使用TR1、、TF1 因此,只能用于定时因此,只能用于定时 (逻辑图)(逻辑图)模式模式3时,时,T1可定时为模式可定时为模式0、、1、、2的定时的定时/计数,但不可中断,所计数,但不可中断,所以一般只作串口波特率发生器用以一般只作串口波特率发生器用 (逻辑图)(逻辑图)编程前确定参数:编程前确定参数:((1)定时)定时/计数器计数器 —— T0、、T1选择其一,选择其一,((2)工)工 作作 方方 式式 —— C//T及及GATA,,((3))计计 数数 初初 值值 —— —— 加加1计数、计数、16位 0010 10 4 6MNX 计数:计数:X=M--N;;M=213=8192((模式模式0)) M=216=65536(( 模模 式式1)) M=28=256 ((模式模式2、、 模式模式3))定时:定时: X=M–N =M – t/T((t为所要求的为所要求的 定时时间,定时时间,T为机器周期)为机器周期) ((4)工)工 作作 模模 式式 —— —— M1、、M0 四、定时四、定时/计数器的应用计数器的应用编制初始化程序:编制初始化程序:1)写)写TMOD;;2))确定确定IE、、IP;;3))写计数初值;写计数初值;4)启动计数()启动计数(TRi)) 例例1、设计一个能产生、设计一个能产生t=1ms的周期信号发生器,试编程。
的周期信号发生器,试编程解:选解:选T0;; C//T=0,,GATE= 0 N = t / T = t /[12×((1/fosc))]= 500 所以,所以, X = M -- 500 ,, 模式模式0、模式、模式1均可,取模式均可,取模式0,,M=213=8192X = 8192--500 = 7692 = 1E0CH = 0001 1110 000 0 1100B,, 1E0CH01100TL011110000TH0F0H0CH先将低五位放入先将低五位放入TL0中,再将剩余的数从右中,再将剩余的数从右向左数出八位放入向左数出八位放入TH0中 LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN:: MOV SP,,#60H MOV TL0,,#0CH MOV TH0,,#0F0H MOV TMOD,,#00H SETB TR0 SETB ET0 SETB EA SJMP $$ ……… ORG 0000H INSE1:: MOV TL0,,#0CH MOV TH0,,#0F0H CPL P10 RETI 小结:小结:1、、MCS-51单片机内有几个定时计数器?单片机内有几个定时计数器? 如何计数?如何计数? 2、、T0、、T1有几种工作方式?有几种工作方式? 3、编程应用前要事先确定的参数有几个?、编程应用前要事先确定的参数有几个? 布置作业:布置作业:P141 9 §4-3 定时定时 / 计数器的应用计数器的应用TMOD M0 M1C / GATE M0 M1 C/ GATETCON TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0复习复习:例例2、设、设fosc = 6MHz,,利用单片机内定时利用单片机内定时/计数器及计数器及P10口线输出口线输出1000个脉冲,脉冲周期为个脉冲,脉冲周期为2ms,,试编程。
试编程 8031 P1.0 T12ms T = 12×1/fosc = 2us 选取选取T0定时;定时;T1计数 设设T0采采用用中中断断方方式式产产生生周周期期为为2ms方方波波,,T1对对该该方方波波计计数数,,当当输输出出至至第第1000个个脉脉冲冲时时,,使使TF1置置1 在在主主程程序序中中用用查查询询方方法法,,检检测到测到TF1变变1时,关掉时,关掉T0,,停止输出方波停止输出方波 T0、、T1参数的确定:参数的确定:T0模式模式0、定时:脉宽为脉冲周期的一半、定时:脉宽为脉冲周期的一半所以,所以,X = 213--1ms / 2us = 0001 1110 0000 1100BTH0 = 0F0H ; TL0 = 0CH T1模式模式1、计数:、计数:N = 1000 则则 X = 65536--1000 = 64536 = 0FC18H ((若选模式若选模式0也可以,此时也可以,此时X = 7192=1C18H)) 程序:程序: ORG 0000H LJMP MAIN ORG 000BH LJMP TOS ORG 1000H MAIN:: MOV TMOD,,#50H;;T0定时,模式定时,模式0;;T1计数,模式计数,模式1 MOV TL0,,#0CH MOV TH0,,#0F0H MOV TL1,,#18H MOV TH1,,#0FCH SETB TR1 SETB TR0 SETB ET0 SETB EA WAIT:: JNB TF1,,WAIT;;查询查询1000个脉冲计够没有到个脉冲计够没有到?? CLR EA CLR ET0 ANL TCON,,#0FH ;; 停停T0、、T1 SJMP $$ TOS:: MOV TL0,,#0CH MOV TH0,,#0F0H CPL P10 RETI END P3.2P3.1例例3、脉冲参数测量、脉冲参数测量——GATE功能的使用。
功能的使用 脉冲高电平(计数)长度值存于脉冲高电平(计数)长度值存于21H、、20H中,中, 脉冲低电平长度存于脉冲低电平长度存于23H、、22H中 电路连接如下图所示电路连接如下图所示解:解: 复习复习GATE的用法:的用法: GATE = 0时,时,TRi = 1,,即可启动即可启动Ti定时定时 / 计数计数 GATE = 1时,时,TRi = 1,,且且 =1,,才启动定时才启动定时 / 计数被测信号被测信号1803121a3T0计数计数T1计数计数 ORG 0000H LJMP MAIN ORG 2000HMAIN::MOV TMOD,,#99H ;;T0、、T1均工作在定时,均工作在定时, ;模式;模式1,,GATE=1 MOV A,,#00H ;;T0、、T1赋计数初值赋计数初值00H,, ; 定时最长时间为定时最长时间为0000 ~ 65536 MOV TL0,,A MOV TH0,,A MOV TL1,,A MOV TH1,,A TEST0:: JB P32,,TEST0 ;;检测是否到检测是否到a点点 SETB TR0 ;;到到a点,点,TR0 = 1,,做好取计时值准备。
做好取计时值准备TEST1:: JNB P32,,TEST1 ;;检测是否到检测是否到1点点 SETB TR1 ;;到到1点点T0计时;计时;TR1 = 1,,做好做好T1计时准备计时准备TEST2::JB P32,,TEST2 ;;检测是否到检测是否到2点点 CLR TR0 ;;到到2点,停止点,停止T0计时,计时,T1开始计时开始计时 MOV 20H,,TH0 ;;保存保存T0计时结果计时结果 MOV 21H,,TL0TEST3::JB P33,,TEST3 ;;检测是否到检测是否到3点点 CLR TR1 ;;到到3点,停止点,停止T1计数计数 MOV 22H,,TH1 ;;保存保存T1计数结果计数结果 MOV 23H,,TL1 LCALL DISP SJMP $$ 小结:小结:1、定时、定时/计数的四种方式是怎样的?计数的四种方式是怎样的? 2、如何计算计数初值?如何编程送入计数初值?、如何计算计数初值?如何编程送入计数初值? 3、、GATE的用法是怎样的?的用法是怎样的? 布置作业:布置作业:P141 10、、 11 §4-4 §4-4 MCS-51MCS-51单片机串行接口单片机串行接口一、串行通信概述一、串行通信概述1 1、什么叫串行通信?、什么叫串行通信? 在生活中同学们排横队行走在生活中同学们排横队行走—— 并行;排纵队行走并行;排纵队行走—— 串行。
串行计算机中在传输信息、数据时也有并行、串行的问题计算机中在传输信息、数据时也有并行、串行的问题P1.0P1.1P1.2P1.3RXDTXD单片机单片机外设外设1外设外设2100110001100111 0 1 01 0 0 0接收设备接收设备发送设备发送设备2、同步通信、异步通信、同步通信、异步通信 同步同步——发送设备时钟与接收设备时钟严格一致发送设备时钟与接收设备时钟严格一致校验字符校验字符2校验字符校验字符1 数据数据n ……… 数据数据2 数据数据1同步字符同步字符2同步字符同步字符1异步异步—— 发送时钟与接收时钟不一定相等发送时钟与接收时钟不一定相等空闲位空闲位停止位停止位奇偶校验位奇偶校验位5~8位数据位数据起始位起始位空闲位空闲位3、串行通信的方向、串行通信的方向单工单工 A 发发 B 发发半双工半双工 A 发发 收收 B 收收 发发例如:广播电台例如:广播电台 收音机收音机例如:例如: 对讲机对讲机全双工全双工 A 发发 收收 B 收收 发发例如:例如: 机机4、波特率、波特率即串行通信速率。
即串行通信速率 b/s 、、 bps 在异步通信中,单位时间内所传送的有效二进制位数在异步通信中,单位时间内所传送的有效二进制位数——波特率举举例例、、设设有有一一帧帧信信息息,,1个个起起始始位位、、8个个数数据据位位、、1个个停停止止位位,,传传输输速率为每秒速率为每秒240个字符求波特率求波特率解:解:((1++8++1))××240 = 2400 b/s = 2400波特 5、串行通信接口、串行通信接口发送:发送:CPUD7D6D5D4D3D2D1D0发送寄存器发送寄存器SBUF 0 1D0D1D2D3D4D5D6D7发送时钟发送时钟:接收接收:D0D1D2D3D4D5D6D7 1 0D7D6D5D4D3D2D1D0CPU接收时钟接收时钟接收数据寄接收数据寄存器存器SBUF二、二、MCS-51机串行接口机串行接口单片机内有通用异步接收单片机内有通用异步接收/发送器发送器 UART全双工,全双工,4种工作方式,波特率可编程设置,可中断种工作方式,波特率可编程设置,可中断 1、串口的组成、串口的组成 从编程角度讲来看主要由以下寄存器组成从编程角度讲来看主要由以下寄存器组成。
SBUF—— 串行发送串行发送 / 接收数据缓冲器接收数据缓冲器 是两个物理单元,共用一个地址(是两个物理单元,共用一个地址(99H))SMODPCON—— 电源管理寄存器电源管理寄存器SMOD位用于决定波特率的倍数位用于决定波特率的倍数 0 20 = 1倍倍 1 21 = 2倍倍SCON—— 串行口控制寄存器串行口控制寄存器SM0SM1SM2RENTB8RB8 TI RITI / RI ::中断请求标志位(前面已讲过)中断请求标志位(前面已讲过)RB8::接收的第九位数接收的第九位数TB8::发送的第九位数发送的第九位数REN::允许接收控制位允许接收控制位SM2:多机通信控制位(常与RB8配合,决定是否激活RI)SM0、、SM1::工作方式选择位(四种工作方式)工作方式选择位(四种工作方式)2、串行口的工作方式、串行口的工作方式((1)方式)方式0:同步移位寄存器方式:同步移位寄存器方式 波特率固定为波特率固定为fosc / 12 RXD —— 接收发送数据接收发送数据 TXD —— 产生同步移位脉冲产生同步移位脉冲 接收接收/发送完,置位发送完,置位RI / TI ,(,(要求要求SM2 = 0)) D7 D6 D5 D4 D3 D2 D1 D0 D0 D1 D2 D3 D4 D5 D6 D7发送发送接收接收无起始位,无停止位无起始位,无停止位 。
可用于并口的扩展可用于并口的扩展((2)方式)方式1::8位位UART 波特率为(波特率为(2SMOD××T1的溢出率)的溢出率)/ 32 ,可变 一帧信息一帧信息10位D0D1D2D3D4D5D6D7停止位停止位起始位起始位发送发送D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收送送 RB8发送完置位发送完置位TI当接收到数据后,置位当接收到数据后,置位RI是有条件的即:是有条件的即:REN = 1,,RI = 0 且且SM2 = 0或或SM2 = 1但是接收到的停止位为但是接收到的停止位为1此时,数据装载此时,数据装载SBUF,, RI置置1 ,,停止位进入停止位进入RB8 ((3)方式)方式2、方式、方式3 ::9位位UART 一般一般用于多机通信一帧信息用于多机通信一帧信息1111位 D0D1D2D3D4D5D6D7TB8停止位停止位起始位起始位发送发送发送完数据置位发送完数据置位TI TB8D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收接收到有效数据完毕,置位接收到有效数据完毕,置位RI的条件的条件:: REN = 1,,RI = 0 且且SM2 = 0或接收到第或接收到第9位数据为位数据为1,,此时,数据装载此时,数据装载SBUF,,RI置置1,第,第9位数据(位数据(TB8)) RB8。
送送RB8方式方式2波特率:(固定)波特率:(固定)2SMOD / 64 × fosc3、波特率的设置、波特率的设置方式方式0、方式、方式2固定固定方式方式1,方式,方式3可变波特率可变波特率 = 2SMOD / 32 ×((T1的溢出率)的溢出率) T1溢出率溢出率 = 单位时间内溢出次数单位时间内溢出次数 = 1 /((T1的定时时间)的定时时间)而而T1的的定定时时时时间间t就就是是T1溢溢出出一一次次所所用用的的时时间间此此情情况况下下,,一一般般设设T1工作在模式工作在模式2((8位自动重装初值)位自动重装初值) N = 28-- t / T,, t = ((28--N))T =((28--N))×12 / fosc所以,所以,T1溢出率溢出率 = 1/t = fosc / 12((28--N),),故,故, 波特率波特率 = 2SMOD / 32 × fosc / 12((256--N)若已知波特率,则可求出若已知波特率,则可求出T1的计数初值:的计数初值: y = 256--2SMOD××fosc / ((波特率波特率××32××12)) 巩固新课:巩固新课:例、若例、若fosc = 6MHz,,波特率为波特率为2400波特,设波特,设SMOD = 1,,则定时则定时/计数器计数器T1的计数初值为多少?并进行初始化编程。
的计数初值为多少?并进行初始化编程 解:解:X= 256--2SMOD×fosc≈≈243 = F3H fosc = 11.0592MHz,,波特率为波特率为2400,设,设SMOD = 0,,则则 X = F4H 初始化编程:初始化编程: MOV TMOD,,#20H MOV PCON,,#80H MOV TH1,,#0F3H MOV TL1,,#0F3H SETB TR1 MOV SCON,,#50H 小结:小结:1、什么叫串行通信?、什么叫串行通信?2、、UART叫什么?(通用异步接收叫什么?(通用异步接收/发送器)发送器)3、单工、半双工、全双工?、单工、半双工、全双工?4、、 串串 口口 工工 作作 用用 到到 哪哪 些些 寄寄 存存 器器 ?? (( PCON、、 SCON、、SBUF))5、、串口有几种工作方式?串口有几种工作方式?6、波特率如何设置?(、波特率如何设置?(T1的计数初值如何确定)的计数初值如何确定) 布置作业:布置作业:P141 7、、9、、10 。
