版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、11教学内容:并行I/O口P0、P1、P2、P3、的结构原理与功能,读引脚操作、读锁存器操作,定时器/计数器T0、T1的结构原理,相关的特殊功能寄存器、工作方式,T2的结构原理、功能选择,监视定时器T3的工作原理,T0、T1的应用编程。串行口的功能特点:相关的专用寄存器,工作方式,波特率与波特率发生器、串行口简单应用编程。80C51单片机的中断系统、中断源、中断标志、中断矢量,中断允许控制、中断优先级控制,外部中断的两种触发方式,中断响应的条件,响应的过程。教学重点:并行I/O的结构原理、接口功能,读引脚和读锁存器操作,定时器T0,T1的工作方式、相关的专用寄存器、应用编程。串行口的功能特点、
2、相关的专用寄存器、工作方式,初始化编程、中断系统、中断源与标志及中断矢量、外部中断的两种触发方式、中断允许和优先级控制,中断响应的条件、响应的过程式、简单应用编程。教学要求:80C51单片机是通过专用寄存器对各功能单元进行管理的,要求学生掌握这些功能单元的基本应用方法。掌握并行接口( P0 、P1 、P2 、P3)的内部结构及其特点;掌握定时器/计数器T0、T1的结构原理和特点、以及T0、T1的应用编程;掌握80C51单片机的中断系统的结构原理和特点以及应用编程;掌握串行口的功能特点及应用编程。第四章 80C51单片机的功能单元2 表41 80C51并行I/O接口的比较I/O口P0口P1口P2
3、口P3口位数8888性质真正双向口准双向口准双向口准双向口功能I/O口替代功能I/O口替代功能I/O口替代功能I/O口替代功能SFR字节地址80H90HA0HB0H地址范围80H87H90H97HA0HA7HB0HB7H驱动能力8个TTL负载4个TTL负载4个TTL负载4个TTL负载 4. 1 并行I/O接口 80C51共有4个并行的双向口, 计有32根I/O口线,各口的每一位都由锁存器、输出驱动器和输入缓冲器所组成。但它们在结构上有一些差异,因此各口的性质和功能也有一些差异。详见P77表41:3 I/O口 P0口P1口P2口P3口替代功能程序存储器、片外数据存储器低8位地址及8位数据CTC2
4、T2、 T2EX(CTC2仅80C52中有) 串行口程序存储器、片外数据存储器高8位地址串行口:RXD TXD中断:INT0 INT1CTC0、1: T0、 T1片外数据存储器:WR RD44. 1. 1 P1口 P1口是一个8位的准双向口,可字节访问及位访问, 其字节地址是90H, 位地址是90H97H。 1。位结构与工作过程分析 P1口的位结构如P78图41所示,它包含输出锁存器、输入缓冲器BUF1(读引脚)和BUF2(读锁存器)以及由场效应晶体管(FET) Q0与上拉电阻组成的输出 / 输入驱动器.P1口的工作过程如下: (参见 P78图41 ) P1 . i 位作输出口用:CPU输出
5、0 时,D0,Q=0, /Q=1, 晶体管Q0导通,A点被下拉为低电平,即输出0; CPU输出1时,D1,Q=1, /Q=0,晶体管Q0截止, A点被上拉为高电平,即输出1。(即输出锁存,输出时没有条件。) P1 . i 位作输入口用:先向P1 . i 位输出高电平,使A点提升为高电平,此操作称为设置P1 . i 位作为输入线。若外设输入为1时,A点为高电平,由BUF1读入总线后,B点也是高电平;若外设输入为0时,A点为低电平,由BUF1读入总线后,B点也是低电平。(即输入缓冲,输入时有条件,需先将该口置1, 再输入。)5单片机的引脚(P1口) P1口:输出锁存器、输入缓冲器BUF1(读引脚)
6、和BUF2(读锁存器)以及由场效应晶体管(FET) Q0与上拉电阻组成的输出 / 输入驱动器。21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻P1口某位结构AQ0621DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输出数据 = 1 时110截止=1单片机的引脚(P1口)作输出口用:CPU输出1时,D1,Q=1, /Q=0,晶体管 Q0截止, A点被上拉为高电平,即输出1 。AQ0721DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输出数据 = 0 时001=0导通单片机的引脚(P1口)作输出口用:CPU输出 0 时
7、,D0,Q=0, /Q=1, 晶体管 Q0导通,A点被下拉为低电平,即输出0;AQ0821DQCK/Q读引脚 =1读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输入数据时,要先对其写“1”110截止单片机的引脚(P1口)P1口为 准双向I/O口(内置了上拉电阻),仅在作输入口用时:要先对其(锁存器)写“1”。AQ092 P1口的特点 输出锁存,输出时没有条件; 输入缓冲,输入时有条件,即需要先将该口设为输入状态,先输出1; 工作过程中无高阻悬浮状态,也就是该口不是输入态就是输出态。 具有这种特性的口不属于“真正”的双向口,而被称为“准”双向口。 需要注意是:若在输入操作之前,不将A点设
8、置为高电平(即置1) ,如A点为低电平,则外设输入的任何信号均被A点拉为低电平。此时如外设为高电平,因被Q0强拉为低电平,将可能因大电流使晶体管烧坏。 P1口能驱动4个TTL负载。10简单测控实例原理图11P1.3作输入端口光路通畅,R亮2K光路阻断,R暗 400K R亮 250K 12JOB3: CLR P1.1 ;亮绿灯REDO: SETB P1.3 ;P1.3作输入口必先置1CHECK:JNB P1.3,CHECK ;检测通道是否被阻断?LOOP: ;有入侵者,报警!AJMP REDO ;再跳回去检测任务:红外防盗报警P1.3口用于输入状态检测的语句: R亮250K ,红外线光路阻断时,
9、P1.3端高电平133。P1口的操作 (1)字节操作和位操作: 前面已述, P1口不仅可以作为一个8位字节来操作,也可以按位来操作。如: MOV P1, A , MOV P1, data 等,为字节操作。 MOV P1. i , C , SETB P1. i 等,为位操作。 (2)读引脚操作和读锁存器操作 读引脚信号时要先置1,后输入; MOV A, P1 (P1为源操作数) 读锁存器时,锁存器的值是经缓冲器BUF2读入内部总 线,修改后再写回锁存器。如前所述,它可避免误解。 MOV P1, A ;ANL P1, #10H CLR P1.1 (P1为目的操作数) 4。关于口操作的时序 在执行改
10、变口锁存器内容的指令时,新的内容在指令执行的最后一个周期的 S6P2 时传送到口锁存器内,然而口锁存器仅在任何周期的P1才被其锁存器/缓冲器采样到,在P2时输出此值并保持。因此, S6P2时写入端口的新数值只有到下一周期的S1P1才能出现在输出引脚上。14 5。P1口的多功能线: 在80C52中,P1.0和P1.1是多功能的,即除作一般的双向口外, 它们还具有如下功能: P1.0 定时器2 / 计数器2的外部输入端T2; P1.1 定时器2 / 计数器2的外部控制端T2EX。 此时,该两位的结构与P3口的位结构相当,详情后述。4. 1. 2 P3口: 它是一个多功能的8位口,可字节访问也可位访
11、问, 其字节地址为B0H , 位地址为B0H B7H。 1。 位结构与工作过程分析 (1)位结构: P3口的位结构如 P81 图42 所示。 从图中可见: P3口中增加了一个与非门。其输入端C接Q,另一端B接替代输出功能。 输出锁存器不是从/Q端而是从Q端引出。 有两个输入缓冲器,替代输入功能取自第一个缓冲器的输出端;I /O口的通用输入信号取自第二个缓冲器的输出端。 (2)输出工作过程分析: 当替代输出功能B点置1 时,输出锁存器的输出可以顺利地通到引脚P3. i 。此时,其工作状态与P1口类似,为一准双向的I/O口 (作读引脚输入时应先置1 ) 。 当输出锁存器的输出置1 时,替代输出功能
12、可以顺利通到引脚P3. i : 若替代输出为0,因与非门的C点已置1,现B0,其输出为1,使Q0导通,A为低电平 ;反之,B=1,C=1, Q0截止, A为高电平。此时,P3口处于替代输出功能状态。15 当P3口的某位作为替代输入功能时,此时B=1,C1,FET截止,该引脚为高阻输入。由于端口不执行MOV A, P3 , ”读引脚”无效,第二缓冲器不通,此时某引脚的第二功能信号(如RXD)经第一缓冲器送入替代输入功能端。 2。P3口的功能和特点: P3口是个多功能口,可驱动4个TTL负载。 (1) 可作为普通的I/O口,为准双向口(这点与P1口一样)。 (2) 可作为替代功能的输入、输出 (这
13、点与P1口不同): P3. 0 RXD, 串行输入 ; P3. 1 TXD,串行输出。 P3. 2 INT0,外部中断0; P3. 3 INT1,外部中断1。 P3. 4 T0,定时器/ 计数器0的外部计数脉冲输入。 P3. 5 T1,定时器/ 计数器1的外部计数脉冲输入。 P3. 6 /WR,外部RAM写选通,输出,低电平有效。 P3. 7 /RD,外部RAM读选通,输出,低电平有效。 因此,P3口不论是作为替代功能输入和替代功能输出,还是作为一般I/O口的输入功能时,都要向该口位的锁存器先输出1,即让图42的C1(Q=1),只是作为替代功能时由内部自动置C1;而作为一般I/O口的输入功能时
14、,应由程序先置1,这一点应引起注意。16单片机的引脚(P3口)P3口的口线逻辑电路如图42所示(P81)P3.0P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。21DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出(WR,RD,TxD)引脚 P3.X3内部上拉电阻Vcc第二功能输入(RxD,T0,T1,INT0,INT1)4P3口某位结构 BC1721DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出(WR,RD,TxD)引脚 P3.X3内部上拉电阻Vcc4第二功能输出时,内部自动 D=1111反相器单片机的引脚(P3
15、口)P3.0P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。BC1821DQCK/Q读引脚读锁存器写锁存器内部总线此端自动1引脚 P3.X3内部上拉电阻Vcc 第二功能输入(RxD,T0,T1,INT0,INT1)4第二功能输入时,信号经缓冲器4 直接进入内总线1110截止单片机的引脚(P3口)P3.0P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。BC19 2。P3口的功能和特点: P3口是个多功能口,可驱动4个TTL负载。 (1) 可作为普通的I/O口,为
16、准双向口(这点与P1口一样)。 (2) 可作为替代功能的输入、输出 (这点与P1口不同): P3. 0 RXD, 串行输入 ; P3. 1 TXD,串行输出。 P3. 2 INT0,外部中断0; P3. 3 INT1,外部中断1。 P3. 4 T0,定时器/ 计数器0的外部计数脉冲输入。 P3. 5 T1,定时器/ 计数器1的外部计数脉冲输入。 P3. 6 /WR,外部RAM写选通,输出,低电平有效。 P3. 7 /RD,外部RAM读选通,输出,低电平有效。 因此,P3口不论是作为替代功能输入和替代功能输出,还是作为一般I/O口的输入功能时,都要向该口位的锁存器先输出1,即让图42的C1(Q=
17、1),只是作为替代功能时由内部自动置C1;而作为一般I/O口的输入功能时,应由程序先置1,这一点应引起注意。204. 1. 3 P2口 : P2口 是个多功能8位口,可字节访问也可位访问, 其字节地址为A0H , 位地址为A0H A7H。1. 位结构与工作过程分析: P2口的位结构如 P82 图43 所示。 (1)位结构: 它与P1口位结构的区别在于: P2口位结构中增加了一个多路开关。其切换由内部控制信号控制,可分别接输出锁存器的Q端或地址寄存器的高8位。 输出锁存器的输出端是Q而不是 /Q,因此开关后面接非门。 (2)工作过程分析: (参见P82 图43) 当内部控制信号使多路开关接锁存器
18、的Q端(C点)时,若内部总线输出0,则Q0, 经开关和反相器后输出 1,Q0导通,A为0,即输出低电平;反之,当内部总线输出 1时,A为 1,输出高电平。 当内部控制信号使多路开关接地址输出侧(B点)时,这时多路开关接地址输出寄存器,A点的电平将随地址输出0、1而 0、1地变化,此时P2口输出高8位地址。212.4.3 单片机的引脚(P2口)P2口的口线逻辑电路如图43所示(P82)P2.0P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址高8位控制引脚 P2.X3
19、内部上拉电阻VccP2口某位结构图CB2221DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址高8位控制 引脚P2.X控制=0时,此脚作通用输出口: 输出=1时110截止3内部上拉电阻11Vcc=1=0单片机的引脚(P2口)P2.0P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。CB2321DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址高8位控制 引脚P2.X控制=0时,此脚作通用输出口:输出=0时001导通3内部上拉电阻00Vcc=0=0单片机的引脚(P2口)P2.0P2.7: 双向I/O (内置了上
20、拉电阻) 寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。CB2421DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址高8位控制=1 引脚P2.X控制=1 时,此脚作高8位地址A8A15输出口:当输出 =1 时10截止3内部上拉电阻1=1Vcc=1单片机的引脚(P2口)P2.0P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。CB2521DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址高8位控制=1 引脚P2.X01导通3内部上拉电阻0=0Vcc=0控制=1 时,此脚作
21、高8位地址A8A15输出口:当输出 =0 时单片机的引脚(P2口)P2.0P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。CB26 2。P2口的功能和特点:P2口是个双功能口。可驱动 4个TTL负载。 (1)作为普通I/O口时,P2口是准双向口,功能和P1口相同。 (2)作为地址输出时,P2口可输出程序存储器或片外数据存储器的高 8 位地址,它和P0口输出的低8位地址构成16位地址线。作为地址线时是8位一起自动输出,不能象I/O线那样逐位定义。 3。P2口使用中应注意的问题: (1) 由于P2口具有输出锁存功能,
22、所以输出的高8位地址无需外加地址锁存器。 (2)系统如外接有程序存储器,由于访问片外程序存储器时连续不断地取指令操作,P2口需不断地送高8位地址,这时P2口全部口线均不能再作I/O口使用。 (3)在无外接程序存储器而有片外数据存储器的系统中,P2口的使用可分为两种情况: 若片外数据存储器的容量256B,可使用MOVX A, Ri及MOVX Ri, A来访问片外RAM, 这时P2口不输出地址,因此P2口仍可作为I/O口(准双向)使用。 27 若片外数据存储器的容量256B,这时对256B以上的要使用MOVX A, DPTR类指令来访问,P2口需输出高8位地址,此时,可以根据片外数据存储器读和写选
23、通的频繁程度,有限制地将P2口作为 I/O 口使用 (或只利用P1/P2/P3口的某几根线送地址) 。28 4. 1. 4 P0口 它是个多功能的8位口,可字节访问也可位访问,其字节地址为80H , 位地址为80H 87H。 1。位结构与工作过程分析: P0口的位结构如 P84图44 所示。 (1)位结构 : P0口的位结构与P1口有明显地区别: P0口中增加了一个多路开关,其输入分别可接地址 / 数据输出或锁存器输出 /Q ,其输出用于控制FET Q0的导通或截止。 而开关的切换由内部控制信号控制。 P0口的输出上拉电路与P1完全不同: P0口的上拉电路的导通或截止受内部控制信号和地址 /
24、数据信号两者相“与”来控制。(2)工作过程分析: 当内部控制信号置1 时,多路开关接通地址/ 数据端。 此时,当地址/ 数据线置1时,“与”门输出为1,上拉FET导通,同时地址 /数据线经反相器输出0,控制下拉FET截止,这样使A点电位上拉,地址/ 数据线为1;而当地址/数据线置0时, “与”门输出为0,上拉FET截止,同时地址/数据线经反相器输出1,控制下拉FET导通,这样使A点电位下拉,地址 / 数据线为 0。 由此可见,此时的输出状态随地址 / 数据线而变。P0可作为地址 / 数据的复用总线使用。P0口相当于一个真双向口。29 当内部控制信号置0 时,多路开关接通锁存器输出 /Q ,此时
25、: 由于内部控制信号为0, “与”门关闭,上拉FET截止,使P0的输出电路变为漏极开路输出; 输出锁存器的/Q端引至下拉FET的栅极,因此P0口的输出由下拉电路决定。即: 当P0口作为输出口时:若P0 . i 1, /Q0,下FET截止,此时 P0 . i 为漏极开路输出( 输出由外接上拉电阻决定 );若P0 . i 0, /Q1, 下FET导通, P0 . i 为低电平。 当P0口作为输入口时:为了正确读数,必须使P0 . i 先置1,即 /Q0,下拉FET截止, P0 . i 处于悬浮状态,A点电平由外设而定。 2。 P0口的功能和特点: (1)P0口作为I/O口使用:相当于一个准双向口,
26、此时,它与其它口的区别是,输出为漏极开路,若与NMOS电路接口要用上拉电阻;输入时为悬浮状态,为高阻抗输入口。(2) P0口作为地址/ 数据的复用总线:相当于一个真正的双向口。输出低8位地址,输入、输出8 位数据。 此时,口不能逐位定义,也不能再作为一般I/O口使用。 (3)P0口能驱动8个TTL负载。30单片机的引脚(P0口)P0.0P0.7: 双向I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制引脚P0.X34VccP0口1位结构图3
27、121DQCK/Q读引脚 =1读锁存器写锁存器内部总线地址/数据控制引脚P0.X34控制=0 时,作为8位准双向I/O口使用,作输入口(事先必须对它写“1”)00100截止截止=0Vcc单片机的引脚(P0口)P0.0P0.7: 双向I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。3221DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(1)输出地址/数据 =0 时1011=0导通截止=0Vcc单片机的引脚(P0口)P0.0P0.
28、7: 双向I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。3321DQCK/Q读引脚 =0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(2)输出地址/数据 =1 时1100=1截止导通=1Vcc单片机的引脚(P0口)P0.0P0.7: 双向I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。3421DQCK/Q读引脚 =1读锁存器写锁存器内部总线地址/数据
29、控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口: (3)输入数据时,输入指令将使引脚与内部总线直通Vcc单片机的引脚(P0口)P0.0P0.7: 双向I/O (内置场效应管上拉) 寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。35 4. 2 定时器 / 计数器 4. 2. 1 概述 定时器 / 计数器是单片机的重要部件,它工作方式灵活,编程简单,因此对减轻CPU的负担和简化外围电路有很大好处。 80C51包含2个16位的定时器 / 计数器(T0、T1),80C52包含3个16位的定时器 / 计数器(多个T2)。8
30、0C552还有一个8位定时器(T3)用作看门狗(WDT)。 定时器 / 计数器的核心是一个加1计数器,其基本功能是加1功能。所谓定时器和计数器的差别是:作为计数器是对T0、T1引脚上的外部脉冲计数;而作为定时器是对单片机内部的机器周期计数。 其定时或计数功能的设定都是通过软件进行的。364. 2. 2 定时器 / 计数器T0、T1 1。定时器 / 计数器T0、T1的内部结构:定时器 / 计数器T0、T1的内部结构见P86图45。它们由以下几部分组成: 计数器TH0、TL0和TH1、TL1; 特殊功能寄存器TMOD、TCON ( TCON仅高4位有关 ); 时钟分频器; 输入引脚 T0、T1、/
31、INT0、/INT1。 2。定时器 / 计数器T0、T1的特殊功能寄存器 (1) 定时器 / 计数器的方式寄存器 TMOD TMOD是一个逐位定义的8位寄存器,但只能字节寻址(89H)。GATEC / TM1M0GATEC / TM1M0其中低四位定义定时器 / 计数器T0,高四位定义定时器 / 计数器T1。各位的意义如下: GATE :门控位。 GATE = 1 时,由外部中断引脚/INT0 (/INT1) 和 TR0 (TR1) 来启动定时器。当/INT0 为高电平及TR0置位时,启动T0;当/INT1 为高电平及TR1置位时,启动T1。 而GATE = 0时,仅由TR0 (TR1) 来启
32、动。37补注:利用GATE的这一特点,可将/INT0(或/INT1)接外部脉冲信号,用它与相应定时器配合来测定该外部脉冲的频率和脉宽。 C / T : 计数 / 定时功能选择位。 C / T1 时,选择计数功能; C / T0 时,选择定时功能。 M1、M0 : 工作方式选择位。(详见 P87 表42)M1 M0工作方式计 数 器 的 配 置0 0方式 013 位 计 数 器0 1方式 116 位 计 数 器1 0方式2自 动 再 装 入 的 8 位 计 数 器1 1方式 3T0 分为两个8位计数器,T1 停止计数 方式寄存器TMOD各位的功能汇总于P87表43(表中有误请更正)。(2)定时器
33、 / 计数 器 T0、T1的控制寄存器 TCONTCON是一个逐位定义的 8位寄存器,既可字节寻址又可位寻址,其字节地址为 88H,位地址为 88H 8FH,其格式如下(T0 、T1):位地址8FH8EH8DH8CH8BH8AH89H88H位名称TF1TR1TF0TR0IE1IT1IE0IT038控制寄存器TCON各位的意义见P88及表44(低4位为外部中断):位名 称功 能D7TF1(TCON. 7)定时器/计数器T1的溢出标志,由内部硬件置位。D6TR1 (TCON. 6)定时器/计数器T1运行控制位,软件控制 (置1启动) 。D5TF0 (TCON. 5)定时器/计数器T0的溢出标志,由
34、内部硬件置位。D4TR0 (TCON. 4)定时器/计数器T0运行控制位,软件控制 (置1启动) 。D3IE1 (TCON. 3)外部中断1沿触发标志位 (置1为有外部中断1请求) 。D2IT1 (TCON. 2)外部中断1触发类型位 (1为沿触发,0为电平触发) 。D1IE0 (TCON. 1)外部中断0沿触发标志位 (置1为有外部中断0请求) 。D0IT0 (TCON. 0)外部中断0触发类型位 (1为沿触发,0为电平触发) 。(3)定时器/计数 器 T0、T1的数据寄存器 TH0、TL0 和 TH1、TL1计数 器 / 定时器T0、T1各有一个16位的数据寄存器,它们都由高8位和低8位寄
35、存器组成,所有这四个寄存器都是读/写寄存器,任何时候都可以对它们进行读/写操作。但它们都只能字节寻址。 TH0、TL0 和 TH1、TL1 相应的字节地址为:8CH、8AH 和 8DH、8BH,复位后,这四个寄存器全部清 0 (见P89 表45)。39 3。 定时器 / 计数 器 T0、T1的功能选择:定时器 / 计数 器的功能是通过TMOD的C/T来选择的,置0为定时器,置1为计数器。 (1)定时器,设置C / T=0 。此时,计数输入信号是内部时钟脉冲,每个机器周期使寄存器增1。若振荡周期为12MHz,1机器周期为12个 的振荡周期,计数速率为1MHz,即计数器每1 微秒增 1 。定时器的
36、定时时间 与 系统振荡频率、计数器位数和初值有关。 (2)计数器,设置C / T=1 。此时,通过引脚T0(P3.4)和T1(P3.5)对外部信号计数。若前一周期采样值为1,下一周期为0(即负跳变时),则计数器增1。因在每周期的S5P2期间读引脚电平,而在下个机器周期的S3P1期间才使新计数值装入计数器,所以检测一个1到0跳变需要2个机器周期,故最高计数频率为振荡频率的1 / 24。 4。 定时器 / 计数 器 T0、T1的工作方式 如前所述,根据对M1和M0的设定,定时器/计数器T0、T1可选择四种工作方式,其中前三种方式(0、1、2)相同,而方式3 稍有不同。 (1) 方式 0 : 当M1
37、M0为 00 时,选工作方式 0 。这种方式下,计数寄存器由13位组成,即TL (注意:不是TH)的高3 位没用。方式0 的结构如 P89图46 所示:40如 P89 图46 所示: 计数时,TL的低5位计满溢出后,向TH进1,13位计满溢出后,将TF置1,并向CPU申请中断。(图右上部所示) 当GATE0时(图左下部所示) , A点为高电平,定时器/计数器的启动/停止由TRX决定。 TRX 1启动, TRX 0 停止 (由软件控制 )。 当GATE1时(图左下部所示) , A点电位由INTx决定,因此定时器 /计数器的启动 /停止由 TRX 和 INTx 决定。 两者同时为1时启动, 否则停
38、止 。 计数器溢出时,TFx置位,如果中断允许,则CPU响应中断并转入中断服务程序,由内部硬件清TFx, TFx 也可由程序查询 和 清 0 。 (2) 方式 1 :当M1M0为 01 时,选工作方式 1 。这种方式下,计数寄存器由16位组成。方式1的结构如 P90 图47 所示。此时,除TLx的8位和THx的8位组成16位外,其它与方式0完全相同。(3) 方式 2 :当M1M0为 10 时,选工作方式 2 。这种方式下,将16位计数寄存器分为两个8位的寄存器,组成一个可自动重装入的 8位计数器。方式 2 的结构如 P90 图48 所示。在方式2中,TLx作为8位计数器,THx作为8位计数常数
39、的寄存器。当TLx计满溢出时,一方面将TF置位,并向CPU申请中断;另一方面,将THx的内容重新装入TLx中,继续计数。(其它方式需人工重新装入)。方式 2 特别适用于串口波特率发生器的使用。41(4) 方式 3 :当M1M0为 11 时,选工作方式 3 。方式3仅T0具有,T1不具有这种方式。在方式3时,T0被分为一个8位的定时器/计数器TL0 和一个8位的定时器TH0。此时T0的结构如 P91 图49 所示: 方式3中,TL0可作为8位定时器或计数器,其工作与方式0 相同,只是仅为8位。而TH0只能作8位定时器用,不过此时它要占用T1的TR1、TF1及其中断源,因此,此时T1仅能用作波特率
40、发生器或其它不用中断的地方(此时 T1 的结构见 P92 图410)。42方式0、113位、16位定时/计数器。 THx8位和TLx8位组成16位加1计数器最大计数脉冲个数:165536(216)最长定时时间(晶振12MHz T=1s):1s 65536T= 65.54ms非门控方式:当GATE0, 控制权由 TRx 决定 TRx1 计数开始 TRx 0 计数停止门控方式:当GATE1、TRx1 控制权由 INTx 决定 INTx1 计数开始 INTx 0 计数停止启动计数方式:43方式2自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。用于需要重复定时和计数的场
41、合。最大计数值:256 (28)最大定时时间(晶振12MHz时 T=1s): 256s44方式3T0分成2个8位定时器:TL0定时/计数器和TH0定时器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。T1不能使用方式3工作454. 2. 3 定时器 / 计数器T2 80C52中还有一个功能较强的16位定时器/计数器,并具有自动重装载和捕获能力。它占用P1口的P1 . 0(T2)和P1 . 1(T2EX)作为外部计数脉冲和控制信号的输入端。而且增设了4个特殊功能寄存器: 控制寄存器 T2CON 方式控制寄存器 T2MOD 数据寄存器 TH2、TL2 捕获寄存器 RC
42、AP2H、RCAP2L 本节(定时器 / 计数器T2)的内容不作为基本要求,留作需要时自学(P7983)。 4. 2. 4 看门狗(Watchdog、WDT) 看门狗(8XC552才有)又称为定时器T3,它的作用是故障复位。46即当单片机由于硬件或软件的故障使程序进入错误状态后,因为在设定的时间内,用户程序没有重装定时器T3,此时将产生一个系统复位信号,强迫单片机复位,从而使之从故障中解脱出来。 8XC552的定时器T3是由一个11位的分频器和8位定时器组成,如P95 图414 所示:T3由外部引脚/EW和电源控制寄存器中的PCON.4(WLE)和PCON.1(PD)控制。 /EW 看门狗定时
43、器允许,低电平有效。 /EW 0看门狗有效,禁止掉电方式; /EW 1看门狗无效,允许掉电方式。 WLE ( PCON. 4 ) 看门狗定时器允许重装标志,若WLE 1,T3只能被软件装入,装入后WLE自动清除。产生复位的时间间隔,由装入T3 的值决定。 定时器T3的工作过程:当T3溢出时,复位8XC552,并产生复位脉冲输出至复位引脚RST。为防止系统复位,必须在T3溢出前,通过软件对其进行重装。如果发生软件或硬件故障,将使软件对T3的重装失败,从而使T3溢出,导致复位信号的产生。用这种方法可以在故障使软件失控时,恢复程序的正常运行,防止死机。例如:看门狗的程序如下: T3 EQU 0FFH
44、 ;T3的地址0FFH PCON EQU 87H ; PCON的地址87H T3_INTV EQU 156 ;看门狗的时间间隔 LCALL W_DOG ;子程序见左边 W_DOG : ORL PCON, #10H MOV T3, #T3 _ INTV RET PCON. 4 = WLE =1 (10H)00010000474. 2. 5 定时器 / 计数 器的编程和使用 1。定时器 / 计数 器溢出率的计算 定时器 / 计数器运行前,在其中预先置入的常数,称为定时常数或计数常数(TC)。由于计数器是加1计数的,故预先置入的常数均应为补码。 TC即为定时器 / 计数 器的初值。 t Tc(2LT
45、C) 12(2LTC)/ fosc 式中:t定时时间。 Tc 机器周期( 注意区别 Tc 和 TC ) fosc 晶振频率。 L 计数器的位数(长度)对于T0 和 T1,不同的工作方式下,最大的计数值2L为: 方式0 L13 2138192 (6MHz晶振,最大定时时间16. 384ms) 方式1 L16 21665 536 (6MHz晶振,最大定时时间131. 072ms) 方式2 L8 28256 (6MHz晶振,最大定时时间0. 512ms)定时时间 t 的倒数为溢出率。溢出率1 / t fosc / (12 (2LTC) 根据确定的定时时间 t 和定时器位长 L,可计算出定时器初值TC
46、: TC 2L (fosc t )/ 12将上式算出的十进制TC换算为二进制及16进制,分别送入THi、TLi。 MOV THi, TCH ;送高8位 ( T0: i0 ; T1: i1 ) MOV TLi, TCL ;送低 8 / 5 位 ( 方式 0 时TLi为5 位 ) 上面关于定时器 / 计数 器的初值的计算方法应很好地掌握!Tc =12Tosc =12 / fosc48 2。定时器/计数器的编程 定时器/计数器的编程步骤如下: 写TMOD, 只能用字节寻址:设置它的工作方式(M1M0)、功能选择(C/T)、及是否门控(GATE)。 根据TC的计算将时间或计数常数写入THi和TLi(用
47、字节寻址) 写TCON (可字节寻址也可位寻址):启动定时器/计数器。通常用位寻址。 如: SETB TRi ;启动。( CLR TRi ;停止) 写 I E(1,3,7 位),设置定时器中断的开放或禁止。 如: SETB ETi ;允许定时器中断 (CLR ETi 禁止中断) SETB EA ;开放总中断 ( CLR EA 关闭总中断) 3。定时器/计数器的应用举例例 4.1:使用定时器/计数器T0的方式0,设定1ms的定时,在P1.0引脚上产生周期为2ms的方波输出。fosc6 MHz 。(见P100) 解:定时常数的计算 方式0 :L=13, 2138192, 定时时间 t1ms1103
48、 s时间常数TC2L (fosc t )/ 128192(6 106 103)/12 8192 - 500 = 7692 = 1111 0000 01100 B = 0F0 0CH49 控制字TMOD的设定:控制字为00H,道理见P101页 编 程: ORG 0000H AJMP MAIN ORG 000BH ;设置T0的中断矢量,即跳转地址。 AJMP INQP ORG 0050H MAIN: MOV TMOD, #00H ;写控制字 MOV TH0,0F0H ;写定时常数 MOV TL0,0CH SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;开放CPU中
49、断 (ETA改EA) AJMP $ ;等待中断 (HERE: AJMP HERE) INQP: MOV TH0, #0F0H ;重写定时常数 MOV TL0, #0CH CPL P1. 0 ; P1. 0 变反 RETI ;中断返回 书中例2 类似,自学。 例3所需时间短,可采用2个 8位定时器,即工作方式3。50例4:试设定定时器/计数器T0为计数方式2。当T0引脚出现负跳变时,向CPU申请中断。(P104页)解:定时常数计算:因每次负跳变时向CPU申请中断,即每计1次 就要溢出。所以定时常数TC = 0FFH。 TMOD的设定(控制字):设定TMOD的低4位(对T0)为:GATE=0,C/
50、T1,M1M0 =10 ,所以控制字为 06H 。 编 程 (详见P104) 例5:利用定时器/计数器T1测定P104图415 所示方波的周期长。解:本例要用到利用门控信号启动定时器的方法,设T0为定时器,/INT0为高电平时,启动T0;计数器1为计数器,其T1电平由10时,计数器计数。 定时器的设置:设T0的基本定时为100ms,采用门控方式及工作方式 1。因此定时器 T0 的 TMOD 设置为9H(09H)。(见P105106) 时间常数计算:设晶振为 6MHz,机器周期Tc2微秒2106s。 T0初值X(TC)216100 103 / 2 10615536 3CB0H 。 因此, (TH
51、0) 3CH , (TL0) 0B0H .51 计数器T1设置: T1为计数器,对外部脉冲计数。从图415 a可见,一个周期正好计数2次,当INT0为高时,启动T0,T1的电平由1到0,T1计数1;当T1计数为2时,计数器T1中断, 并停止T0工作,中断优先级T1高于T0。因此,计数器T1的TMOD设置,其控制字为5H(50H)。把T1和 T0的控制字合起来为 50H09H = 59H (TMOD)。 T1计数器的初值为 0FFFEH。 即 (TH1) 0FFH ,(TL1) = 0FEH。 编程: 详见 P105106页。(其中,中断标志 F1 应改为 0F1H 位)补充例题:用单片机控制一
52、个“航标灯”,使航标灯定时发光,亮、灭间隔各2秒;且当黑夜降临时,它闪闪发光;白天时自动熄灭。硬件线路设计示意图如左图。(1)P1. 7=1, 晶体管导通,灯亮,P1. 7=0, 灯灭。(2)白天,光敏管导通,晶体管基极接高电平,晶体管也导通,INT1为低电平,即INT10。而夜间,光敏管截止,晶体管基极接低电平,晶体管也截止,INT1为高电平,即INT11。(3)用定时2秒来控制航标灯的亮灭。52解: (1)怎样实现较长时间的定时:定时器T1定时寄存器计数。若 定时器T1设定为方式0,基本定时为10ms,那么要达到2秒,则要重复计数200次,设用R7来计数(2000C8H),晶振6MHz 。
53、 T1的定时初值213101036106/12=3192 =01100011 11000B.因为TL1只装入低5位,(TL1)= 18H , (TH1)= 63H 。 (2)定时器T1采用门控方式,GATE=1,黑夜时,/INT1=1,定时器被激活,可以工作;而白天,/INT1=0,定时器不能工作。 (3)编程如下: ORG 0000H AJMP MAIN ORG 001BH AJMP T1INT ORG 0100H MAIN: MOV SP, #30H GAT1: CLR P1. 7 ;关航标灯 MOV TMOD, #80H ; GATE=1 MOV TL1, #18H ;置T1初值 MOV
54、 TH1, #63H MOV R7, #0C8H ;置计数值200 HR1: JNB P3. 3 , HR1 ;不是黑夜则等待 SETB TR1 ;黑夜,则启动T1 SETB ET1 ;允许T1中断 SETB EA ;开CPU中断 HR2: JB P3. 3 , HR2 ;若是黑夜则等待 CLR TR1 ;白天,则关T1 CLR ET1 ;关中断 CLR EA AJMP GAT1 定时器T1的中断服务子程序T1INT见下幕:53 定时器T1的中断服务子程序: T1INT: MOV TL1, #18H ;重置T1的初值 MOV TH1, #63H DJNZ R7, EXPORT ;R70, 2
55、秒未到,转EXPORT MOV R7, #0C8H ;R70,2秒到,重置R7 CPL P1.7 ;使航标灯状态变反,即闪亮。EXPORT: RETI54例 P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 长定时方法:增加一个软件计数器(如R7), 记录中断次数,计满n个中断为1秒。 ORG0000H AJMPMAIN ORG001BH AJMPPT1INT ORG0030HSTART: MOV R7,#00H MOV TMOD,#10H MOV TL1, #0F0H MOV TH1, #0D8H SETB EA SETB ET1 SETB TR1HERE: SJMP HERE
56、PT1INT: MOV TL1,#0F0H MOV TH1,#0D8H INC R7 CJNE R7,#10, PEND MOV R7, #00H CPL P1.7PEND: RETI55例定时器外部引脚T0(T1)用作外部中断信号输入端。外部负脉冲引起中断请求,选计数方式,时间常数为FFH。例:门控方式测量正脉冲宽度解: INT1引脚输入被检测信号,记录在正脉冲的时间内包含机器脉冲个数。设脉宽小于65.5ms等待查询INT0,正脉冲过后,读出TH1TL1。START:MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00HWAIT1:JBP3.3,WAIT1 SETB
57、TR1WAIT2 :JNBP3.3,WAIT2 WAIT3 : JBP3.3,WAIT3CLRTR1MOVR2,TL1MOVR3,TH1TR1=1 T1启动 TR1=0 T1停止INT1564. 3 串行接口 在80C51中有一个全双工的UART (通用异步接收和发送器),而在其它某些型号还增设了新的串行口,如8XC552中增设了具有I2C总线功能的串行口。 80C51中串行口是一个全双工的异步通信接口,它可以作为通用异步接收和发送器用,也可以作同步移位寄存器用。 并行通信:在同一时刻内,数据的各位并行地传送。如并行打印机接口。其优点是速度快;缺点是占口线多。 串行通信:指数据是一位一位地传送
58、。其优点是占口线少;缺点是速度比较慢(传送速率用每秒传送的二进制位数表示, 称为波特率,单位为 bps)。 半工通信: 只允许单一方向传输数据,不能进行反方向传输。 半双工通信:允许两个方向传输数据,但不能同时只能交替进行。 全双工通信:允许两个方向同时传输数据(A收B发和B收A发)。 同步通信:每位占用的时间相等,发送和接收必须在时间上同步。数据间无起止位,没有间隔,可连续发送。可高速度大容量传送。 异步通信:字符内各位时间相等,字符间间隔可变,每个字符要附加起始位和终止位。其优点是实现较简单灵活,但速率较低。 80C51中具有一个全双工、异步、串行通信口(P3.0 和 P3.1 )。578
59、0C51串行口内的接收缓冲器和发送缓冲器在物理上是独立的。可以通过访问特殊功能寄存器SBUF来访问接收缓冲器和发送缓冲器。其中接收缓冲器还具有双缓冲功能,即它在接收第一个数据字节后,能接收第二个字节。但它完成接收第二个字节后,若第一个字节仍未被取走,那么该字节将丢失。 1。UART串行口的结构 串行口的结构见 P107 图416 。它可分为两大部分:波特率发生器和串行口。 波特率发生器:主要由定时器/计数器T1(T2是80C52的)及内部的一些控制开关和分频器所组成。相应的控制波特率发生器的特殊功能寄存器有TMOD、TCON、TH1、TL1 、PCON等。 串行口:串行口内部包括: 接收缓冲器
60、SBUF和发送缓冲器SBUF:两者在物理上隔离,但占用同一个字节地址(99H)。 串行口控制逻辑:接受来自波特率发生器的时钟信号(发送时钟 TXCLK,接收时钟RXCLK);控制内部的输入移位寄存器将外部数据串转并,输出移位寄存器将内部的数据并转串;还控制串行中断(RI 和 TI SI)。 串行口控制寄存器:SCON(98H) 串行数据输入 / 输出引脚:TXD为输出,RXD为输入。58 2。串行口的特殊功能寄存器: 状态寄存器SCON、 控制寄存器PCON (1)状态寄存器SCON:它是一个逐位定义的8位寄存器,由它控制串行通信的方式选择、接收和发送、指示串行口的状态。字节地址为98H,既可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论