历史上的今天
返回首页

历史上的今天

今天是:2024年12月25日(星期三)

正在发生

2020年12月25日 | 单片机多功能秒表语音播报

2020-12-25 来源:eefocus

单片机源码如下:
#include                 //头文件
#include
#define uchar unsigned char
#define uint unsigned int
sbit p1=P2^7;                //定义数码关位选
sbit p2=P2^6;
sbit p3=P2^5;
sbit p4=P2^4;
sbit dp=P0^7;
sbit yuyin=P1^0;         //开始按键
sbit kaishi=P1^1;         //开始按键
sbit jilu=P1^2;                //记录按键
sbit qingling=P1^3;        //清零按键
sbit fangxiang=P1^4;//方向按键
sbit shezhi=P1^5;        //设置按键
sbit zsd=P3^5;                  //指示灯
sbit fmq=P2^2;                //蜂鸣器
uchar shuju[4];                //数码管显示变量
uchar code data_7seg[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xab,0xa3};         //共阳数码管显示段码
uchar idata shuju_fen[10];   //保存记录的秒存储器
uchar idata shuju_miao[10];        //保存记录的10毫秒存储器
uchar count;count1;count2;count3,fx=0;ks=0;sz=0;ss=0;a,b;biaozhi=0;moshi=0;naozhong=0;sss=0;sjd=0;jiwei=0;jishu=0;xuhuan;chakan=0;jw=0;wz=1;         //变量
char fen,miao;fen1=0,miao1=0;  //设置是的变量
sbit         P_DATA    = P2^0;                        //定义数据传输端口对应语音芯片P03
uchar daima,bofang=0;
uchar ddd;

//一线,二线,三线有关
#define         H                  1        //定义1为高电平
#define         L                 0        //定义0为低电平

