0接应电路 7-1单片机并行接口PI0 7÷2定时/计数器电路CTC 73可编程并行接口芯片之 75串行10接口SO
第七章 I/O接口电路 7-1 单片机并行接口PIO 7-2 定时/计数器电路CTC 7-3 可编程并行接口芯片 7-5 串行I/O接口SIO
71单片机并行接口PIo 片内接口寄存器在SF中的映象地址: 1.I/O数据锁存器:P0、P1、P2、P3、SBUF 2:真O控制/状态寄存器: 、P、TCoN、TMoD、SCON、PCON PIO:并行I/O接口 用于微型机与外部设备之间并行传送数据。 7-1+1MCS51的并行接目 4个8位双向并行I0接口: P0.0~P0.7、P10~P17、P2.0~P27、P3.0~P3.7。 均为多功能I/O接口,CPU按当前操作自动进行功能 切换
7-1 单片机并行接口PIO PIO:并行I/O接口 用于微型机与外部设备之间并行传送数据。 7-1-1 MCS-51的并行接口 4个8位双向并行IO接口: P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7。 均为多功能I/O接口,CPU按当前操作自动进行功能 切换。 片内接口寄存器在SFR中的映象地址: 1.I/O数据锁存器:P0、P1、P2、P3、SBUF 2.I/O控制/状态寄存器: IE、IP、TCON、TMOD 、SCON、PCON
三PO接口的部种操作 输 中,经过 修改。 2)输入操作:引输人数据经过播人缓冲器送到内部总线上。 P0~P3的复位状态均为FFH,自动处于输入状态。 地址/数据控制 Vcc 读锁存器 存器 内部上 总线 内部党线 P 器 锁存器 写锁存器 D 存器 读引脚 读引脚
一.PIO接口内部结构 输出锁存器、输出驱动器、输入缓冲器及多路功能切换电路。 1)输出操作:输出数据经过内部总线暂存到输出锁存器中,经过 输出驱动器送到I/O引脚上。输出锁存器的内容可读入修改。 2)输入操作:I/O引脚输入数据经过输入缓冲器送到内部总线上。 二.PIO接口的三种操作 1.输出锁存:输出将使数据写入输出锁存器。 输出指令: MOV P1,A MOV P1.0,C 2.输入三态:输入从I/O引脚上输入信号,读信号打开,引脚信号 通过下三态门进入内部总线。为保证可靠输入,先写入“1” 。 MOV P1,#0FFH ;使输出驱动器截止 MOV A,P1 ;输入 P0~P3的复位状态均为FFH,自动处于输入状态。 3.读-修改-写: 修改输出锁存器的内容。锁存器中的数据通过上 三态门进入内部总线,修改后再写入到锁存器中。 读-修改-写指令:PIO为目的操作数的指令 ANL P1,A
PIO的使用 1.P0口:并行双向接口或系统总线DB0~7/AB~7 P1、P2和P3为准双向口。 2P1口:称为用户I/O接口。对片内 EPROM编程时,用作 EPROM低8位地址信号线。 3.P2口:双向O接口或高8位地址总线AS815 对读写片外存储器后,引脚仍恢复输出锁存器的内容。可用于 读写片外数据存储器: MOV P2, #20H MOV RO, #00 MOVXA,aRO 4.P3口:双向并行接口和第二功能 串行接口引脚:TxD、RXD 中断输入引脚:INT0、INT1 定时器输入引脚:T0、T1 读写控制线:RD、WR 四接口负载能力 P0驱动8个TT电路,P1,P2,P3可驱动4个TL电路
三.PIO的使用 1. P0口:并行双向接口或系统总线DB0~7/AB0~7 2.P1口:称为用户I/O接口。对片内EPROM编程时,用作 EPROM低8位地址信号线。 四.接口负载能力 P0驱动8个TTL电路,P1,P2,P3可驱动4个TTL电路 3. P2口:双向I/O接口或高8位地址总线AB8~15 对读写片外存储器后,引脚仍恢复输出锁存器的内容。可用于 读写片外数据存储器: MOV P2,#20H MOV R0,#00 MOVX A,@R0 4. P3口:双向并行接口和第二功能: 串行接口引脚:TXD、RXD 中断输入引脚:INT0、INT1 定时器输入引脚:T0、T1 读写控制线:RD、WR P1、P2和P3为准双向口
五,应用举例 :用4个发光二极管对应显示4个开关的开合状态。 如P10合则P14亮 1.无条件传送方式:指示灯立即反映开关状态 ORG 0000H LMCS-51 CD--AJMPMAIN U ORG O1OOH PI MAIN: ORL A, #OFH P1.6 多MOvP1,A P15 P14 MOVA PL P1.3 SWAP A P12 MOV PI, A P1 SJMP MAIN P1.0
五. 应用举例 例:用4个发光二极管对应显示4个开关的开合状态。 如P1.0合则P1.4亮。 MCS-51 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1.无条件传送方式:指示灯立即反映开关状态。 ORG 0000H AJMP MAIN ORG 0100H MAIN:ORL A,#0FH MOV P1,A MOV A,P1 SWAP A MOV P1,A SJMP MAIN
2.中断传送方式: 先设好开关状态,然后发出中断请求信号,改变指示灯亮灭状态。 ORG 0000H AJMP MAIN MCS-51 ORG 0003H PI AJMP OINT P16 ORG01001 P1.5 C MAIN: SETB ITOI P14 SETB EXO P1.3 SETB EA P1.2 HERE: SJMPHERE PI ORG 0500H P1.0 IOINT:MOVA,#0FFH家 5V INTOR MOV PIA C MOVA,P1 K SWAP A MOV PI A RETI
2.中断传送方式: 先设好开关状态,然后发出中断请求信号,改变指示灯亮灭状态。 ORG 0000H AJMP MAIN ORG 0003H AJMP IOINT ORG 0100H MAIN:SETB IT0 SETB EX0 SETB EA HERE:SJMP HERE ORG 0500H IOINT:MOV A,#0FFH MOV P1,A MOV A,P1 SWAP A MOV P1,A RETI P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 INT0 MCS-51 K +5V
定时/计数器电路CTC字 二:蹇时/计数的忑角原理 定时数勤罷中的核心部件为可预置初值计数器。预置初值 后或導藟有藪教碡或瞎鮭逆得到可觫忡号,计数器记 录脉微备加半巍测或效定徽 融形 选计款秒角:计数初嗣,定时采样、定时启动等。当定时 时野濺建稱繇奪操。次中断请求。设内部时钟 选定时功能,计数初值为156 内部时钟脉冲 (定时)几K1K2计数脉冲 溢出信号 何预置初值计数器一几中断 外部输入脉冲 请求 (计数) 功能启动 计数初值 选择控制
7-2 定时/计数器电路CTC 一.定时/计数器的应用 1.计数功能: 生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记 录脉冲个数,当计数值与设定值相等,启动包装机器。 检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内 脉冲个数,显示转速。 二.定时/计数器的工作原理 定时/计数器中的核心部件为可预置初值计数器。预置初值 后开始计数,直至计数值归0或产生溢出,可申请中断。 计数器有加 1 计数或减1计数两种形式。 K1 K2 可预置初值计数器 中断 请求 功能 选择 启动 控制 内部时钟脉冲 (定时) 外部输入脉冲 (计数) 计数脉冲 溢出信号 计数初值 例:设CTC中为8位加1计数器。按要求选择功能和初值。 1.要求检测到100个脉冲,发中断请求,通知CPU。 选计数功能,计数初值为156 。 2.要求定时每隔100s时间,发一次中断请求。设内部时钟 周期1s 选定时功能,计数初值为156 。 2.定时功能:用于实时控制,定时采样、定时启动等。当定时 时间与设定值相等,执行规定操作
7-2-1MCS-51定时/计数器 2个定独罨控制的据在蹙商器/计数器:T0、T1 矩时器婚馨森痤寄在器(8H) 影级时计数 GATELCAT上MM0 2.位数选择的8/13/16位) T 3启选择质内部启动/外部启动) 4启翅輕制能启动巍内槨机器周期脉冲; 5!恢使物式计鹨动耿懒负脉冲。 2)方式选择位M1、M0:4种工作方式:13/16/8位 3)门控方式选择位GATE: MIM0方式斗功能描述 =0,非门控方式(内部启动): 0 13位 16位 TRx=1,启动定时器工作;10 8位自动重装 TRx=0,停止定时器工作。11 10为两个8位 1,门控方式(外部启动):TRx=1且引脚Nx才启动。 9确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T用方式1门控计数。 MOV TMOD, #
7-2-1 MCS-51定时/计数器 2个可独立控制的16位定时器/计数器:T0、T1 定时器初始化编程: 1.功能选择(定时/计数) 2.位数选择(8/13/16位) 3.启动方式选择(内部启动/外部启动) 4.启动控制(启动/停止) 5.恢复初值方式(自动重装/软件重装) 一.定时器控制、状态寄存器 1.TMOD定时器方式寄存器(89H) 1)功能选择位C/T: =0,定时功能,计数内部机器周期脉冲; =1,计数功能,计数引脚T0(T1)输入的负脉冲。 2)方式选择位M1、M0:4种工作方式:13/16/8位 3)门控方式选择位GATE : =0,非门控方式(内部启动): TRx=1,启动定时器工作; TRx=0,停止定时器工作。 =1,门控方式(外部启动):TRx=1且引脚INTx=1才启动。 确定定时器工作方式指令:MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,# GATE C/T M1 M0 GATE C/T M1 M0 T1 T0 M1 M0 方式 功能描述 0 0 0 13 位 0 1 1 16 位 1 0 2 8 位自动重装 1 1 3 T0 为两个 8 位
2.TCON定时器控制/状态寄存器 1)启动控制位R0·R多 0,停止定时器工作 =1,启动定时器工作 例:启动T0: SETB TRO 2)溢出中断标志位m分 定时器溢出使TFx=1,引起中断请求,CPU响应Tx中断后 自动清0TFx 可用软件检测TFx,必须软件清0。 WAIT: JBC TFO, NEXT 检测T0是否溢出 2 SJMP WAIT:未溢出,继续检测 NEXT ;溢出,m清0,处理溢出 3.可预置初值的16位加1计数器TH0、TL0、 THl TLI 预置T0初值指令 MOV THO, #XH MOV TLO, #X
2.TCON定时器控制/状态寄存器 1)启动控制位TR0、TR1 =0,停止定时器工作 =1,启动定时器工作 例:启动T0: SETB TR0 2)溢出中断标志位TF0、TF1 定时器溢出使TFx=1,引起中断请求,CPU响应Tx中断后, 自动清0 TFx。 3.可预置初值的16位加1计数器TH0、TL0、 TH1、TL1 预置T0初值指令: MOV TH0,#XH MOV TL0,#XL 可用软件检测TFx,必须软件清0。 WAIT:JBC TF0,NEXT;检测T0是否溢出 SJMP WAIT ;未溢出,继续检测 NEXT: … ;溢出,TF0清0,处理溢出
定时器工作方式 由方式选择位M1、M0设定 12方式0③ 16位定时/计数器。THx8T8低加茄鸯器 计数外部脉冲个数:1~85862) 定时时间(=1s):1s8~86596×T65.54ms 振荡器 ÷12 DI2 D5D4 DI CT=0 加1 THx TLx CT=1 脉冲8位)65位)出 中断请求 T引脚 启控 动制 ETx 断允许 GATEI 1 ≥1
二. 定时器工作方式 由方式选择位M1、M0设定 1.方式0 13位定时/计数器。 THx 8位和TLx低5位组成13位加1计数器 计数外部脉冲个数:1~8192(213) 定时时间(T=1s):1s ~8.19ms 2.方式1 16位定时/计数器。 THx8位和TLx8位组成16位加1计数器 计数外部脉冲个数:1~65536(216) 定时时间(T=1s):1s ~ 65536×T= 65.54ms