上下拉电阻的问题,必须与IO口具体的内部结构相结合,才能分析清楚。
以下分析传统51单片机和AVR单片机的IO口。
51单片机
以下只分析P0和P1,其他类同。
1.P0位结构图如下:
当P0作为通用IO口使用时,上面的场效应管会截止,可以理解成上边的电路断路,剩下电路仅为一开漏极电路。
输入时:引脚上的信号直接通过读引脚的缓冲器被读入;
输出时:由于上边的电路近似断路,剩下的电路为开漏极,所以需要加上上拉电阻才能输出高电平;
2.P1位结构图如下:
输入时:由于已带上拉电阻,所以需先将场效应管截止,即置1,才能正确读入;
输出时:由于已带上拉电阻,所以无需再加上拉电阻;
注:有时自带的上拉的电阻为弱上拉电阻(阻值很大,使得IO口的驱动电流不够),所以可以再外接强上拉电阻。
AVR单片机
IO口等效原理图如下:
输入时:直接读入;
输出时:可自行配置是否使用内部上下拉电阻;
总结
1.输入时,与上拉电阻关系不大;输出时,要根据需要选择使用自带或外部的上拉电阻。下图可帮助理解:
2.输出时,要考虑到输出高低电平时,IO口自身的拉出电流和灌入电流的大小限制,是否满足驱动外电路。
3.以上分析仅为帮助理解。
关键字:单片机 IO口 上下拉电阻
引用地址:
单片机IO口的上下拉电阻问题总结
推荐阅读最新更新时间:2024-03-16 14:29
基于单片机的简易示波器设计
1、系统结构框图 图1系统结构图 1.1、信号调理电路 信号调理电路要完成的功能是:程控放大,叠加直流分量。程控放大的作用是:当输入信号的幅度很小的时候就需要对输入信号进行放大,使得被测信号可以在LCD上尽可能清楚的显示出来。叠加直流分量的作用是:ATmega16自带的A/D是单电源的,没办法输入负压而待测信号又往往有负压。这时候就需要这样一个电路,可以把负压抬高到0电平以上。 图2信号调理电路原理图 R1,R2分别由一个模拟开关CD4051来连接不同的电阻,不同的R1,R2通过公式:这样就可以实现程控放大功能了。可调电阻R9用来设置信号调理电路加入的直流分量的大小。放大后的信号和直流分量最后由U3模拟加法器叠加后
[单片机]
51单片机专业名词解释
PC = progammer counter //程序计数器 ACC = accumulate //累加器 PSW = progammer status word //程序状态字 SP = stack point //堆栈指针 DPTR = data point register //数据指针 寄存器 IP = interrupt priority //中断优先级 IE = interrupt enable // 中断使能 TMOD = timer mode //定时器 方式 (定时器/计数器 控制寄存器) ALE = alter (变更,可能是) PSEN = progammer saving enable //程序存储器使能(选
[单片机]
51单片机教程第5讲_C51程序
c51语言程序是 一个由主函数和若干个函数构成。其中主函数就是程序的起点,单片机运行程序,首先会执行主函数里面的第一条语句,直到执行完成主函数的所有语句,单片机的程序一般都是来完成某项具体功能的,所以程序一般都是一个循环结构的语句。 函数从用户使用角度讲,分为两类,一类是标准库函数,一类是用户自定义的函数。标准库函数是由开发环境自带的,比如我们常用的KEIL软件,就自带有很多库函数。库函数可以直接调用。用户自己写的函数,一般都是完成一些库函数里面没有的特定功能。 函数的一般形式为: 返回值类型 函数名(形式参数列表) { 函数体 } 返回值类型可以是基本数据类型或者指针类型,如:int float char double等等。当
[单片机]
51单片机的定时器中断(寄存器)
中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使单片机去处理中断程序(中断函数)。 此篇主要整理定时器中断笔记。采用定时器中断会涉及中断寄存器,定时器/计数器相关寄存器(TCON,TMOD),中断函数等知识点。 其中,中断寄存器,定时器/计数器相关寄存器本身或者相关位用来做初始化,中断函数的内容主要是体现发生中断后所需要的操作(在中断函数内写代码)。 1.中断允许寄存器IE 图1.中断寄存器IE 中断寄存器用来设定各个中断源的打开和关闭,IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H~AFH,该寄存器运行位寻址,即可对该
[单片机]
51单片机实现控制网卡芯片进行数据传输的设计
在网络技术应用日益广泛的今天,网络传输是最经济有效的数据传输方式。如何利用廉价的51单片机来控制网卡芯片进行数据传输,加载TCP/IP协议连接到互联网,实现网络通信成了众多设计者的目标。但由于指令及资源的限制,实施过程会有许多困难。我们在设计方案中舍弃了耗费资源的高级协议,采用发送小数据包的方式以避免分段,来简化TCP协议和UDP协议,实现互联接入。 硬件设计与实现 系统的硬件结构框图如图1所示。本系统的微控制器是Winbond公司的78E58,网络接口芯片是与NE2000系列兼容的ReaLTEk公司的RTL8019AS。RTL8019AS内置了10BASE-T收发器,外接一个隔离LPF滤波器,经RJ-45接口输出。外部RAM
[单片机]
51单片机控制蜂鸣器发SOS国际求救信号声音实验
说明:本文是51单片机控制蜂鸣器发声实验的高级版,和上个实验差不多,上个实验是控制蜂鸣器发声,本实验可以理解为控制蜂鸣器间断发出不同长度的声音,本文同样重在夯实基础,如果是大神,请自觉飘过。 好了我们言归正传,轮船行驶在辽阔的大海里,当发生意外事故的时候,“SOS”遇难信号便飞向海空,传往四面八方,我们都知道SOS信号是三短,三长,三短(摩尔斯电码),那么我们要如何去控制蜂鸣器发出这样的信号呢? 其实用单片机控制蜂鸣器发SOS声也很简单,原理基本上和上个实验差不多,控制方式稍微会复杂一点点,我们下面会详细介绍。我们同样从硬件和软件两个角度来给大家详细说明。 硬件部分 蜂鸣器 上个实验我们已经讲得很清楚了,再次不在赘
[单片机]
单片机的延时与中断问题及解决方法
延时与中断出错,是单片机新手在单片机开发应用过程中,经常会遇到的问题,本文汇总整理了包含了MCS-51系列单片机、MSP430单片机、C51单片机、8051F的单片机、avr单片机、STC89C52、PIC单片机 ..在内的各种单片机常见的延时与中断问题及解决方法,希望对单片机新手们,有所帮助! 一、单片机延时问题20问 1、单片机延时程序的延时时间怎么算的? 答:如果用循环语句实现的循环,没法计算,但是可以通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。 如果想精确延时,一般需要用到定时器,延时时间与晶振有关系,单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种
[单片机]
基于单片机和PWM控制方法调速实现无刷控制器检测设计
引言 伴随着城市化进程,人们生活的交通距离不断扩大,代替燃油汽车和自行车的电动车的普及大幅度的提高了电力资源的利用效率,促进了国民经济的健康发展。电动自行车以电力作动力,骑行中不产生污染,无损于空气质量。从改善人们的出行方式、保护环境和经济条件许可情况等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。电动自行车所用直流电机分为有刷电机和无刷电机两种。其中有刷电机控制较简单。但其易磨损的电刷带来维修保养工作量相对较大、使用寿命相对较短等缺点。而直流无刷电机本身没有易磨损部件,电机寿命长,维修保养工作量小。但直流无刷电机采用电子换向原理工作,其控制过程比有刷电机复杂得多,因此对控制器质量的要求也高得多。 目前电动自行车采
[单片机]