//////////////变量/////////////////
//bit         flag           = 1;
bit         B_DATA;                                                //传输数据一位
unsigned char          SB_DATA   = 0;                                //一字节公用数据缓存器
unsigned char          S_DATA    = 0x00;
void delay1s(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_();  //if Keil,require use intrins.h
}
void delay500ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=23;c>0;c--)
        for(b=152;b>0;b--)
            for(a=70;a>0;a--);
}
void delay5ms(void)   //误差 0us
{
    unsigned char a,b;
    for(b=19;b>0;b--)
        for(a=130;a>0;a--);
}
void delay200us(void)   //误差 0us
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=97;a>0;a--);
}
/*--------------------------------------
;模块名称:Line_1A(void)
;功    能:实现一线单字节低位在前串口通信函数
;入    参:无
;出    参:0           返回主函数
;-------------------------------------*/
void Line_1A(unsigned char dat)
{
        unsigned char i;
        
        
//********************************************************

        P_DATA = 0;

        delay5ms();                                   //拉低至少5ms

        B_DATA = dat&0X01;
        for(i=0;i<8;i++)
        {
                P_DATA = 1;                                //拉高数据传输线,准备传输数据
                if(B_DATA==0)
                {        /*表示逻辑电平0*/
                        delay200us();     // 延时200us
                        P_DATA = 0;
                        delay200us();            // 延时600us
                        delay200us();
                        delay200us();            
                }
                else
                {  /*表示逻辑电平1*/
                        delay200us();
                        delay200us();
                        delay200us();
                        P_DATA = 0;
                        delay200us();
                }
                dat = dat>>1;
                B_DATA = dat&0X01;
        }
        P_DATA = 1;                                        //拉高电平
}
void mp3()
{ if (yuyin==0)                    //置零按键按下
   { ET1=1;
     TR1=1;  
     if(fx==0)
     Line_1A(14);
         else
         Line_1A(13);
     delay1s();
         delay1s();
         if(fen/10==1)
         {Line_1A(10);delay500ms();

          if(fen%10>=1)
          {Line_1A(fen%10); delay500ms(); }
         }
         else
         if(fen/10>1)
         {Line_1A(fen/10);delay500ms();

      Line_1A(10);delay500ms();

      if(fen%10>=1)
          {Line_1A(fen%10); delay500ms(); }

         }
         else
         {Line_1A(fen%10);delay500ms();}

         Line_1A(11);
     delay500ms();

     if(miao/10==1)
         {Line_1A(10);delay500ms();

          if(miao%10>=1)
          {Line_1A(miao%10); delay500ms(); }
         }
         else
         if(miao/10>1)
         {Line_1A(miao/10);delay500ms();

      Line_1A(10);delay500ms();

      if(miao%10>=1)
          {Line_1A(miao%10); delay500ms(); }

         }
         else
         {Line_1A(miao%10);delay500ms();}

         Line_1A(12);
     delay500ms();

    }while(yuyin==0);
        ET1=0;
    TR1=0;  

}
void qudou(void)     //去抖延迟
{ int i;
   for(i=0;i<2400;i++);
}
void Delay1ms(unsigned int xs)                  //显示延迟程序
{        unsigned int i,j;
        for(i=0;i
        for(j=0;j<0;j++);
}
void xianshi()                 //显示程序
{  p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[0]];
   p1=1;p2=0;p3=0;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[1]];
   p1=0;p2=1;p3=0;p4=0;
   if(sss==0)
   dp=0;
   else
   dp=1;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[2]];
   p1=0;p2=0;p3=1;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[3]];
   p1=0;p2=0;p3=0;p4=1;
   Delay1ms(10);
   p1=0;p2=0;p3=0;p4=0;

   zsd=!fx;                   //方向指示灯
}
void chakanmoshi()                 //查看记录子程序
{if(jiwei==0) jw=0;
if(jiwei>0)
if(jiwei<=10) jw=jiwei;
if(jiwei>10)  jw=10;
wz=1;
sss=0;
while(chakan==1)
{if(jw==0)
  {shuju[0]=10;
   shuju[1]=11;
   shuju[2]=12;
   shuju[3]=10;
   sss=1;
  }
  else
{qingling=1;                   //按键按下查看上一数据
  if(qingling==0)                    
   { qudou();
     if(qingling==0)
    {wz++;
         if(wz>jw) wz=1;
    }while(qingling==0);
        }

  fangxiang=1;                   //按键按下查看下一数据
  if(fangxiang==0)                    
   { qudou();
     if(fangxiang==0)
    {wz--;
         if(wz<=0) wz=jw;
    }while(fangxiang==0);        
    }

  shezhi=1;                   //记录清零
  if(shezhi==0)                    
   { qudou();
     if(shezhi==0)
    {jiwei=0;jw=0;wz=1;
    }while(shezhi==0);
        }
  if(sss==0)
  {shuju[0]=shuju_fen[jw-wz]/10;  //显示查看的数据转成数码管显示数据
   shuju[1]=shuju_fen[jw-wz]%10;
   shuju[2]=shuju_miao[jw-wz]/10;
   shuju[3]=shuju_miao[jw-wz]%10;
  }
  else
  {shuju[0]=10;
   shuju[1]=wz/10;
   shuju[2]=wz%10;
   shuju[3]=10;
  }
}
xianshi();
jilu=1;                   //按下退出查看
    if(jilu==0)                    
   { qudou();
     if(jilu==0)
    {chakan=0;
    }while(jilu==0);
        }
}
chakan=0;sss=0;count3=0;
}
void key()
{ kaishi=1;                   //按下切换开始和暂停
  if(kaishi==0)                    
   { qudou();
     if(kaishi==0)
    {ks=!ks;   //ks是开始标志
    }while(kaishi==0);
        }

  if(ks==1)                  //开始状态
  if(fx==0)                  //正计时方向
  if(moshi==0)          //模式为秒表模式
  {jilu=1;                   //记录按键按下
  if(jilu==0)                //记录数据   
   { qudou();
     if(jilu==0)
    {jiwei++;           //把数据存储到存储器里
         for(xuhuan=0;xuhuan<=8;xuhuan++)
         {shuju_fen[9-xuhuan]=shuju_fen[8-xuhuan];
          shuju_miao[9-xuhuan]=shuju_miao[8-xuhuan];}
         shuju_fen[0]=fen;
         shuju_miao[0]=miao;
    }while(jilu==0);
        }}
   if(ks==0 && chakan==0)
   mp3();
   if(ks==0)          //暂停状态
   {jilu=1;                   //记录按键按下
    if(jilu==0)                    
   { qudou();
     if(jilu==0)
    {chakan=1;                //查看模式标志,准备进入查看记录子程序
    }while(jilu==0);
        }
   }
   if(chakan==1) chakanmoshi();          //进入查看子程序
  qingling=1;                   //清零按键按下,计时重新开始
  if(qingling==0)                    
   { qudou();
     if(qingling==0)
    {if(fx==0)
         {fen=0;miao=0;count=0;}
         else
         {fen=fen1;miao=miao1;count=0;}
    }while(qingling==0);
        }

if(ks==0)                         //暂停状态
{fangxiang=1;                   //方向按键按下,改变计时方向,即正计时和倒计时
  if(fangxiang==0)                    
   { qudou();
     if(fangxiang==0)
    {fx=!fx;                        //fx方向标志
         count=0;
         fen1=0,miao1=0;
         moshi=0;
    }while(fangxiang==0);
        }
  }
  if(ks==0)
  {
  shezhi=1;                   //设置按键按下
  if(shezhi==0)                    
   { qudou();
     if(shezhi==0)
    { sz=1;fen1=0,miao1=0;count1=0;           //进入设置子程序
    }while(shezhi==0);
        }
   }
}
void key1()          //设置时按键扫描程序
{ shezhi=1;                   //设置键按下
  if(shezhi==0)                    
   { qudou();
     if(shezhi==0)
    { sz++;                   //调整设置的目标
          if(sz==5)        sz=0;
    }while(shezhi==0);
        }

  jilu=1;                   //记录按键按下,在设置时功能是加1
  if(jilu==0)                    
   { qudou();
     if(jilu==0)
    {switch(sz)
         {case 1:a=fen1/10;b=fen1%10; a++;if(a>=10) a=0;fen1=a*10+b;break;
          case 2:a=fen1/10;b=fen1%10; b++;if(b>=10) b=0;fen1=a*10+b;break;
          case 3:a=miao1/10;b=miao1%10; a++;if(a>=10) a=0;miao1=a*10+b;break;
          case 4:a=miao1/10;b=miao1%10; b++;if(b>=10) b=0;miao1=a*10+b;break;
         }
    }while(jilu==0);
        }

  qingling=1;                   //清零按键按下,在设置时功能是减1
  if(qingling==0)                    
   { qudou();
     if(qingling==0)
    { switch(sz)
         {case 1:a=fen1/10;b=fen1%10; a--;if(a<0) a=9;fen1=a*10+b;break;
          case 2:a=fen1/10;b=fen1%10; b--;if(b<0) b=9;fen1=a*10+b;break;
          case 3:a=miao1/10;b=miao1%10; a--;if(a<0) a=9;miao1=a*10+b;break;
          case 4:a=miao1/10;b=miao1%10; b--;if(b<0) b=9;miao1=a*10+b;break;
         }
    }while(qingling==0);
        }

if(ks==0)
{fangxiang=1;                   //方向按键按下,在设置时功能是保存数据,并立即退出设置
  if(fangxiang==0)                    
   { qudou();
     if(fangxiang==0)
    { sz=0;
    }while(fangxiang==0);
        }
  }
}
void shuju_date()                //把要显示的数据转化成数码管显示的代码
{if(sz==0)
{shuju[0]=fen/10;
  shuju[1]=fen%10;
  shuju[2]=miao/10;
  shuju[3]=miao%10;}
else
{shuju[0]=fen1/10;
  shuju[1]=fen1%10;
  shuju[2]=miao1/10;
  shuju[3]=miao1%10;
  if(ss==1)
  {if(sz==1) shuju[0]=10;
   else if(sz==2) shuju[1]=10;
   else if(sz==3) shuju[2]=10;
   else if(sz==4) shuju[3]=10;
  }
}
}
void panduan()                           //模式判断子程序
{biaozhi=0;                                  //进入判断标志清零
if(fx==0)                                  //方向为正计时
{if(miao1==0)                          
{if(fen1==0) moshi=0;         //设置的时间为0,模式就为0:秒表模式
  else moshi=1;fen=0;miao=0;}                //设置的时间不为0,模式就为1:定时模式
else moshi=1;fen=0;miao=0;}                        //设置的时间不为0,模式就为1:定时模式
else
{fen=fen1;miao=miao1;}          //方向为倒计时,模式就为2:倒计时模式
}
void jiegou()          //结果处理子程序
{if(fx==0)
{if(moshi==0)          //秒表模式
{while(fen>=100)        //计时超过范围,显示“----”
  {jishu=1;
   if(sss==0)
  {p1=0;p2=0;p3=0;p4=0;
   P0=0xbf;                                                   //显示“----”
   p1=1;p2=0;p3=0;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=0xbf;
   p1=0;p2=1;p3=0;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;                                                   
   P0=0xbf;
   p1=0;p2=0;p3=1;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=0xbf;
   p1=0;p2=0;p3=0;p4=1;
   Delay1ms(10);
   p1=0;p2=0;p3=0;p4=0;
  }
  else
  {p1=0;p2=0;p3=0;p4=0;
   P0=0xff;                                                   //显示“----”
   p1=1;p2=0;p3=0;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=0xff;
   p1=0;p2=1;p3=0;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;                                                   
   P0=0xff;
   p1=0;p2=0;p3=1;p4=0;
   Delay1ms(10);

   p1=0;p2=0;p3=0;p4=0;
   P0=0xff;
   p1=0;p2=0;p3=0;p4=1;
   Delay1ms(10);
   p1=0;p2=0;p3=0;p4=0;
  }

   fmq=sss;

   kaishi=1;                   //开始按键按下
   if(kaishi==0)                    
   { qudou();
     if(kaishi==0)
    {ks=10;fen=0;miao=0;sss=0;jishu=0;        //计时清零,并返回秒表模式,等待开始计时
    }while(kaishi==0);
        }
  }
  fmq=1;
  count2=0;
  sss=0;
}
else                           //定时模式
{if(miao==miao1)
  if(fen==fen1)  naozhong=1; //时间到,闹钟标志为1,闹钟开启
  while(naozhong==1)        //进入闹钟开启状态
  {        jishu=1;
     ks=0;                                //计时停止
         if(sss==0)                         //以下显示实现显示闪烁(代码)
        {shuju[0]=fen/10;
         shuju[1]=fen%10;
         shuju[2]=miao/10;
         shuju[3]=miao%10;
         }
        else
        {shuju[0]=10;
         shuju[1]=10;
         shuju[2]=10;
         shuju[3]=10;
        }
        fmq=sss;
        xianshi();                   //显示
        kaishi=1;                   //开始按键按下
   if(kaishi==0)                    
   { qudou();
     if(kaishi==0)
    {naozhong=0;fen=0;miao=0;sss=0;jishu=0;                  //退出
    }while(kaishi==0);
        }
  }
  fmq=1;
  count2=0;
  sss=0;
}
}
else
{if(ks==1)                //开始状态
  {if(fen==0)
   if(miao==0) sjd=1;} //倒计时结束
  while(sjd==1)                   //时间到处理
  {        jishu=1;
     ks=0;                                //计时停止
         if(sss==0)                          //以下显示实现显示闪烁(代码)
        {shuju[0]=fen/10;
         shuju[1]=fen%10;
         shuju[2]=miao/10;
         shuju[3]=miao%10;
         }
        else
        {shuju[0]=10;
         shuju[1]=10;
         shuju[2]=10;
         shuju[3]=10;
        }
        fmq=sss;
        xianshi();                   //显示
        kaishi=1;                   //开始按键按下
   if(kaishi==0)                    
   { qudou();
     if(kaishi==0)
    {sjd=0;fen=fen1;miao=miao1;sss=0;jishu=0;         //退出
    }while(kaishi==0);
        }
  }
   fmq=1;
  count2=0;
  sss=0;
}
}

