内部io和定时器

上传人:ji****n 文档编号:54843338 上传时间:2018-09-20 格式:PPTX 页数:77 大小:1.56MB
返回 下载 相关 举报
内部io和定时器_第1页
第1页 / 共77页
内部io和定时器_第2页
第2页 / 共77页
内部io和定时器_第3页
第3页 / 共77页
内部io和定时器_第4页
第4页 / 共77页
内部io和定时器_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《内部io和定时器》由会员分享,可在线阅读,更多相关《内部io和定时器(77页珍藏版)》请在金锄头文库上搜索。

1、计算机硬件技术基础,第六章 MCS-51内部的I/O口 定时器及其应用,计算机科学与软件学院计算机基础教学部,本章重点内容和要求,本章重点讨论MCS-51单片机内部的资源的原理及其应用 并行I/O口 定时器/计数器 串行I/O 口,基本要求: 掌握 P0P3的特性及其应用 掌握T/C的工作原理、工作方式、程序设计方法及应用 学会综合运用 了解串行口的原理、制式,作业: 6-4至6-14,63 MCS-51串行I/O口及串行通信,第六章 MCS-51内部的I/O口、定时器及其应用,6. 1 MCS-51内部的并行I/O口及应用,62 MCS-51的定时器/计数器,8051单片机内部有四个8位并行

2、I/O口: P0、P1、P2和P3 P0P3这4个并行I/O口都可以作准双向通用I/O口 P0、P2和P3口还有复用的第二功能 每个口都包含: 一个(8位)锁存器(即特殊功能寄存器P0P3) 两个三态缓冲器 一个输出驱动器,6.1 MCS-51内部的并行I/O口及应用,P166,611 P0口结构612 P1口结构613 P2口结构614 P3口结构615 MCS-51内部并行I/O口的应用,6.1 MCS-51内部的并行I/O口及应用,场效应管(复习)(以N沟道为例) 当G = 0 时,场效应管截止; 当G = 1 时,场效应管导通。,D锁存器,逻辑符号,电平触发,三态门缓冲器,逻辑符号,三

3、态门指逻辑门电路的输出不仅有高电平、低电平,还有高阻态(又称失效态、截止态、开路态或禁止态)。这时输出端相当于悬空。,C:使能端,来控制门电路的通断,低电平有效,C = 0时, Y = A C = 1时, Y为高阻态,下图为P0口的某位P0.n(n=07)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。P0口既可以作为I/O用,也可以作为地址/数据线用。,6.1.1 P0口结构,与门,多路开关,(1) P口用作输出口时 必须外接上拉电阻,以保证“1”信号正常输出。,一、P0口作为一般I/O口使用,CPU发出控制电平“0”(即:硬件自动使“控制” =0)封锁“与门”,

4、将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器的输出端 Q与场效应管T2栅极接通。,(2)P0口用作输入口时 分读引脚或读锁存器。,读引脚:由传送指令(MOV)实现。下面的缓冲器2用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把三态缓冲器2打开,这样端口引脚上的数据经过缓冲器读入到内部总线。,第1步:输入时,先向锁存器“写”1。指令为:SETB P0.n 或:MOV P0,#0FFH,1,1,0,0,T2截止,第2步:引脚信号,“读引脚”信号有效,缓冲器2打开,准双向口,从图中可以看出,在从引脚读数据时,由于输出驱动场效应管并接在引脚上,如果T2导通,就会将输入的高电平拉成

5、低电平,产生误读。所以在从引脚进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。,(2) P0口用作输入口时,读锁存器:有些指令 如:ANL P0,A 称为“读-修改-写” 指令, 需要读锁存器。 缓冲器1用于读端口锁存器数据。,原因:,如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中三态缓冲器1就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。,二、 P0口作为地址

6、/数据总线使用,在对外部存储器读写(即执行“MOVX”指令或 EA =0 时执行“MOVC”指令)时,P0端口作为地址/数据总线使用,内部硬件自动使“控制” =1。,P0口用作输出地址/数据总线。, P0引脚用于输入数据,从P0口输入数据时,CPU自动使MUX向下,自动向P0口写入“1”,“读引脚”控制信号有效,缓冲器2打开,外部数据读入内部总线。,二、 P0口作为地址/数据总线使用,6.1.2 P1口结构,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。,6.1.3 P2口结构,P2口作为普通I/O口 CPU发出控制电平“0” ,使多路开关MUX倒向锁存器输出Q端,构成一

