
MCS单片机片内功能模块的使用.ppt
215页第4章 MCS-51单片机 片内功能模块的使用第4章 MCS-51单单片机片内功能模块块的使用数据输入输出的控制方式4. 2片内定时器/计数器4. 4MCS-51单片机并行I/O口的输入与输出 4. 1MCS-51单片机的串行接口 4. 5MCS-51单片机的中断系统4. 3第4章 MCS-51单单片机片内功能模块块的使用4.1 MCS-51单单片机并行I/O口的输输入与输输出口是一个综综合概念,也称为为端口,是一个集数据输输入缓缓冲、数据输输出驱动驱动 及锁锁存等多项项功能为为一体的I/O电电路CPU与外部设备设备 交换换信息,是按I/O端口地址进进行的I/O端口的编编址方式有两种:Ø I/O端口单单独编编址Ø I/O端口和存储储器统统一编编址第4章 MCS-51单单片机片内功能模块块的使用MCS-51单单片机的I/O端口和存储储器是统统一编编址的,这这种编编址方式是把I/O端口当作存储单储单 元对对待,也就是让让I/O端口地址占用部分存储储器单单元地址 例如:存储储器地址范围为围为 0000H~FEFFH ,而FF00H~FFFFH让给让给 了外部设备设备 端口,存储储器不再使用注意:为为使CPU对对I/O端口寻寻址时时不去寻寻找相同地址的存储单储单 元,因此使用时时必须须在硬件连线连线 上加以保证证。
第4章 MCS-51单单片机片内功能模块块的使用这这种方式的优优点如下:CPU对对I/O端口的操作可使用全部的存储储器指令,故指令多,使用方便,如可对对I/O端口中的数据(存于I/O端口的寄存器中)进进行算术术、逻辑逻辑 和移位等操作CPU不需要为为I/O端口设设置专门专门 的I/O指令存储储器和I/O端口的地址分布图图是同一个,I/O端口地址安排灵活,数量不受限制缺点:I/O端口占用了部分存储储器地址,使存储储器容量减少第4章 MCS-51单单片机片内功能模块块的使用MCS-51系列单单片机在逻辑逻辑 上(从用户户角度)有三个存储储器空间间,即内部和外部程序存储储器统统一编编址的64KB地址空间间、256字节节的内部数据存储储器的地址空间间(其中128字节节的专专用存储储器的地址空间间仅仅有21个字节节有实际实际 意义义)和外部数据存储储器和I/O端口统统一编编制的64KB地址空间间在访问这访问这 三个不同的逻辑逻辑 空间时间时 ,应应采用不同形式的指令第4章 MCS-51单单片机片内功能模块块的使用例如:访问访问 程序存储储器的数据传传送指令格式为为:MOVC A,@A+DPTR ;(A)←((A)+(DPTR))MOVC A,@A+PC ;(PC)←(PC)+1,;(A)←((A)+(PC))访问访问 内部数据存储储器和专专用存储储器的数据传传送指令格式为为:MOV [dest],[src]其中,[src]为为源字节节;[dest]为为目的字节节。
指令功能是把源字节节送到目的字节单节单 元,源字节单节单 元中的源字节节不变变第4章 MCS-51单单片机片内功能模块块的使用例如:访问访问 外部数据存储储器和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 第4章 MCS-51单单片机片内功能模块块的使用MCS-51单单片机一般有4个8位的双向并行I/O口,分别记别记 作P0、P1、P2和P3既可以作输输入口,又可以作输输出口因此,P0~ P3口在结结构和特性上有相同之处处,但又各具特色它们们的电电路设计设计 非常巧妙熟悉它们们的逻辑电逻辑电 路,不但有利于正确合理使用这这四个并行I/O口,而且会对设计单对设计单 片机外围逻辑围逻辑电电路有所启发发。
下面分别别介绍绍P0~ P3口的内部结结构和使用方法第4章 MCS-51单单片机片内功能模块块的使用4.1.1 MOV指令可直接输输入输输出的P1口P1口的8位引出线线P1.7~P1.0(也叫口线线)能独立地用作输输入线线或输输出线线P1口的每一位均由锁锁存器,输输出驱动驱动 器和三态缓态缓 冲器组组成 如图图 P1锁 存器驱动器缓冲器P1.0P1.7 引 脚CPU第4章 MCS-51单单片机片内功能模块块的使用1. P1口输输入输输出的工作原理 P1口字节节地址为为90H,位地址为为90H~97H,如图图4-2为为P1 口其中每一位的结结构示意图图D QCLK QP1.n读读锁锁存器内部总线总线 写锁锁存器读读引脚VCCRTP1口 引脚第4章 MCS-51单单片机片内功能模块块的使用l数据的输输出从上图图中能看出,在输输出驱动驱动 部分接有内部上拉电电阻实质实质 上:上拉电电阻是两个场场效应应管并在一起一个场场效应应管为负载为负载 管,阻值值固定;另一个场场效应应管可工作在导导通和截止两种状态态,使其有总电总电 阻值变值变 化近似为为0或阻值值很大两种情况当阻值值近似为为0时时,可将引脚快速上拉至高电电平;当阻值值很大时时,P1口为为高阻输输入状态态。
第4章 MCS-51单单片机片内功能模块块的使用l数据的输输出数据输输出时时,只要把输输出的数据送入P1锁锁存器,那么该该数据就可使用P1引脚向外界输输出因为为,当将1写入锁锁存器,使场场效应应管T1截止,输输出线线由内部上拉电电阻拉成高电电平(输输出1);将0写入锁锁存器时时,T1导导通,输输出0则则P1口输输出用到的指令有:MOV P1,AMOV P1,#DATA第4章 MCS-51单单片机片内功能模块块的使用l数据的输输入CPU直接从引脚读读入片外数据的方式称为为“读读引脚”,即外边边数据作用在引脚上其输输入指令如下:MOV A,P1由于上拉电电阻的阻值较值较 大,因此读读引脚信号时时,输输出端也基本处处于高阻状态态所以必须须使T1截止,怎么使T1截止?必须须使锁锁存器内送“1”, 因为为送入“1”,则则 =L才截止T1 ,所以读读入引脚时时一定用两条指令完成,如下:MOV P1,#0FFHMOV A,P1Q第4章 MCS-51单单片机片内功能模块块的使用例4-1:如图图4-3所示,8个发发光二极管LED0~LED1经经限流电电阻R0~R7分别别接至P1口8个引脚,阴极共同接地。
编编程实实现发现发 光二极管按走马马灯点亮,即按照LED0→LED1…→LED7的顺顺序,每次点亮一个发发光二极管,一段时间时间 后熄灭该发灭该发 光二极管,然后点亮下一个发发光二级级管,重复循环环P1.480518051GNDLED0R07407LED7R77407LED1P1.0 P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7VCC第4章 MCS-51单单片机片内功能模块块的使用编编写程序如下:ORG 0000H AJMP MAIN MAIN:MOV A,#01H ;初始化寄存器A值值MOV P1,A ;点亮第一支发发光二极管 RL A ;A的循环环左移1位ACALL DELAY ;调调延时时AJMP MAIN DELAY:MOVR0,#00H DELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1RETEND第4章 MCS-51单单片机片内功能模块块的使用例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发发光二极管,使发发光二极管显显示开关状态态第4章 MCS-51单单片机片内功能模块块的使用LED34.7KK31KK21KK11KK01K+5VLED24.7KLED14.7KLED0P1.77407P1.3P1.2P1.1P1.08051P1.67407P1.57407P1.474074.7K第4章 MCS-51单单片机片内功能模块块的使用编编写程序如下: ORG0000H MAIN:MOVA,#0FFH MOVP1,A;置P1低4位为输为输 入,高4位输输出灭显灭显 示 MOVA,P1;输输入P1低4位的开关状态态 SWAPA;将低4位输输入的数据转转到高4位 MOVP1,A;将开关状态输态输 出驱动驱动 相应应的LED显显示 HERE: SJMP HERE END第4章 MCS-51单单片机片内功能模块块的使用D QCLK QMUXP0.n读读锁锁存器内部总线总线 写锁锁存器读读引脚地址/数据 控制VCCT1T2P0口 引脚4.1.2 MOVX 指令实现实现 由系统总线进统总线进 行数据输输入输输出的 P0和P2口1. P0口工作原理P0口字节节地址为为80H,位地址为为80H~87H。
由其位结结构 如图图所示,电电路主要由一个锁锁存器和两个三态态数据输输入缓缓 冲器此外,还还有数据输输出驱动驱动 和控制电电路第4章 MCS-51单单片机片内功能模块块的使用D QCLK QMUXP0.n读读锁锁存器内部总线总线 写锁锁存器读读引脚地址/数据 控制VCCT1T2P0口 引脚1. P0口工作原理从图图中可以看出,P0口既可以作为为I/O用,也可以作为为地 址/数据线线用l P0口作为为通用输输出CPU发发出控制电电平“0”封锁锁“与”门门,将输输出上拉场场效 应应管T1截止,同时时使多路开关MUX把锁锁存器与输输出驱动场驱动场 效 应应管T2栅栅极接通第4章 MCS-51单单片机片内功能模块块的使用l P0口作为为通用输输出故内部总线总线 与P0口同相由于输输出驱动级驱动级 是漏极开路电电路,若驱动驱动 NMOS或其它拉流负载时负载时 ,需要外接上拉电电阻P0的输输出级级可驱动驱动 8个LSTTL负载负载 D QCLK QMUXP0.n读读锁锁存器内部总线总线 写锁锁存器读读引脚地址/数据 控制VCCT1T2P0口 引脚第4章 MCS-51单单片机片内功能模块块的使用l P0口作为为通用输输入P0口作为输为输 入口使用时时,即为读为读 引脚情况。
所谓读谓读 引脚就是直接读读取P0.X引脚的状态态,这时这时 在“读读引脚”信号的控制下把缓缓冲器打开,将端口引脚上的数据经缓经缓 冲器通过过内部总线总线读进读进 来D QCLK QMUXP0.n读读锁锁存器内部总线总线 写锁锁存器读读引脚地址/数据 控制VCCT1T2P0口 引脚第4章 MCS-51单单片机片内功能模块块的使用l P0口作为为通用输输入即图图中下面一个缓缓冲器用于读读端口引脚的数据,当执执行一条输输入指令时时,读读引脚脉冲把三态缓态缓 冲器打开,于是引脚上的数据将经过缓经过缓 冲器输输入到内部总线总线 上D QCLK QMUXP0.n读读锁锁存器内部总线总线 写锁锁存器读读引脚地址/数据 控制VCCT1T2P0口 引脚第4章 MCS-51单单片机片内功能模块块的使用l P0口作为为通用输输入应应当指出,P0口在作为为一般输输入口使用时时在读读取管脚之前还还应应向锁锁存器写入“1”,使上下。
