松翰单片机问答集_IO口

合集下载

单片机 io口工作方式

单片机 io口工作方式

单片机IO口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解IO口吗?你真的能按你的需要配置IO口吗?一、准双向口输出准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。

这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。

当引脚输出为低时,它的驱动能力很强,可吸收相当大的电流。

(准双向口有3个上拉晶体管适应不同的需要)准双向口读外部状态前,要先锁存为‘1’,才可读到外部正确的状态.二、强推挽输出推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的强上拉。

推挽模式一般用于需要更大驱动电流的情况。

三、仅为输入(高阻)输入口带有一个施密特触发输入以及一个干扰抑制电路。

四、开漏输出配置(若外加上拉电阻,也可读)当口线锁存器为0时,开漏输出关闭所有上拉晶体管。

当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到Vcc。

如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。

这种方式的下拉与准双向口相同。

开漏端口带有一个施密特触发输入以及一个干扰抑制电路。

关于I/O口应用注意事项:1.有些是I/O口由低变高读外部状态时,读不对,实际没有损坏,软件处理一下即可。

因为1T的8051单片机速度太快了,软件执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,就有可能读不对,正确的方法是在软件设置由低变高后加1到2个空操作指令延时,再读就对了.有些实际没有损坏,加上拉电阻就OK了有些是外围接的是NPN三极管,没有加上拉电阻,其实基极串多大电阻,I/O口就应该上拉多大的电阻,或者将该I/O口设置为强推挽输出.2.驱动LED发光二极管没有加限流电阻,建议加1K以上的限流电阻,至少也要加470欧姆以上做行列矩阵按键扫描电路时,实际工作时没有加限流电阻,实际工作时可能出现2个I/O 口均输出为低,并且在按键按下时,短接在一起,我们知道一个CMOS电路的2个输出脚不应该直接短接在一起,按键扫描电路中,此时一个口为了读另外一个口的状态,必须先置高才能读另外一个口的状态,而8051单?片机的弱上拉口在由0变为1时,会有2时钟的强推挽高输出电流输出到另外一个输出为低的I/O口,就有可能造成I/O口损坏.建议在其中的一侧加1K限流电阻,或者在软件处理上,不要出现按键两端的I/O口同时为低.一种典型三极管控制电路:如果用弱上拉控制,建议加上拉电阻R1(3.3K~10K),如果不加上拉电阻R1(3.3K~10K),建议R2的值在15K以上,或用强推挽输出。

单片机问答题答案(个人搜集,仅供参考)

单片机问答题答案(个人搜集,仅供参考)

单片机的控制总线信号有哪些各有何作用P0口为地址/数据线复用,分时传送数据和低8位地址信息。

在接口电路中,通常配置地址锁存器,用ALE信号锁存低8位地址A0~A7,以分离地址信息和数据信息。

P2接口为高8位地址线,扩展外部存储器是传送高8位地址A8~A15。

PSEN为地址程序存储器的控制信号,RDWR为数据存储器和I/O口的读写控制信号,他们是在执行不同指令是由硬件产生不同控制信号的外部中断有哪两种触发方式他们对触发脉冲或电平有什么要求下降沿触发和低电平触发,低于即可触发中断3.开机复位后,CPU使用的是那组工作寄存器他们的地址是设呢么CPU如何确定和改变当前工作寄存器组开机复位后,cpu使用第0组工作寄存器,地址是00H~07H,可通过对PSW状态字寄存器中的RS1和RS0两位的设置来确定和改变CPU当前使用的工作寄存器组4.具有8位分辨率的AD转换器,当输入0v~8v电压时,起最大量化误差是多少因为A/D转换器的输入是连续信号,而输出是离散信号(数字量)。

当输入的模拟信号变化很微小时,输出的数字量却不敏感,仍然保持不变。

对于8位A/D转换器,实际满量程电压变5V,则其量化单位(LSB)为5/255≈,考虑到A/D 转换时会进行4舍5入处理,所以最大量化误差为±1/2LSB,即或。

5..89C51单片机的时钟周期机器周期指令周期是如何定义的当主频为6MHz的时候,一个机器周期是多长时间执行一条最短指令需要多长时间时钟周期:晶振的的振荡周期,为最小的时序单位机器周期:1个机器周期由12个时钟周期组成。

它是计算机执行一种基本操作的时间单位指令周期,执行一条指令所需要的时间,1个指令周期由1~4个机器周期组成12/6=2μs,指令周期最短为2μs6.中断服务子程序跟普通子程序的异同相同点:都是要主程序跳转到子程序运行,执行完之后继续到主程序不同:中断服务子程序是随机的,而普通子程序是预先安排的,中断服务子程序以RETI结束,一般子程序以RET结束,RETI出了将断点弹回PC之外,还要清除对应中断优先标志。