void main()                //主程序
{      TMOD=0x11;                     //定义中断,用来计时
       TH0=0x0D8;
       TL0=0x0F0;
       TR0=1;      
       ET0=1;  
           TH1=0x0FC;
       TL1=0x18;
       ET1=0;
       TR1=0;                                                      
       EA=1;                     
       while(1)      
       {shuju_date();         //数据转化成显示代码子程序
            xianshi();                 //显示程序
            key();                         //按键扫描
                while(sz>0)                 //进入设置模式
                {biaozhi=1;                 //退出设置时,进入判断标志
                 key1();                 //设置按键扫描
                 shuju_date();         //数据转化成显示代码子程序
             xianshi();                 //显示程序
                }
                if(biaozhi==1) panduan();  //退出设置时,进入判断模式
                jiegou();                //计时结果处理
           }
}
void time0(void) interrupt 1         //中断计时

{     TH0 = 0x0D8;
       TL0 = 0x0F0;
  if(fx==1)  
  if(ks==1)
  {if(fen==0)
   if(miao==0) {sjd=1;ks=0;}}
      if(ks==1)
          {count++;
        if(count==1)  
        { count=0;
              if(fx==0)
                    {miao++;
                   if(miao>=100) {miao=0;fen++;}  //  正计时
                  }
                  else
                  {miao--;
                   if(miao<0) {fen--;miao=99;}         //倒计时
                   }
        }
           }

           if(sz>0)                                        //设置时闪烁
           {count1++;
        if(count1==100)  
                {ss=!ss;
                 count1=0;
                }
           }

           if(jishu==1)
           {count2++;
        if(count2==100)  
                {sss=!sss;
                 count2=0;
                }
           }


           if(jw>0)                                        //查看记录是,显示显示切换
           {count3++;
        if(count3==100)  
                {sss=!sss;
                 count3=0;
                }
           }
}
void Timer1Interrupt(void) interrupt 3
{
  TH1 = 0x0FC;
  TL1 = 0x18;
  switch(ddd)
  {case 0:
   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[0]];
   p1=1;p2=0;p3=0;p4=0;
   break;

   case 1:
   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[1]];
   p1=0;p2=1;p3=0;p4=0;
   if(data_7seg[shuju[1]]==0xab)
   dp=1;
   else         if(chakan==1 && sss==1)
   dp=1;
   else
   dp=0;
   break;

   case 2:
   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[2]];
   p1=0;p2=0;p3=1;p4=0;
   break;

   case 3:
   p1=0;p2=0;p3=0;p4=0;
   P0=data_7seg[shuju[3]];
   p1=0;p2=0;p3=0;p4=1;
   break;
   }
   ddd++;
   if(ddd==4) ddd=0;
}

