单片机引脚与端口操作

发布者:清新时光最新更新时间:2014-08-19 来源: 21ic关键字:单片机  引脚  端口操作 手机看文章 扫描二维码
随时随地手机看文章

以前写过一篇也是关于单片机引脚的文章,写的非常简单,那时候的见解,今天再次看到单片机关于读引脚和端口的操作时突然又是非常的不解,上网搜资料很多也都是关于单片机IO口结构的解释,经过一番辛苦的搜索终于是找到了关于端口和引脚的资料,下面是我自己从各个方面总理的。

首先对于单片机IO口一般有第二功能,因为P0口比较特别以P0口为例说明。具体的单片机IO口结构和功能见:戳这里

1. P0口置1是怎么回事,什么时候置1?

单片机P0口作为输入时需要先给锁存器置1,以关闭V2场效应管,不置1的话当锁存器的值为0时,V2导通接地使引脚的值为低,不能输入高电平。至于怎么给P0口置1,就是给P0寄存器置1.

2. P0口怎么要接上拉电阻?有什么用?

见P0口结构图可知,P0口作为通用IO口,即输入输出口时,需要把V1场效应管关闭,多功能开关连接到锁存器,高电平信号通过锁存器Q'端输出时为低电平,V2管截止,V1,V2都截止,输出既不是高电平又不是低电平,这就是漏极开路输出。为了能够输出高电平需要外接上拉电阻。

3. 读引脚和读端口有什么不一样?

读引脚是读P0口引脚上的电平信号,读端口是读锁存器中的值,即就是读P0口寄存器的值。作为输出时引脚和端口的值是一样的,但是作为输入时因为外设可以影响引脚的值,所以端口和引脚的值作为输入时可以不一样。

4. 什么时候读端口?什么时候读引脚?各自的指令是什么?

