respack-8

respack-8是排阻,即网络电阻器。排阻是将若干个参数完全相同的电阻集中封装在一起,组合制成的。它们的一个引脚都连到一起,作为公共引脚。

其余引脚正常引出。所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的是公共引脚。它在排阻上一般用一个色点标出来。排阻具有装配方便、安装密度高等优点,目前已大量应用在电视机、显示器、电脑主板、小家电中。

排阻通常都有一个公共端,在封装表面用一个小白点表示。其颜色通常为黑色或黄色。排阻一般应用在数字电路上,比如:作为某个并行口的上拉或者下拉电阻用。使用排阻比用若干只固定电阻更方便。

577d006b30874133b6ac85a1394646ba.jpg

 

负载阻抗等于信源内阻,即辐角与模相等,在负载阻抗上可以得到无失真的电压传输。负载阻抗等于信源内阻的共轭值,它们的模相等且辐角之和为零。在负载阻抗上可以得到最大功率。这种匹配条件称为共轭匹配。如果信源内阻和负载阻抗均为纯阻性,则两种匹配条件是等同的。

5e231e9db0da4bc99d1b330e4001f6e6.jpg

为什么需要接respack-8

respack-8的作用:

因为AT89C51的引脚:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

7e1ed9920c75401bb16aca65f9d6d829.jpg

 

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)这是由于上拉的缘故。

 

P3口也可作为AT89C51

 

 

已知文件中有AT89C51RESPACK-8,LM016L和TLC2543,DC VOLTMETER和POT-HG,使用电路仿真软件Proteus在上面文件的代码的基础上修改一些代码添加一些器件,使其LM016L能够同时读取单口的电压电流和电阻并同时显示。下面是文件内容#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define LCD1602_DATAPINS P0sbit LCD1602_E=P2^2;sbit LCD1602_RW=P2^1;sbit LCD1602_RS=P2^0;ulong volt;//??????sbit CLK=P3^3;//???????sbit DIN=P3^1;//??2543?????sbit DOUT=P3^0;//??2543?????sbit CS=P3^2;//??2543?????void read2543(uchar addr){uint ad=0;uchar i;CLK=0;CS=0;//???,??2543addr<<=4;//???????for(i=0;i<12;i++) //12?????,????????{if(DOUT==1)ad=ad|0x01;//?????ad??DIN=addr&0x80;//2543???????CLK=1;;;;//?????CLK=0;//?????,??????;;;addr<<=1;ad<<=1;//?????????????}CS=1;//?2543ad>>=1;volt=ad;//??????volt=volt*1221;//???????5V,??????12?(2?12??=4096) ??????255,5/4096=1221mV,?????1V????1221mV }/******************************************************************************** ? ? ? : Lcd1602_Delay1ms* ???? : ????,??1ms* ? ? : c* ? ? : ?* ? ? : ?????12MHZ???,12?????????*******************************************************************************/void Lcd1602_Delay1ms(uint c) //?? 0us{ uchar a,b;for (; c>0; c--){ for (b=199;b>0;b--) { for(a=1;a>0;a--); } } }/******************************************************************************** ? ? ? : LcdWriteCom* ???? : ?LCD?????????* ? ? : com* ? ? : ?*******************************************************************************/void LcdWriteCom(uchar com) //????{LCD1602_E = 0; //??LCD1602_RS = 0; //??????LCD1602_RW = 0; //????LCD1602_DATAPINS = com; //????Lcd1602_Delay1ms(1);//??????LCD1602_E = 1; //????Lcd1602_Delay1ms(5); //????LCD1602_E = 0;}/******************************************************************************** ? ? ? : LcdWriteData* ???? : ?LCD?????????* ? ? : dat* ? ? : ?*******************************************************************************/ void LcdWriteData(uchar dat)//????{LCD1602_E = 0;//????LCD1602_RS = 1;//??????LCD1602_RW = 0;//????LCD1602_DATAPINS = dat; //????Lcd1602_Delay1ms(1);LCD1602_E = 1; //????Lcd1602_Delay1ms(5); //????LCD1602_E = 0;}/******************************************************************************** ? ? ? : LcdInit()* ???? : ???LCD?* ? ? : ?* ? ? : ?*******************************************************************************/ void LcdInit() //LCD??????{ LcdWriteCom(0x38); //???LcdWriteCom(0x0c); //????????LcdWriteCom(0x06); //??????1LcdWriteCom(0x01); //??LcdWriteCom(0x80); //????????}//???????????void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){ Y &= 0x1; X &= 0xF; //??X????15,Y????1 if (Y) X |= 0x40; //???????????+0x40; X |= 0x80; // ????? LcdWriteCom(X); //????????,????? LcdWriteData(DData);}//???????????void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData){ unsigned char ListLength; ListLength = 0; Y &= 0x1; X &= 0xF; //??X????15,Y????1 while (DData[ListLength]>=0x20) //????????? { if (X <= 0xF) //X?????0xF { DisplayOneChar(X, Y, DData[ListLength]); //?????? ListLength++; X++; } }}void main(){LcdInit();//DisplayListChar(1,0,"TEST SYSTEM");//DisplayListChar(0,1,"Tem:");read2543(0);while(1){read2543(0);DisplayOneChar(0,0,(char)(volt/1000000%10+'0'));DisplayListChar(1,0,".");DisplayOneChar(2,0,(char)(volt/100000%10+'0'));DisplayOneChar(3,0,(char)(volt/10000%10+'0'));DisplayOneChar(4,0,(char)(volt/1000%10+'0'));DisplayOneChar(5,0,(char)(volt/100%10+'0'));DisplayOneChar(6,0,(char)(volt/10%10+'0'));DisplayOneChar(7,0,(char)(volt%10+'0'));DisplayListChar(8,0,"V");Lcd1602_Delay1ms(50);}}
最新发布
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值