7、个准双向口。其功能与P1相同。,2. P2口作为地址总线 在对片外存储器或I/O口进行操作(即执行“MOVX”指令或 EA =0 时执行“MOVC”指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。,6.1.3 P2口结构,6.1.4 P3口结构,P3口是多功能端口。 一、作通用I/O口用:输出:当W=1时(由内部硬件自动置W为高电平),输出Q端的信号(即输出内部数据),输入时:先向端口写“1”,即锁存器Q端为“1”。,6.1.4 P3口结构,P3口作为第二功能输出 (内部硬件自动使Q=1、W 输出) 。,6.1.4 P3口结构,例如:P3.1作为串行

8、口输出,二、P3口作为第二功能输入(内部硬件自动使Q=1、W=1),6.1.4 P3口结构,例如:P3.0作为串行口输入,615 MCS-51内部并行I/O口的应用,“读锁存器”和“读引脚”的指令,直接输入/输出,一、“读锁存器”和“读引脚”的指令 1“读锁存器”的指令 P0P3作目的操作数的指令,能实现“读修改写”口锁存器的操作,这类指令有: (1)字节操作指令 (2) 位操作指令ANL Px, JBC PX.Y,relORL Px, CPL PX.Y XRL Px, CLR PX.Y DEC Px SETB PX.YDJNZ Px , rel MOV PX.Y,C INC Px其中:X是口

9、的序号03,Y是位的序号07,P0P3编程和使用的方法,2 “读引脚”的指令“读引脚”指令的特点是:P0P3 作为源操作数出现在指令中,但在读引脚数据之前,必须对所读的口或口位的D锁存器写入“1” .要正确读引脚数据,必须先写一条MOV PX,#0FFH指令或能对所读的口或口位的D锁存器写入“1”的指令,而后紧接着写下面的指令 :(1) 字节操作指令 MOV A,Px ANL A,PXMOV direct,Px ORL A,PXXCH A,PX XRL A,PXPUSH PX ANL direct,PXADD A,PX ORL direct,PXADDC A,PX XRL direct,PXS

10、UBB A,PX,引脚信号,(2)位操作指令同理,必须先写一条SETB PX.Y或能对所读口位的D锁存器写入“1”的指令,在其后再紧跟如下指令。 MOV C, PX.YANL C,PX.YORL C,PX.YJNB PX.Y,relJB PX.Y,rel,无条件输入/输出程序 查询输入/输出程序 中断输入/输出程序,三、直接输入/输出,例6-1 简单开关量的输入/输出,P172,1) P1. 4P1. 7 无条件输出程序 通过P1.4P1.7输出,使LED0LED3巡回点亮,每次只点亮一个,程序如下:ORG 0000HMAIN1: MOV SP, #6FHMOV P1, #0FFHMOV A,

11、#0EFH LOOP: MOV P1,A ;P1.4=0ACALL DELAY RL A JB ACC.0,LOOP MOV A,#0EFHSJMP LOOP,;延时500ms子程序 DELAY: MOV R5,#5 DL0: MOV R7,#200 DL1: MOV R6,#248NOP DL2: DJNZ R6,DL2DJNZ R7,DL1DJNZ R5,DL0RET END,LED “0”亮“1”灭,2) 读入P1. 0P1. 3引脚上的开关K0K3的预置状态,再经P1.4P1.7输出去驱动LED3LED0发光二极管,使发光二极管显示开关状态。对应参考程序:ORG 0100HMAIN2:

12、 MOV A,#0FFH MOV P1,A MOV A,P1 SWAP A MOV P1,A HERE:SJMP HERE END,5,(2) 查询输入/输出程序读入P3.2引脚上的开关K4的预置状态,若P3.2=1,则驱动P1.7输出使LED3闪亮5次;否则,查询等待。参考程序如下:ORG 0100HMAIN3: MOV SP,#60HSETB P1.7 WAIT: JNB P3.2,WAIT MOV R2,#10 LOOP: CPL P1.7 ACALL Delay DJNZ R2,LOOP SJMP WAITEND,ORG 0000HAJMP MAIN ORG 0003HLJMP EX0

13、SVRORG 0050H MAIN:MOV SP, #6FHSETB IT0SETB EX0SETB EASJMP $;等待中断,EX0SVR: MOV A,#0FFHMOV P1,AMOV A,P1SWAP AMOV P1,ARETIEND,初始化部分, 中断输入/输出程序 采用INT0中断来读入P1.3P1.0引脚上的开关K3K0的预置状态,再经P1.4 P1.7输出去驱动LED0LED3发光二极管,使发光二极管显示开关状态。,621 定时器/计数器的组成 622 定时器/计数器的控制 6. 2. 3 定时器的四种工作方式 624 T/C的初始化和 应用举例 625 定时器/计数器的溢出校

14、准和实时读取,62 MCS-51的定时器/计数器,62 MCS-51的定时器/计数器,在单片机实时应用系统中,需要定时和对外部事件计数的功能 。 定时:对周期已知的脉冲信号计数 计数:对外部事件计数,对周期未知的外来脉冲信号计数 定时或计数方法: 采用软件延时占用CPU的时间,降低了CPU的使用效率; 采用专门的硬件电路,参数调节不便; 采用可编程的定时器/计数器是最好的方法。 可以方便灵活地修改定时或计数的参数或方式 与CPU并行工作,大大提高了CPU的工作效,6.2.1 定时器/计数器的组成 Timer/ Counter,MCS-51单片机内部有二个16位的可编程的定时器/计数器(T/C)

15、:定时器/计数器0(T/C0或定时器0)定时器/计数器1(T/C1或定时器1)它们都有两种工作模式:定时和计数,可用于定时控制、延时、对外部事件检测和计数等场合.,T/C0和T/C1的结构及与CPU的关系,结构组成: T/C0由两个8位的TH0(8CH)和TL0(8AH)组成 T/C1由TH1(8DH)和TL1(8BH)组成他们都是特殊功能寄存器,定时器/计数器(T/C0和T/C1)的组成,T/C0和T/C1都是16位的加1计数器,共同点:都是通过计数器对脉冲个数计数来实现的.不同点:,定时模式与计数模式的主要区别,1、定时模式T/C计数8051内部机器周期信号的个数 ,由计数个数可以计算出定时时间 。每个机器周期使T/C的计数器增加1,直至计满回零后自动产生溢出中断请求,表示定时时间到 。f=12MHz,一个机器周期是1 s,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号