嵌入式(五):51端口简析

实验时有一个小问题可以研究一下,就是,为什么P2的高四位是0xF?首先,在我们一开始的时候,整个函数尚未进行,仅仅实现了变量的定义(分配空间)的时候,可以看到仿真结果是P0和P2两个八位寄存器的值都是0xFF,即一开始,就已经将所有位设置为了高电平,所以在后续的时候,P2的第四位不断地发生改变,而高四位则一直延续为0xF。但是为什么一开始的初始值是全为1呢?这和P0,P1,P2,P3这四组端口的性质有关:
首先看一下设计书中对于这四个端口的定义
在这里插入图片描述
可以看到对他们的定义就是简单的并行端口,但是这四个并不是完全相同的。书中对他们的记录是这样的:
MCS-51单片机有4个8位的并行接口,记做P0,P1,P2,P3,共32根I/O线,实际上就是SFR中的4个,每个口主要由四部分构成:端口锁存器、输入缓冲器、输出驱动器和引至芯片外的端口引脚。他们都是双向通道,都可以独立的作为输入或输出。
这4个通道的功能不完全相同,P0口和P2口内部各有一个2选1的选择器,受内部控制信号的控制(可以理解为P0M和P2M两组寄存器)。四个接口在进行I/O方式时,特性基本相同:
1)作为输出时,内部带有锁存器,故可以直接与外设相连
2)作为输入时,有两种方式,即读端口和读引脚。读端口实际上不从外部选入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值