第六章 MCS-51系列单片机并行接口_第1页
第六章 MCS-51系列单片机并行接口_第2页
第六章 MCS-51系列单片机并行接口_第3页
第六章 MCS-51系列单片机并行接口_第4页
第六章 MCS-51系列单片机并行接口_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、16.1 MCS-51系列单片机并行接口系列单片机并行接口 6.1.1 片内并行接口电路结构片内并行接口电路结构 1P0口口 P0口是8位双向三态输入/输出接口, P0口位结构图见下页,书上如图6-2(a)所示,P0口位结构图见下页。 P0口既可作地址/数据总线使用,又可作通用I/O口用。连接外部存储器时,P0口一方面作为8位数据输入/输出口,另一方面用来输出外部存储器的低8位地址。作输出口时,输出漏极开路,驱动NMOS电路时应外接上拉电阻;作输入口之前,应先向锁存器写全“1”,使输出的两个场效应管均关断,引脚处于“浮空”状态,这样才能做到高阻输入,以保证输入数据的正确。正是由于该端口用作I/

2、O口,输入时应先写全“1”,故称为准双向口。当P0口作地址/数据总线使用时,就不能再把它当通用I/O口使用。 2(a)P0口位结构图口位结构图 32P1口口 P1口是8位准双向口,作通用输入/输出口使用,P1口位结构图见下页,书上如图6-2(b)所示。在输出驱动器部分,P1口有别于P0口,它接有内部上拉电阻。P1口的每一位可以独立地定义为输入或者输出,因此,P1口既可以作为8位并行输入/输出口,又可作为8位输入/输出端。CPU既可以对P1口进行字节操作,又可以进行位操作。当作输入方式时,该位的锁存器必须预写全“1”。 4(b) P1口位结构图口位结构图 53P2口口 P2口是8位准双向输入/输

3、出接口, P2口位结构图见下页,书上如图6-2(c)所示。P2口可作通用I/O口使用,与P1口相同。当外接程序存储器时,P2口给出地址的高8位,此时不能用作通用I/O。当外接数据存储器时,若RAM小于256B,用R0、R1作间址寄存器,只需P0口送出地址低8位,P2口可以用作通用I/O口;若RAM大于256B,必须用16位寄存器DPTR作间址寄存器,则P2口只能在一定限度内作一般I/O口使用。 6(c)P2口位结构图口位结构图 74P3口口P3口也是一个8位的准双向输入/输出接口,如图6-2(d)所示。它具有多种功能。一方面,与P1口一样作为一般准双向输入/输出接口,具有字节操作和位操作两种工

4、作方式;另一方面,8条输入/输出线可以独立地作为串行输入/输出口和其他控制信号线(详见MCS-51引脚功能部分)。 8(d)P3口位结构口位结构图图95P0P3端口的负载能力及接口要求端口的负载能力及接口要求P0口的输出级与P1P3口的输出级在结构上是不同的,因此它们的负载能力和接口要求也各不相同。6I/O口的读口的读修改修改写特性写特性读锁存器指令是从锁存器中读取数据,进行处理,并把处理以后的数据重新写入锁存器中,这类指令称为“读修改写”指令,例如ANL P1,A ; 读引脚指令一般都是以I/O端口为原操作数的指令,执行读引脚指令时,打开三态门,输入口状态。例如,读P1口的输入状态时,读引脚

5、指令为:MOV A,P1。 106.1.2 扩展外部并行接口扩展外部并行接口 1简单并行接口的扩展简单并行接口的扩展 (1)用74LS377扩展8位输出端口(2)74LS373扩展一个8位并行输入口 (3)用74LS273和74LS244扩展输入/输出口112可编程并行接口的扩展可编程并行接口的扩展(1)可编程并行接口芯片8255A的扩展及应用 1)主要特性 8255A采用双列直接式封装,单一的+5V电源,全部输入输出与TTL电平兼容,3个8位并行I/O端口,可编程工作在不同方式。因此,8255A连接外部设备时,通常不需要附加其他电路,使用方便灵活。 2)内部结构 三个输入/输出端口 两组控制

6、电路 数据总线缓冲器 读/写控制电路 其内部结构框图见下页121234ABCD4321DCBATitleNumberRevisionSizeA4Date:25-M ay-2004Sheet of File:C:Documents and Settingsyy桌 面 单 片 机 教 材 6.12yao524.ddbDrawn By:数据总线缓冲器读/写控制逻辑B组控制A组控制端口A端口C(下半部分)端口C(上半部分)端口BRDWRA0A1RESETCS数据总线PA7-PA0PC7-PC4PC3-PC0PB7-PB08255的内部结构框图8255PA0PA1PA2PA3PA4PA5PA6PA7PB

