首先,看51单片机4类IO口,P0~P3,做一个结构上直观的比较
之所以把P0口和P2口放在一起,是因为其硬件结构上都包含一个多路开关,用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用。对于没有内部ROM的单片机(8031)或单片机内部存储器无法满足程序大小需求,多路开关就与上面接通,作为单片机与扩展存储器通信的地址/数据总线使用。
它们之间的不同也显而易见,P0口引脚前2个mosfet(金属氧化物半导体场效应管)构成了一个推挽结构,而P2口前mosfet则为普通开关作用,且包含上拉电阻。
推挽结构:在输出“地址/数据”信息时,V1、V2管是交替导通的,负载能力很强,可以直接与外设存储器相连,无须增加总线驱动器。
从结构上决定了它们的用途:假设扩展了存储器,则P0口作为地址/数据总线口,P2口作为高8位地址线。P0口作为IO输出口时,漏极开路输出,类似于OC门,当驱动上接电流负载时,需要外接上拉电阻。,所以不推荐使用。而PP2端口的多路开关总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。因此P2端口是动态的I/O端口,不能输出静态的数据,也不推荐作为IO口使用。推荐P0,P2保留作为扩展存储器,而非IO口使用。
另外,什么时候是IO口,什么时候是地址/数据口并非取决于硬件,而取决于当前的状态。
这才叫IO口,具有输出锁存的静态口,不必细说。
P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择.
使P3端品各线处于第二功能的条件是:
1、串行I/O处于运行状态(RXD,TXD);
2、打开了处部中断(INT0,INT1);
3、定时器/计数器处于外部计数状态(T0,T1)
4、执行读写外部RAM的指令(RD,WR)
而作为IO口使用时与P1完全相同。
在更多的场合是根据应用的需要,把几条端口线设置为第二功能,而另外几条端口线处于第一功能运行状态。在这种情况下,不宜对P3端口作字节操作,需采用位操作的形式。
至于读引脚和读端口,一般教科书都会强调,读端口的指令为端口内容取反这样的“读-修改-写”指令。而读引脚之前,先置1,然后用Mov A,Px之类的指令即可。没有只读端口的指令,因为端口内容是不会因为引脚的变化而变化,始终保持为为上次输出值。只读不改没有意义。
那么可能会有疑问,在P0作为地址/数据总线使用时,并没有使其置1?
以访问外部程序存储器为例,P0口输出低8位地址信息后,将变为数据总线,以便读指令码(输入)。在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反向输出端Q非;CPU自动将0FFH写入P0口锁存器,使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线,这个过程和I/O读引脚过程是一样的。
关键字:51单片机 IO口总结
引用地址:
51单片机IO口总结
推荐阅读最新更新时间:2024-03-16 15:11
51单片机基础(3)
选择 1、当MCS-51复位时,下面说法正确的是( A )。 A、 PC=0000H B、 SP=00H C、 SBUF=00H D、 P0=00H 2、PSW=18H时,则当前工作寄存器是( D )。 A、 0组 B、 1组 C、 2组 D、 3组 3、MCS-51上电复位后,SP的内容应是( B )。 A、 00H B、 07H C、 60H D、 70H 4、当ALE信号有效时,表示( B )。 A、 从ROM中读取数据 B、 从P0口可靠地送出低8位地址 C、 从P0口送出数据 D、 从RAM中
[单片机]
51单片机P1口介绍
P1.0 P1.7为P1口的8位双向口线,用于完成8位数据的并行输入/输出。 P1口内部结构及其功能描述 如图是P1口内部1位的电路结构 与P0口内部结构电路比较可发现:P1端口只是一个标准的准双向端口,无第二功能; P1内部取消了上拉的FET,而以一个上拉电阻代替;但此内部上拉电阻阻值较大,故上拉驱动能力较弱,除了有低功耗要求的应用系统,最好外接10K左右的上拉电阻; P1内部下拉FET仍存在,因此P1在作为输入时,仍需先向端口数据锁存器输出1,使输出驱动FET截止,保证数据读入的正确性; 在MCS-52系列单片机中,P1.0和P1.1具有第二功能,分别是作为定时器/计数器2的外部输入端
[单片机]
初学51单片机指令快速记忆法
学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法,供大家参考。 大家都知道,汇编语言指令由操作码、操作数两部分组成。MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。这里先介绍指令助记符及其相关符号的记忆方法。 一、助记符号的记忆方法 1 表格列举法 把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。 2 英文还原法 单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加
[单片机]
基于AT89C51单片机和DTMF通信实现电话远程控制家用电器的设计
引言 随着计算机技术和电信业的发展,通过电话线进行的远程通信越来越常见。人们通常采用MODEM进行通信,但是在通信数据量不大,对通信速率要求不高的应用场合,我们可以考虑一种DTMF通信方式,它具有接口简单,成本低廉且可靠性高的特点。本文介绍了一种电话远程控制家用电器的实现方法。用户可通过任意一部双音频电话(包括手机、电话分机)对自己家庭安装的家用电器进行开机、停机、设定等操作。 1、系统结构 本系统主要包括电话振铃检测电路、电话自动摘挂机电路、DTMF信号解码电路、语音提示电路以及整个系统的控制心脏CPU电路。当有电话打入时,电话振铃检测电路检测到有振铃并等待至系统默认的振铃次数后,控制器自动摘机,并在语音电路的提示下依次输入
[单片机]
51单片机之存储器
51单片机结构: 思维结构很重要: 由上图可知,51单片机的存储器分为俩大部分:程序存储器ROM和数据存储器RAM,这一点有别与计算机 程序存储器ROM: 1、 程序存储器ROM顾名思义,存放程序的地方,程序指令指导单片机完成设定的功能 2、 51单片机专门设置一个16位的PC,用于指示下一时刻CPU将要执行的程序指令在ROM中的位置,由于PC指针长度位16位,所以单片机的程序存储器ROM空间大小为2^16 = 64Kb,从0000~FFFFH 3、 ROM还可以细分为片内ROM和片外ROM 片内ROM: 8051片内有4KB ROM,地址范围从0000H~0FFFH 片外ROM: 片外可扩展,一般从1000H~F
[单片机]
51单片机波形发生器程序设计
一、 作品简介:可以通过按键控制STC89C52单片机输出 不同波形 信号。通过usb给pcb板通5v的电压可以发出方波,三角波,锯齿波,正弦波并在LCD显示屏上显示波形类别,频率和幅值。通过按键可调波形类别,可调节频率步进值有1Hz,10Hz和50Hz。最低频率为10Hz最高频率为800Hz。 二、设计原理:将各种波形的每个周期平均分成255份,把每份的值依次发给P0口,每份的时间间隔通过开启定时器0来控制,当定时时间到时单片机就产生中断,在中断服务程序里面通过P0口将每份的值发出去,这个值通过向D/A换器的输入端按一定的规律发生数据,从而在转换电路的输出端得到相应的电压波形。 三、 功能说明:能够产生方波、锯齿
[单片机]
51单片机系列——通过位运算符来实现流水灯
基础知识 1)首先认识一个寄存器(例如P1)占一个字节,而一个字节多数是8位,例如P1 = 11111111,即P1^0 到P1^7都是1。 我们可以看成一个字节的二进制数代表我们的8个IO口如下表所示 2)其次要知道LED灯为1时(LED = 1)即高电平,灯熄灭。相反(LED = 0)低电平,则灯亮。 3)移位运算符效果: /*默认P1 = b11111111*/ P1 = P1 1 ; /*执行一次结果为 11111110 ,即整体左移一位 最右边用低电平0来替代 */ 4)头文件intrins的函数使用 _crol_(xx,m) xx寄存器字符循环左移m位 _cror_(xx,m) xx寄存
[单片机]
AT89S51单片机是什么?
AT89S51单片机是什么? AT89S51是什么? 书上和网络教程上可都是8051,89C51等 !没听说过有 89S51 ?! 这里,初学者要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。 有些文献
[单片机]