推荐阅读

史海拾趣

ADLINK公司的发展小趣事

ADLINK 是一家全球领先的嵌入式计算解决方案提供商,以下是该公司发展的五个相关故事:

  1. 公司创立与初期发展: ADLINK 成立于1995年,总部位于台湾新北市。公司专注于为工业自动化、通讯、医疗保健、交通运输等领域提供高性能的嵌入式计算和连接解决方案。在创立初期,ADLINK 主要专注于硬件产品的开发和销售,如嵌入式计算板卡、模块、工业计算机等。

  2. 技术创新与产品扩展: 随着市场需求的不断变化和技术的发展,ADLINK 不断进行技术创新,积极拓展产品线。除了传统的嵌入式计算硬件产品外,公司还推出了嵌入式操作系统、软件工具和解决方案等,以满足客户在物联网、人工智能、工业4.0 等领域的需求。

  3. 全球业务布局与国际化发展: ADLINK 在全球范围内建立了广泛的销售网络和服务体系,拥有多个全球研发和生产基地,并在美国、欧洲、亚洲等地设有分支机构和办事处。通过与全球领先企业的合作和市场拓展,ADLINK 的产品和解决方案已经覆盖了全球100多个国家和地区。

  4. 合作伙伴关系与客户案例: ADLINK 与世界各地的行业领先企业建立了紧密的合作伙伴关系,共同开发创新性的解决方案,应用于工业自动化、智能交通、医疗保健等领域。例如,公司与德国西门子、美国英特尔等知名企业合作,在工业物联网、边缘计算等领域取得了一系列成功案例。

  5. 未来展望与持续发展: 面对快速变化的市场环境和日益激烈的竞争,ADLINK 将继续致力于技术创新和产品研发,不断提升解决方案的质量和性能,以满足客户日益增长的需求。公司将继续秉承“创新、合作、可靠”的核心价值观,努力成为全球领先的嵌入式计算和连接解决方案提供商。