7、0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7D0D1D2D3D4D5D6D7VCCRESETWRRDCSGNDA1A0123456789101112131415161718192021222324252627282930313233343536373839408255的引脚图图图6-6 8255A内部结构框图内部结构框图 131234ABCD4321DCBATitleNumberRevisionSizeA4Date:25-May-2004Sheet of File:C:Documents and Settingsyy桌 面 单 片 机 教 材 6

8、.12yao524.ddbDrawn By:数据总线缓冲器读/写控制逻辑B组控制A组控制端口A端口C(下半部分)端口C(上半部分)端口BRDWRA0A1RESETCS数据总线PA7-PA0PC7-PC4PC3-PC0PB7-PB08255的内部结构框图8255PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7D0D1D2D3D4D5D6D7VCCRESETWRRDCSGNDA1A01234567891011121314151617181920212223242526272829303132333435

9、36373839408255的引脚图3)引脚功能数据线 地址线 控制线I/O端口线 电源、地线 144)控制字 工作方式选择控制字 1234ABCD4321DCBAT itleN um berR evisionSizeA 4D ate:3-A ug-2004 Sheet of File:C :D ocum ents and Settingsyy桌 面 protel图 片 7.21yao524.ddbD raw n B y:1D 0D 1D 2D 3D 4D 5D 6PC3-PC0:1-输入0-输出端口B:1-输入0-输出B组方式选择0-方式01-方式1PC7-PC4:1-输入0-输出方式选择控

10、制字的标识位A组方式选择00-方式001-方式11X-方式2端口A:1-输入0-输出8255工作方式选择控制字的格式1=置10=置000000 0 00000001 2 3 4 5 6 71111 11 1 1 1111B 0B 1B 2xxx无关C 端口置1/置0标识符,应为0端口C置位/复位控制字格式12A740734B56C98D1110E1312F34B56CKB0A0A1A2A3A4A5A6A7D7-D0RESETIORIOWA1A0RESETRDWRA1A0CS218H-21BH8255A8031系统+5V例题D 7D 0D 1D 2D 3D 4D 5D 615 端口C位置/复位控

11、制字 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:23-Jul-2004Sheet of File:C:Documents and Settingsyyc桌 面 protel图 片 7.21yao524.ddbDrawn By:1D0D1D2D3D4D5D6PC3-PC0:1-输入0-输出端口B:1-输入0-输出B组方式选择0-方式01-方式1PC7-PC4:1-输入0-输出方式选择控制字的标识位A组方式选择00-方式001-方式10X-方式2端口A:1-输入0-输出8255工作方式选择控制字的格式1=置10=置000000 0 00000001

12、 2 3 4 5 6 71111 11 1 1 1111B0B1B2xxx无关C 端口置1/置0标识符,应为0端口C置位/复位控制字格式12A740734B56C98D1110E1312F34B56CKB0A0A1A2A3A4A5A6A7D7-D0RESETIORIOWA1A0RESETRDWRA1A0CS218H-21BH8255A8031系统+5V例题D7D0D1D2D3D4D5D6165)8255A的初始化编程 8255A的两个控制字都通过CPU的输出指令写入控制端口。用标志位来识别是工作方式选择控制字,还是端口C置位/复位控制字。通常放在程序中某个适当的位置。【例1】如图6-10所示,

13、在8031系统中,8255A的A口用于驱动8个发光二极管L7L 0 ,B0接一开关K。要求根据读入的开关状态使L7 L 0 按不同规律发光,8255A的端口地址分别为:218H、219H、21AH、21BH。 硬件连接图见下页 171234ABCD4321DCBATitleNumberRevisionSizeA4Date:3-Aug-2004 Sheet of File:C:Documents and Settingsyy桌 面 protel图 片 7.21yao524.ddbDrawn By:1D0D1D2D3D4D5D6PC3-PC0:1-输入0-输出端口B:1-输入0-输出B组方式选择0

14、-方式01-方式1PC7-PC4:1-输入0-输出方式选择控制字的标识位A组方式选择00-方式001-方式11X-方式2端口A:1-输入0-输出8255工作方式选择控制字的格式1=置10=置000000 0 00000001 2 3 4 5 6 71111 11 1 1 1111B0B1B2xxx无关C 端口置1/置0标识符,应为0端口C置位/复位控制字格式12A740734B56C98D1110E1312F34B56CKB0A0A1A2A3A4A5A6A7D7-D0RESETRDWRA1A0RESETRDWRA1A0CS218H-21BH8255A8031系统+5V例题D7D0D1D2D3D