单片机IO端口工作原理(P0端口,漏极开路,推挽,上拉电阻,准双向口)

单片机IO端口工作原理(P0端口,漏极开路,推挽,上拉电阻,准双向口)

单片机IO端口工作原理(P0端口,漏极开路,推挽,上拉电阻,准双向口)一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态。

图中有一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。

图中另一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。

D锁存器:一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。

图中的锁存器,D 端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q 非是反向输出端。

对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。

如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。

数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。

如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。

那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。

单片机的I-O口输出电流问题

单片机的I-O口输出电流问题

单片机的I/O口输出电流问题问:单片机除P0 口外,其他输出都是5V 吧?那么用来驱动数码管为什么还需要加三极管驱动?比方说加100 欧的电阻,那么电流就高达5V/100 欧=50mA,而数码管才20mA?我搞不懂。

再者三极管怎么都没标明电流放大倍数?答:这个类似于电源的内阻。

输出电流越大,消耗在内部的电压压降就越大。

输出电压=5V-内部压降。

51 单片机的上拉管典型阻值20k,若外部开路,在内部的压降=0,输出就是5V,如果IO 接个5k 电阻到GND,那么外部电阻的电压=5V÷(5+20)乘以5=1V,而外部5K 电阻上的电流才1V/5k=200uA。

所以你接100 欧的电阻,IO 的输出电压更本就很小了,根本达不到5V÷100 欧=50mA 的水平,一般来说高电平输出能力也就100- 200uA,低电平输出能力8mA-10mA (AT89C2051 等IO 已强化,可吸入20mA 电流)。

这么小的电流驱动数码管,你就自己看吧,所以才加三极管驱动。

数码管20mA 的电流一般是偏大的,静态显示时,一般选5-15mA 即可。

动态显示可适当加大至20mA 左右,不然亮度偏低。

一般三级管的静态放大值取100 就可以估算。

比如驱动一个5V(额定电压)线圈继电器。

线圈内阻是120 欧,估算驱动电流有5V/120 欧=40mA,单片机一般只能输出10mA,驱动不了。

那么靠三极管驱动,基极驱动电流=40mA/100=400uA>200uA,若使用PNP 型三极管,则使用低电平驱动,基极电阻=(5-0.7)V÷0.4mA=10k,若使用NPN 型三极管,则使用高电平驱动,如上面所说,输出能力最多200uA,达不到400uA,要使用上拉电阻产生至少200uA 电流,上拉电阻=(5-0.7)V/0.2mA=21.5k 这些计算值都是临界值,要保险点就在这个值的基础上稍微选小一点就oktips:感谢大家的阅读,本文由我司收集整编。

单片机基础 第七章 单片机IO扩展及应用

单片机基础 第七章 单片机IO扩展及应用

单片机基础第七章单片机IO扩展及应用《单片机基础第七章单片机 IO 扩展及应用》在单片机的应用中,IO 端口(Input/Output 端口,输入/输出端口)往往是有限的。

然而,在实际的项目开发中,我们可能需要连接更多的外部设备,这就涉及到单片机 IO 扩展的知识。

单片机的 IO 端口是与外部世界进行交互的重要通道。

通过这些端口,单片机可以接收外部的输入信号,例如按键的按下、传感器的数据等,同时也可以向外输出控制信号,驱动各种执行器,如 LED 灯、电机等。

但当我们需要连接的外部设备数量超过单片机本身所提供的IO 端口数量时,就必须考虑进行 IO 扩展。

IO 扩展的方式多种多样,常见的有并行扩展和串行扩展。

并行扩展是通过增加并行接口芯片来实现的。

并行扩展的优点是数据传输速度快,能够在一个时钟周期内同时传输多个位的数据。

例如,我们可以使用 8255 芯片来扩展并行 IO 端口。

8255 具有三种工作方式,可以根据实际需求灵活配置为输入端口或输出端口。

在进行并行扩展时,需要注意地址线的连接和译码。

通常,我们会使用地址译码器来生成芯片的片选信号,确保单片机能够准确地访问到扩展的 IO 端口。

串行扩展则是通过串行通信的方式来实现 IO 扩展。

相比于并行扩展,串行扩展所需的连线较少,有利于节省电路板的空间和降低成本。

常见的串行扩展方式有SPI(Serial Peripheral Interface,串行外设接口)和 I2C(InterIntegrated Circuit,集成电路总线)。

SPI 是一种高速的全双工同步串行通信接口,通常需要四根线:时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和片选线(CS)。

通过合理地配置这些信号线,我们可以实现多个 SPI 设备的连接和数据传输。

