1 / 249

第四章80 C51 单片机的功能单元

第四章80 C51 单片机的功能单元. 基本内容 4.1 并行 I/O 接口 4.1.1 P1 口 4.1.2 P3 口 4.1.3 P2 口 4.1.4 P0 口 4.2 定时器/计数器 4.2.1概述 4.2.2定时器/计数器 T0、T1. 第四章80 C51 单片机的功能单元. 4.2.3 定时器/计数器 T2 4.2.4 看门狗 4.2.5定时器/计数器的编程和使用 4.3 串行接口 4.4 中断系统 4.4.1中断、中断源及中断优先级 4.4.2中断的控制和操作 4.4.3中断的响应过程和中断矢量地址 .

sahara
Download Presentation

第四章80 C51 单片机的功能单元

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. 第四章80C51单片机的功能单元 基本内容 4.1 并行I/O接口 4.1.1 P1口 4.1.2 P3口 4.1.3 P2口 4.1.4 P0口 4.2 定时器/计数器 4.2.1概述 4.2.2定时器/计数器T0、T1

  2. 第四章80C51单片机的功能单元 4.2.3定时器/计数器T2 4.2.4看门狗 4.2.5定时器/计数器的编程和使用 4.3 串行接口 4.4 中断系统 4.4.1中断、中断源及中断优先级 4.4.2中断的控制和操作 4.4.3中断的响应过程和中断矢量地址 

  3. 第四章80C51单片机的功能单元 学习要点: 1、掌握4个并行口的工作特点; 2、理解定时和计数两个概念,掌握定时器和计数器的工作原理; 3、掌握串行接口的工作原理; 4、掌握中断的概念以及中断嵌套的原理,掌握中断向量地址和中断程序的进入和退出(断点的保存和恢复)。

  4. 第四章80C51单片机的功能单元 4.1 并行I/O接口 80C51共有四个8位的并行双向口,计有32根输入/输出(I/O)口线。各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。由于它们在结构上的一些差异,故各口的性质和功能也就有了差异。它们之间的异同列于表4--1。

  5. 表4—1 80C51并行I/O接口的比较

  6. 第四章80C51单片机的功能单元 下面按照各口的结构由简而繁的顺序加以介绍。 4.1.1 P1口 P1口是一个8位口,可以字节访问也可位访问,其字节访问地址为90H,位访问地址为90H~97H。 • 位结构与工作过程分 P1口的位结构如图4--1所示,内包含:输出锁存器、输入缓冲器BUF1(读引脚)、BUF2 (读锁存器)以及由FET晶体管Q0与上拉电阻组成的输出/输入驱动器。

  7. 第四章80C51单片机的功能单元 图4---1 P1口的位结构原理图

  8. 第四章80C51单片机的功能单元 P1口的工作过程分析如下: ① P1.i位作输出口用时:CPU输出0时,D=0,Q=0,Q=1,晶体管Q0导通,A点被下拉为低电平,即输出0;CPU输出1时,D=1,Q=1, Q =0,晶体管Q0截止,A点被上拉为高电平,即输出1。 ② P1.i位作输入口用时:先向P1.i位输出高电平,使A点提升为高电平,此操作称为设置P1.i为输入线。若外设输入为1时,A点为高电平,由BUF1读入总线后,B点也为高电平;若外设输入为0时,A点为低电平,由BUF1读入总线后,B点也为低电平。

  9. 第四章80C51单片机的功能单元 2 P1口的特点 ① 输出锁存,输出时没有条件; ② 输入缓冲,输入时有条件,即需要先将该口设为输入状态,先输出1; ③ 工作过程中无高阻悬浮状态,也就是该口不是输入态就是输出态。 具有这种特性的口不属于“真正”的双向口,而被称为“准”双向口。

  10. 第四章80C51单片机的功能单元 这里需要注意的是,若在输入操作之前不将A点设置为高电平(即先向该口线输出1),如果A点电平为低电平时,则外设输入的任何信号均被A点拉为低电平,亦即此时外设的任何信号都输不进来。更为严重的是,A点为低电平,而外设为高电平时,外设的高电平通过Q0强迫下拉为低电平,将可能有很大的电流流过Q0而将它烧坏。 P1口能驱动4个TTL负载。

  11. 第四章80C51单片机的功能单元 3 P1口的操作 • 字节操作和位操作CPU对于P1口不仅可以作为一个8位口(字节)来操作, 也可以按位来操作。有关字节操作的指令有: 输出 MOV P1,A ;(P1)← (A) MOV P1,#data ;(P1)←#data MOV P1, direct ;(P1)←(direct) 输入 MOV A ,P1 ;(A)←(P1) MOV direct,P1 ;(direct)←(P1)

  12. 第四章80C51单片机的功能单元 有关位操作的指令有: 置位、清除 SETB P1.i ;P1.i←1 CLR P1.i ;P1.i←0 输入、输出 MOV P1.i,C ;P1.i←CY MOV C, P1. i ;CY← P1. I 判跳 JB P1.i ,rel ;P1.i=1,跳转 JBC P1.i ,rel ;P1.i=0,跳转且P1.i←0 逻辑运算 ANL C, P1.i ;CY←( P1.i·CY) ORL C, P1.i ;CY←( P1.i+CY) 其中:P1.i中的i=0,…,7。

  13. 第四章80C51单片机的功能单元 因此,P1口不仅可以以8位一组进行输入、输出操作,还可以逐位分别定义各口线为输入线或输出线。 例如: ORL P1,#0000,0010B 可以使P1.1位口线输出1,而使其余各位不变。 ANL P1,#1111,1101B 可以使P1.1位口线输出0,而使其余各位不变。 • 读引脚操作和读锁存器操作 从P1口的位结构图中可以看出,有两种读口的操作:一种是读引脚操作,一种是读锁存器操作。

  14. 第四章80C51单片机的功能单元 • 在响应CPU输出的读引脚信号时,端口本身引脚的电平值通过缓冲器BUF1进入内部总线。这种类型的指令,执行之前必须先将端口锁存器置1,使A点处于高电平,否则会损坏引脚,而且也使信号无法读出,已于前述。 这种类型的指令有: MOV A,P1 ;(A)←(P1) MOV direct,P1 ;(direct)←(P1)

  15. 第四章80C51单片机的功能单元 • 在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2读入内部,进行修改,然后重新写到锁存器中去,这就是“读-修改-写”指令。 这种类型的指令包含所有的口的逻辑操作(ANL、ORL、XRL)和位操作(JBC、CPL、MOV、SETB、CLR等) 指令。

  16. 第四章80C51单片机的功能单元 读锁存器操作可以避免一些错误,如用P1.i去驱动晶体管的基极。当对P1.i写入一个1之后,晶体管导通。若此时CPU接着读该位引脚的值,即晶体管基极的值时,为0;但是正确的值应该是1,这可从读锁存器得到。

  17. 第四章80C51单片机的功能单元 4 关于口操作的时序 在执行改变端口锁存器内容的指令时,新的内容在指令执行的最后一个周期的S6P2时传送到口的锁存器内。然而口锁存器仅在任何周期的P1时才采样端口锁存器(缓冲器),在P2时输出锁存器的值并保持P1时所采样到的内容。

  18. 第四章80C51单片机的功能单元 因此,S6P2时写入端口锁存器的新数值直到下一个周期的P1时被采样到,即只有在下一个机器周期的S1P1时,才真正出现在引脚上。 5 P1口的多功能线 在80C52中,P1.0和P1.1口线是多功能的,即除作一般双向I/O口线之外,这两根口线还具有下列功能:

  19. 第四章80C51单片机的功能单元 P1.0——定时器/计数器2的外部输入端T2; P1.1——定时器/计数器2的外部控制端T2EX。 这时,该两位的结构与P3口的位结构相当。 关于P1.0和P1.1的功能在定时器/计数器2中叙述。

  20. 第四章80C51单片机的功能单元 4.1.2 P3口 P3口是一个多功能的8位口,可以字节访问也可位访问,其字节访问地址为B0H,位访问地址为B0H~B7H。 1 位结构与工作过程分析 • 位结构 P3口的位结构 如图4---2所示。从P3口的位结构图中可以看出,它与P1的口位结构之间的区别在于:

  21. 第四章80C51单片机的功能单元 图4--2P3口的位结构原理图

  22. 第四章80C51单片机的功能单元 • P3口中增加了一个与非门。与非门有两个输入端:一个为口输出锁存器的Q端,另一个为替代功能的控制输出。与非门的输出端控制输出FET管Q0。 • 输出锁存器不是从Q端而是从Q端引出。 • 有两个输入缓冲器,替代输入功能取自第一个缓冲器的输出端;I/O口的通用输入信号取自第二个缓冲器的输出端。

  23. 第四章80C51单片机的功能单元 (2) 输出工作过程分析 ① 当替代输出功能B点置1时,输出锁存器的输出可以顺利通到引脚P3.i。其工作状况与P1口相类似。 这时P3口的工作状态为一I/O口,显然此时该口具有准双向口的性质。

  24. 第四章80C51单片机的功能单元 ② 当输出锁存器的输出置1时,替代输出功能可以顺利通到引脚P3.i。若替代输出为0时,因与非门的C点已置1,现B点为0,故与非门的输出为1,使Q0导通,从而使A点也为0。若替代输出为1时,与非门的输出为1,Q0截止,从而使A点也为高电平。 这时P3口的工作状态处于替代输出功能状态。

  25. 第四章80C51单片机的功能单元 从上述分析可以看出,不论是替代输出还是替代输入功能时,输出锁存器的输出置1是必需的。 因此,P3口不论作替代功能输入,还是作替代功能输出,甚至作一般I/O的输入功能时,都需要向该口位输出1。这一点特别应该引起注意。

  26. 第四章80C51单片机的功能单元 2P3口的功能和特点 与P1口不同,P3口是一个多功能口。 • 可作I/O口使用,为准双向口。这方面的功能与P1口一样。既可以字节操作,也可以位操作;既可以8位口操作,也可以逐位定义口线为输入线或输出线;既可以读引脚,也可以读锁存器,实现“读—修改—输出”操作。 • 可以作为替代功能的输入、输出。 替代输入功能: P3.0——RXD,串行输入口。

  27. 第四章80C51单片机的功能单元 P3.2——INT0,外部中断0的请求。 P3.3——INT1,外部中断1的请求。 P3.4——T0,定时器/计数器0外部计数脉冲输入。 P3.5——T1,定时器/计数器1外部计数脉冲输入。替代输出功能:

  28. 第四章80C51单片机的功能单元 P3.1——TXD,串行输出口。 P3.6——WR,外部数据存储器写选通,输出,低电平有效。 P3.7——RD,外部数据存储器读选通,输出,低电平有效。 (3) P3口能驱动4个TTL负载。

  29. 第四章80C51单片机的功能单元 4.1.3 P2口 P2口是一个多功能的8位口,可以字节访问也可位访问,其字节访问地址为A0H,位访问地址为A0H~A7H。 1 位结构与工作过程分析 • 位结构与工作过程 P2口位结构示于图4--3。

  30. 第四章80C51单片机的功能单元 图4---3P2口的位结构原理图

  31. 第四章80C51单片机的功能单元 它与P1口位结构之间的区别在于: ① P2口的位结构中增加了一个多路开关。 多路开关的输入有两个:一个是口输出锁存器的输出端Q;一个是地址寄存器(PC或DPTR)的高位输出端。多路开关的输出经反相器反相后去控制输出FET Q0。多路开关的切换由内部控制信号控制。 ② 输出锁存器的输出端是Q而不是Q ,这样多路开关之后接反相器就很好理解了。

  32. 第四章80C51单片机的功能单元 图4---3P2口的位结构原理图

  33. 第四章80C51单片机的功能单元 (2) 工作过程分析 ①在内部控制信号的作用下,多路开关的输入投向输出锁存器的输出(C点)侧,这样多路开关将接通输出锁存器。 若经由内部总线输出0,输出锁存器的Q端为0,信号经多路开关和反相器后输出1,Q0导通,A点为0,输出低电平;若经由内部总线输出1,输出锁存器的Q端为1,反相器后输出0,Q0截止,A点为1,输出高电平。 这时P2口的工作状态是I/O口状态。

  34. 第四章80C51单片机的功能单元 ②在内部控制信号的作用下,多路开关的输入投向地址输出(B点)侧,这样多路开关将接通地址寄存器输出。同样可以知道,A点的电平将随地址输出的0、1而1、0地变化。 这时P2口的工作状态是输出高8位地址。

  35. 第四章80C51单片机的功能单元 2P2口的功能和特点 从上述工作过程的分析中可以看出,P2口是一个双功能的口: (1)作I/O口使用时,P2口为一准双向口,功能与P1口一样。 (2) 作地址输出时,P2口可以输出程序存储器或片外数据存储器的高8位地址,与P0口输出的低地址一起构成16位地址线,从而可分别寻址64 KB的程序存储器或片外数据存储器。地址线是8位一起自动输出的,不能像I/O口线逐位定义。 (3) P2口能驱动4个TTL负载。

  36. 第四章80C51单片机的功能单元 3P2口使用中注意的问题 (1)由于P2口的输出锁存功能,在取指周期内或外部数据存储器读、写选通期间,输出的高8位地址是锁存的,故无需外加地址锁存器。 (2) 在系统中如果外接有程序存储器,由于访问片外程序存储器的连续不断的取指操作,P2口需要不断送出高位地址,这时P2口的全部口线均不宜再作I/O口使用。 (3) 在无外接程序存储器而有片外数据存储器的系统中,P2口使用可分为两种情况:

  37. 第四章80C51单片机的功能单元 ①若片外数据存储器的容量≤256 B:可使用“MOVX A,@Ri”及“MOVX @Ri,A”类指令访问片外数据存储器,这时P2口不输出地址,P2口仍可作为I/O口使用; ②若片外数据存储器的容量≥256 B:这时使用“MOVX A,@DPTR”及“MOVX @DPTR,A”类指令访问片外数据存储器,P2口需输出高8位地址。在片外数据存储器读、写选通期间,P2口引脚上锁存高8位地址信息,但是在选通结束后,P2口内原来锁存的内容又重新出现在引脚上。

  38. 第四章80C51单片机的功能单元 此时可以根据片外数据存储器读、写选通的频繁程度,有限制地将P2口作I/O口使用。 在片外数据存储器容量不太大的情况下,也可从软件上设法,只利用P1、P3甚至P2口中的某几根口线送高位地址,从而保留P2口的全部或部分口线作I/O口用。注意,这时使用的是“MOVX A,@Ri”及“MOVX @Ri,A”类访问指令,高位地址不再是自动送出的,而要通过程序设定。

  39. 第四章80C51单片机的功能单元 4.1.4 P0口 P0口是一个多功能的8位口,可以字节访问也可位访问,其字节访问地址为80H,位访问地址为80H~87H。 1 位结构与工作过程分析 • 位结构 P0口位结构示于图4--4。

  40. 第四章80C51单片机的功能单元 图4—4 P0口的位结构原理图

  41. 第四章80C51单片机的功能单元 P0口的位结构与P1口有明显区别: ① P0口中增加了一个多路开关:多路开关的输入有两个,地址/数据输出;输出锁存器的输出。多路开关的输出用于控制输出FET Q0的导通和截止。多路开关的切换由内部控制信号控制。 ② P0口的输出上拉电路与P1口完全不同:P0口的上拉电路导通和截止受内部控制信号和地址/数据信号共同(相“与”)来控制。

  42. 第四章80C51单片机的功能单元 (2) 工作过程分析 ① 当内部控制信号置1时,多路开关接通地址/数据输出端。 当地址/数据输出线置1时,控制上拉电路的“与”门输出为1,上拉FET导通,同时地址/数据输出通过反相器输出0,控制下拉FET截止,这样A点电位上拉,地址/数据输出线为1。

  43. 第四章80C51单片机的功能单元 当地址/数据输出线置0时,“与”门输出为0,上拉FET截止,同时地址/数据输出通过反相器输出1,控制下拉FET导通,这样A点电位下拉,地址/数据输出线为0。

  44. 第四章80C51单片机的功能单元 通过上述分析可以看出,此时的输出状态随地址/数据线而变。因此,P0口可以作为地址/数据复用总线使用。这时上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增加。此时的P0口相当一个双向口。

  45. 第四章80C51单片机的功能单元 ② 当内部控制信号置0时,多路开关接通输出锁存器的端。这时明显地可以看出两点: · 由于内部控制信号为0,与门关闭,上拉FET截止,形成P0口的输出电路为漏极开路输出; · 输出锁存器的端引至下拉FET栅极,因此P0口的输出状态由下拉电路决定。 在P0口作输出口用时,若P0i输出1,输出锁存器的端为0,下拉FET截止,这时P0i为漏极开路输出;若P0.i输出0,输出锁存器的端为1,下拉FET导通,P0.i输出低电平。

  46. 第四章80C51单片机的功能单元 在P0口作输入口用时,为了使P0.i能正确读入数据,必须先使P0i锁存器置1。这样,下拉FET也截止,P0.i处于悬浮状态。A点的电平由外设的电平而定,通过输入缓冲器读入CPU。这时P0口相当于一个高阻抗的输入口。 2 P0口的功能和特点 (1)作I/O口使用。 相当于一个真正的双向口:输出锁存、输入缓冲,但输入时需先将口置1;每根口线可以独立定义为输入或输出。它具有双向口的一切特点。

  47. 第四章80C51单片机的功能单元 与P1及其它口的区别是,输出时为漏极开路输出,与NMOS的电路接口时要用电阻上拉;输入时为悬浮状态,为一个高阻抗的输入口。 (2)作地址/数据复用总线用。 此时P0口为一个准双向口。但是没有上拉电阻,作数据输入时,口也不是悬浮状态。 作地址/数据复用总线用时,口不能逐位定义为输入/输出。作数据总线用,输入/输出8位数据;作地址总线用,输出低8位地址。当P0口作地址/数据复用总线用之后,就再也不能作I/O口使用了。

  48. 第四章80C51单片机的功能单元 现时的许多仿真系统中,均以P0口作地址/数据复用总线使用,因而仿真I/O口的功能丧失。这一点特别应该注意。 (3) P0口能驱动8个TTL负载。

  49. 第四章80C51单片机的功能单元 4.2定时器/计数器 4.2.1概述 定时器/计数器(timer/counter)是单片机中重要部件,其工作方式灵活、编程简单,使用它对减轻CPU的负担和简化外围电路都有很大好处。 80C51包含有两个16位的定时器/计数器:定时器/计数器T0和定时器/计数器T1;80C52包含有三个16位的定时器/计数器:定时器/计数器T0、定时器/计数器T1和定时/计数器T2;在80C51系列的部分产品(80C552)中,还包含有一个用做看门狗的8位定时器(T3)。

More Related