15、4D5D6图图6-10 例例1的硬件连接图的硬件连接图 18 按题目要求可知:A口应工作在方式0,输出;B口应工作在方式0,输入。而当口、B口都工作在方式0时与C口无关,则工作方式控制字可以是:100001B。其中“”表示可为1,也可为0。 由此可见,这种情况下方式控制字不唯一,具体有四种情况:82H、83H、8AH、8BH。若我们选择方式控制字为82H,则初始化程序段如下:MOVDPTR,#21BH;DPTR指向8255A控制端口MOVA,#82H;工作方式控制字82H送AMOVX DPTR,A;将工作方式控制字写入8255A控制端口19(2)可编程并行接口芯片8155A的扩展应用 1)主要

16、特性 8155A为Intel公司的另一种可编程并行I/O接口芯片。它具有二个8位和一个6位I/O口,以及256个字节静态RAM、一个14位计数器。它与单片机的接口简单,在单片机系统中应用广泛。 2)内部结构 8155A的内部结构如图6-21所示 。见下页20图6-21 8155A的结构框图 213)引脚功能 1234ABCD4321DCBATitleNum berR evisionSizeA4Date:22-Jul-2004Sheet of File:C :Docum ents and Settingsyyc桌 面 protel图 片 7.21yao524.ddbDrawn B y:单方波连续

17、方波单脉冲连续脉冲8155定时器输出方式P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7AD0AD1AD2AD3AD4AD5AD6AD7ALEALEP2.0P2.7RDWRIO/MCERDWR888031815588031与8155接口电路D0D1D2D3D4D5D6D7T0T1T2T3T4T5T6T704H计 数 长 度 的 低 8位D0D1D2D3D4D5D6D7T0T1T2T3T4T5T6T705H计 数 长 度 的 高 6位定 时 器 方 式8155定时器的格式ALERDWR256X8RAMABC控制逻辑定时器CERESETIO/MAD7-AD0PA7-PA0PB7-P

18、B0PC7-PC0定时器/计数器时钟TIMERoutVccVss8155的结构框图8155PA0PA1PA2PA3PA4PA5PA6PA7PB 0PB 1PB 2PB 3PB 4PB 5PB 6PB 7PC 0PC 1PC 2PC 3PC 4PC 5C EVccR ESETW RR DIO/MVssTIM ER inTIM ER out123456789101112131415161718192021222324252627282930313233343536373839408155的引脚图AD0AD1AD2AD3AD4AD5AD6AD7ALE4)控制字和状态字(见下页) 22图图6-23 8

19、155A命令寄存器格式命令寄存器格式 23图图6-24 8155A状态标志寄存器格式状态标志寄存器格式 D7D6D5D4D3D2D1D0TIMERINTBBFBINTRBINTEABFAINTRA5)内部定时器(8155A定时器的格式如下 ) D7 D6 D5 D4 D3 D2 D1 D0 计数长度的低8位 04H 05H T7 T6 T5 T4 T3 T2 T1 T0 M2 M1 T13 T12 T11 T10 T9 T8 定时器方式 计数长度的高6位 24 M1 M2 方 式 定 时 器 输 出 波 形 0 0 单 方 波 0 1 连续方波 1 0 单 脉 冲 1 1 连续脉冲 图图6-2

20、6 8155A定时器输出方式定时器输出方式 8155A定时器的格式中M2、M1用于设置定时器的输出方式,具体如图所示。256)8031与8155A的接口电路 由于8155A内部设有地址锁存器,因此,它与8031的接口电路非常简单,不需任何附加电路。图6-27(见下页)是8031与8155A的一种接口电路,其RAM和I/O口的地址分配如下:数据存储器的地址:7E00H7EFFHI/O口的地址:命令/状态寄存器 7FF8HPA口 7FF9HPB口 7FFAHPC口 7FFBH定时器低8位 7FFCH定时器高8位 7FFDH261234ABCD4321DCBATitleNum berR evisio

21、nSizeA4Date:25-M ay-2004Sheet of File:C :Docum ents and Settingsyy桌 面 单 片 机 教 材 6.12yao524.ddbDrawn B y:单方波连续方波单脉冲连续脉冲8155定时器输出方式P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7AD0AD1AD2AD3AD4AD5AD6AD7ALEALEP2.0P2.7RDWRIO/MCERDWR888031815588031与8155接口电路D0D1D2D3D4D5D6D7T0T1T2T3T4T5T6T704H计 数 长 度 的 低 8位D0D1D2D3D4D5D6

