一个操作51单片机某几个IO口的方法
今天有同学学习《手把手教你学51单片机》过程中遇到一个关于51单片机IO口操作的问题,可能有其他同学有类似疑问,或者是其他同学根本没有考虑过这个疑问问题,我简单提一下,今后有类似问题也欢迎大家留言,我会给大家解释。
问题很简单,但是对于初学者常犯。
对于51单片机的P口来说,我们习惯上的赋值是P1 = 0xXX。但是这样操作是一次性操作了8个IO口。而有些情况下,我们只需要操作其中的几个而不是全部的时候,我们如何操作呢?如下图注释上边的部分,是我写的程序代码。
这个是操作51单片机P1口的低4位对步进电机进行操作的程序,在这个操作过程中,我们只使用到了P1口的低4位,因此我们希望高4位保持不变,只改变P1的低4位。首先把P1进行一个备份到变量tmp中去,然后把变量tmp的经过两条语句,得到最终要赋值给P1的值以后,再一次性赋值给P0,这个方法大家都可以学习一下。
而注释下边的这段程序,是一位同学写的,这位同学的理由是下边这种写法,也没有改变P1的高4位。表面看也没什么问题,但是实际上如果不利用tmp这个变量,P1就会产生一个错误的中间值。
P1= P1&0xF0;这条语句执行完毕以后,P1 = 0xX0;其中X是未知的,保持了之前P1的高4位的原值,而低4位是0;
再然后P1= P1|BeatCode[index];这样操作后,P1得到了最终的值。
但是这中间,P1 = 0xX0;这个值是我们根本不需要的一个错误值。不要怕有问题,但是我也不希望没有经过思考的问题。而这个问题,就是同学经过思考的问题,我认为很好,写出来提供给同学们共同学习。
80C51单片机的IO口(四) - P1口内部结构与工作原理
P1口是80C51单片机唯一的单功能口 ,只能用作通用数据I/O口,没有其他功能。
P1口内部逻辑结构
P1口由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成。输出驱动电路内部设有上拉电阻(约30kΩ)。
P1口是通用的准双向I/O口。输出高电平时,能向外提供拉电流负载,不必外接上拉电阻。当口用作输入时,须向口锁存器写入1。
P1口的工作原理以及具体的数据输入/输出过程与P0口作为通用数据I/O口时相同。请参看前期视频。
相关问答
当 单片机 外部扩展RAM和ROM是时,P0口, P1口 ,P2口,P3口各起什么...[最佳回答]不知道你说的是哪种单片机,如果是常用的51单片机的话,其P1口仅作为I/O,无第二功能;P3口作为I/O的同时,其第二功能是一些特殊功能,非扩展存储.P0口用...
1602与 51单片机的P1口 如何连接,需要接上拉电阻么,另外,51...[最佳回答]1.1602包括数据端,命令控制端和其他功能控制端口,P1就8个口,若是把P1当数据端用就从低位数据开始依次往高位数据接,若是当命令控制端就随意选择3个...
51单片机 p0口和 p1口的 区别?1、P0口:真正的双向端口,输出锁存器,输入缓冲区,第一个设置为1的输入(KEIL包含具有头文件的动作,如果是汇编,则手动设置为1),输出为漏极开路,输出一般...1、P...
一个 c51单片机 怎么有人说有4个io 口 ,有人说32个io口,到底多少...[最佳回答].一共有32个IO口,分四个组!所以一组是8个!(这里指的是AT89S51等)AT892051的IO口是少点!
51单片机 LED灯为什么是 P1口 控制,而不是用P2口控制呢,到底怎么看用哪个口控制呢?你看一下电路图,led接在单片机的那几个引脚上就知道是那个口了你看一下电路图,led接在单片机的那几个引脚上就知道是那个口了
p1口 是数据总线吗?不是。51单片机共有四个8位双向并行的I/O端口,每个端口都包括一个锁存器、一个输出驱动器和一个输入缓冲器。但这四个端口的功能不全相同,P0口既可作一般I/O端...
如何使 单片机 AT89C 51的p1口 作为输入端,p0口作为输出端?作为输出,P0口为0C,需用上拉电阻,作为输入,P1口需置成高电平,作为输出,P0口为0C,需用上拉电阻,作为输入,P1口需置成高电平,
51单片机 中p0, p1 ,p2和p3端口在输入前都需要置1吗?复位时,都已经自动置一了。当你清零后,再想要输入,就必须重新置一。复位时,都已经自动置一了。当你清零后,再想要输入,就必须重新置一。
【 Mcs51 中的进位是什么意思?Q1:CY表示运算结果的最高位第7位...[最佳回答]哈哈哈哈哈,举个例子,单片机p1口有8个端口,他们是P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7明白了吧,他是从0开始计数的,是0到7而不是1到8第3位的意思的.第...
三、简答题1、MCS 51 系列 单片机 共有几个并行I/O 口 ,分别用什么表示?简单描述每个I/O 口的 主要功能?MCS-51单片机有4个双向的8位I/O口的P0~P3口为三态双向口P1,P2,P3口为准双向口(用作输入时,口线被拉成高电平,所以称为准双向口)。51单片机的4个口都可...