I2C 则是一种两线式串行总线,只需要两根线:串行数据线(SDA)和串行时钟线(SCL)。

单片机IO口结构与工作原理

单片机IO口结构与工作原理

一、P0口的结构及工作原理P0口8位中一位的结构图如下图所示:从上图可以看出,P0口由锁存器、输入缓冲器、开关、与非门、与门和场效应晶体管驱动电路组成。

接下来先分析构成P0口的各个部分:首先看输入缓冲器:在P0口中,有两个三态缓冲器,其输出可以是高电平,也可以是低电平,还有也就是高阻态(或禁用态),上位是读锁存器的缓冲器,下位是读管脚的缓冲器,读取P0.X管脚上的数据,使之三态缓冲器若有效,则将引脚上的数据传输到外部数据总线。

D锁存器:AD触发器用于在51单片机的32个I/O口线中形成一个锁存器。

D 端为数据输入端,CP为控制端(即时序控制信号输入端),Q为输出端,Q为反向输出端。

多路开关:在51单片机中,当不需要外接扩展存储器时,P0口可作为通用输入输出口(即I/O)。

当需要扩展内存容量时,P0 端口用作“地址/数据”总线。

该多路复用器开关用于选择是将其用作普通I/O 端口还是用作“数据/地址”总线的选择器开关。

当多路复用器连接到底部时,P0 端口用作公共I/O 端口。

当多路复用器连接到顶部时,P0 端口用作“地址/数据”总线。

输出驱动部分:端口P0的输出是由两个MOS管组成的推挽结构,也就是说这两个MOS管一次只能导通一个。

V1开启时,V2关闭,V2开启时。

打开时,V1 关闭。

当P0口作为I/O口时,多路复用器的控制信号为0(低电平),V1管关断,多路复用器接到锁存器的Q非端(即, P0 端口用作I/O 端口)。

使用O 端口线)。

用作地址/数据线时,多路复用器的控制信号为1,V1管由地址/数据线决定,多路复用器接地址/数据线。

输出过程:1、I/O输出工作过程:当写锁存信号CP有效时,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→复用开关→门V2管极→V2漏极至输出端P0. X。

此时多路复用器的控制信号为低电平0,V1管截止,所以作为输出口时,P0为开漏输出,类似于OC门。

驱动电流负载时,需要外部上拉。

单片机io口是什么意思

单片机io口是什么意思

单片机io口是什么意思
单片机I/O端口是用来定义相应I/O口位的输入输出状态和方式;
包括以下3个基本项:数据向量Data、属性向量Attribution和方向控制向量Direction。

3个端口内每个对应的位组合在一起,形成一个控制字,用来定义相应I/O口位的输入输出状态和方式。

扩展资料
假设需要IOA0是下拉输入管脚,则相应的Data、Attribution和Direction的值均被置为“0”。

如果需要IOA1是带唤醒功能的悬浮式输入管脚,则Data、Attribution和Direction的值被置为“010”。