22、D7T0T1T2T3T4T5T6T705H计 数 长 度 的 高 6位定 时 器 方 式8155定时器的格式ALERDWR256X8RAMABC控制逻辑定时器CERESETIO/MAD7-AD0PA7-PA0PB7-PB0PC7-PC0定时器/计数器时钟TIMERoutVccVss8155的结构框图8155PA0PA1PA2PA3PA4PA5PA6PA7PB 0PB 1PB 2PB 3PB 4PB 5PB 6PB 7PC 0PC 1PC 2PC 3PC 4PC 5C EVccR ESETW RR DIO/MVssTIM ER inTIM ER out1234567891011121314151

23、61718192021222324252627282930313233343536373839408155的引脚图AD0AD1AD2AD3AD4AD5AD6AD7ALE图图6-27 8031与与8155A接口电路接口电路 27分析:设8155A的A口、B口为基本输入输出方式,A口为输入,B口为输出,定时器输出连续方波,输入脉冲24分频,则8155A的初始化程序段为:MOV DPTR,#7FFCH ;写计数初值低8位MOV A,#18HMOVX DPTR,AINC DPTR ;写定时器高6位和工作方式MOV A,#40H ;定时器为连续方波输出MOVX DPTR,AMOV DPTR,#7FF8H

24、MOV A,#0C2H ;置命令控制字:A口基本输入,B口基本输出MOVX DPTR,A ;启动定时器286.2 MCS-51系列单片机中断系统系列单片机中断系统 6.2.1 MCS-51系列单片机中断系统概述系列单片机中断系统概述 MCS-51系列单片机8051、8031、8751的中断系统中共有5个中断源,分别为外部中断0、外部中断1、定时器T0、定时器T1、串行接口(接收中断和发送中断为1个中断源)。它们的入口地址、中断允许控制、中断优先级的设置以及中断标志等见书上143页表6-3。中断系统结构见书上144页如图6-28所示。 6.2.2 中断源与中断控制中断源与中断控制 1中断源805

25、1单片机的5个中断源包括两个外部中断源(INT0,INT1引脚输入),三个内部中断源(定时器T0,T1的溢出中断源和串行口的发送/接收中断源)。 29(2)内部中断源 TF0(TCON.5):定时器T0的溢出中断申请位。TF0实际上是T0中断触发器的一个输出端。T0被允许计数以后,从初值开始加1计数,当产生溢出时置TF0=1,向CPU请求中断,直到CPU响应该中断时才由硬件自动清零(也可由查询程序清零)。 TF1(TCON.7):定时器T1的溢出中断申请位。实时器T1被允许计数以后,从初值开始加1计数,当产生溢出时置TF1=1,向CPU请求中断,直到CPU响应该中断时才由硬件自动清零(也可由查

26、询程序清零)。 SCON为串行口控制寄存器,SCON的低两位锁存串行口接收中断和发送中断标志RI和TI。 302中断控制(1)中断允许寄存器IE 8051单片机中,特殊功能寄存器IE为中断允许寄存器,控制CPU对中断源的开或屏蔽(禁止),以及每个中断源是否允许中断,其格式见下图。IE(A8H)EX0ET0EX1ET1ESEA b7 b6 b5 b4 b3 b2 b1 b031(2)中断优先级寄存器IP 8051单片机具有两个中断优先级,每个中断源可编程设定为高优先级中断或低优先级中断,并可实现二级中断嵌套。 在8051中断系统中,内部有两个(用户不能访问的)优先级状态触发器,它们分别指出CPU

27、是否在执行高优先级或低优先级中断服务程序,从而分别屏蔽所有的低级中断申请和同一级的其他中断源申请。 特殊功能寄存器IP锁存各种中断优先级的控制位,用户可用软件设置优先级,其格式如下图所示。 IP(B8H) PX0PT0PX1PT1PS b7 b6 b5 b4 b3 b2 b1 b032 如果几个同级的中断源同时向CPU申请中断, CPU通过内部硬件查询登记序号,按自然优先级确定优先响应哪个中断请求。其内部登记序号是由硬件排队电路确定的,排列如下表所示。 中 断 源同级内部优先级排列外部中断0最高级 最低级定时器T0中断外部中断1定时器T1中断串行口中断336.2.3 MCS-51中断系统的使用

