《单片机及嵌入式系统 大学课件╱第3章》由会员分享,可在线阅读,更多相关《单片机及嵌入式系统 大学课件╱第3章(88页珍藏版)》请在金锄头文库上搜索。
1、第三讲: I/O,中断,定时与串口本讲重点:本讲重点: 接口概念接口概念,单片机的编单片机的编址与址与译码方法译码方法; 中断概念中断概念,响应条件响应条件,处理原则处理原则,中断服务中断服务; 定时器定时器/计数器工作方式计数器工作方式1,21,2的的用法用法; 串行通讯的波特率串行通讯的波特率, 4 4种工作方式种工作方式.单片微机原理及应用单片微机原理及应用教学课件教学课件第五章第五章 I/OI/O, ,中断中断, ,定时与串行通信定时与串行通信I/OI/O接口的作用接口的作用/ /功能功能/ /定义定义数据数据性质性质不同不同数据数据协议协议/ /格式格式不同不同速度速度不一致不一致所
2、需所需功率功率/ /电平电平不匹配不匹配所需所需测控点数量测控点数量不匹配不匹配 计算机计算机/ /单片机单片机与与外设外设之间之间起起桥梁桥梁作用的作用的 电路或部件电路或部件接口接口(interface)(interface)。 协调协调两者间的两者间的差异差异。 单片微机原理及应用单片微机原理及应用教学课件教学课件 本课程中讲到的本课程中讲到的接口可以是接口可以是口地址口地址 可寻址的寄存器可寻址的寄存器/ /端口端口地址由选用的地址线条数与地址线名决定地址由选用的地址线条数与地址线名决定接口接口与与端口端口地址线地址线条数条数n n决定:寻址范围决定:寻址范围 = 2= 2n n MC
3、S-51 MCS-51寻址范围寻址范围 = = 2 216 16 = 65536 = 64K= 65536 = 64K字节字节地址线在地址总线中的地址线在地址总线中的序名序名决定具体地址决定具体地址 一个端口一个端口可能可能有多个口地址;有多个口地址; 一个口地址一个口地址只能只能唯一地指向某个端口。唯一地指向某个端口。器件器件 功能模块功能模块电路板卡电路板卡 设备设备/ /装置装置 单片微机原理及应用单片微机原理及应用教学课件教学课件站在单片机站在单片机/ /计算机计算机一侧一侧来看待上述过程叫来看待上述过程叫编址。编址。 站在单片机站在单片机/ /计算机计算机外侧外侧来看待上述过程叫来看
4、待上述过程叫译码。译码。接口地址的接口地址的编址编址/ /译码译码/ /寻址概念寻址概念:通过适当的地址线通过适当的地址线( (或控制线,或或控制线,或I/OI/O线线),),物理上形成某个或某些物理上形成某个或某些片选片选/ /使能使能等信号,等信号,实现与接口对象的一一对应的过程实现与接口对象的一一对应的过程。通过通过软件与译码电路硬件软件与译码电路硬件实现对外设的片选实现对外设的片选或使能控制过程叫或使能控制过程叫寻址寻址。单片微机原理及应用单片微机原理及应用教学课件教学课件编址编址是设计过程(在先)是设计过程(在先)译码和寻址译码和寻址是应用过程(在后)是应用过程(在后)对对I/OI/
5、O与存储器编址与存储器编址通常有两种方式通常有两种方式: 独立编址方式:独立编址方式: I/OI/O与存储器分别编址与存储器分别编址 ( (例如例如IBM-PC)IBM-PC) 统一编址方式:统一编址方式: I/OI/O与存储器合在一起编址与存储器合在一起编址( (单片机应用系统单片机应用系统) )编址编址有两种方式有两种方式单片微机原理及应用单片微机原理及应用教学课件教学课件 单片机对外部器件实现一一对应的单片机对外部器件实现一一对应的“片选片选”通常要用单通常要用单片片 机的地址总线机的地址总线A15A0A15A0中的中的部分或全部部分或全部,甚至,甚至也可以用某些也可以用某些I/OI/O
6、线线。A15 A14 A13 A12 A11 A10 A9 A8 A15 A14 A13 A12 A11 A10 A9 A8 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0P0P0口是口是低低8 8位地址位地址与数据复用口与数据复用口线选寻址线选寻址与与译码寻址译码寻址A7A7/D7 /D7 A6A6/D6 /D6 A5A5/D5 /D5 A4A4/D4 /D4 A3A3/D3 /D3 A2A2/D2 /D2 A1A1/D1 /D1 A0 A0/D0/D0P0.7 P0.6 P0.5
7、P0.4 P0.3 P0.2 P0.1 P0.0P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0P2P2口是口是高高8 8位地址位地址口。口。单片微机原理及应用单片微机原理及应用教学课件教学课件P2.7P2.7P2.5P2.5P2.6P2.6P0P0口口/CE/CE/CE/CE/CE/CEP2.2-2.0P2.2-2.0RAMRAM (2K2K) A10 A9 A8A10 A9 A8P2.5P2.5 做做 RAM RAM 片选线片选线 (0000H0000H07FFH07FFH)P2.2,P2.1,P2.0P2.2,P2.1,P2.0与与P0P0口口共同寻址共同寻
8、址 2K2K字节字节存储单元存储单元地址范围:地址范围: XXXX0 0X XX X000000 0000 0000 0000 0000 XX XX0 0X XX X111111 1111 1111 1111 1111 线选寻址线选寻址:用一条或几条地址线对外寻址用一条或几条地址线对外寻址 MCS-51MCS-51单片机单片机AD7-0AD7-0D7-0D7-0D7-0D7-0Q7-0Q7-0Q7-0Q7-0单片微机原理及应用单片微机原理及应用教学课件教学课件P2.7P2.7P2.5P2.5P2.6P2.6P0P0口口/CE/CE/CE/CE/CE/CEP2.2-2.0P2.2-2.0RAM
9、RAM (2K2K) A10 A9 A8A10 A9 A8P2.7P2.7 做做输出锁存器输出锁存器的片选线的片选线 地址范围:地址范围:0 0XXX XXXX XXXX XXXXXXX XXXX XXXX XXXXMCS-51MCS-51单片机单片机AD7-0AD7-0D7-0D7-0D7-0D7-0Q7-0Q7-0P2.6P2.6 做做输入缓冲器输入缓冲器的片选线的片选线 地址范围:地址范围:X X0 0XX XXXX XXXX XXXXXX XXXX XXXX XXXX锁存器锁存器缓冲器缓冲器( (例例: :7FFFH)7FFFH)( (例例: :0BFFFH)0BFFFH)单片微机原理
10、及应用单片微机原理及应用教学课件教学课件P2.7P2.7P2.5P2.5P2.6P2.6/CE/CE/CE/CE/CE/CE常用译码器件:常用译码器件: 74LS13874LS138:3-83-8译码器译码器 译码寻址译码寻址:用用地址线地址线加加译码器件译码器件对外寻址对外寻址 P0.7-P0.7-P0.0P0.074LS13874LS138Y0Y0A AB BC CG G G2A G2A G2BG2B0#0#1#1#2#2#7#7#+5V+5VMCSMCS-51-51Y1Y1Y2Y2Y7Y7/CE/CE74LS13974LS139:双:双2-42-4译码器译码器单片微机原理及应用单片微机原
11、理及应用教学课件教学课件数据的输入/输出传送方式查询传送方式查询传送方式(LOOK UP)(LOOK UP):传送前一方先查询另一方的状态,若已经准备好传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询就传送,否则就继续查询/ /等待等待中断传送方式中断传送方式(IRQ)(IRQ):一方通过申请中断的方式与另一方进行数据传送一方通过申请中断的方式与另一方进行数据传送无条件传送方式:无条件传送方式:一方对另一方来说总是准备好的一方对另一方来说总是准备好的直接存储器存取方式直接存储器存取方式(DMA)(DMA):双方直接通过总线传送数据双方直接通过总线传送数据, , 不经不经CPUC
12、PU中转中转第五章第五章 I/O,I/O,中断中断, ,定时与串行通信定时与串行通信单片微机原理及应用单片微机原理及应用教学课件教学课件 数据传送的双方平时各自做自己的工作,一旦数据传送的双方平时各自做自己的工作,一旦甲方甲方要求与要求与乙方乙方进行数据传送,就主动进行数据传送,就主动发出信号发出信号提出申请,提出申请,乙方乙方接到申请后若接到申请后若同意同意传送,传送,安排好安排好当前的工作当前的工作,再,再响应响应与甲方发生数据传送。与甲方发生数据传送。完事完事后,回去继续后,回去继续做打断前的工作。做打断前的工作。中断功能强弱是计算机性能优劣的重要标志中断功能强弱是计算机性能优劣的重要标
13、志提高提高CPUCPU效率效率 解决速度矛盾解决速度矛盾 实现并行工作实现并行工作 应付突发事件应付突发事件中断传送方式特点 单片微机原理及应用单片微机原理及应用教学课件教学课件中断源中断源 中断申请中断申请开放中断开放中断保护现场保护现场中断服务中断服务恢复现场恢复现场中断返回中断返回中断涉及的几个环节(前面提到的(前面提到的甲方甲方)(甲方(甲方发出信号发出信号提出申请)提出申请)(乙方乙方同意同意传送)传送)(安排好当前的工作安排好当前的工作)(响应响应乙方乙方的要求)的要求)(完事后,回去完事后,回去)(继续继续做打断前的工作)做打断前的工作)单片微机原理及应用单片微机原理及应用教学课
14、件教学课件单片机的中断源及TCON CPUCPU在每个机器周期的在每个机器周期的S5P2S5P2期间期间,会自动查询,会自动查询各个各个中断申请标志位中断申请标志位,若查到某标志位被置位,若查到某标志位被置位, ,将启动中断机制。将启动中断机制。5151子系列允许子系列允许5 5个个(52(52子系列子系列6 6个个) )中断源:中断源: 2 2个外部中断请求:个外部中断请求:INT0INT0,INT1INT1 2 2个片内定时器个片内定时器/ /计数器计数器T0T0和和T1T1中断请求:中断请求: TF0TF0,TF1TF1,(TF2TF25252子系列有子系列有T2T2) 1 1个串行口中
15、断请求:个串行口中断请求:TI/RITI/RICPUCPU识别中断申请的依据识别中断申请的依据:单片微机原理及应用单片微机原理及应用教学课件教学课件单片机的中断源及TCONCPU CPU 在每个机器周期的在每个机器周期的S5P2S5P2期间期间,会自动查询,会自动查询各个各个中断申请标志位中断申请标志位,若查到某标志位被置位,若查到某标志位被置位, ,将启动中断机制。将启动中断机制。CPUCPU识别中断申请的依据识别中断申请的依据:TcTsTmTmTcTc=1/fosc Ts=6Tc Tm=12Tc=6Ts=1/fosc Ts=6Tc Tm=12Tc=6TsS5S6S4S3S2S5S6S4S3
16、S2S1单片微机原理及应用单片微机原理及应用教学课件教学课件定时器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONTF0/TF1TF0/TF1:定时器溢出中断申请标志位:定时器溢出中断申请标志位: =0=0:定时器未溢出;定时器未溢出; =1=1:定时器溢出申请中断,进中断后自动清零。定时器溢出申请中断,进中断后自动清零。TR0/TR1TR0/TR1:定时器运行启停控制位:定时器运行启停控制位: =0=0:定时器停止运行;定时器停止运行; =1=1:定时器启动运行。定时器启动运行。TCO
17、NTCON:TimerTimer控制寄存器控制寄存器,是管理定时器工作的,是管理定时器工作的SFRSFR(其中低其中低4 4位管外部中断)位管外部中断)单片微机原理及应用单片微机原理及应用教学课件教学课件定时器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONIE0/IE1IE0/IE1:外部中断申请标志位:外部中断申请标志位: =0=0:没有外部中断申请;没有外部中断申请; =1=1:有外部中断申请。有外部中断申请。IT0/IT1IT0/IT1:外部中断请求的触发方式选择位:外部中断请求
18、的触发方式选择位: =0=0:在:在INT0/INT1INT0/INT1端申请中断的信号端申请中断的信号低电平低电平有效有效; ; =1 =1:在在INT0/INT1INT0/INT1端申请中断的信号端申请中断的信号负跳变负跳变有效有效. .TCONTCON:TimerTimer控制寄存器控制寄存器,低低4 4位管理外部中断位管理外部中断单片微机原理及应用单片微机原理及应用教学课件教学课件在在CPUCPU已经开放了外部中断允许的前提下:已经开放了外部中断允许的前提下:在在INT0INT0/ /INT1INT1引脚输入一个引脚输入一个负脉冲负脉冲或或低电平低电平, TCONTCON寄存器中的寄存
19、器中的IE0/IE1IE0/IE1标志位自动变标志位自动变“1 1”,检测到检测到IE0/IE1IE0/IE1变变“1 1”后后, ,将产生指令:将产生指令: LCALL 0003HLCALL 0003H(/0013H)(/0013H)执行中断服务程序执行中断服务程序, ,并将并将IE0/IE1IE0/IE1标志位自动清标志位自动清“0 0”, ,以备下次申请以备下次申请。外部中断(INT0,INT1)申请过程单片微机原理及应用单片微机原理及应用教学课件教学课件单片机的中断矢量与优先级 中断矢量中断矢量: MCS-51MCS-51单片机的单片机的 5 5 个中断源分别对个中断源分别对应有各自的
20、应有各自的中断服务程序入口地址中断服务程序入口地址中断矢量中断矢量000BH000BHTF0TF0定时定时/ /计数器计数器0(T0)0(T0)002BH002BHTF2TF2定时定时/ /计数器计数器2(T2)2(T2)0023H0023HRI/TIRI/TI串行口接收串行口接收/ /发送发送001BH001BHTF1TF1定时定时/ /计数器计数器1(T1)1(T1)0013H0013HIE1IE1外部中断外部中断1( INT1)1( INT1)0003H0003HIE0IE0外部中断外部中断0( INT0)0( INT0)中断优先级中断优先级中断矢量中断矢量申请标志申请标志中中 断断 源
21、源最高优先级最高优先级最低优先级最低优先级单片微机原理及应用单片微机原理及应用教学课件教学课件 PT2 PS PT1PT2 PS PT1 PX1 PX1 PT0 PX0PT0 PX0IPIPPX0/PX1PX0/PX1:INTINT0/10/1优先级控制位:优先级控制位: =0=0 时属时属低低优先级;优先级; =1=1 时属时属高高优先级。优先级。PT0/PT1/PT2PT0/PT1/PT2:T0/1/2T0/1/2中断优先级控制位:中断优先级控制位: =0=0 时属低优先级;时属低优先级; =1=1 时属时属高高优先级。优先级。PS1PS1:串行口中断优先级控制位:串行口中断优先级控制位:
22、 =0=0 时属时属低低优先级;优先级; =1=1 时属时属高高优先级。优先级。中断优先级控制寄存器中断优先级控制寄存器IP IP (0B8H)(0B8H)单片微机原理及应用单片微机原理及应用教学课件教学课件对对同时发生同时发生多个中断申请时:多个中断申请时:不同优先级的中断同时申请不同优先级的中断同时申请( (很难遇到很难遇到) ) 先高后低先高后低相同优先级的中断同时申请相同优先级的中断同时申请( (很难遇到很难遇到) ) 按序执行按序执行正处理低优先级中断又接到高级别中断正处理低优先级中断又接到高级别中断 高打断低高打断低正处理高优先级中断又接到低级别中断正处理高优先级中断又接到低级别中
23、断 高不理低高不理低中断优先级处理原则单片微机原理及应用单片微机原理及应用教学课件教学课件没有没有同级的中断或更高级别的同级的中断或更高级别的中断正在处理中断正在处理;在中断源提出了在中断源提出了中断申请中断申请且且CPUCPU此前已经此前已经允许中断允许中断的前提下,还须满足以下的前提下,还须满足以下三个条件三个条件: :正在执行的指令必须正在执行的指令必须执行完最后执行完最后 1 1个机器周期个机器周期;若正在执行若正在执行RETIRETI,或正在访问或正在访问IEIE或或IPIP寄存器寄存器, ,须须 执行完上述指令和下一条指令以后方能响应中断。执行完上述指令和下一条指令以后方能响应中断
24、。单片微机原理及应用单片微机原理及应用教学课件教学课件 EAEA ET2 ES ET1 EX1 ET0 EX0 ET2 ES ET1 EX1 ET0 EX0IEIE中断允许寄存器中断允许寄存器IE IE (0A8H)(0A8H) EX0/EX1/ET1/ET0/ES EX0/EX1/ET1/ET0/ES 位位: 分别是分别是INT0/1INT0/1,Timer0/1Timer0/1,串行口串行口的中断允的中断允 许控制位许控制位: : =0 =0 时禁止中断;时禁止中断; =1=1 时时允许允许中断。中断。ET2ET2:T2T2中断允许控制位(仅中断允许控制位(仅5252子系列子系列有)有)
25、=0 =0 时禁止中断;时禁止中断; =1=1 时时允许允许中断。中断。EAEA:总的中断允许控制位(总开关):总的中断允许控制位(总开关): =0 =0 时禁止全部中断;时禁止全部中断;=1=1 时时允许允许中断。中断。单片微机原理及应用单片微机原理及应用教学课件教学课件中断系统硬件结构 注注: :各中断允许控制位各中断允许控制位=0,=0,开关断开开关断开; =1,=1,开关接通开关接通IE0IE0EX0EX0TF0TF0IE1IE1TF1TF1TITIESESET1ET1EX1EX1ET0ET0外部中断外部中断 请求请求0 0外部中断外部中断 请求请求1 1内部内部 定时器定时器0 0内
26、部内部 定时器定时器1 1内部内部 串行口串行口T TR RRIRIIEIE寄存器寄存器 EAEA位位IPIP寄存器寄存器各单路各单路开关开关 总开关总开关中断源标志中断源标志位查询机构位查询机构高中断级高中断级中断请求中断请求低中断级低中断级中断请求中断请求中断入口中断入口中断源中断源标志位标志位INT0INT0INT1INT1中断入口中断入口中断源中断源标志位标志位单片微机原理及应用单片微机原理及应用教学课件教学课件外部中断及中断请求的撤除低电平低电平/ /负脉冲负脉冲INT0/INT1INT0/INT1引脚引脚可触发中断可触发中断TF1 TR1 TF0 TR0 TF1 TR1 TF0 T
27、R0 IE1 IE1 IT1 IT1 IE0 IE0 IT0 IT0TCON TCON (88H)(88H)IT0/IT1IT0/IT1:INT0/1INT0/1的触发方式选择位:的触发方式选择位: IT0/IT1 IT0/IT1 =0=0 时,时,INT0/INT1INT0/INT1是是低电平低电平有效;有效; IT0/IT1 IT0/IT1 =1=1 时,时,INT0/INT1INT0/INT1是是负跳变负跳变有效。有效。低电平触发低电平触发 引脚上的低电平须持续到中断发生。引脚上的低电平须持续到中断发生。若中断返回前仍未若中断返回前仍未及时撤除及时撤除低电平低电平, ,将再次中断。将再次
28、中断。负脉冲触发负脉冲触发 CPUCPU在前一机器周期采到在前一机器周期采到INT0/INT1INT0/INT1引引脚为高脚为高, ,后一机器周期采到为低才认为是一次中断后一机器周期采到为低才认为是一次中断请求。请求。CPU CPU 可可记忆申请记忆申请、可、可自动撤除中断申请自动撤除中断申请。单片微机原理及应用单片微机原理及应用教学课件教学课件外部低电平中断的撤除外来的低电平外来的低电平反相反相CLKCLK端产生上跳沿端产生上跳沿 D D端的端的“0 0”打到打到Q Q端端申请中断申请中断INTxINTxP1.0P1.0CLKCLKS SQ QD D外来中断申请外来中断申请信号信号( (低电
29、平低电平) )MCS-51MCS-5174LS7474LS74S=0 S=0 则则 Q=1Q=1中断返回前对中断返回前对P1.0P1.0送送“0 0” 令令Q Q端变为端变为“1 1”指令如下:指令如下: ANL P1ANL P1,#0FEH #0FEH = CLR P1.0 ;= CLR P1.0 ;令令Q Q端置端置“1 1” ORL P1, #01H ORL P1, #01H = SETB P1.0 = SETB P1.0 ; ;令令S S端置端置“1 1”, ,以免下次中断来时以免下次中断来时Q Q端不能变端不能变“0 0”单片微机原理及应用单片微机原理及应用教学课件教学课件中断应用前
30、后要做的几项工作 中断前中断前 开中断允许:开中断允许:必须必须 选择优先级:根据需要选择,选择优先级:根据需要选择,可有可有/ /可无可无 设置控制位:设置控制位:INTxINTx触发方式触发方式( (ITxITx) ) TxTxTCONTCON, ,TMODTMOD, ,TRxTRx, ,初值初值 RI/TIRI/TISCONSCON, ,RENREN, ,RB8RB8, ,TB8TB8, ,中断后中断后进入中断服务进入中断服务后后:保护现场保护现场,关中断关中断,退出中断服务退出中断服务前前:恢复现场恢复现场, ,开中断开中断, ,设设TxTx的初的初 值值, ,清清TI/RITI/RI
31、, ,中断服务程序的最后一条指令必是中断服务程序的最后一条指令必是 RETIRETI单片微机原理及应用单片微机原理及应用教学课件教学课件中断应用程序举例:例例2 2:通过通过外部中断外部中断1 1, ,在中断服务中将在中断服务中将B B寄存器里的内容寄存器里的内容左环移一位左环移一位。 已知已知: (: (B B) )=01h=01h, ,要求采用边沿触发要求采用边沿触发, ,低优先级。低优先级。此例的此例的实际意义:实际意义:在在INT1INT1引脚接一个引脚接一个按钮开关按钮开关到地,每到地,每按一下按钮就申请一次中断,中断服务则是:按一下按钮就申请一次中断,中断服务则是:依次点亮依次点亮
32、八盏灯中的一盏八盏灯中的一盏。 单片微机原理及应用单片微机原理及应用教学课件教学课件中断应用程序举例:例例2 2:通过通过外部中断外部中断1 1, ,在中断服务中将在中断服务中将B B寄存器里的内容寄存器里的内容左环移一位左环移一位。 已知已知: (: (B B) )=01h=01h, ,要求采用边沿触发要求采用边沿触发, ,低优先级。低优先级。此例的此例的实际意义:实际意义:在在INT1INT1引脚接一个引脚接一个按钮开关按钮开关到地,每到地,每按一下按钮就申请一次中断,中断服务则是:按一下按钮就申请一次中断,中断服务则是:依次点亮依次点亮八盏灯中的一盏八盏灯中的一盏。 P1.0P1.0P1
33、.7P1.7INT1INT1300 单片微机原理及应用单片微机原理及应用教学课件教学课件 ORG 0000H ORG 0000H LJMP LJMP MAINMAIN ORG 0013H ORG 0013H ; ;中断矢量中断矢量 LJMP LJMP INTINTMAINMAIN:SETB EA ;SETB EA ;开总中断允许开总中断允许“开关开关” SETB EX1 ;SETB EX1 ;开分中断允许开分中断允许“开关开关” CLR PX1 ;0 CLR PX1 ;0 优先级(也可不要此句)优先级(也可不要此句) SETB IT1 ;SETB IT1 ;边沿触发边沿触发 MOV MOV B
34、 B,#01H ;,#01H ;给给 B B 寄存器赋初值寄存器赋初值HEREHERE:SJMP HERE ;SJMP HERE ;原地等待中断申请原地等待中断申请INTINT:MOV AMOV A,B B ; ;自自B B寄存器中寄存器中取数取数 RL A RL A ; ;左环移一次左环移一次 MOV MOV B B,A ;A ;存回存回B B, ,备下次取用备下次取用 (MOV P1(MOV P1,A) A) ; ;输出到输出到P1P1口口 RETI ;RETI ;中断返回中断返回中断服中断服 务程序务程序单片微机原理及应用单片微机原理及应用教学课件教学课件单片机的定时/计数器单片微机原理
35、及应用单片微机原理及应用教学课件教学课件2 2个个1616位位定时器定时器/ /计数器计数器 ( (5252系列有系列有3 3个个1616位位Timer)Timer)定时器定时器: :对片内机器时钟对片内机器时钟( (周期方波周期方波) )进行计数进行计数计数器计数器: :对对TxTx引脚引脚输入的负脉冲进行计数输入的负脉冲进行计数与与TimerTimer工作有关的工作有关的特殊功能寄存器:特殊功能寄存器: TCON TCON 和和 TMODTMOD第五章 I/O,中断,定时与串行通信单片微机原理及应用单片微机原理及应用教学课件教学课件Timer的2个特殊功能寄存器(TCON,TMOD)TF1
36、 TR1 TF0 TR0 IE1 IT1 IE0 IT0定时器定时器控制控制寄存器寄存器TCON TCON (88H)(88H)TFxTFx: Timer0/1: Timer0/1计数溢出标志位。计数溢出标志位。 =1 =1 计数溢出计数溢出; =0 =0 计数未满计数未满 TFxTFx标志位标志位可用于可用于申请中断申请中断或或供供CPUCPU查询查询。 在进入中断服务程序时会自动清零;但在在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。查询方式时必须软件清零。TRxTRx: Timer0/1: Timer0/1运行控制位。运行控制位。 =1 =1 启动计数;启动计数; =0
37、=0 停止计数停止计数单片微机原理及应用单片微机原理及应用教学课件教学课件TR0/TR1TR0/TR1:Timer0/1Timer0/1运行控制位运行控制位: TR0/TR1 =0 TR0/TR1 =0 时,时,Timer0/1Timer0/1停止计数停止计数 TR0/TR1 =1 TR0/TR1 =1 时,时,Timer0/1Timer0/1启动计数启动计数定时器T0/T1 中断申请过程 在已经开放在已经开放T0/T1T0/T1中断允许且已被启动的前提下:中断允许且已被启动的前提下: T0/T1T0/T1加满溢出加满溢出时时 TF0/TF1TF0/TF1标志位自动置标志位自动置“1 1” 检
38、测到检测到TCONTCON中中TF0/TF1TF0/TF1变变“1 1”后后, ,将产生指令:将产生指令: LCALL 000BHLCALL 000BH/ /LCALL 001BHLCALL 001BH 执行中断服务程序执行中断服务程序, , TF0/TF1TF0/TF1标志位会自动清标志位会自动清“0 0”, ,以备下次中断申请。以备下次中断申请。 定时定时/ /计数器可按片内计数器可按片内机器周期机器周期定时,也可对由定时,也可对由T0/T1T0/T1引脚输入一个引脚输入一个负脉冲负脉冲进行加法计数进行加法计数TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1 IT1 IE0
39、IT0IE1 IT1 IE0 IT0TCON TCON (88H)(88H)单片微机原理及应用单片微机原理及应用教学课件教学课件GATE C / T M1 M0 GATE C / T M1 M0定时器定时器方式方式寄存器寄存器TMOD TMOD (89H)(89H)T1T1T0T0M1,M0M1,M0:工作方式定义位工作方式定义位 ( ( 定义定义4 4 种方式种方式 ):):C/T C/T :计数器计数器/ /定时器选择位定时器选择位 = 1 = 1 外部事件外部事件计数器计数器。对。对TxTx引脚的引脚的负脉冲负脉冲计数;计数; = 0 = 0 片内时钟片内时钟定时器定时器。对。对机器周期
40、脉冲机器周期脉冲计数定时计数定时0 00 0:1313位位 TimerTimer用的不多用的不多0 10 1:1616位位 TimerTimer经常用到经常用到1 01 0:可自动重装的:可自动重装的 8 8位位 TimerTimer经常用到经常用到1 11 1:T0 T0 分为分为2 2个个8 8位位 TimerTimer;T1 T1 此时不工作此时不工作 用的不多用的不多单片微机原理及应用单片微机原理及应用教学课件教学课件GATE C / T M1 M0 GATE C / T M1 M0T1T0GATEGATE门控位门控位: : TimerTimer可由软件与硬件两者控制可由软件与硬件两者
41、控制 GATE = 0 GATE = 0 普通用法普通用法 TimerTimer的的启启/ /停停由由软件软件对对TRxTRx位写位写“1 1”/ /“0 0”控制控制定时器定时器方式方式寄存器寄存器TMODTMOD(续)续)(89H)(89H) GATE = 1 GATE = 1 门控用法门控用法 TimerTimer的的启启/ /停停由由软件软件对对TRxTRx位写位写“1 1”/ /“0 0” 和和在在INTxINTx引脚引脚上出现的信号的上出现的信号的高高/ /低低共同控制共同控制单片微机原理及应用单片微机原理及应用教学课件教学课件定时器应用程序举例:例例1 1: : 晶振晶振=6MH
42、z,=6MHz,估算估算TimerTimer的定时时长的定时时长 (max,minmax,min)例例2 2: : 要求对要求对T0T0产生产生100mS100mS定时进行初始定时进行初始 化。化。 ( (晶振晶振=6MHz=6MHz) )例例3 3: : 产生产生T=2mST=2mS方波方波( (改为方式改为方式2)2)例例4 4: : 请改为方式请改为方式1 1或或2 2再阅读再阅读, ,务请大家务请大家 不要陷入方式不要陷入方式0 0的困惑之中!的困惑之中!例例5 5: : 定时定时1 1 秒秒例例6 6: : 方式方式3 3(双(双8 8位定时器)的应用位定时器)的应用单片微机原理及应
43、用单片微机原理及应用教学课件教学课件定时器结构与工作方式工作方式工作方式1 1:1616位的定时位的定时/ /计数器计数器振荡器振荡器 12TLx THx (8位位) (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门单片微机原理及应用单片微机原理及应用教学课件教学课件 THxTHx/ /TLxTLx赋初值赋初值:THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8 8位位工作方式工作方式1 1 的编程要点的编程要点: TMODTMOD选方式选方式: 写写“M1,M
44、0M1,M0”=01 =01 b b 选方式选方式1 1 若不用门控位若不用门控位, ,直接用软件写直接用软件写TRxTRx控制启控制启/ /停停 若使用门控位,先置位若使用门控位,先置位TRxTRx,然后由然后由INTxINTx端端 的的高高/ /低电平低电平来控制其启来控制其启/ /停停 若要允许若要允许中断中断,还须先置位,还须先置位ETxETx、EAEA等中断等中断 允许控制位,并编写允许控制位,并编写中断服务中断服务程序程序 若不用中断,可若不用中断,可查询查询“计数溢出标志计数溢出标志TFxTFx” 的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0单片
45、微机原理及应用单片微机原理及应用教学课件教学课件定时器(方式1)应用程序举例:分析分析:已知:已知foscfosc = 6MHz = 6MHz 则:则: (振荡周期)(振荡周期)1Tc=1/6MHz1Tc=1/6MHz (机器周期)机器周期)1Tm=12Tc=12/6MHz=1Tm=12Tc=12/6MHz=2 2 S S 粗略地说:粗略地说:TminTmin 2 2 S S 16 16位定时器最大数值为:位定时器最大数值为:2 21616=65536=0FFFFH+1=65536=0FFFFH+1 故选择故选择方式方式 1 1 工作可以得到:工作可以得到: TmaxTmax = 65536
46、= 65536 2 = 1310722 = 131072 S S131.072mS131.072mS例例1 1:若晶振频率为:若晶振频率为6MHz6MHz,计算单片机的最小计算单片机的最小与最大与最大定时时间:定时时间:单片微机原理及应用单片微机原理及应用教学课件教学课件分析分析:已知:已知foscfosc = 6MHz = 6MHz 则:则: (机器周期)机器周期)1Tm=12Tc=12/6MHz=21Tm=12Tc=12/6MHz=2 S S 100mS 100mS2 2 S = S = 5000050000 16 16位定时器最大数值为:位定时器最大数值为: 2 216 16 = = 6
47、553665536 (=0FFFFH+1) (=0FFFFH+1) 故选择方式故选择方式1 1工作可以满足要求。工作可以满足要求。计算计算初值初值:655366553650000=15536=50000=15536=3CB03CB0H H例例2 2:要求对:要求对T0T0产生产生100mS100mS定时进行初始化。定时进行初始化。 ( (晶振晶振=6MHz)=6MHz)定时器(方式1)应用程序举例:单片微机原理及应用单片微机原理及应用教学课件教学课件GATE C / T M1 M0 GATE C / T M1 M0定时器方式定时器方式寄存器寄存器TMOD由分析得知:由分析得知:T0T0选择方式
48、选择方式1 1,初值,初值=3CB0H=3CB0H X X X X 0 0 X X X X 0 0 0 10 1初始化:初始化:MOV TMODMOV TMOD,# #01H01H ; ;选选 T0 T0 方式方式 1 1 MOV TH0MOV TH0, # #3CH ;3CH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0, #0#0B0H ;B0H ;赋初值低赋初值低8 8位位 SETB TR0SETB TR0 ; ;启动启动 T0T0定时定时若需要定时器若需要定时器0 0产生中断产生中断还应当写如下语句:还应当写如下语句: SETB ET0SETB ET0 ; ;开开T0T0
49、中断允许中断允许 SETB EASETB EA ; ;开总中断允许开总中断允许以及相应的以及相应的中断服务程序中断服务程序。单片微机原理及应用单片微机原理及应用教学课件教学课件工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/ /计数器计数器振荡器振荡器 12TLx (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门THx (8位位)溢溢出出位位门开门开单片微机原理及应用单片微机原理及应用教学课件教学课件 THxTHx/ /TLxTLx赋相同初值赋相同初
50、值 在在TLxTLx计数达到计数达到0FF0FFH H 再加再加“1 1”时,时,TL0TL0 将溢出将溢出, ,进位位进位位直接进入直接进入“TFxTFx”去申请去申请 中断中断, ,同时同时打开三态门打开三态门,使,使THxTHx中的值中的值 自动自动重装重装(Copy)(Copy)进进TLxTLx工作方式工作方式 2 2 的编程:的编程: TMODTMOD寄存器选方式:寄存器选方式: 写写“M1M1,M0M0” = = 1010 b b 选中方式选中方式2 2 其他用法与各种方式其他用法与各种方式1 1完全相同完全相同单片微机原理及应用单片微机原理及应用教学课件教学课件分析:分析:fos
51、cfosc = 6MHz = 6MHz 1 1机器周期机器周期 = 2 = 2 S S 1KHz1KHz方波周期方波周期 = 1 = 1 mS mS 半半个方个方波波周期周期 =500=500 S S 500uS 500uS2 2 uSuS = 250 = 250 若选择方式若选择方式2 2 工作工作,8,8位定位定时器最大数值为:时器最大数值为: 2 28 8 = =256256 =0FFH + 1 =0FFH + 1 可以满足要求。可以满足要求。计算初值计算初值:256256250=250=6 6例例3:3:从从P1.0 P1.0 脚输出频率脚输出频率=1KHz=1KHz方波。方波。 设:
52、晶振设:晶振=6MHz=6MHz。利用利用T1T1定时中断。定时中断。Th:半周期半周期T:周期周期定时器(方式2)应用程序举例:单片微机原理及应用单片微机原理及应用教学课件教学课件 ORG 0000HORG 0000H AJMP AJMP MAINMAIN ORG 001BH ORG 001BH ;T1T1的中断矢量的中断矢量 CPL P1.0 CPL P1.0 ;中断服务:中断服务:P1.0P1.0取非取非 RETI RETI ;中断返回中断返回MAIN:MAIN: MOV TMOD MOV TMOD,#20H#20H MOV TH0 MOV TH0, #6#6 MOV TL0 MOV T
53、L0, #6#6 SETB ET1 SETB ET1 SETB EA SETB EA SETB TR1 SETB TR1 HERE: HERE: AJMP AJMP HERE HERE ;原地等待中断原地等待中断 ENDEND初初始始化化;选;选T1T1方式方式2 2;赋赋重装值重装值;赋赋初值初值;开;开T1T1中断中断;开总中断开总中断;启动启动T1T1单片微机原理及应用单片微机原理及应用教学课件教学课件T0T0: 组织成组织成TL0TL0和和TH0TH0两个两个8 8位定时位定时/ /计数器计数器TimerTimer工作方式工作方式 3 3T1T1: 不再是不再是定时定时/ /计数器了计
54、数器了 T1T1 的的TR1TR1和和TF1TF1出借给出借给TH0TH0当控制位使用当控制位使用, , 剩下的剩下的TH1/TL1TH1/TL1寄存器只能当作普通寄存寄存器只能当作普通寄存 器用。器用。单片微机原理及应用单片微机原理及应用教学课件教学课件振荡器振荡器 12TL0 (8位位)TF0申请申请中断中断T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门TH0 (8位位)TF1申请申请中断中断TR1TR1位位控制控制 =1TimerTimer工作方式工作方式 3 3 结构:结构:T0T0成为双
55、成为双 8 8位位Timer Timer T1T1不再有不再有TimerTimer功能功能 TF1TF1,TR1TR1出借给出借给TH0TH0 单片微机原理及应用单片微机原理及应用教学课件教学课件 长定时举例(长定时举例(设设晶振晶振= =6MHz6MHz,要定时要定时1 1秒秒): : ORG 0000HORG 0000H AJMPAJMP MAIN MAIN ORG 001BH ORG 001BH AJMP AJMP TINT ;TINT ;见下一页见下一页MAIN:MAIN: MOV TMOD,#10H ; MOV TMOD,#10H ;选选T1T1方式方式1 1 MOV TH1, #3
56、CH ; MOV TH1, #3CH ;赋赋初值初值3CB0H=155363CB0H=15536( (只能定只能定100mS)100mS) MOV TL1 MOV TL1,#0B0H#0B0H MOV MOV 30H30H,#10#10 ; ;软件计数单元软件计数单元30H 30H 初值初值=10=10 CLR F0 ;CLR F0 ;芯片复位时已经是芯片复位时已经是“0 0”,此句可有可,此句可有可无无 SETB ET1 ;SETB ET1 ;开开T1T1中断中断 SETB EA ;SETB EA ;开总中断开总中断 SETB TR1 ;SETB TR1 ;启动启动T1 T1 HEREHER
57、E: JBC : JBC F0,F0,TIMEUP ;TIMEUP ;原地等待原地等待“1 1秒到秒到”的标志的标志 F0F0 AJMP AJMP HEREHERETIMEUP:TIMEUP:(do something) ;(do something) ;定时定时1 1秒到了以后要做的事情秒到了以后要做的事情 AJMP AJMP HEREHERE中断中断服务服务在主在主程序程序中中单片微机原理及应用单片微机原理及应用教学课件教学课件长定时举例(续长定时举例(续): : ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP
58、 TINT AJMP TINTMAIN: MAIN: TINTTINT:DJNZ 30H,DJNZ 30H,RTNRTN ; ;若中断不到若中断不到1010次就返回次就返回 SETB F0 ;SETB F0 ;已经中断够已经中断够1010次了次了“置置1 1”标志位标志位 MOV 30H,#10 MOV 30H,#10 ; ;为下一个为下一个1 1秒定时做准备秒定时做准备RTN:RTN: MOV TH1,#3CH MOV TH1,#3CH ; ;再赋定时再赋定时100mS100mS的初值的初值3CB0H3CB0HMOV TL1,#0B0HMOV TL1,#0B0H RETI RETI ; ;中
59、断返回中断返回 ENDEND单片微机原理及应用单片微机原理及应用教学课件教学课件将此例的中断服务改写将此例的中断服务改写在中断服务程序中在中断服务程序中: : ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP TINT ; AJMP TINT ;见下一页见下一页MAIN: MOV TMOD,#10H ;MAIN: MOV TMOD,#10H ;选选T1T1方式方式1 1 MOV TH1 MOV TH1,#3CH ;#3CH ;赋初值赋初值3CB0H=15536(3CB0H=15536(只能定只能定100mS)100
60、mS) MOV TL1 MOV TL1,#0B0H#0B0H MOV 30H MOV 30H,#10 ;#10 ;软件计数单元软件计数单元30H 30H 初值初值=10=10 CLR F0 ; CLR F0 ;芯片复位时已经是芯片复位时已经是“0 0”,此句可有可无,此句可有可无 SETB ET1 ;SETB ET1 ;开开T1T1中断中断 SETB EA ;SETB EA ;开总中断开总中断 SETB TR1 ;SETB TR1 ;启动启动T1 T1 HERE: AJMP HERE ;HERE: AJMP HERE ;原地等待中断原地等待中断单片微机原理及应用单片微机原理及应用教学课件教学课
61、件长定时举例(续长定时举例(续): : ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP TINT AJMP TINTMAIN: MAIN: TINTTINT:DJNZ 30H,RTN ;DJNZ 30H,RTN ;若中断不到若中断不到1010次就返回次就返回 MOV 30H,#10 MOV 30H,#10 ; ;为下一个为下一个1 1秒定时做准备秒定时做准备(do something);(do something);定时定时1 1秒到了以后要做的事情秒到了以后要做的事情) )RTN: MOV TH1,#3CH RT
62、N: MOV TH1,#3CH ; ;再赋初值再赋初值MOV TL1,#0B0HMOV TL1,#0B0H RETI RETI ; ;中断返回中断返回 ENDEND中中断断服服务务单片微机原理及应用单片微机原理及应用教学课件教学课件定时器小结:定时器小结: (2 2个个1616位加法计数器)位加法计数器)运行运行/ /停止停止由由TRxTRx位控制,位控制,( (当当GATE=1GATE=1时:时: 由由TRxTRx位和位和TxTx引脚上的信号共同控制引脚上的信号共同控制) )工作方式工作方式 由由TMODTMOD决定决定; ; 计数计数/ /定时定时由由C/TC/T位决定位决定 工作方式工作
63、方式0 0(1313位)位) 少用少用 工作方式工作方式3 3(T0T0拆为双拆为双8 8位)位) 几乎几乎无无用用 工作方式工作方式1 1(1616位)位) 经常用到经常用到 工作方式工作方式2 2(8 8位自动重装)位自动重装) 经常用到经常用到从初值按机器周期或外部脉冲递加,溢出位从初值按机器周期或外部脉冲递加,溢出位 TFxTFx申请中断申请中断;中断允许中断允许由由ETxETx位和位和EAEA位控制,位控制,单片微机原理及应用单片微机原理及应用教学课件教学课件串行口与串行通信单片微机原理及应用单片微机原理及应用教学课件教学课件串行通信的基本特征是串行通信的基本特征是数据数据逐位顺序逐
64、位顺序进行传送进行传送串行通信的格式及约定(如:同步方式、通讯速串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平率、数据块格式、信号电平等)不同,形成等)不同,形成了多种串行通信的协议与接口标准。了多种串行通信的协议与接口标准。常见的有:常见的有:通用异步收发器通用异步收发器( (UART)UART)本课程介绍的串口本课程介绍的串口通用串行总线通用串行总线(USBUSB)I2CI2C总线总线CANCAN总线总线SPISPI总线总线RS-485RS-485,RS-232CRS-232C,RS422ARS422A标准标准等等等等第五章 I/O,中断,定时与串行通信单片微机原理及应
65、用单片微机原理及应用教学课件教学课件全双工串行接口全双工串行接口(UART)(UART)数据通信的数据通信的几个术语:几个术语: 并行并行:数据各位:数据各位同时同时进行传送进行传送 串行串行:数据:数据逐位顺序逐位顺序进行传送进行传送全双工全双工:(:(串行通信串行通信) )收收/ /发发可同时可同时进行进行 半双工半双工:(:(串行通信串行通信) )收收/ /发发不可不可同时进行同时进行异步串行通信异步串行通信: :以以字符字符为单位进行传送为单位进行传送 同步串行通信同步串行通信: :以以数据块数据块为单位进行传送为单位进行传送 波特率波特率(bps.)(bps.): :单位时间传送的位
66、数单位时间传送的位数单片微机原理及应用单片微机原理及应用教学课件教学课件51单片机的串行接口SBUF(发)发)SBUF(收)收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄存器移位寄存器RxDTxD去申请中断去申请中断引脚引脚引脚引脚CPU内内部部单片微机原理及应用单片微机原理及应用教学课件教学课件串行口的结构两个同名的两个同名的接收接收/ /发送缓冲寄存器发送缓冲寄存器SBUFSBUF 指令指令 MOV SBUFMOV SBUF,A A 启动一次数据发送启动一次数据发送, ,可向可向SBUFSBUF 再发
67、送下一个数再发送下一个数 指令指令 MOV AMOV A,SBUFSBUF 完成一次数据接收完成一次数据接收,SBUF,SBUF可再可再 接收下一个数接收下一个数接收接收/ /发送数据发送数据, ,无论是否采用中断方式无论是否采用中断方式 工作工作, ,每接收每接收/ /发送一个数据都必须用指发送一个数据都必须用指 令对令对 RI/TIRI/TI 清清0 0,以备下一次收,以备下一次收/ /发。发。串行口相关的串行口相关的SFRSFR(SCON,PCON)(SCON,PCON)单片微机原理及应用单片微机原理及应用教学课件教学课件 SM0 SM1 SM2 REN TB8 RB8 TI R1SCO
68、NSCON SM0SM0,SM1SM1:串行口串行口4 4种工作方式的选择位。种工作方式的选择位。 0 0 0 0 方式方式0 0:8 8位移位寄存器位移位寄存器I/O,I/O,波特率波特率固定固定为为 f foscosc/12/12 0 1 0 1 方式方式1 1:8 8位位UARTUART(1 1+8+8+1 1位)位), 波特率波特率可变可变, ,按公式计算按公式计算 1 0 1 0 方式方式2 2:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率固定固定= =f foscosc x1/32x1/32或或1/641/64 1 1 1 1 方式方式3 3:
69、9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率可变可变,按公式计算,按公式计算 SM2SM2:串行口串行口多机通信多机通信控制位控制位 (作为方式(作为方式2 2、方式、方式3 3的的附加控制位附加控制位)串行口控制寄存器SCON(98H)单片微机原理及应用单片微机原理及应用教学课件教学课件 RI,TIRI,TI:串行口收串行口收/ /发数据申请中断标志位发数据申请中断标志位 1 1 申请中断;申请中断; 0 0 不申请中断不申请中断 TB8TB8:方式方式2 2、3 3中,是要发送的第中,是要发送的第9 9位数据。位数据。 多机通信中多机通信中,TB8=0
70、 ,TB8=0 表示发送的是数据;表示发送的是数据; TB8=1 TB8=1 表示发送的是地址。(奇偶校验)表示发送的是地址。(奇偶校验) RB8RB8:在方式在方式2 2、3 3中,是收到的第中,是收到的第9 9位数据。位数据。 在多机通信中在多机通信中, ,用作区别地址帧用作区别地址帧/ /数据帧的数据帧的 标志。(奇偶校验)标志。(奇偶校验) SM0 SM1 SM2 REN TB8 RB8 TI R1 RENREN:串行口接收允许控制位串行口接收允许控制位 = 1 = 1 表示允许接收;表示允许接收; = 0 = 0 禁止接收。禁止接收。SCONSCON单片微机原理及应用单片微机原理及应
71、用教学课件教学课件SMOD GF1 GF0 PD 1DL电源控制寄存器 PCONPCON(97H97H) 特殊功能寄存器特殊功能寄存器PCONPCON不能按位寻址不能按位寻址 SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,中, 是是波特率加倍位波特率加倍位 =1 =1 时,波特率加倍时,波特率加倍 =0 =0 时,波特率不加倍。时,波特率不加倍。 ( (在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关) ) GF1,GF0GF1,GF0:用户可自行定义使用的通用标志位用户可自行定义使用的通用标志位PCONPCON单片微机原理及应用单片微机原
72、理及应用教学课件教学课件 PDPD:掉电方式控制位掉电方式控制位 =0=0:常规工作方式。常规工作方式。 =1=1:进入掉电方式进入掉电方式: : 振荡器振荡器停振停振 片内片内RAMRAM和和SRFSRF的值保持不变的值保持不变 P0P0P3P3口维持原状。口维持原状。 程序程序停止停止 只有复位能使之退出掉电方式。只有复位能使之退出掉电方式。 SMOD GF1 GF0 PD IDLPCONPCON单片微机原理及应用单片微机原理及应用教学课件教学课件 IDLIDL:待机方式待机方式( (空闲方式空闲方式) )控制位控制位 =0=0:常规工作方式。常规工作方式。 =1=1:进入待机方式:进入待
73、机方式: 振荡器振荡器继续振荡继续振荡 中断中断、定时器定时器、串口串口功能继续有效功能继续有效 片内片内RAMRAM和和SRFSRF保持不变保持不变 CPUCPU状态状态保持保持、P0P0P3P3口维持原状口维持原状 程序程序停顿停顿。 中断和复位能退出待机中断和复位能退出待机, ,继续后面的程序。继续后面的程序。SMOD GF1 GF0 PD 1DLPCONPCON单片微机原理及应用单片微机原理及应用教学课件教学课件 PDPD:掉电控制位掉电控制位 =0=0:常规方式。常规方式。 =1=1:掉电方式掉电方式: :振荡器振荡器停振停振片内片内RAMRAM和和SRFSRF不变不变P0P0P3P
74、3口维持原状口维持原状程序程序停止停止只有复位能退出掉电只有复位能退出掉电 IDLIDL:待机控制位待机控制位 =0=0:常规方式。常规方式。 =1=1:待机方式:待机方式:振荡器振荡器继续振荡继续振荡中断中断, ,定时器定时器, ,串口串口有效有效片内片内RAMRAM和和SRFSRF不变不变CPUCPU状态状态, ,P0P0P3P3维持原状维持原状程序程序停顿停顿。中断和复位能退出待机中断和复位能退出待机, ,继继续后面的程序。续后面的程序。SMOD GF1 GF0 PD 1DLPCONPCON单片微机原理及应用单片微机原理及应用教学课件教学课件串行口工作方式 0工作方式工作方式0 0:8
75、8位移位寄存器位移位寄存器I/OI/O方式方式发送:发送:SBUFSBUF中的串行中的串行数据数据由由RxDRxD逐位移出;逐位移出; TxDTxD输出输出移位时钟移位时钟,频率,频率=fosc1/12=fosc1/12; 每送出每送出8 8位数据位数据 TITI就自动置就自动置1 1; 需要用需要用软件清零软件清零 TITI。 接收:串行接收:串行数据数据由由RxDRxD逐位移入逐位移入SBUFSBUF中;中; TxDTxD输出输出移位时钟移位时钟,频率,频率=fosc1/12=fosc1/12; 每接收每接收 8 8位数据位数据RIRI就自动置就自动置1 1; 需要用需要用软件清零软件清零
76、 RIRI。单片微机原理及应用单片微机原理及应用教学课件教学课件经常配合经常配合“串入并出串入并出”“并入串出并入串出”移位移位 寄存器一起使用扩展接口(第六章)。寄存器一起使用扩展接口(第六章)。 方式方式0 0工作时,工作时,多用查询方式编程多用查询方式编程: 发送:发送:MOV SBUFMOV SBUF,A A 接收:接收:JNB RIJNB RI,$ $ JNB TI JNB TI,$ $ CLR RICLR RI CLR TI CLR TI MOV A, SBUFMOV A, SBUF工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式( (续续) )复位时复位
77、时, ,SCONSCON 已经被清零已经被清零, ,缺省值缺省值: : 方式方式0 0。接收前接收前, ,务必先置位务必先置位 REN=1 REN=1 允许接收数据允许接收数据。单片微机原理及应用单片微机原理及应用教学课件教学课件串行口方式0的扩展应用经常用到串行口常用工作方式串行口常用工作方式0 0扩展出并行扩展出并行I/OI/O口,口,工作方式工作方式1 1、2 2、3 3则常用于串行通信则常用于串行通信A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLRCLR+5V+5V74LS
78、16474LS16474LS16474LS16474LS164是是串入并出串入并出芯片;芯片;74LS16574LS165是是并入串出并入串出芯片芯片h g f e d c b ah g f e d c b ah g f e d c b ah g f e d c b a+5V+5V共阳共阳LED LED 数码管数码管VCCVCCTxDTxDRxDRxD51单片机单片机单片微机原理及应用单片微机原理及应用教学课件教学课件共阳极共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h共阳共阳LEDLED数码管数码管公共端公共端( (字位字位
79、) ) 接高电平,接高电平,笔划笔划( (字段字段) ) 置为低电平置为低电平就被点亮了就被点亮了h g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0 0 0 0 0 00C0H = 0C0H = “0 0”比如要显示比如要显示“0 0” 须令须令a b c d e f a b c d e f 为为“0 0” 电平,电平,g hg h为为“1 1”电平。电平。再再比如要显示比如要显示“3 3” 须令须令a b c d g a b c d g 为为“0 0” 电平,电平,e f he f h为为“1 1”电平。电平。1 0 1 1
80、0 0 0 01 0 1 1 0 0 0 00B0H = 0B0H = “3 3”单片微机原理及应用单片微机原理及应用教学课件教学课件例:例:利用串行口利用串行口工作方式工作方式0 0扩展出扩展出8 8位并行位并行I/OI/O口,口, 驱动驱动共阳共阳LEDLED数码管显示数码管显示0 09 9。A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLR+5V+5VVCCVCCTxDTxDRxDRxD51单片机单片机74LS164共阳共阳LEDLED数码管数码管单片微机原理及应用单片微机原理及应用教学课件教学课件根据上图编写的通过串行口和根据上图编写的通过
81、串行口和74LS164 74LS164 驱动共阳驱动共阳LEDLED数码管数码管( (查表查表) )显示显示0-90-9数字的子程序:数字的子程序:DSPLY:MOV DPTR, #TABLEDSPLY:MOV DPTR, #TABLE MOVC A, MOVC A, A+DPTRA+DPTR MOV SBUF, A MOV SBUF, A JNB TI, $ JNB TI, $ CLR TI CLR TI RET RETTABLE:DB 0C0H,0F9H,0A4HTABLE:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 0B0H,99H,92H DB 82H,0
82、F8H,80H,90H DB 82H,0F8H,80H,90Hh g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0 0 0 0 0 00C0H = 0C0H = “0 0”1 0 1 1 0 0 0 01 0 1 1 0 0 0 00B0H = 0B0H = “3 3”共阳极共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h单片微机原理及应用单片微机原理及应用教学课件教学课件常用于串行通讯。除发常用于串行通讯。除发/ /收收8 8位数据外,还位数据外,还 在在D0D0
83、位前有一个位前有一个起始位起始位“0 0”; 在在D7D7位后有一个位后有一个停止位停止位“1 1”。方式方式1 1工作时:工作时: 发送端发送端自动添加自动添加一个起始位和一个停止位;一个起始位和一个停止位; 接收端接收端自动去掉自动去掉一个起始位和一个停止位。一个起始位和一个停止位。工作方式工作方式1 1: :8 8位位UARTUART( (1 1+8+8+1 1位位) )波特率波特率可变可变 波特率可变波特率可变 用定时器用定时器T1T1作波特率发生器:作波特率发生器: 公式:公式:波特率波特率 = =(2 2SMODSMOD/32/32) T1T1的溢出率的溢出率单片微机原理及应用单片
84、微机原理及应用教学课件教学课件波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的频繁程度溢出的频繁程度 即:即:T1T1溢出一次所需时间的倒数。溢出一次所需时间的倒数。 初值初值 X = 2 2n n - - 2 2SMODSMOD foscfosc3232 波特率波特率 1212 波特率波特率 = =2 2SMODSMOD foscfosc3232 12(2 12(2n n - - X X) )其中:其中:X X 是定时器初值是定时器初值单片微机原理及应用单片微机原理及应用教学课件教学课件 初值初值 X = 2 2n n -
85、- 2 2SMODSMOD foscfosc32 32 波特率波特率 1212 例例 计算波特率计算波特率的部分:的部分: 题目要求用题目要求用T1T1工作于工作于方式方式2 2来产生波特率来产生波特率12001200, 已知晶振频率已知晶振频率= =6MHz6MHz。要求出要求出T1T1的的初值初值:初值初值 X = 2 28 8 - - 2 20 0 6 6 10106 63232 1200 1200 1212= 256 - - = 256 - - 13.026 6 10106 6460800460800 243 = 0F3H 结果后面要用到结果后面要用到单片微机原理及应用单片微机原理及应
86、用教学课件教学课件 表格有多种表格有多种, , 晶振也不止一种晶振也不止一种常用波特率和常用波特率和T1T1初值查表初值查表串口串口波特率波特率 (方式方式1,3)foscSMOD位位(PCON中中)定定时时器器T1C/T方式方式初初值值192006MHz1020FEH96006MHz1020FDH48006MHz0020FDH24006MHz0020FAH12006MHz0020F4H6006MHz0020E8H1106MHz00272H单片微机原理及应用单片微机原理及应用教学课件教学课件RxDRxD引脚为引脚为接收端接收端,TxDTxD引脚为引脚为发送发送端端, ,由波特率由波特率 发生器
87、发生器T1T1控制发送速度控制发送速度, ,不同于方式不同于方式0 0:收:收/ /发都发都 需要由需要由TxDTxD送出移位时钟送出移位时钟。 T1T1作波特率发生器时作波特率发生器时初始化包括初始化包括: : 选选定时器定时器工作方式工作方式2 2(TMOD(TMOD选选8 8位自动重装位自动重装);); 将计算将计算( (或查表或查表) )出的出的初值初值X X赋给赋给TH1,TL1TH1,TL1; ; 启动启动T1T1 ( (SETB TR1SETB TR1);); 对对T1T1不要开中断不要开中断 !工作方式工作方式1 1的接收的接收/ /发送发送串行口的初始化包括串行口的初始化包括
88、: : 对对SCONSCON选工作方式选工作方式 对对PCONPCON设设波特率加倍位波特率加倍位“SMODSMOD”( (缺省值缺省值=0)=0) 如果是接收数据如果是接收数据, ,仍要先置仍要先置“1 1”RENREN位位 单片微机原理及应用单片微机原理及应用教学课件教学课件MAINMAIN: ORG 0023H ORG 0023H MOV TMODMOV TMOD,#20H#20H SBR1:JNB RI,SEND SBR1:JNB RI,SEND MOV TL1MOV TL1,#0F3H#0F3H LCALL LCALL SINSIN MOV TH1MOV TH1,#0F3H#0F3H
89、 SJMP NEXT SJMP NEXT SETB TR1SETB TR1 SEND:LCALL SEND:LCALL SOUTSOUT MOV SCON, MOV SCON, #50H#50H NEXT:RETI NEXT:RETI SETB EA SETB EA SIN: SIN: SETB ES SETB ES RETRET LCALL LCALL SOUTSOUT SOUT:SOUT: SJMP $ SJMP $ RETRET例例:串行通信串行通信方式方式1 1应用应用 用用T1T1工作于方式工作于方式2 2,产生波特率,产生波特率12001200bpsbps单片微机原理及应用单片微机
90、原理及应用教学课件教学课件 SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCON SM0SM0,SM1SM1:串行口工作方式选择位。串行口工作方式选择位。 0 1 0 1 :方式方式1 1,8 8位位UARTUART(1 1+8+8+1 1位)位) RENREN:串行口串行口接收允许接收允许位。位。 REN=1 REN=1 允许接收允许接收串行口控制寄存器串行口控制寄存器SCONSCON 0 1 0 1 0 0 0 0 TB8TB8,RB8RB8,TITI,RIRI等位由运行中间的情况等位由运行中间的情况 决定,可先写成决定,可先写成 “0 0” SM2SM2:串行口串行
91、口多机通信多机通信控制位控制位, ,作为方式作为方式2 2、3 3 的的附加控制位附加控制位,此处不用,可写成,此处不用,可写成“0 0”单片微机原理及应用单片微机原理及应用教学课件教学课件MAINMAIN: ORG 0023HORG 0023H MOV TMODMOV TMOD,#20H#20H SBR1:JNB RI,SEND SBR1:JNB RI,SEND MOV TL1MOV TL1,#0F3H#0F3H LCALL LCALL SINSIN MOV TH1MOV TH1,#0F3H#0F3H SJMP NEXT SJMP NEXT SETB TR1SETB TR1 SEND:LCA
92、LL SEND:LCALL SOUTSOUT MOV SCON, MOV SCON, #50H#50H NEXT:RETI NEXT:RETI SETB EA SETB EA SIN: SIN: SETB ES SETB ES RETRET LCALL LCALL SOUTSOUT SOUT:SOUT: SJMP $ SJMP $ RETRET例例:串行通信串行通信方式方式1 1应用应用 用用T1T1工作于方式工作于方式2 2,产生波特率,产生波特率1200bps1200bps单片微机原理及应用单片微机原理及应用教学课件教学课件发送子程序发送子程序 接收子程序接收子程序SOUTSOUT: SI
93、N:SIN: MOV A MOV A,R0 MOV A,SBUFR0 MOV A,SBUF INC R0 MOV R1, AINC R0 MOV R1, A MOV SBUF, A INC R1 MOV SBUF, A INC R1 CLR TI CLR RI CLR TI CLR RI RET RET RET RET例例 ( (续续) )单片微机原理及应用单片微机原理及应用教学课件教学课件由于波特率固定由于波特率固定, ,常用于常用于单片机间单片机间通讯。通讯。 数据由数据由8+8+1 1位组成,通常附加的一位位组成,通常附加的一位 (TB8/RB8)(TB8/RB8)用于用于“奇偶校验奇偶
94、校验”。 工作方式工作方式2 2: : 9 9位位UARTUART( (1 1+8+1+8+1+1 1位位) )两种两种波特率波特率 方式方式2 2的波特率的波特率 = = foscfosc 2 2SMODSMOD/64/64 即即: : f foscosc 1/32 1/32 或或 f foscosc 1/64 1/64 两种两种单片微机原理及应用单片微机原理及应用教学课件教学课件奇偶校验奇偶校验是检验串行通信双方传输的数据正确是检验串行通信双方传输的数据正确与否的与否的一个措施一个措施,并不能保证通信数据的传输并不能保证通信数据的传输一定正确一定正确。 换言之:如果换言之:如果奇偶校验发生
95、错误,表明数据传奇偶校验发生错误,表明数据传输一定出错了;如果奇偶校验没有出错,输一定出错了;如果奇偶校验没有出错,绝不绝不等于等于数据传输完全正确。数据传输完全正确。奇校验:奇校验:8 8位位有效数据连同有效数据连同1 1位位附加位中,附加位中, 二进制二进制“1 1”的个数的个数为为奇数奇数 偶校验:偶校验:8 8位位有效数据连同有效数据连同1 1位位附加位中,附加位中, 二进制二进制“1 1”的个数的个数为为偶数偶数单片微机原理及应用单片微机原理及应用教学课件教学课件约定约定接收接收采用采用奇校验奇校验 若接收到的若接收到的9 9位位数据中数据中“1 1”的个数为奇数,的个数为奇数, 则
96、表明接收则表明接收正确正确,取出,取出8 8位有效数据即可;位有效数据即可; 若接收到的若接收到的9 9位位数据中数据中“1 1”的个数为的个数为偶数偶数, 则表明接收则表明接收出错出错!应当进行!应当进行出错处理出错处理。约定约定发送发送采用采用奇校验奇校验 若若发送发送的的8 8位有效数据中位有效数据中“1 1”的个数为的个数为偶数偶数, 则要则要人为添加人为添加一个附加位一个附加位“1 1”一起发送;一起发送; 若若发送发送的的8 8位有效数据中位有效数据中“1 1”的个数为的个数为奇数奇数, 则要则要人为添加人为添加一个附加位一个附加位“0 0”一起发送。一起发送。采用采用偶校验偶校验
97、时,处理方法与时,处理方法与奇校验奇校验相反相反 单片微机原理及应用单片微机原理及应用教学课件教学课件回顾:回顾: 程序状态字寄存器程序状态字寄存器PSWPSW中有一个中有一个奇偶状态位奇偶状态位 P PCYACF0RS0OVPRS1PSW.7PSW.0 P P (PSW.0):(PSW.0):奇偶状态位。奇偶状态位。 P=1 P=1 表示目前累加器中表示目前累加器中 “1 1”的个数为的个数为奇数奇数 P=0 P=0 表示目前累加器中表示目前累加器中 “1 1”的个数为的个数为偶数偶数CPUCPU随时监视着随时监视着AccAcc的的“1 1”的个数的个数并自动反映在并自动反映在 P P工作方
98、式工作方式2 2 的的奇偶校验用法奇偶校验用法单片微机原理及应用单片微机原理及应用教学课件教学课件 程序段程序段选用选用偶校验偶校验方式方式发送发送 PIPL: PUSH PSW ;PIPL: PUSH PSW ;保护现场保护现场 PUSH PUSH A ACC CC CLR TI ; CLR TI ;清发送中断标志以备下次发送清发送中断标志以备下次发送 MOV AMOV A, R0 ;R0 ;取由取由R0R0所所指向的单元中的数据指向的单元中的数据 MOV C, P ;MOV C, P ;将奇偶标志位通过将奇偶标志位通过C C放进放进TB8TB8 MOV TB8, C ; MOV TB8,
99、C ;一起发送出去一起发送出去 MOV SBUF,A ;MOV SBUF,A ;启动发送启动发送 INC R0 ;INC R0 ;指针指向下一个数据单元指针指向下一个数据单元 POP POP A ACC ;CC ;恢复现场恢复现场 POP PSWPOP PSW RETI ; RETI ;中断返回中断返回串口方式串口方式2 2 的的奇偶校验用法:奇偶校验用法:单片微机原理及应用单片微机原理及应用教学课件教学课件 程序段程序段选用选用偶校验偶校验方式方式发送发送 如果如果 A A 中的数的中的数的1 1的个数是奇数(的个数是奇数(P=1P=1),), 将将TB8TB8写成写成“1 1”一起发出去;
100、一起发出去; 反之:若(反之:若(P=0P=0)则写则写TB8=TB8=“0 0”发出去。发出去。 程序段程序段选用选用偶校验偶校验方式方式接收接收 若收到的数中若收到的数中P=0P=0, ,且检查到且检查到RB8=0RB8=0就可能对了就可能对了 若收到的数中若收到的数中P=1P=1, ,且检查到且检查到RB8=1RB8=1就可能对了就可能对了 若若P=0P=0且且RB8=1RB8=1或或P=1P=1且且RB8=0RB8=0就一定出错了就一定出错了!串口方式串口方式2 2 的的奇偶校验用法:奇偶校验用法: SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCON串行口控制寄
101、存器串行口控制寄存器SCONSCONTB8 RB8单片微机原理及应用单片微机原理及应用教学课件教学课件 程序段程序段选用选用偶校验偶校验方式方式接收接收: PIPL: PUSH PSW ;PIPL: PUSH PSW ;保护现场保护现场 PUSH PUSH A ACC CC CLR RI ; CLR RI ;清发送中断标志以备下次发送清发送中断标志以备下次发送 MOV AMOV A,S SBUBUF;F;读进收到的数据读进收到的数据 MOV C, P ;MOV C, P ;奇偶标志位奇偶标志位C =JNB PC =JNB P,L1L1 JNC L1 ;C=0 JNC L1 ;C=0时转到时转到
102、L1 L1 P=0P=0时转到时转到L1L1 JNB RB8,JNB RB8,ERRERR;P=1;P=1时转到时转到L2L2,若,若RB8=0RB8=0“出错出错” SJMP L2 ;RB8=1 SJMP L2 ;RB8=1 则表明接收正确,转则表明接收正确,转L2L2 L1: JB RB8, L1: JB RB8,ERRERR;P=0;P=0且且RB8=1RB8=1表明表明“出错出错” L2: MOV R0, A ;P=0L2: MOV R0, A ;P=0且且RB8=0RB8=0表明接收正确表明接收正确 INC R0 ;INC R0 ;指针指向下一个数据单元指针指向下一个数据单元 POP
103、 POP A ACC ;CC ;恢复现场恢复现场 POP PSW POP PSW ERRERR: :出错处理出错处理 RETI ; RETI ;中断返回中断返回 RETIRETI单片微机原理及应用单片微机原理及应用教学课件教学课件工作方式工作方式3 3: :当当SM0,SM1SM0,SM1为为1111时时, ,串行口工作于方式串行口工作于方式3 3 9 9位位UARTUART( (1 1+8+1+8+1+1 1位位) ) 波特率可变波特率可变 串口方式串口方式3 3和方式和方式2 2唯一的区别是波特率机制不同唯一的区别是波特率机制不同。方式方式2 2的波特率固定为时钟周期的的波特率固定为时钟周
104、期的3232或或6464分频,分频,不可变。此工作方式与其他串行通讯设备连接困不可变。此工作方式与其他串行通讯设备连接困难,因此不常用。难,因此不常用。方式方式3 3的的波特率可变,按前面的公式计算:波特率可变,按前面的公式计算: 波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 波特率波特率 = =2 2SMODSMOD foscfosc3232 12(2 12(2n n - - X X) )其中:其中:X X 是定时器初值是定时器初值单片微机原理及应用单片微机原理及应用教学课件教学课件多机通信原理多机通信原理( (串口方式串口方式2 2和串口方式和串口方
105、式3)3)TB8=0 : TB8=0 : 数据帧数据帧; ; TB8=1 : TB8=1 : 地址帧地址帧SM2=1SM2=1时时, , 仅当仅当RB8=1RB8=1时时, , 才会产生才会产生RI=1RI=1的中断的中断; ;SM2=0SM2=0时时, , 当当RB8=1RB8=1或或0 0时时, , 都会产生都会产生RI=1RI=1的中断的中断; ; 全部从机初始化为方式全部从机初始化为方式2 2或或3 3,SM2SM2置置1,1,开中断开中断; ;主机主机TB8TB8置置1 1,发从机地址帧,发从机地址帧; ;各从机接收后进入中断服务程序各从机接收后进入中断服务程序, ,进行地址比较进行地址比较; ;被寻址的从机确认后被寻址的从机确认后,将本身的,将本身的SM2SM2清清0,0,并向主机返回地并向主机返回地址供主机核对址供主机核对; ;主机核对无误后主机核对无误后, ,向该从机向该从机发送命令发送命令, ,通知此从机进行数据通知此从机进行数据接收还是发送接收还是发送; ;主从机间开始数据通信主从机间开始数据通信. .