E. Dold & Söhne KG公司的发展小趣事

随着公司实力的不断增强,E. Dold & Söhne KG公司开始积极拓展海外市场。公司先后在多个国家和地区设立了分支机构或办事处,与当地企业开展合作,共同开发市场。此外,公司还积极参与国际展会和交流活动,与国际同行交流技术和管理经验,不断提升自身的竞争力。

Gazelle Microcircuits Inc公司的发展小趣事
随着半导体技术的进步和元件的更新换代,许多原本需要负电压供电的电路现在可以通过正电压供电的电路来实现相同或更好的功能。
HCH Co公司的发展小趣事

背景:HCH Co公司自成立以来,始终将技术创新作为企业发展的核心驱动力。在电子行业快速发展的背景下,公司投入大量资源于研发领域,成功研发出一系列具有自主知识产权的核心技术。其中,一项关于高效能电源管理芯片的突破,不仅大幅提升了电子产品的续航能力,还显著降低了能耗,赢得了市场的广泛认可。

发展:随着技术的不断成熟和市场需求的增长,HCH Co公司的电源管理芯片迅速占领市场份额,成为众多知名电子产品制造商的首选供应商。公司的技术创新不仅推动了自身业务的快速增长,也为整个电子行业的节能减排和可持续发展做出了积极贡献。