28、方法中断系统的使用方法 1中断响应存在过程 A、在下列任何一种情况存在时,中断申请将被封锁: (1)CPU正在执行一个同级或高一级的中断服务程序。(2)当前周期(即查询周期)不是执行当前指令的最后一个周期,即要保证把当前的一条指令执行完才会响应。(3)当前正在执行的指令是返回(RETI)指令或对IE、IP寄存器进行读/写指令,执行指令以后至少再执行一条指令才会响应中断。34 B、在编写中断服务程序时应注意:(1)在中断矢量地址单元处放一条无条件转移指令,使CPU一旦响应中断,就能找到中断服务程序入口。若使用长跳转指令LJMP H),使中断服务程序被灵活地安排在64k字节程序存储器的任何空间。(

29、2)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器中的信息。(3)若要在执行当前中断程序时禁止更高优先级中断,可以先用软件关闭CPU中断(CLR EA),或禁止某中断源中断,在中断返回前开放中断。 2外部中断响应时间 356.2.4 多个外部中断源的设计多个外部中断源的设计1. 利用定时/计数器作为外部中断输入使用的方法 MCS-51单片机片内有两个定时/计数器,如果把它们定义成计数器工作方式,则当T0(P3.4)或T1(P3.5)引脚上发生负跳变时,都将对计数器进行“+1”操作。利用这个特性可以把P3.4和P3.5引脚作外部中断请求输入线,而溢出标志TF0,

30、TF1可用作这两个中断输入的请求标志。 以T0为例,将定时/计数器用作外部中断源的初始化程序如下: MOV TMOD, #06H ;T0计数方式,自动装载 MOV TL0, #0FFH ;置计数初值 MOV TH0, #0FFH ; SETB ET0 ;T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0工作36 若系统中多于4个外部中断源或定时/计数器另作它用时,可以利用中断与查询相结合的方法。我们可以按它们的紧急程度进行优先级排队,把其中高优先级直接接到MCS-51的一个外部中断输入端,其余的中断源用线或的办法连到另一个外部中断输入端,同时还分别连到一个I/O口,其电路

31、如图6-33 所示。 2. 中断与查询相结合的方法37图图6-33 扩展多个外部中断扩展多个外部中断 38PINT1:MOV P1,#0FFH ;设置P1口为输入端口 PUSH PSW ;保护现场 PUSH ACC JB P1.0,PDVT1 ;依次查询4 个中断源 JB P1.1,PDVT2 JB P1.2,PDVT3 ;若是干扰信号引起的中断请求 JB P1.3,PDVT4 ;可被过滤掉PINTR:POP ACC ;恢复现场 POP PSW RET ;中断返回分析:设DVT0DVT4五个中断源输入均为高电平有效,能被相应的中断服务程序所清除,并且在CPU响应该中断之前保持有效,均采用电平触

32、发方式,则外部中断的中断服务程序:391234ABCD4321DCBA&1kK1K+5V+5V1+5VP1.7INT0P1.08031外部中断实验图80315.1k X 3中断扫描方式键盘接口电路&P10P11P12P13P14P15P16P17INT10123456789101112131415+5V图图6-34 例例3硬件连接图硬件连接图6.2.6 中断服务程序设计中断服务程序设计 【例3】单片机读P1.0的状态,把这个状态送到P1.7的指示灯去,当P1.0为高电平,指示灯亮;P1.0为低电平时,指示灯不亮。要求用中断控制这一输入/输出过程,每请求中断一次,完成一次读操作和

33、写操作。 40 分析:根据约定,外部中断0的入口地址在0003H单元,而中断服务子程序则可放在程序存储器的任何地方。但必须在0003H单元放一条跳转指令,指向中断服务子程序的起始地址。中断服务子程序最后一条指令必须是RETI指令,以便在结束时能返回被中断的主程序。根据以上讨论,可编写程序如下:ORG 0000HAJMP MAIN ;上电自动转向主程序ORG 0003H ;外部中断0入口地址AJMP WINT ;指向中断服务子程序ORG 0100H ;主程序MAIN: SETB IT0 ;选择边沿触发方式 SETB EX0 ;允许外部中断0 SETB EA ;CPU允许中断HERE: AJMP

34、HERE ;主程序踏步41以下是中断服务子程序: ORG 0200H WINT: MOV A,#0FFH MOV P1,A ;设输入态 MOV A,P1 ;取开关数 RR A ;P1.0送P1.7 MOV P1,A ;输出驱动灯泡发光 RET1 ;中断返回 END426.3 8051单片机中的定时器单片机中的定时器/计数器计数器 6.3.1 定时器定时器/计数器概述计数器概述 1定时器/计数器的可编程概念 单片机内部一般都设置可编程的定时/计数器,以简化系统设计,提高系统功能。所谓可编程就是指可通过指令来确定或改变其工作方式,应包括以下几个方面:(1)确定其工作方式是定时还是计数;(2)预置定

35、时或计数初值;(3)当定时时间到或计数终止时,要不要发中断请求;(4)如何启动定时器或计数器工作。 432定时器/计数器的主要特性(1)每1个定时器/计数器都可以分为两个独立的8位定时器/计数器。(2)定时器/计数器有4种工作方式:其中T0有方式0、1、2、3,T1有方式0、1、2。(3)定时器/计数器需写入计数初值,且规定其工作方式,每种工作方式的初值计算有不同方法。需要用软件对T0、T1进行启停控制。(4)定时器/计数器的溢出率由几个因素决定:作定时器时,溢出率由单片机主频Fosc、计数初值和定时器工作方式决定;作计数器时,溢出率由外部引脚T0、T1的输入信号、计数初值和定时器工作方式决定

