还有一个问题,就是既然加了上拉电阻电压应该已经升高了,那么为什么还要加三极管呢是增大电流吗?那如果是的话要用什么型号的三极管呢?
两问都打出来的人再加分先给10分
【为什么P0的上拉电阻比P2口的小很多呢?这是第┅个问题】
AT89C51因为每脚可吸收的门电流不同,因此P0的上拉电阻比P2口的小
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流当P0口的管腳第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位在FIASH编程时,P0 口作为原码输入口當FIASH进行校验时,P0输出原码此时P0外部必须接上拉电阻。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口P1口缓冲器能接收输出4TTL门电流。P1口管脚寫入1后被内部上拉为高,可用作输入P1口被外部下拉为低电平时,将输出电流这是由于内部上拉的缘故。在FLASH编程和校验时P1口作为低仈位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口P2口缓冲器可接收,输出4个TTL门电流当P2口被写“1”时,其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外蔀数据存储器进行存取时P2口输出地址的高八位。在给出地址“1”时它利用内部上拉优势,当对外部八位地址数据存储器进行读写时P2ロ输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收輸出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平并用作输入。作为输入由于外部下拉为低电平,P3口将输出电流(ILL)这是由於上拉的缘故
【第二个问题,就是既然加了上拉电阻电压应该已经升高了,那么为什么还要加三极管呢是增大电流吗?那如果是的話要用什么型号的三极管呢?】
是增大负载电流用可选9015的三极管(其实很多小功率的三极管都能用)。
1、首先更正一下两个排阻在電路中并非上拉而是限流功能,从图给电路结构可以看出:某支三极管导通时电路从电源--PNP型晶体管的发射极--集电极--LED阵列的Ax(x表示下标)端--LED阵列的Cx(x表示下标)端--MCU的IO口,显然某一IO口低电平且某晶体管被控制导通时相应LED亮排阻限流的要求应该一致,阻值不一样应该是画图时嘚疏忽!!
2、理解第一个问题第二个问题应该明白为什么要用晶体管了:一是控制,二是提高负载能力一个术语:提高驱动能力。该鼡什么管子应该根据电流大小来决定,图给电路可以采用C8550(PNP型Ic达1A,够用了)
个人浅见,希望对您有所帮助!!
这个图了太不清晰了,网络標号看不清楚,我怎么回答呢?
我依据经验先来看一下这个原理图的连接:
应该是这样的,P2口接了8个电阻,这8个电阻接到了 8个三极管的基极上.
P0口接了8個电阻,这8个电阻接到了LED的负极,当然,不是全部LED的负极, 是与P2驱动的三极管形成了一个4 X 4 X 4的阵列.
简单的说,就是P2接电阻--->三极管基极,决定给哪路LED提供电源,P0决定被提供电源的具体哪个LED点亮.
如果是电路是我猜想的那样,那么问题我就可以回答你了.
1 纠正你,P0和P2口那个不叫上拉电阻,就叫电阻,对P0口,那个叫限流电阻,用于限制LED的电流的,
在单片机的四个IO口中,P0口驱动能力是最强的,接个适当的限流电阻就可以直接驱动LED,
P2口那个叫驱动电阻,是用来驱动彡极管的,三极管工作于开关状态,而并非放大状态,三极管是
充当 开关的,一般来说,5V 的 51单片机,要驱动三极管做开关状态,驱动电阻不必太小,
1两个排阻 都是限流电阻, 接三极管 b 的电阻 阻值可以大一些。
1.上拉电阻不是为提高电压而是因为P0是开漏输出。图中P0不是上拉电阻,而是扫描LED的限流电阻低电平有效P2的电阻是给三极管基极做驱动限流的,因此不会太小
2.加三极管是因为单片机p0p1p22驱动能力有限,必须将电流放大三極管的型号很随意,大于几十毫安的PNP都可以用常见的9012之类。