A口和B口的`Data、Attribution和Direction的设定值均在不同的寄存器里,用户在进行I/O口设置时要特别注意这一点。

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

《单片机的IO接口》课件

《单片机的IO接口》课件

中断处理:处理 IO接口的中断事 件
延时操作:通过 延时函数来实现 IO接口的延时操 作
IO接口的编程示例
输入输出操 作
延时函数
寄存器配置
按键检测函 数
单片机的IO接口发展趋势
IO接口的智能化发展
智能化接口电路:具备自诊断、 自适应、自保护等功能
接口模块化:将多个接口功能集 成到一个模块中
添加标题
单片机的IO接口
汇报人:PPT
单击输入目录标题 单片机的基本概念 单片机的IO接口概述 单片机的IO接口结构 单片机的IO接口应用 单片机的IO接口编程
添加章节标题
单片机的基本概念
单片机的定义
单片机是一种集 成电路芯片
集成了计算机的 CPU、内存、 I/O接口等核心 部件
具有体积小、功 耗低、可靠性高 等优点
THANK YOU
汇报人:PPT
按键接口的基本 原理
按键接口的电路 设计
按键接口的软件 编程
按键接口的应用 案例
LED接口的应用
LED灯的连 接方式
LED灯的闪 烁效果
LED灯的控 制方式
LED灯的应 用场景
传感器接口的应用
传感器类型:温 度、湿度、压力、 光照等
传感器与单片机 的连接方式:模 拟接口、数字接 口、I2C接口等
传感器数据采集与 处理:数据采集电 路、信号处理电路 、数据传输协议等
传感器接口应用 实例:智能家居 、环境监测、医 疗设备等
通信接口的应用
RS-485接口:用于单片机 与远程设备之间的通信
RS-232接口:用于单片机 与计算机之间的通信
I2C接口:用于单片机与外 部器件之间的通信
SPI接口:用于单片机与外 部器件之间的通信
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

松翰单片机问答集——IO口
Q322001. 当SONIX MCU的I/O口作OPEN DRAIN输出时,外接上拉电阻的供电电压比IC电源电压高,是否允许?
Ans:
我们IC 的open drain 是属于pseudo open drain, 外接上拉电阻的电压要小于等于MCU 的VDD, 主要目的是应用在多个output 并接bus 上(例如I2C), 或者是电压比VDD低的接口电压电平的转换。

用户可以通过外接三极管来解决这个问题。

Q322002. 低功耗I/O口应如何设置?
Ans:
正确设定I/O口状态,可以避免I/O口的漏电流:
1.对空闲口的设置,空闲口一般设定为输入上拉或输出低电平。

2.对ADC I/O通道,应用P4CON的设定,可以避免I/O口的漏电流。

3.对于不同的外部硬件电路,考虑I/O的状态设置,设定不当,会有漏电流,特别注意上拉电阻的正确设定,若I/O 口外接低点平,又将pull-up enable会造成漏电,例如:VDD=5V 会有约5V / 100K = 50uA 漏电。

Q322003. SONIX MCU的I/O上拉电阻是多少?
Ans:
此点在芯片的规格书中(电气特性章节)有所描述。

Vdd=3V时,上拉电阻典型值为200K欧姆。

Vdd=5V时,上拉电阻典型值为100K欧姆。

Q322004. 独立按键与MCU如何连接能有效避免I/O口损伤?
Ans:
在产品开发时,按键是最常见的功能,由于考虑到成本等因素,很多客户都是将按键的两端分别与MCU和GND 相连,这种做法在大部分情况下是没有问题的。

但是,当该产品的工作环境比较差时,比如静电、电源噪声等,此时若按键被按下,则相当于将MCU的一个I/O口直接与GND相连,此时就很可能会有瞬间大电流或高电压甚至负压灌入I/O口,造成I/O损坏。

减少这种问题的防范措施是:根据实际电路的需要,在按键与MCU的I/O之间串接100ohm ~ 1Kohm电阻,可有效避免上述问题带来的损伤。

Q322005. I/O外接下拉电阻,没有外接信号时芯片为何读不到低电平?
Ans:
SONIX MCU的普通I/O口内建上拉电阻,其等效阻值大概是100 Kohm@5V、200 Kohm@3V。

如果客户在程序中将某I/O的上拉电阻使能,同时又在该I/O的外围接有下拉电阻,在没有信号输入的情况下,相当于内置上拉电阻与外接下拉电阻串联分压,所以会导致I/O口读不到低电平。

例如,在VDD=5V的情况下,内置上
拉电阻等效为100K,如果此时外部接有100K的下拉电阻,则在没有外部输入信号时,该I/O的输入电平约为0.5VDD,该电平已经超出了SONIX MCU的VIL/VIH范围,肯定为导致读取状态错误。

所以,客户在程序设计时,如果I/O需要下拉状态,可在该I/O外接下拉电阻,但切记要关闭该I/O口的内部上拉功能。

Q322006. 使用Reset脚作为输入口时(通过按键接地),为何读不到低电平?
Ans:
1.查看Code Option选项Reset_Pin是否选择正确;
2.O TP MCU该引脚只能作为输入口使用,且无内置上拉电阻,用户需确认电路已外接上拉电阻;
3.F lash MCU Reset pin有不同的设计,详情请参考datasheet.
Q322007. Sonix单片机I/O口驱动电流是多大?
Ans:
I/O口驱动电流可分为拉电流和灌电流,拉电流是指当I/O为输出口并且输出为高电平时,对外部电路驱动能力的强弱。

电流越大,驱动能力越强。

对于一般的IO口,其输出最大拉电流为12mA,最大灌电流为15mA。

另外,考虑到个别系统的应用,我们会将I/O口的驱动电流增大,如SN8P2614 (P2口每个引脚最大可输出200mA的sink电流)和SN8PC20(IRout输出引脚)等。

Q322008. IO口从输入状态切换为输出状态注意事项?
Ans:
1.输入口切换到输出口步骤:
(1)设定I/O 预定状态,即送预定值给Pn;
(2)切换为输出状态,即送“1”给PnM。

2.从I/O的基本结构可以看出:上拉电阻在切换成输出模式时,是无效的。

所以可以不操作PnUR。

3.修改同一埠的不同I/O引脚状态时,最好使用对埠操作的MOV PX,A指令操作,如:
MOV A,#XXH
B0MOV PX,A
MOV A,#XXH
B0MOV PXM,A
详细资讯请参考AN004:I/O状态切换说明。

相关文档
最新文档