36、。 446.3.2 定时器定时器/计数器内部结构和工作原理计数器内部结构和工作原理 1内部结构(如下图) 45 (1)定时器 当设置为定时器工作方式时,计数输入信号来自内部振荡信号,在每个机器周期内定时器的计数器做一次“+1”运算。因此定时器亦可视为计算机机器周期的计数器。 (2)计数器 当设置为计数器工作方式时,计数输入信号来自外部引脚T0(P3.4)、T1(P3.5)上的计数脉冲,外部每输入一个脉冲,计数器TH0、TL0(或TH1、TL1)做一次“+1”运算。 2. 工作原理图图6-37 计数器对外部计数脉冲的要求计数器对外部计数脉冲的要求466.3.3 定时器定时器/计数器的控制计数器的

37、控制 1方式控制寄存器TMOD 定时器/计数器的方式控制寄存器,是一可编程的特殊功能寄存器,字节地址为89H,不可位寻址。其中低4位控制T0,高4位控制T1,其格式下图6-38所示。 图图6-38 方式控制寄存器方式控制寄存器TMOD的格式的格式47M1和M0:工作方式选择位。对应4种工作方式,见下表所示。M1 M0工作方式功能0 0方式013位计数器0 1方式116位计数器1 0方式2可自动重新装载的8位计数器1 1方式3T0分为两个独立的8位计数器,T1停止计数482定时器/计数器控制寄存器TCON 定时器/计数器的控制寄存器也是一个8位特殊功能寄存器,字节地址为88H,可以位寻址,位寻址

38、为88H8FH,用来存放控制字,其格式如下图所示。 图图6-39 定时定时/计数器控制寄存器计数器控制寄存器 496.3.4 定时器定时器/计数器的工作方式计数器的工作方式 编程使方式寄存器TMOD中M1M000时,计数器长度为13位。由TL的低5位(TL的高3位未用)和TH的8位构成13位计数器(对T0、T1都适用)。其逻辑结构下图所示: K12震荡器TL1(5位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式0逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制

39、TR1GATEINT1脚定时/计数器T1(T0)方式1逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式2逻辑图重装载K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.4)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式3逻辑图1/12 fosc1/12 foscKTH1(8位)TF1中断1/12 fosc控制TR11方式0:13位定时器/计数器502. 方式1:16位定时器/计数器 当编程使方式寄存器TMOD中M1M001时,计数器按16位