EOZ Secme公司的发展小趣事

在电子产品市场竞争日益激烈的背景下,EOZ Secme始终坚守品质至上的原则。公司从原材料采购、生产流程到售后服务都进行严格把控,确保每一件产品都符合高标准的质量要求。这种对品质的执着追求让EOZ Secme的产品在市场上赢得了良好的口碑,也使其品牌价值得到了显著提升。

Bias Power公司的发展小趣事

在竞争激烈的电子行业中,Bias Power公司始终坚持质量至上的原则。公司建立了严格的质量控制体系,从原材料采购到生产加工、产品测试等各个环节都进行严格把关。此外,公司还引入了先进的生产设备和技术,确保产品的稳定性和可靠性。

由于公司对产品质量的严格把控,Bias Power公司的产品在市场上享有很高的声誉。许多知名企业都选择与其合作,将其产品应用于关键领域和重要项目中。这种信赖和认可为Bias Power公司的发展提供了有力支持。

问答坊 | AI 解惑

ADF7020远距离无线数传模块

1.微发射功率:最大17dbm(50mW)的发射功率。 2. 工作载频频率470-490MHz,无需申请频点。 3.专业工业级嵌入式设计,体积小(32.5×20×5mm)。 4.基于GFSK调制方式的高效前向纠错编码方式提高高抗干扰能力和低误码率。 5.传输距离远。在视距情 ...…

查看全部问答>

从哪开始学单片机与ARM7

公司现在有2个产品一个是ARM7的还有个是SyncMOS sm8958A的板子上还有个Atmel ATF1508AS,现在要我接手,我该从哪学起呢?我以前是做Windows下软件开发的会Java和C#,C也会,但很久没用了,重新上手的话,估计时间不长。还望各位解答,谢谢。…

查看全部问答>

C8051 FO20 SPI口怎么配置

C8051 FO20 SPI口怎么配置 最好有源代码 …

查看全部问答>

什么时候转ARM,DSP比较好????

工作一年了,主要是编写单片机程序和VC的小运用程序。感觉单片机学得差不多了(也许是自我感觉良好而已),想学硬件电路设计,但是公司不许。在这个公司呆着也学不到什么东西了,想换换地方转去学ARM,DSP,硬件。但是又有很多东西不懂,担心是不是 ...…

查看全部问答>

TCPIP连接请求报文问题

我在EASYARM2200上集成TCPIP,在实时轮询时可以稳定的运行,可是我改成中断触发模式后,我的板向PC机发送连接请求,发现前句分钟PC应答的报文总是ACK,过了好几分钟才变成SYN+ACK,有没有哪位大侠了解的?…

查看全部问答>

端口P1使用问题

我把P1端口的P1.7作为中断用,下降沿有效,并且检测到P1IFG置 0x80, 但是while(P1IFG&0X80)或while((P1IN&0X80)==0)就不能用,进入不了循环 换成while(!(P1IN&BIT0))就可以,,这是为什么…

查看全部问答>

求教

请大家指点一下小弟,我想学arm,但对于此却真的不知从何抓起,我不知道选哪本书,选哪个型,希望得到指点。 我学的是51.…

查看全部问答>

关于149模拟IIC通信的怪问题,请牛人帮忙啊

我现在在调一个光传感器,它是IIC通信的,直接与单片机IO相连,没有其他硬件结构,我之前在51开发板上调通了,效果很好。现在转到149的板子上就一直出不来,我把具体情况说下哈,还请大牛把把脉啊。 一:51调通了,再加上除了传感器没有其他硬件结 ...…

查看全部问答>

分享一本射频书,非常不成

射频电路设计-理论与应用 其实射频不难,不信看看这本书,肯定你看懂。…

查看全部问答>

琢磨琢磨

本帖最后由 paulhyde 于 2014-9-15 03:09 编辑 那个无线电能传输装置的驱动电路有没有人能告诉一下,还有电能变换是什么意思?  …

查看全部问答>