好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MCS-51单片机原理及应用技术教程 教学课件 ppt 作者 高洪志 第4章MCS-51单片机片内功能模块的使用.pps

215页
  • 卖家[上传人]:w****i
  • 文档编号:94465953
  • 上传时间:2019-08-07
  • 文档格式:PPS
  • 文档大小:5.63MB
  • / 215 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第4章 MCS-51单片机片内功能模块的使用,4.1 MCS-51单片机并行I/O口的输入与输出 口是一个综合概念,也称为端口,是一个集数据输入缓冲、数据输出驱动及锁存等多项功能为一体的I/O电路 CPU与外部设备交换信息,是按I/O端口地址进行的 I/O端口的编址方式有两种: I/O端口单独编址 I/O端口和存储器统一编址,,MCS-51单片机的I/O端口和存储器是统一编址的,这种编址方式是把I/O端口当作存储单元对待,也就是让I/O端口地址占用部分存储器单元地址 例如: 存储器地址范围为0000H~FEFFH ,而FF00H~FFFFH让给了外部设备端口,存储器不再使用 注意:为使CPU对I/O端口寻址时不去寻找相同地址的存储单元,因此使用时必须在硬件连线上加以保证这种方式的优点如下: CPU对I/O端口的操作可使用全部的存储器指令,故指令多,使用方便,如可对I/O端口中的数据(存于I/O端口的寄存器中)进行算术、逻辑和移位等操作 CPU不需要为I/O端口设置专门的I/O指令 存储器和I/O端口的地址分布图是同一个,I/O端口地址安排灵活,数量不受限制 缺点: I/O端口占用了部分存储器地址,使存储器容量减少。

      MCS-51系列单片机在逻辑上(从用户角度)有三个存储器空间,即内部和外部程序存储器统一编址的64KB地址空间、256字节的内部数据存储器的地址空间(其中128字节的专用存储器的地址空间仅有21个字节有实际意义)和外部数据存储器和I/O端口统一编制的64KB地址空间在访问这三个不同的逻辑空间时,应采用不同形式的指令例如: 访问程序存储器的数据传送指令格式为: MOVC A,@A+DPTR ;(A)←((A)+(DPTR)) MOVC A,@A+PC ;(PC)←(PC)+1, ;(A)←((A)+(PC)) 访问内部数据存储器和专用存储器的数据传送指令格式为: MOV [dest],[src] 其中,[src]为源字节;[dest]为目的字节指令功能是把源字节送到目的字节单元,源字节单元中的源字节不变例如: 访问外部数据存储器和I/O端口的数据传送指令格式为: MOVX A,@Ri ;(A)←((Ri)) MOVX @Ri,A ;((Ri))←(A) MOVX A,@ DPTR ;(A)←((DPTR)) MOVX @ DPTR,A ;((DPTR))←(A) 说明:前面两条指令格式用于访问外部数据存储器和I/O端口的低地址区,地址范围为0000H~00FFH;后面两条指令可以访问外部数据存储器和I/O端口的64KB区,地址范围为0000H~FFFFH。

      MCS-51单片机一般有4个8位的双向并行I/O口,分别记作P0、P1、P2和P3既可以作输入口,又可以作输出口因此,P0~ P3口在结构和特性上有相同之处,但又各具特色它们的电路设计非常巧妙熟悉它们的逻辑电路,不但有利于正确合理使用这四个并行I/O口,而且会对设计单片机外围逻辑电路有所启发 下面分别介绍P0~ P3口的内部结构和使用方法4.1.1 MOV指令可直接输入输出的P1口 P1口的8位引出线P1.7~P1.0(也叫口线)能独立地用作输入线或输出线P1口的每一位均由锁存器,输出驱动器和三态缓冲器组成 如图,,1. P1口输入输出的工作原理 P1口字节地址为90H,位地址为90H~97H,如图4-2为P1口其中每一位的结构示意图数据的输出 从上图中能看出,在输出驱动部分接有内部上拉电阻实质上:上拉电阻是两个场效应管并在一起 一个场效应管为负载管,阻值固定;另一个场效应管可工作在导通和截止两种状态,使其有总电阻值变化近似为0或阻值很大两种情况当阻值近似为0时,可将引脚快速上拉至高电平;当阻值很大时,P1口为高阻输入状态数据的输出 数据输出时,只要把输出的数据送入P1锁存器,那么该数据就可使用P1引脚向外界输出。

      因为,当将1写入锁存器,使场效应管T1截止,输出线由内部上拉电阻拉成高电平(输出1);将0写入锁存器时,T1导通,输出0 则P1口输出用到的指令有: MOV P1,A MOV P1,#DATA,,数据的输入 CPU直接从引脚读入片外数据的方式称为“读引脚”,即外边数据作用在引脚上其输入指令如下: MOV A,P1 由于上拉电阻的阻值较大,因此读引脚信号时,输出端也基本处于高阻状态所以必须使T1截止,怎么使T1截止?必须使锁存器内送“1”, 因为送入“1”,则 =L才截止T1 ,所以读入引脚时一定用两条指令完成,如下: MOV P1,#0FFH MOV A,P1,,例4-1:如图4-3所示,8个发光二极管LED0~LED1经限流电阻R0~R7分别接至P1口8个引脚,阴极共同接地编程实现发光二极管按走马灯点亮,即按照LED0→LED1…→LED7的顺序,每次点亮一个发光二极管,一段时间后熄灭该发光二极管,然后点亮下一个发光二级管,重复循环编写程序如下: ORG 0000H AJMP MAIN MAIN: MOV A,#01H ;初始化寄存器A值 MOV P1,A ;点亮第一支发光二极管 RL A ;A的循环左移1位 ACALL DELAY ;调延时 AJMP MAIN DELAY: MOV R0,#00H DELAY1: MOV R1,#0B3H DJNZ R1,$ DJNZ R0,DELAY1 RET END,,例4-2:P1口与开关及LED发光二极管的接口电路如图4-4所示,其中,P1.7~P1.4作并行输出口,分别与LED3~LED0连接。

      当输出为1,即高电平时,LED不发光;输出为0,即低电平,LED发光P1.3~P1.0作并行输入口,分别接开关K3~K0,通过开关的不同位置向P1.3~P1.0输入“0”或“1”开关信号要求读入P1.3~P1.0引脚上的开关K3~K0的预置状态,再经P1.7~P1.4输出驱动LED3~LED0发光二极管,使发光二极管显示开关状态编写程序如下: ORG 0000H MAIN: MOV A,#0FFH MOV P1,A ;置P1低4位为输入,高4 位输出灭显示 MOV A,P1 ;输入P1低4位的开关状 态 SWAP A ;将低4位输入的数据转 到高4位 MOV P1,A ;将开关状态输出驱动相 应的LED显示 HERE: SJMP HERE END,,4.1.2 MOVX 指令实现由系统总线进行数据输入输出的 P0和P2口 1. P0口工作原理 P0口字节地址为80H,位地址为80H~87H由其位结构如图所示,电路主要由一个锁存器和两个三态数据输入缓冲器此外,还有数据输出驱动和控制电路1. P0口工作原理 从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用 P0口作为通用输出 CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出驱动场效应管T2栅极接通。

      P0口作为通用输出 故内部总线与P0口同相由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻P0的输出级可驱动8个LSTTL负载P0口作为通用输入 P0口作为输入口使用时,即为读引脚情况所谓读引脚就是直接读取P0.X引脚的状态,这时在“读引脚”信号的控制下把缓冲器打开,将端口引脚上的数据经缓冲器通过内部总线读进来P0口作为通用输入 即图中下面一个缓冲器用于读端口引脚的数据,当执行一条输入指令时,读引脚脉冲把三态缓冲器打开,于是引脚上的数据将经过缓冲器输入到内部总线上P0口作为通用输入 应当指出,P0口在作为一般输入口使用时在读取管脚之前还应向锁存器写入“1”,使上下两个场效应管均处于截止状态,使外接的状态不受内部信号的影响,然后再来读取P0口作为地址/数据总线使用 应当指出,P0口在作为一般输入口使用时在读取管脚之前还应向锁存器写入“1”,使上下两个场效应管均处于截止状态,使外接的状态不受内部信号的影响,然后再来读取P0口作为地址/数据总线使用 在系统扩展时,P0端口作为地址/数据总线使用时,分为: P0引脚输出地址/数据信息P0引脚输出地址/输入数据 输入信号是从引脚通过输入缓冲器进入内部总线。

      此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线P0作为地址/数据总线,----真正的双向口,2. P2口工作原理 P2口字节地址为A0H,位地址为A0H~A7H其位结构如图所示P2口也是一个准双向I/O口在P2口电路中也有一个多路转接开关MUX,这与P0口类似,当P2口作为高8位地址总线使用时,MUX应打到地址线端;当P2口作为一般I/O口使用时,MUX应倒向锁存器的Q端P2口作为通用I/O口 在P2口作为一般I/O口使用时,与P1口类似,用于输出时不需要外接上拉电阻,当用于输入时,仍需要向锁存器先写入“1”,然后再读取P2口作为高8位地址总线 在系统扩展片外程序存储器扩展或I/O口进行读写操作时 (用MOVX @DPTR指令)或EA=0执行MOVC指令时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线此时,P2输出高8位地址P2口作为高8位地址总线 在系统扩展片外程序存储器扩展或I/O口进行读写操作时 (用MOVX @DPTR指令)或EA=0执行MOVC指令时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。

      此时,P2输出高8位地址P2口作为高8位地址总线 若8051不需要外接程序存储器,而在只需扩展256B片外RAM(数据存储器)或I/O口的系统中,使用指令: MOVX A,@ Ri ;输入 MOVX @ Ri,A ;输出 寻址范围是256B,只需低8位地址线就可实现 也就是说P2口线不必与片外扩展的RAM或I/O口相连因此,P2口不受该类指令的影响,仍可用作通用I/O口P2口作为高8位地址总线 若扩展的RAM或I/O口容量超过了256B,使用指令: MOVX A,@DPTR ;输入 MOVX @DPTR,A ;输出 寻址范围是64KB,此时高8位地址总线由P2口内地址线输出 但必须事先设置端口地址: MOV DPTR,#POTR ;高8位 MOV Ri,#DATA ;低8位,4.1.3具有特殊功能的P3口 P3口字节地址为0B0H,位地址为0B0H~0B7H其位结构如图所示P3口为双功能口,当P3口作为第一功能使用时,其工作原理与P1口和P2口类似4.1.3具有特殊功能的P3口 P3口字节地址为0B0H,位地址为0B0H~0B7H其位结构如图所示P3口为双功能口 作为通用I/O口与P1口类似----准双向口(W=1),P3第二功能(Q=1) 此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出) 。

      综上所述,P0口的输出级与P1~P3口的输出级在结构上不同因此,它们的带负载能力也不相同 P0口的每一位输出可驱动8个LS型的TTL负载 P1—P3口的每一位输出都可驱动4个LS型的TTL负载4.2 数据输入输出的控制方式 CPU与I/O接口的数据传送方式通常称为输入/输出的控制方式 常见的方式是: 无条件传送 查询式传送 中断传送 DMA传送,无条件传送方式也称同步方式,这是一种不考虑外部设备状态,在约定时刻由CPU执行I/O指令,无条件进行数据传送的方式类似于单片机和外部数据存储器之间的数据传送,比较简单 采用无条件传送方式的情况: 当外部设备速度能和单片机的速度相当 当外部设备的工作速度非常慢,以至人们任何时候都认为它已处于“准备好”的状态,DMA传送方式是在内存与外部设备之间开辟的专用数据通道,可实现外部设备与内存之间数据的直接传送,而不通过CPU这种方式称为直接存储器。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.