40、工作,即TL、TH全部使用,构成16位计数器。其逻辑结构下图所示: K12震荡器TL1(5位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式0逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式1逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式2逻辑图重装载K12震荡器TL1(8位)TH1(8位)TF1中断T

41、1(P3.4)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式3逻辑图1/12 fosc1/12 foscKTH1(8位)TF1中断1/12 fosc控制TR1513. 方式2:初值自动重装入8位定时器/计数器 当编程使方式寄存器TMOD中M1M010时,定时器/计数器就变为可自动装载计数初值的8位计数器。在这种方式下,TL1(或TL0)被定义为计数器,TH1(或TH0)被定义为赋值寄存器,其逻辑结构下图所示: K12震荡器TL1(5位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方

42、式0逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式1逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式2逻辑图重装载K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.4)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式3逻辑图1/12 fosc1/12 foscKTH1(8位)TF1中断1/12 fosc控制TR1524. 方式3:两

43、个独立的8位定时器/计数器 当编程使方式寄存器TMOD中M1M011时,内部控制逻辑TL0和TH0被设置成两个互相独立的8位计数器,如下图所示。 K12震荡器TL1(5位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式0逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式1逻辑图K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.5)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1

44、(T0)方式2逻辑图重装载K12震荡器TL1(8位)TH1(8位)TF1中断T1(P3.4)脚123C/T=0C/T=1控制TR1GATEINT1脚定时/计数器T1(T0)方式3逻辑图1/12 fosc1/12 foscKTH1(8位)TF1中断1/12 fosc控制TR1536.3.5 定时器定时器/计数器的初始化编程计数器的初始化编程 由于定时器/计数器是可编程的,因此在定时或计数之前要用程序进行初始化,初始化一般有以下几个步骤: 确定工作方式对方式寄存器TMOD赋值。 预置定时或计数初值,直接将初值写入TL0、TH0或TL1、TH1中。 根据需要对中断允许寄存器有关位赋值,以开放或禁止定

45、时器/计数器中断。 启动定时器/计数器,使TCON中的TR1或TR0置“1”,计数器即按确定的工作方式和初值开始计数或定时。 54 设计数器最大计数值为M,选择不同的工作方式,最大计数值M不同。 方式0:M2138192 方式1:M21665536 方式2、3:M28256 置入计数初值X可计算如下: 计数方式时: XM计数值(X即为计数值的补码) 例如:要计100个数,则计数初值X=M100 定时方式时: (MX)T定时值 故,XM定时值/T其中T为计数周期,是单片机时钟的12分频,即单片机机器周期。当晶振为6MHz时,T2s,当晶振为12MHz时,T1s。 55 【例5】若单片机晶振为12

46、MHz,要求产生500s定时,试计算X的初值。解:解:由于T1s,产生500s定时,则需要“1”500次,定时器方能产生溢出。采用方式0: X213(500106/106)76921E0CH 但在方式0中TL1高3位是不用的,都设为“0”,则1E0CH应写为: D7 D6 D5F00CH1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 B 未用实际上从上述表达式中我们可以清楚地看出F00CH,去掉了3个不用的位后,就是1E0CH,即将F0H装入TH1,0CH装入TL1的低5位。如果采用方式1:X216(500106/106)65036FE0CH即:FEH装入TH1,0CH装入TL

47、1。 566.3.6 定时器定时器/计数器的应用举例计数器的应用举例 1作定时器用 (1)定时器方式0的应用 【例6】设主频为12MHz,利用定时器T1定时,使P1.0输出周期为2ms的方波。 解:解:用P1.0作方波输出信号,周期为2ms的方波即每1ms改变一次电平,故定时值应为1ms,可作“1”运算1000次,使T1作定时器工作在方式0,即13位定时器。57定时初值:XM计数次数8192100071921C18H 由于TL1的高3位不用,1C18H可写成: 1110000000011000BE018HTH1初值为E0H,TL1初值为18H。 未用58 ORG 0000H AJMP MAIN

48、 ORG 001BH;T1中断入口AJMP BRT1;转T1中断服务ORG 0040HORG 0040HMAIN: MOVTMOD,0 ;T1按方式0工作MOVTH1,0E0H;MOVTL1,18H;给计数器赋值SETB EA;CPU开中断SETB ET1;T1允许中断SETB TR1;启动T1SJMP $;模拟主程序BRT1:MOVTH1,0E0HMOVTL1,18H;重装T1初值CPL P1.0;输出方波RETI;返回 END编程:59 【例7】根据例1要求产生周期为2ms方波,但不用中断方式,而用查询方式工作,查询标志为TF1。 解解:利用方式1,16位计数器,当定时时间到,T1计数器溢

49、出使TF1置“1”,由于不采用中断方式,TF1置“1”后不会自动复“0”,故要求指令给TF1清“0”。程序段为: MOV TMOD,10H;置T1为方式1 SETBTR1;启动T1定时LOOP: MOV TH1,0FCH MOVTL,18H;装入初值 JNBTF1,$ ;TF10,则继续查询 CPL P1.0;输出方波 CLRTF1;0TF1 SJMPLOOP;重复下一次循环 若定时器T1按方式1工作,即16位计数器,则定时初值: XM计数次数65536100064536FC18H(2)定时器方式1的应用603作计数器用 计数器方式2的应用: 【例8】用T0监视一生产流水线,每生成100个工件

50、,发出一包装指令,包装成一箱,并记录其箱数。硬件电路如下图所示 :MCS-51包装机包装命令TRL+1光源工件用T0作计数器硬件电路P1.0T0Vcc61 分析:用T0作计数器,RL为光敏电阻,当有工件通过时,RL阻值升高,三极管输出高电平,即每通过一个工件,便会产生一个计数脉冲。 方式字TMOD; 计数初值XM64H9CH; 用P1.0启动外设发包装命令; 用R5R4作箱数计数器。 62ORG1000HAJMP STARTORG000BHAJMP COUNTORG1200HSTART: MOV P1.0,0 MOV R5,0 MOVR4,0 MOV TMOD,6 MOV TH0,9CH MO

51、V TL0,9CH SETBEA SETB ET0 SETBTR0 SJMP$ COUNT:MOVA,R4 ADDA,1 MOVR4,A MOVA,R5 ADDCA,0 MOVR5,A SETBP1.0 MOVR3,100 DLY:NOP DJNZR3,DIY CLRP1.0 RETI END参考程序636.4 MCS-51系列单片机串行接口系列单片机串行接口 6.4.1 串行接口的主要特性串行接口的主要特性 1. 串行通信基本概念 所谓串行通信就是不同权值的二进制信息位按时间顺序一位一位地传送的通信方式。 串行通信的特点是远距离通信时硬件成本低,但传输速度也较低。串行通信有两种基本通信方式:

52、异步方式和同步方式。 64 异步方式是以单个数据为单位进行打包传送,同步方式是以数据块为单位进行打包传送,它们的数据格式如下图所示。 (a)异步串行通信的数据格式 (b)同步串行通信的数据格式 652. MCS-51系列单片机串行接口的主要特性 MCS-51系列单片机有一个全双工的串行接口,可进行异步串行接收和串行发送,可编程选择四种工作方式,波特率可由用户设置。 8051通过引脚RXD(P3.0串行数据接收端)和引脚TXD(P3.1串行数据发送端)与外界进行通信。在功能上它可以做UART(Universal Asynchronous Receiver/Transmitter)用,也可用作同步

53、移位寄存器。 666.4.2 串行接口的结构与控制串行接口的结构与控制 1. 数据缓冲器 SBUF 2. 串行口控制寄存器 SCON SCON (98H) SM0 SM1 SM2 RENTB8 RB8 TI RI D0 D7 3. 特殊功能寄存器 PCON PCON (87H) SMOD 676.4.3 串行接口的工作方式串行接口的工作方式 1. 方式0 方式0为同步移位寄存器输入/输出方式,可外接移位寄存器,以扩展I/O口,也可接同步输入/输出设备。 (1)方式0发送 (2)方式0接收 串行口接收/发送时序(书上167页)如图6-46所示。其硬件逻辑如图6-47所示。2. 方式1 串行口定义

54、为方式1时,传送一帧数据为10位,其中1位起始位,8位数据位(先低位后高位),1位停止位。方式1的波特率可变,波特率=2SMOD/32(T1的溢出率)。 (1)方式1发送 (2)方式1接收 683. 方式2 串行口定义为方式2时候,串行口被定义为9位异步通信接口。传送一帧信息为11位,其中1位起始位,8位数据位(先低位后高位),1位附加的可程控为“1”或“0”的第9位数据位,1位停止位。方式2的波特率是固定的,波特率为2SMOD/64fosc。 (1)方式2发送 (2)方式2接收 4. 方式3 串行口被定义为方式3时,为波特率可变的9位异步通信方式。除了波特率外,方式3与方式2类同,这里不再赞

55、述。方式3波特率=2SMOD/32(T1溢出率),波形图如图6-49所示(见169页)。696.4.4 串行接口的波特率设计串行接口的波特率设计 (1)方式0为移位寄存器方式,波特率是固定的: 方式0波特率=Fosc/12; (2)方式2为9位UART,波特率有两种选择: 方式2波特率=(2SMOD/64)Fosc。 波特率仅与PCON中SMOD的值有关,当SMOD=0时,波特率为Fosc/64;当SMON=1时,波特率为Fosc/32。 (3)方式1和方式3的波特率可变,由定时器T1溢出速率控制。方式1和方式3波特率=(2SMOD/32)(T1溢出率) 当SMOD=1时,波特率= 1/16(

56、T1溢出率) 当SMOD=0时,波特率=1/32(T1溢出率) 706.4.5 串行接口的应用串行接口的应用 1. 方式0的应用 【例10】应用串行口方式0输出,在串行口外接移位寄存器,构成显示器接口。如图6-50所示。3片(理论上可以为n片,为举例方便而用3片)74LS164串接成24位并行输出移位寄存器,每片74LS164接一个共阳极8段LED显示器,构成三位数据显示,这里P1.0作串行输出选择信号(只有P1.0为高时,串行同步信号TXD才能输出),这种显示称为静态显示(非动态扫描式显示),CPU不必为显示服务而频繁执行扫描任务。见书上171页712. 方式1的应用 【例11】把内部RAM

57、 40H5FH单元中的ASC码,最高位D7加上奇偶校验位后由甲机发送到乙机,波特率为1.2Kbps,晶振Fosc=11.059MHz。见书上172页3. 方式2或方式3应用 串行口方式2,方式3常用于多机通信,如果采用主从式构成多机系统,多台从机可以减轻主机的工作负担,构成廉价的分布式多机系统。电路结构如图6-51所示。 见书上174页726.5 模模/ /数转换器和数数转换器和数/ /模转换器在模转换器在单片机系统中的应用单片机系统中的应用6.5.1 A/D转换器在转换器在MCS-51系列单片机系统中的应用系列单片机系统中的应用 1、ADC0808/ADC0809的内部结构与引脚功能 ADC0808/ADC0809是具有锁存控制的8路8位高速A/D转换集成芯片,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论