分类目录归档: 电子技术

简单一电路图

http://tieba.baidu.com/p/1562226523

没想到这题竟然这么多人不会,记得这是初中物理的题,我还考过试。很明显A的电流是 14V / 2O = 7A 嘛。。。3O 和 4O 被短路了

这是我第二次修改,因为上面的是错误的。我也刚想到,我上次考试也是粗心大意,做错了,没想到现在还是这样>_<。

如果说 3O 4O被短路的话,这是从下面看,从上面看的话 2O 3O也是被短路的。所以

其实把他拉直了应该是

所以电流应该是 14/2 + 14/3 + 14/4 约等于 15.17

看来我还是没改粗心大意的坏习惯

买个TA2024功放

  自从看了12月17日那一期的《天天向上》,就想买个很好的功放,挑来挑去在淘宝选中自己从未听过的T类功放(关于T类)。今天到手,自己装好玩弄着。哎~只怪自己见识短,听不出来跟普通的功放有很区别~,到现在一直还在煲机。

上实物图:

后面面板,超级郁闷的是很难买到双3.5的连接线。

那颗音量调节旋钮有点大!

拿在手里很小,估计是硬盘盒做的。。

装好的,可惜没有好音箱配~外形整体看好看,细看会发现前盖和后盖不齐~

内部图,自己的那部不敢拆,怕搞坏了~(*^__^*)

stc89c52做的密码锁

  我们宿舍经常忘带钥匙,所以自己用stc89c52弄个密码锁(其实用个stc12c2052那种20个脚的就可以了~),其实还可以加上修改密码的功能,再有可能的话加上那种非接触式ic卡,关于这个ic卡这个自己还不知怎么弄。

非常简单,就是在键盘扫描基础上加几个代码。

[sourcecode language="c"]

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar linshi,key;
sbit bibi=P3^4;
uchar code table[]={
 
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
 
                         };

void yanshi(uint x)
 {
  uchar j;
  uint i;
  for(i=x;i>0;i--)
   for(j=110;j>0;j--);
 }
void xianshi(uchar a)
 {
   P1=0xff;
  P2=table[a];
 }
void didi(uint a)
 {
  bibi=0;
  yanshi(a);
  bibi=1;
  yanshi(200);
 }

void scan()
 {
   uchar temp;
   P0=0xfe;
   temp=P0;
   temp=temp&0xf0;
   if(temp!=0xf0)
    {
    yanshi(10);
    temp=P0;
    temp=temp&0xf0;
    if(temp!=0xf0)
     {
      linshi=linshi+1;
       temp=P0;
      switch(temp)
       {
         case 0xee:
          key=0;
         break;
         case 0xde:
          key=1;
         break;
         case 0xbe:
          key=2;
         break;
         case 0x7e:
          key=3;
         break;
       }
      while(temp!=0xf0)
       {
         temp=P0;
        temp=temp&0xf0;
       }
      didi(50);
              
     }
   }
   P0=0xfd;
   temp=P0;
   temp=temp&0xf0;
   if(temp!=0xf0)
    {
    yanshi(10);
    temp=P0;
    temp=temp&0xf0;
    if(temp!=0xf0)
     {
      linshi=linshi+1;
       temp=P0;
      switch(temp)
       {
         case 0xed:
          key=4;
         break;
         case 0xdd:
          key=5;
         break;
         case 0xbd:
          key=6;
         break;
         case 0x7d:
          key=7;
         break;
       }
      while(temp!=0xf0)
       {
         temp=P0;
        temp=temp&0xf0;
       }
      didi(50);
              
     }
   }
   P0=0xfb;
   temp=P0;
   temp=temp&0xf0;
   if(temp!=0xf0)
    {
    yanshi(10);
    temp=P0;
    temp=temp&0xf0;
    if(temp!=0xf0)
     {
      linshi=linshi+1;
       temp=P0;
      switch(temp)
       {
         case 0xeb:
          key=8;
         break;
         case 0xdb:
          key=9;
         break;
         case 0xbb:
          key=0;
         break;
         case 0x7b:
          key=1;
         break;
       }
      while(temp!=0xf0)
       {
         temp=P0;
        temp=temp&0xf0;
       }
      didi(50);
              
     }
   }
   

 }

void main()
 {
  uchar pd[]={1,5,8,7,5,5};
  uchar haha[6];
  linshi=0;
  while(1)
   {
   
   scan();
   if(linshi==0)
    scan();
   if(linshi==1)
    {
     haha[0]=key;
     xianshi(haha[0]);
    }
   if(linshi==2)
    {
     haha[1]=key;
     xianshi(haha[1]);
    }
   if(linshi==3)
    {
     haha[2]=key;
     xianshi(haha[2]);
    }
   if(linshi==4)
    {
     haha[3]=key;
     xianshi(haha[3]);
    }
   if(linshi==5)
    {
     haha[4]=key;
     xianshi(haha[4]);
    }    
   if(linshi==6)
    {
     haha[5]=key;
     xianshi(haha[5]);
     if(haha[5]==pd[5]&&haha[4]==pd[4]&&haha[3]==pd[3]&&haha[2]==pd[2]&&haha[1]==pd[1]&&haha[0]==pd[0])
       didi(700);
     else
      {
       didi(700);
       didi(700);
      }
     linshi=0;
    }
       }
 }

[/sourcecode]

玩ds12c887遇到的两个问题

  自己用ds12c887做的时钟,遇到两个问题。1、电源正负极间不接104电容的话led显示会出乱,ds12c887好像对电源要求好像很高,稍微低于5V就读不了数据!2、遇到不小心接到交流5v的话,ds12c887内部就会停振,读的数据是乱的,且不走,又要重新开启!

键盘扫描

  看着书写的!

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^0;
sbit key2=P1^1;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar num;
void yans(uint);
void xians(uchar);
void keyscan();

 void main()
 {
  while(1)
  {
   keyscan();
   xians(num);

  }
 }

 void keyscan()
 {
   if(key1==0)
   {
    yans(10);
   if(key1==0)
   {
    num++;
    if(num==60)
     num=0;
    while(!key1); 
   }
   }
   if(key2==0)
   {
    yans(10);
   if(key2==0)
   {
    if(num==0)
     num=60;
     num--;
    while(!key2);
   }
   }  
 }

 void xians(uchar shenm)
 {
   uchar shi,ge;
   shi=shenm/10;
   ge=shenm%10;
        
   P1=0xfe;
   P2=table[shi];
   yans(5);
   P1=0xff;
   P2=table[ge];
   yans(5);

 }

 void yans(uint xms)
 {
  uint i,j;
  for(i=xms;i>0;i--)
   for(j=110;j>0;j--);
 }