当前位置:文档之家› 单片机IO口控制实验实验报告

单片机IO口控制实验实验报告

单片机IO口控制实验实验报告
单片机IO口控制实验实验报告

2单片机IO 口控制实验实验报告

单片机IO口控制实验

一、实验目的

1、熟悉MCS-51的I/O 结构;

2、掌握MCS-51 I/O 的使用方法;

3、掌握MCS-51的中断机制。

二、实验原理

1、MCS-51单片机的硬件结构片内结构:

2、内部数据存储器:

3、SFR的名称及其分布:

4、I/O端口地址:

5、P0?P3端口功能总结:

P0?P3 口都是并行I/O 口,但P0 口和P2 口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX

以进行转换。而P1 口和P3 口无构建系统的数据总线和地址总线的功能,因此,无MUX P0 口的MUX的一个输入端为“地址/数据”信号。P2 口的MUX勺一个输入信号为“地址” 信号。

在4个口中只有P0 口是一个真正的双向口,P1?P3 口都是准双向口。

原因:P0 口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此。

P0口的输出缓冲器应为三态门。P0 口中输出三态门是

两只场效应管组成,所以是一个真正的双向口。

P1?P3 口,上拉电阻代替P0 口中的场效应管,输出缓冲器不是三态的一准双向口。P3 口的口线具有第二功能,

为系统提供一些控制信号。

因此P3 口增加了第二功能控制逻辑。这是P3 口与其它

各口的不同之处。

6、P0 口结构及特点:⑴P0 口结构与运作

1个输出锁存器,用于进行输出数据的锁存;

2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;两

只场效应管组成的输出驱动电路。

⑵P0 口的特点

P0 口是一个双功能的端口:地址/数据分时复用口和通

用I/O 口;

具有高电平、低电平和高阻抗3种状态的I/O端口称为

双向I/O端口。P0 口作地址/数据总线复用口时,相当于一个真正的双向I/O 口。而用作通用I/O 口时,于引脚上需要外接上拉电阻,端口不存在高阻状态,此时P0 口只是一个

准双向口;为保证引脚上的信号能正确读入,在读入操作前应首

先向锁存器写1 ;单片机复位后,锁存器自动被置1 ;

一般情况下,如果P0 口已作为地址/数据复用口时,就不能再用作通用I/O 口使用;P0 口能驱动8个TTL负载。

7、P1 口的结构及特点:⑴P1 口结构与运作

一个数据输出锁存器,用于输出数据的锁存;

两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;数据输出驱动电路,场效应管VT和片内上拉电阻R组成。

⑵P1 口的特点

P1 口于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。作为输出口时,不需要再在片外拉接上拉电阻;

P1 口读引脚输入时,必须先向锁存器写入1,其原理与

P0 口相同;P1 口能驱动4个TTL负载。

& P2 口结构及特点:⑴P2 口结构与运作

一个数据输出锁存器,用于输出数据的锁存;

两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;

一个多路开关MUX它的一个输入来自锁存器的Q端,另一个输入来自内部地址的高8位;

数据输出驱动电路非门M,场效应管VT和片内上拉电阻

R组成

⑵P2 口的特点

P2 口用作高8位地址输出线应用时,与P0 口输出的低8位地址一起构成16位的地址总线,可以寻址64KB地址空间。

当P2 口作高8位地址输出口时,其输出锁存器原锁存的内容保持不变。作为通用I/O 口使用时,P2 口为准双向

口,功能与P1 口一样。P2 口能驱动4个TTL负载。

9、P3 口结构及特点:⑴P3 口结构组成

一个数据输出锁存器,用于输出数据的锁存;

3个三态输入缓冲器,BUF1用于读锁存器,BUF2 BUF3 用于读引脚和第二功能数据的缓冲输入;

数据输出驱动电路,与非门M,场效应管VT和片内上拉电阻R组成。

⑵P3 口的特点

P3 口内部有上拉电阻,不存在高阻输入状态,是一个准双向口;P3 口作第二功能的输出/输入或作通用输入时,均需将相应的锁存器置1。实际应用中,于复位后P3 口锁存器自动置1,已满足第二功能运作条件,所以可以直接进行第二功能操作;

P3 口的某位不作为第二功能使用时,则自动处于通用输

出/输入口功能,可作为通用输出/输入口使用;

作通用输出/输入口使用时,输入信号取自缓冲器BUF2的输出端,作第二功能使用时,输入信号取自缓冲器BUF3的输出端;P3 口能驱动4个TTL负载。

10、10 口锁存器操作:

10 口锁存器值与I0 口值不一定一致,应采用读锁存器- 修改-写锁存器来进行I0控制。

相关主题
文本预览
相关文档 最新文档