找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8034|回复: 8
打印 上一主题 下一主题
收起左侧

实用性强的8路单片机抢答器制作 带程序电路图pcb图

  [复制链接]
跳转到指定楼层
楼主
ID:76686 发表于 2015-4-11 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       这款实用性强的8路单片机抢答器,使用的是AT89S52单片机,四位数码管作为抢答、回答时间的倒计时以及计分显示用。该制作从实用性出发,8个按键都是分开来做的,做出来的东西是能够使用的而不是模型。
       这款实用性强的8路单片机抢答器主要的功能:可以显示抢答、回答时间的倒计时,可以调节抢答、回答时间,能够提示犯规抢答,可以计分,可以实现软复位。
       全部资料打包下载地址 实用性强的8路单片机抢答器.rar (169.95 KB, 下载次数: 156)








源程序如下:
  1. /*八路抢答器-----能够显示抢答、回答时间倒计时,能够调节抢答、回答时间,能够报警犯规抢答,可以计分,可以实现软复位*/
  2. #include<reg52.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit fmq=P3^6;
  6. sbit Key_Start=P3^4;//开始键,时间设置时+
  7. sbit Key_Stop=P3^5;//停止键,时间设置时-
  8. sbit Key_Restart=P3^0;//复位键
  9. sbit Key_set_Q=P3^2;//抢答时间设置键
  10. sbit Key_set_H=P3^3;//回答时间设置键
  11. sbit led=P3^7;//抢答LED提示
  12. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6,0xf0,0xb6};//段码表
  13. uchar code table_char[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc7,0xc0,0x92,0x86,0xbf,0xb7,0xff,0xb9,0x8f};//0-9 L O S E -
  14. uchar  table_score[9]={0,50,50,50,50,50,50,50,50};//记分数组,初设值50分
  15. void delay(uint z);//延时函数声明
  16. void init();//初始化函数声明
  17. void display(uchar XuanShou,uchar time);//显示数字函数声明
  18. void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 );//显示字符函数声明
  19. void display_set(uchar char_1,uchar time,uchar char_2);//时间设置闪动显示函数声明
  20. void display_score(uchar xs_num);//分数查询显示函数
  21. void beep();//蜂鸣器函数
  22. void beep_last();//蜂鸣器特殊报警
  23. void LED();//提示灯函数
  24. uchar QiangDa_time,HuiDa_time,QiangDa_time_temp=20,HuiDa_time_temp=30;//抢答时间、回答时间变量
  25. uchar count_0,count_1;//定时中计数用的
  26. uint shan_count=0;//闪动显示计数用
  27. void main()
  28. {
  29.         uchar AnJian,ShuJu,XuanShou_num;
  30. Top:init();//初始化
  31.         XuanShou_num=1;//为分数查询做好准备
  32.         while(1)
  33.         {
  34.                 display(10,0);//显示一杠
  35.                 ShuJu=P1;
  36.                 if(ShuJu!=0xff)//犯规抢答!!
  37.                 {
  38. //                        delay(10);
  39. //                        if(ShuJu!=0xff)
  40. //                        {
  41.                                 AnJian=ShuJu;
  42.                                 switch(AnJian)//取出选手编号
  43.                                 {
  44.                                         case 0xfe :        XuanShou_num=1;break;//1111 1110
  45.                                         case 0xfd :        XuanShou_num=2;break;//1111 1101
  46.                                         case 0xfb :        XuanShou_num=3;break;//1111 1011
  47.                                         case 0xf7 :        XuanShou_num=4;break;//1111 0111
  48.                                         case 0xef :        XuanShou_num=5;break;//1110 1111
  49.                                         case 0xdf :        XuanShou_num=6;break;//1101 1111
  50.                                         case 0xbf :        XuanShou_num=7;break;//1011 1111
  51.                                         case 0x7f :        XuanShou_num=8;break;//0111 1111
  52.                                         default : goto LOSE;//无法显示了,有两个以上的键同时按下了!!不过这种概率相当小
  53.                                 }
  54.                                 while(1)
  55.                                 {
  56.                                         display_char(13,14,14,XuanShou_num);//闪动显示犯规选手并且报警
  57.                                         if(shan_count==50)
  58.                                         {
  59.                                                 beep();
  60.                                         }
  61.                                         if(Key_Stop==0)
  62.                                         {
  63.                                                 delay(10);
  64.                                                 if(Key_Stop==0)
  65.                                                 {
  66.                                                         beep();
  67.                                                         table_score[XuanShou_num]--;//扣分
  68.                                                 }
  69.                                         }
  70.                                         while(!Key_Stop)
  71.                                         {
  72.                                                 display_char(14,14,1,16);//按键不放开的情况下显示-1
  73.                                                 shan_count=1;//调用的是闪动显示函数,但是不让其闪动
  74.                                         }
  75.                                         if(Key_Restart==0)
  76.                                         {
  77.                                                 delay(10);
  78.                                                 if(Key_Restart==0)
  79.                                                 {
  80.                                                         beep();
  81.                                                         goto Top;//热复位
  82.                                                 }
  83.                                         }
  84.                                 }
  85. //                        }
  86.                 }
  87.                 if(Key_Start==0)
  88.                 {
  89.                         delay(10);
  90.                         if(Key_Start==0)//主持人按下抢答键,抢答正式开始!
  91.                         {
  92.                                 QiangDa_time=QiangDa_time_temp;
  93.                                 HuiDa_time=HuiDa_time_temp;
  94.                                 beep();
  95.                                 TR1=1;//抢答时间开始倒计时
  96.                                 break;//跳出犯规抢答查询循环
  97.                         }
  98.                 }
  99. //一下为查分程序测试
  100.                  if(Key_Stop==0)
  101.                  {
  102.                          delay(10);
  103.                         if(Key_Stop==0)//进入分数查询显示
  104.                         {
  105.                                 beep();
  106.                                 while(!Key_Stop);
  107.                                 while(1)
  108.                                 {
  109.                                         display_score(XuanShou_num);
  110.                                         if(Key_Start==0)
  111.                                         {
  112.                                                 delay(10);
  113.                                                 if(Key_Start==0)
  114.                                                 {
  115.                                                         XuanShou_num++;
  116.                                                         if(XuanShou_num==9) XuanShou_num=1;
  117.                                                 }
  118.                                         }
  119.                                         while(!Key_Start);//等待按键释放
  120.                                         if(Key_Stop==0)
  121.                                         {
  122.                                                 delay(10);
  123.                                                 if(Key_Stop==0)
  124.                                                 {
  125.                                                         XuanShou_num--;
  126.                                                         if(XuanShou_num==0) XuanShou_num=8;
  127.                                                 }
  128.                                         }
  129.                                         while(!Key_Stop);//等待按键释放
  130.                                    if(Key_Restart==0)
  131.                                         {
  132.                                                 delay(10);
  133.                                                 if(Key_Restart==0)
  134.                                                 {
  135.                                                         beep();
  136.                                                         goto Top;//热复位
  137.                                                 }
  138.                                         }
  139.                                 }
  140.                         }
  141.                  }
  142.         }
  143.         while(1) //查询是否有按键按下,进入抢答循环
  144.         {
  145.                 display(10,QiangDa_time);//显示抢答倒计时
  146.                 if(QiangDa_time==0)
  147.                 {
  148. //                        beep();
  149.                         TR1=0;//关闭定时器1
  150. LOSE:                while(1)
  151.                         {
  152.                                 display_char(10,11,12,13); //显示lose 字符
  153.                                 if(Key_Restart==0)
  154.                                 {
  155.                                         delay(10);
  156.                                         if(Key_Restart==0)//热复位键,从头开始下一轮
  157.                                         {
  158.                                                 beep();
  159.                                                 goto Top;
  160.                                         }
  161.                                 }
  162.                         }
  163.                 }
  164.                 ShuJu=P1;//把P1口的数据送给变量
  165.                 if(ShuJu!=0xff)//有按键按下
  166.                 {
  167. //                        delay(10);
  168. //                        if(ShuJu!=0xff)//确定有按键按下
  169. //                        {
  170.                                  AnJian=ShuJu;//传递数据扫描值
  171. //                                 TR0=1;//启动定时器0
  172.                                  TR1=0;//关闭定时器1
  173.                                  break;//不再进行查询是否有按键按下了
  174. //                        }
  175.                 }
  176.         }
  177.         switch(AnJian)//取出选手编号
  178.         {
  179.                 case 0xfe :        XuanShou_num=1;beep();LED();break;//1111 1110
  180.                 case 0xfd :        XuanShou_num=2;beep();LED();break;//1111 1101
  181.                 case 0xfb :        XuanShou_num=3;beep();LED();break;//1111 1011
  182.                 case 0xf7 :        XuanShou_num=4;beep();LED();break;//1111 0111
  183.                 case 0xef :        XuanShou_num=5;beep();LED();break;//1110 1111
  184.                 case 0xdf :        XuanShou_num=6;beep();LED();break;//1101 1111
  185.                 case 0xbf :        XuanShou_num=7;beep();LED();break;//1011 1111
  186.                 case 0x7f :        XuanShou_num=8;beep();LED();break;//0111 1111
  187.                 default : goto LOSE;//无法显示了,有两个以上的键同时按下了!!不过这种概率相当小
  188.         }
  189.         TR0=1;//启动定时器0(在这里启动比在前面好)
  190.         while(1)
  191.         {
  192.                 display(XuanShou_num,HuiDa_time);//显示选手编号和回答倒计时
  193.                 if(HuiDa_time==0)
  194.                 {
  195.                         TR0=0;//关闭定时器0
  196.                         goto LOSE;//跳到显示lose字符那里
  197.                 }
  198.                 if(Key_Stop==0)
  199.                 {
  200.                         delay(30);
  201.                         if(Key_Stop==0)//停止键按下
  202.                         {
  203.                                 beep();
  204.                                 TR0=0;//关闭定时器0,选手开始回答
  205.                                 while(!Key_Stop);
  206.                                 while(1) //在显示选手回答倒计时时只有在stop按键按下时,才可按复位键
  207.                                 {
  208.                                         display(XuanShou_num,HuiDa_time);//显示选手编号和回答倒计时
  209.                                         if(Key_Start==0)
  210.                                         {
  211.                                                 delay(10);
  212.                                                 if(Key_Start==0)
  213.                                                 {
  214.                                                         beep();
  215.                                                         table_score[XuanShou_num]++;//加分
  216.                                                 }
  217.                                         }
  218.                                         while(!Key_Start)
  219.                                         {
  220.                                                 display_char(17,18,1,16);//按键不放开的情况下显示+1
  221.                                                 shan_count=1;//调用的是闪动显示函数,但是不让其闪动
  222.                                         }
  223.                                         if(Key_Stop==0)
  224.                                         {
  225.                                                 delay(10);
  226.                                                 if(Key_Stop==0)
  227.                                                 {
  228.                                                         beep();
  229.                                                         table_score[XuanShou_num]--;//扣分
  230.                                                 }
  231.                                         }
  232.                                         while(!Key_Stop)
  233.                                         {
  234.                                                 display_char(14,14,1,16);//按键不放开的情况下显示-1
  235.                                                 shan_count=1;//调用的是闪动显示函数,但是不让其闪动
  236.                                         }
  237.                                         if(Key_Restart==0)
  238.                                         {
  239.                                                 delay(10);
  240.                                                 if(Key_Restart==0)//热复位键,从头开始下一轮
  241.                                                 {
  242.                                                         beep();
  243.                                                         goto Top;
  244.                                                 }
  245.                                         }
  246.                                 }
  247.                         }
  248.                 }
  249. //                else
  250. /*                if(Key_Restart==0)
  251.                 {
  252.                         delay(10);
  253.                         if(Key_Restart==0)//热复位键,从头开始下一轮
  254.                         {
  255.                                 beep();
  256.                                 goto Top;
  257.                         }
  258.                 } */
  259.         }
  260.        
  261. }

  262. void delay(uint z)//1ms基准延时
  263. {
  264.         uint x,y;
  265.         for(x=z;x>0;x--)
  266.                 for(y=110;y>0;y--);
  267. }

  268. void init()//初始化函数
  269. {
  270. //        P1=0xff
  271.         EA=1;//开总中断;
  272.         TMOD=0x11;//定时器工作方式1,16位定时计数器
  273.         TH0=(65536-50000)/256;//50us
  274.         TL0=(65536-50000)%256;
  275.         ET0=1;//开定时器0中断(暂时不启动定时器)

  276. //        TMOD=0x01;//定时器工作方式1,16位定时计数器
  277.         TH1=(65536-50000)/256;//50us
  278.         TL1=(65536-50000)%256;
  279.         ET1=1;//开定时器0中断(暂时不启动定时器)

  280.         EX0=1;//启动外中断0
  281.         EX1=1;//启动外中断1

  282.         P1=0xff;//读P1口的数据要先置1准备
  283.         count_0=0;//定时器中的计数清零
  284.         count_1=0;
  285.         shan_count=0;
  286. }

  287. void display(uchar XuanShou,uchar time)//显示数字的函数
  288. {

  289.                 P2=0x7f;//0111 1111最后一位数码管亮
  290.                 P0=table[XuanShou];//选手编号
  291.                 delay(1);
  292.                 P2=0x7f;//0111 1111
  293.                 P0=0xff;//消余辉
  294.                 delay(1);
  295.        
  296.                 P2=0xdf;//1101 1111
  297.                 P0=table[time%10];//时间的个位
  298.                 delay(1);
  299.                 P2=0xdf;//0111 1111
  300.                 P0=0xff;//消余辉
  301.                 delay(1);
  302.        
  303.                 P2=0xef;// 1110 1111
  304.                 P0=table[time/10];//时间的十位
  305.                 delay(1);
  306.                 P2=0xef;//0111 1111
  307.                 P0=0xff;//消余辉
  308.                 delay(1);
  309. }

  310. void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 )//闪动!显示字符的函数
  311. {
  312.         shan_count++;
  313.         if(shan_count==150)        shan_count=0;
  314.          if(shan_count>0&&shan_count<50)
  315.          {
  316.                 P2=0x7f;//0111 1111
  317.                 P0=table_char[char_4];
  318.                 delay(1);
  319.                 P2=0x7f;//0111 1111
  320.                 P0=0xff;
  321.                 delay(1);
  322.        
  323.                 P2=0xbf;//1011 1111
  324.                 P0=table_char[char_3];
  325.                 delay(1);
  326.                 P2=0xbf;//1011 1111
  327.                 P0=0xff;
  328.                 delay(1);
  329.        
  330.                 P2=0xdf;//1101 1111
  331.                 P0=table_char[char_2];
  332.                 delay(1);
  333.                 P2=0xdf;//1101 1111
  334.                 P0=0xff;
  335.                 delay(1);
  336.        
  337.                 P2=0xef;//1110 1111
  338.                 P0=table_char[char_1];
  339.                 delay(1);
  340.                 P2=0xef;//1110 1111
  341.                 P0=0xff;
  342.                 delay(1);
  343.         }
  344.         else
  345.         {
  346.                  P2=0x7f;//0111 1111
  347.                 P0=0xff;
  348.                 delay(1);

  349.                 P2=0xbf;//
  350.                 P0=0xff;
  351.                 delay(1);

  352.                 P2=0xdf;//
  353.                 P0=0xff;
  354.                 delay(1);

  355.                 P2=0xef;//
  356.                 P0=0xff;
  357.                 delay(1);
  358.         }

  359. }
  360. void display_set(uchar char_1,uchar time,uchar char_2)//时间设置的闪动显示
  361. {
  362.         shan_count++;
  363.         if(shan_count==120)        shan_count=0;
  364.          if(shan_count>0&&shan_count<40)
  365.          {
  366.                  P2=0x7f;//0111 1111最后一位数码管亮
  367.                 P0=table[char_2];//显示一个符号
  368.                 delay(1);
  369.                 P2=0x7f;//0111 1111
  370.                 P0=0xff;//消余辉
  371.                 delay(1);

  372.                 P2=0xbf;//1011 1111
  373.                 P0=table[time%10];//时间的个位
  374.                 delay(1);
  375.                 P2=0xbf;//1011 1111
  376.                 P0=0xff;//消余辉
  377.                 delay(1);
  378.        
  379.                 P2=0xdf;//1101 1111
  380.                 P0=table[time/10];//时间的十位
  381.                 delay(1);
  382.                 P2=0xdf;//1101 1111
  383.                 P0=0xff;//消余辉
  384.                 delay(1);
  385.        
  386.                 P2=0xef;// 1110 1111
  387.                 P0=table[char_1];//显示一个符号
  388.                 delay(1);
  389.                 P2=0xef;//1110 1111
  390.                 P0=0xff;//消余辉
  391.                 delay(1);
  392.          }
  393.          else
  394.          {
  395.                  P2=0x7f;//0111 1111
  396.                 P0=table[char_2];
  397.                 delay(1);

  398.                 P2=0xbf;//
  399.                 P0=0xff;
  400.                 delay(1);

  401.                 P2=0xdf;//
  402.                 P0=0xff;
  403.                 delay(1);

  404.                 P2=0xef;//
  405.                 P0=table[char_1];
  406.                 delay(1);
  407.          }
  408. }
  409. void display_score(uchar xs_num)//分数查询显示函数
  410. {
  411.                 P2=0x7f;//0111 1111最后一位数码管亮
  412.                 P0=table[(table_score[xs_num]%10)];//分数的个位
  413.                 delay(1);
  414.                 P2=0x7f;//0111 1111
  415.                 P0=0xff;//消余辉
  416.                 delay(1);

  417.                 P2=0xbf;//1011 1111
  418.                 P0=table[(table_score[xs_num]/10)];//分数的十位
  419.                 delay(1);
  420.                 P2=0xbf;//1011 1111
  421.                 P0=0xff;//消余辉
  422.                 delay(1);
  423.        
  424.                 P2=0xdf;//1101 1111
  425.                 P0=table_char[15];//间隔符号
  426.                 delay(1);
  427.                 P2=0xdf;//1101 1111
  428.                 P0=0xff;//消余辉
  429.                 delay(1);
  430.        
  431.                 P2=0xef;// 1110 1111
  432.                 P0=table[xs_num];//选手编号
  433.                 delay(1);
  434.                 P2=0xef;//1110 1111
  435.                 P0=0xff;//消余辉
  436.                 delay(1);
  437. }
  438. void beep()        //有源蜂鸣器函数
  439. {
  440.          fmq=0;
  441.          delay(80);
  442.          fmq=1;
  443. }
  444. void beep_last()//最后一声特殊声调
  445. {
  446.          fmq=0;
  447.          delay(300);
  448.          fmq=1;
  449. }
  450. void LED()
  451. {
  452.         led=0;
  453.         delay(150);
  454.         led=1;
  455. }
  456. void T0_time() interrupt 1//定时器0中断函数_回答时间
  457. {
  458.         TH0=(65536-50000)/256;//50ms
  459.         TL0=(65536-50000)%256;//马上重装初值,以免有误差
  460.         if(count_0==20)
  461.         {
  462.                 count_0=0;
  463.                 HuiDa_time--;
  464.                 if(HuiDa_time<=5)
  465.                 {
  466.                         if(HuiDa_time==0)
  467.                         {
  468.                                 beep_last();//最后一声特殊警告
  469.                         }
  470.                         beep();
  471.                 }

  472.         }
  473.         count_0++;
  474.        
  475. }

  476. void T1_time() interrupt 3//定时器1中断函数_抢答时间
  477. {
  478.         TH1=(65536-50000)/256;//50us
  479.         TL1=(65536-50000)%256;//马上重装初值,这样在后面调用beep()函数时就不会影响定时器的准确计时了
  480.         if(count_1==20)
  481.         {
  482.                 count_1=0;
  483.                 QiangDa_time--;
  484.                 if(QiangDa_time<=5)
  485.                 {
  486.                         if(QiangDa_time==0)
  487.                         {
  488.                                 beep_last();//最后一声警告
  489.                         }
  490.                         else
  491.                         beep();
  492.                 }
  493.         }
  494.         count_1++;       
  495. }

  496. void EX0_set_QiangDa_time()        interrupt 0 //外中断0,设置抢答时间
  497. {
  498.         delay(10);//消抖一下
  499.         if(Key_set_Q==0)
  500.         {
  501.                 beep();
  502.                 while(1)
  503.                 {
  504. //                        display(11,QiangDa_time_temp);
  505. //                        delay(100);//闪动效果
  506.                         display_set(12,QiangDa_time_temp,13);//调用时间设置闪动显示函数,效果为 [时间]
  507.                         if(Key_Start==0)//时间+1键
  508.                         {
  509.                                  delay(10);
  510.                                  if(Key_Start==0)
  511.                                  {
  512.                                          QiangDa_time_temp++;
  513.                                         if(QiangDa_time_temp==100)
  514.                                         {
  515.                                                 QiangDa_time_temp=1;
  516.                                         }
  517.                                  }
  518.                         }
  519.                         while(!Key_Start);//等待按键释放
  520. //                        else
  521.                         if(Key_Stop==0)//时间-1键
  522.                         {
  523.                                  delay(10);
  524.                                  if(Key_Stop==0)
  525.                                  {
  526.                                          QiangDa_time_temp--;
  527.                                         if(QiangDa_time_temp==0)
  528.                                         {
  529.                                                 QiangDa_time_temp=99;
  530.                                         }
  531.                                  }
  532.                         }
  533.                         while(!Key_Stop);//等待按键释放
  534. //                        else
  535.                         if(Key_Restart==0)
  536.                         {
  537.                                 if(Key_Restart==0)
  538.                                 {
  539.                                         beep();
  540.                                         break;
  541.                                 }
  542.                         }
  543.                 }
  544.         }
  545. }

  546. void EX1_set_HuiDa_time()        interrupt 2 //外中断1,设置回答时间
  547. {
  548.         delay(10);//消抖一下
  549.         if(Key_set_H==0)
  550.         {
  551.                 beep();
  552.                 while(1)
  553.                 {
  554.                         display_set(12,HuiDa_time_temp,13);//调用时间设置闪动显示函数,效果为 [时间]
  555.                         if(Key_Start==0)//时间+1键
  556.                         {
  557.                                  delay(10);
  558.                                  if(Key_Start==0)
  559.                                  {
  560.                                          HuiDa_time_temp++;
  561.                                         if(HuiDa_time_temp==100)
  562.                                         {
  563.                                                 HuiDa_time_temp=1;
  564.                                         }
  565.                                  }
  566.                         }
  567.                         while(!Key_Start);//等待按键释放
  568. //                        else
  569.                         if(Key_Stop==0)//时间-1键
  570.                         {
  571.                                  delay(10);
  572.                                  if(Key_Stop==0)
  573.                                  {
  574.                                          HuiDa_time_temp--;
  575.                                         if(HuiDa_time_temp==0)
  576.                                         {
  577.                                                 HuiDa_time_temp=99;
  578.                                         }
  579.                                  }
  580.                         }
  581.                         while(!Key_Stop);//等待按键释放
  582. //                        else
  583.                         if(Key_Restart==0)
  584.                         {
  585.                                 if(Key_Restart==0)
  586.                                 {
  587.                                         beep();
  588.                                         break;
  589.                                 }
  590.                         }
  591.                 }
  592.         }
  593. }
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:77383 发表于 2015-5-4 23:05 | 只看该作者
好厉害
回复

使用道具 举报

板凳
ID:95977 发表于 2015-11-16 16:50 | 只看该作者
你的排阻用的是多大的??
回复

使用道具 举报

地板
ID:115897 发表于 2016-5-7 11:54 | 只看该作者
收藏了
回复

使用道具 举报

5#
ID:119290 发表于 2016-5-8 15:44 | 只看该作者
最简单的8路抢答器好像只要一个4511就行,不用单片机的吧。
回复

使用道具 举报

6#
ID:107352 发表于 2016-6-20 11:50 | 只看该作者
非常不错很好
回复

使用道具 举报

7#
ID:127432 发表于 2016-6-20 16:43 | 只看该作者
学习了非常不错
回复

使用道具 举报

8#
ID:156054 发表于 2016-12-20 15:35 | 只看该作者
可以 很强
回复

使用道具 举报

9#
ID:190056 发表于 2017-4-16 14:46 | 只看该作者
好棒,真厉害,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表