一般的教科书上都会强调:读端口的指令为端口内容取反这样的“读-修改-写”指令。而读引脚之前,先置1,然后用Mov A,Px之类的指令即可。 以下是从web(http://www.dzsc.com/dzbbs/20061112/200765184756359377.html )上搜集的资料:

“ 资料称: 这样的指令才有 Read-Modify-Write 功效

ANL (logical AND, e.G., ANL P1,A)

ORL (logical OR, e.g., ORL P2,A)

XRL (logical EX-OR, e.g., XRL P3,A)

JBC (jump if bit = 1 and clear bit, e.g., JBC P1.1, LABEL)

CPL (complement bit, e.g., CPL P3.0)

INC (increment, e.g., INC P2)

DEC (decrement, e.g., DEC P2)

DJNZ (decrement and jump if not zero, e.g., DJNZ P3, LABEL)

MOV PX.Y,C(move carry bit to bit Y of PORT X)

CLR PX.Y(clear bit Y of PORT X)

SETB PX.Y(set bit Y of PORT X)

有没有读端口的指令(而不修改端口)?

可以说,没有直接的读端口的指令。无论之前是否置1,以下指令

MOV A, P1

MOV 20H, P1

MOV R0, P1

MOV @R0, P1

读的都是引脚,尽管不一定读准确。

5. 端口的内容什么时候发生改变?当Px口作为输入,若外部引脚信号不断变化,读取引脚值之后, 端口内容是否变化?

某网友的看法与我不谋而合:“ 由于复位后各引脚寄存器的值是明确的,而以后各引脚的寄存器的值的改变不会因为芯片外面而,影响到引脚寄存嚣的值,引脚的寄存器的值只可能由程序来改变,所以就没有必要只读寄存器的值而不改变寄存器的内容了。 ”

参考引脚内部结构图可知,端口就是一个锁存器,纵使锁存器D口数据在变(内部数据线),只要时钟触发端clk没有触发信号,锁存器中的内容永远都不会改变,也就是说,不管外部引脚信号如何变,也不管执行过多少次读引脚操作,端口锁存器中的内容是不会发生变化的。

那么,端口内容何时变化?答曰:只要执行过一次输出,端口内容必为输出值,因为端口就是输出的数据锁存器。

6. 端口上的内容亦即反映到引脚上来吗?

Px口如果作为输出口,由引脚内部结构可知,端口内容是直接反映到引脚上去的。这对于P1口更为直接。而其他口,由于有第二功能,是否作为I/O口受内部控制信号的控制

关于单片机其他IO口和P0差不多就不多说了,以后再继续更新对IO口的理解,今天就先写到这里,这里有些资料是引用别人的,在这里非常感谢大家的分享。

关键字:单片机  引脚  端口操作 引用地址:单片机引脚与端口操作

上一篇:单片机C语言编程定时器的几种表达方式
下一篇:单片机三种下载程序的方式

推荐阅读最新更新时间:2024-03-16 13:39

单片机启动文件.s有什么作用
在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示: keil创建新项目时,提示是否添加启动文件 一般情况下,需要选择“是”。当然,也可以选择不加。那么,这个启动文件的作用是什么?什么情况下需要加,什么情况下可以不加? 今天我们就来详细了解一下这个启动文件的内容,看明白这个内容后,我们就会有种恍然大悟的感觉:“哦,原来是这样啊!” 启动代码第一段 以下是启动代码原文第一段: $NOMOD51 ;------------------------------------------------------------------------------ ; This file is part of the C5
[单片机]
<font color='red'>单片机</font>启动文件.s有什么作用
IBM-PC/XT机与单片机通信系统的设计方案
前端机由带RS -422接口的8031 单片机 系统组成,分别放在控制现场附近。通信控制器是插在IBM - PC/XT扩展槽上的带8031单片机的接口板,为主机和前端机间的通信提供一个智能化通道。用户只须通过主机向控制器发一条简单的命令而无须知道通信的细节,就可以使前端机执行相应的动作。控制器每次发送或接收的数据是可变的,但不超过255字节。每次通信都要进行差错检测和差错处理,以保证数据传输的准确性。主机IBM - PC/XT是命令的发起者和系统运行的控制者。 1.前端机 图1- 27是前端机的结构框图。它是一个带RS - 422串行接口的51系列单片机系统。其输入/输出和A/D转换的通道数是根据实际应用控制系统(如
[单片机]
IBM-PC/XT机与<font color='red'>单片机</font>通信系统的设计方案
单片机小知识总结
①RST复位电路 51单片机是高电平复位,低电平正常工作 上电瞬间以及按下按键(电容相当于导线),RST为高电平。 按键按下的瞬间会产生大电流冲击,会局部产生较大的电磁干扰。为了减小这种干扰,加一个一个限流电阻。 ②有关RAM和FLASH STC89C52RC系列单片机有512B的RAM以及8K的Flash(程序存储空间) RAM就是平时存储变量的,比如你定义了一个什么bit、uint8、 uint16 、uint32等等这些都 是在RAM中定义的。 512B的RAM虽然名字一样,但是在物理结构以及用法是有区别的。 沿袭老8051单片机的叫法,依旧叫为片内RAM和片外RAM。所谓的片内和片外
[单片机]
<font color='red'>单片机</font>小知识总结
高速单片机硬件关键参数设计概述
摘要:随着目前新技术、新工艺的不断出现,高速单片机的应用越来越广,对硬件的可靠性问题便提出更高的要求。本文将从硬件的可靠性角度描述高速单片机设计的关键点。 关键词:高速单片机 可靠性 特性阻抗 SI PI EMC 热设计 引 言 随着单片机的频率和集成度、单位面积的功率及数字信号速度的不断提高,而信号的幅度却不断降低,原先设计好的、使用很稳定的单片机系统, 现在可能出现莫名其妙的错误,分析原因,又找不出问题所在。另外,由于市场的需求,产品需要采用高速单片机来实现,设计人员如何快速掌握高速设计呢? 硬件设计包括逻辑设计和可靠性的设计。逻辑设计实现功能。硬件设计工程师可以直接通过验证功能是否实现,来判定是否满足需求。
[单片机]
AVR单片机比较匹配清零计数器模式的操作步骤及过程
当计数器TCNT0的数值等于比较寄存器OCR0时计数器TCNT0自动清零。OCR0定义了计数器的最大(TOP)值,这个模式使得用户可以很容易地控制比较匹配输出的频率。T/C0的比较输出脚为OC0(PB3),PB口的第三脚,在此模式下可以在OC0上输出PWM控制外部设备。 例如:在OC0脚上输出20HZ的方波信号,方波的周期时间为T=1/20HZ=0.05秒=50ms,半个周期为25ms,系统采用8MHZ晶振,1024分频,时钟计数频率为8000000/1024=7812.5HZ,每个时钟脉冲时间为1/7812.5=0.128ms, 定时25ms的计数值为25ms/0.128ms=195,将195赋值为T/C0的比较寄存器OCR
[单片机]
AVR<font color='red'>单片机</font>比较匹配清零计数器模式的<font color='red'>操作</font>步骤及过程
设计单片机日志系统
环境: 主机:WIN10 开发环境:MDK5.12 MCU:STM32F407 说明: 为单片机设计了一套简单的日志系统,通过日志系统提供的接口可以查看设备状态,并进行一些基本的调试。 日志系统通过串口输出,所以单片机需要准备一个串口供日志系统使用。注意串口发送不能用DMA发送(避免在在中断中打印日志造成的中断竞争),接收可以用DMA接收。 功能: 打开/关闭各个模块的调试输出 输入动作指令,让设备进行一些动作 打印系统运行日志 指令: H:帮助 O:调试输出全开 O1:打开1号模块,打开其他模块指令类似 F:调试输出全关 F1:关闭1号模块 I:输出系统日志 C:清除系统日志 A1:执行1号动
[单片机]
以C8051F340单片机为核心的USB数据采集系统设计
1引言 电子设备运行状态的稳定性直接影响到现代企业的生产, 设备发生故障后高昂的维修费以及设备停机后给企业生产带来的损失, 使得各个企业纷纷采取措施, 降低设备的故障率。通过数据采集系统准确的获取设备运行特征数据, 并对数据进行分析,判断设备的运行状态是否良好, 达到提前预防故障出现、减少停机检修的目的。实际应用中对数据采集系统的可靠性, 准确性和便携性要求很高。目前常用的数据传输网络(如RS232 /RS485, CAN 等)已经不能满足大量采集数据和高速实时数据传输的要求。而USB传输具有高速可靠传输的优势, 具有成本低、可靠性高、维护方便等优点。本文以带有片上USB 和高速AD转换器的C8051F340为核心控制器件, 利用
[单片机]
以C8051F340<font color='red'>单片机</font>为核心的USB数据采集系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved