找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7308|回复: 10
收起左侧

单片机智能路灯控制系统(proteus仿真+keil源程序+原理图)

  [复制链接]
ID:753405 发表于 2020-6-12 15:05 | 显示全部楼层 |阅读模式
用于学习的一个智能路灯控制系统,功能还是比较全的。有自行设置工作时间段,人体车辆红外检测,光照阈值的光敏检测,手动自动控制路灯亮灭。

LCD1602显示
DS1302系统时间
按键设定系统时间、工作时间、光照阈值(默认开始时间为16点,结束时间为5点)
工作时间内路灯点亮,凌晨12点后路灯关闭,有人或车通过是,路灯点亮10s
非工作时间光照强度低于阈值,路灯点亮
状态检测,路灯应亮未亮,声光报警(通过检测LED串联电阻的电压值,当有电压值时,证明线路正常,无电压值时,线路故障)
手动和自动模式可通过按键自己手动切换,手动模式下由开关控制路灯亮灭。(自动模式不再执行)

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei图片20200612150349.jpg.png 51hei图片20200612145933.jpg.png

单片机源程序如下:
  1.                                    /******定义头文件**************/
  2. #include<reg52.h>
  3. #include <INTRINS.H>
  4. #include"lcd.h"
  5. #include "ds1302.h"
  6. /******类型重定义*************/
  7. typedef unsigned char uchar;
  8. typedef unsigned int  uint;
  9. /******引脚定义***************/
  10. sbit key_1 = P1^0;                        //定义4个按键
  11. sbit key_2 = P1^1;
  12. sbit key_3 = P1^2;
  13. sbit key_4 = P1^3;
  14. sbit key_5=P3^0;//手动/自动模式切换
  15. sbit key_6=P3^1;//手动模式路灯开关

  16. sbit led_1 = P1^4;
  17. sbit Beep = P2^3;                                        //定义声光报警
  18. sbit AD_clk = P3^4;                                        //定义ADC0832                
  19. sbit AD_do = P3^5;
  20. sbit AD_di = P3^5;
  21. sbit AD_cs = P3^6;
  22. sbit red_sr = P3^7;                                        //红外检测

  23. /******定义变量***************/
  24. char hour,min,sec;                                                //定义小时、分钟、秒变量
  25. char time;
  26. char work_time_Start = 16,work_time_End = 5;                //设定起始、结束时间
  27. bit light_flag;
  28. uchar light;                                                        //定义光照强度
  29. uchar light_limit;                                                //定义光照阈值
  30. uchar Data;
  31. /******声明函数***************/
  32. void delayms(unsigned int x);                        //延时函数
  33. void display();                                                         //显示
  34. void Read_time();
  35. void set_work_time();                                        //设定工作时间
  36. void set_limit_light();                                        //设定光照阈值
  37. void work();                                                        //工作状态
  38. void set_time();                                                //设定时间
  39. void delay10ms(int d);
  40. void InitTimer0(void);                                        //T0定时器初始化程序
  41. uchar AD(bit Channel);                                        //ADC0832程序

  42. void kongzhi()
  43. {
  44.         if(key_6==0)
  45. {
  46.         led_1=1;
  47. }
  48. else
  49.         {
  50.                 led_1=0;
  51.         }
  52. }

  53. void qiehaun()
  54. {
  55.         if(key_5==0)
  56. {
  57.         kongzhi();
  58. }
  59. else
  60.         {
  61.         work();
  62. //                if(red_sr==1)
  63. //        {
  64. //        led_1=1;
  65. //        }
  66. //        if(red_sr==0)
  67. //        {
  68. //        led_1=0;
  69. //        }
  70. }
  71. }
  72. void main()
  73. {
  74.         Beep = led_1 = 0;                                        //声光报警,LED关闭
  75.         InitTimer0();                                                //T0定时器初始化程序
  76.         LcdInit();                                                        //lcd1602初始化
  77.         while(1)
  78.         {
  79.                 Ds1302ReadTime();                                //读取时间
  80.                 set_work_time();                                //设定工作时间
  81.                 set_limit_light();                                //设定光照阈值
  82.                 set_time();
  83.                 light = AD(0);                                        //读取ADC0832数值                                        
  84.                 display();                                                 //显示
  85.                 qiehaun();
  86. //                work();                                                        //工作状态
  87.         }
  88. }
  89. void Timer0Interrupt(void) interrupt 1
  90. {
  91.         static uchar count;
  92.     TH0 = 0x0D8;
  93.     TL0 = 0x0F0;
  94.         count ++;
  95.         if(count>=100)
  96.         {
  97.                 time ++;
  98.                 count = 0;
  99.     }
  100.         //add your code here
  101. }
  102. /*******************************************************************************
  103. * 函数名         : InitTimer0()
  104. * 函数功能                 : T0定时器初始化程序
  105. * 输入           : 无
  106. * 输出                  : 无
  107. *******************************************************************************/
  108. void InitTimer0(void)
  109. {
  110.     TMOD = 0x01;
  111.     TH0 = 0x0D8;
  112.     TL0 = 0x0F0;
  113.     EA = 0;
  114.     ET0 = 1;
  115.     TR0 = 1;
  116. }
  117. /*******************************************************************************
  118. * 函数名         : work()
  119. * 函数功能                 : 工作状态
  120. * 输入           : 无
  121. * 输出                  : 无
  122. *******************************************************************************/
  123. void work()
  124. {
  125.         Read_time();                                        //转换时间
  126.         if(work_time_End!=0 && work_time_Start!=0)                        //工作时间已设置
  127.         {
  128.                 if(hour >= work_time_Start)                                                //当前时间大于起始时间,如起始时间为19:00,当前时间为21:00。
  129.                 {
  130.                         Data = AD(1);
  131.                         led_1 = 1;                                                                        //点亮LED
  132.                         if(Data < 50)                                                                //未检测到LED点亮
  133.                                 Beep = 1;                                                                //声光报警
  134.                         else                                                                                //检测到Led点亮
  135.                                 Beep = 0;                                                                //停止报警
  136.                 }
  137.                 else if(hour < work_time_End)         //当前时间小于结束时间,如结束时间为06:00,当前时间为04:00。
  138.                 {
  139.                         if(red_sr)                                        //检测到人或车
  140.                         {
  141.                                 time = 0;
  142.                                 light_flag = 1;                        //LED标志置1,开始T0定时器计时,点亮LED,10s后LED标志清零,LED熄灭
  143.                         }
  144.                         if(light_flag)                                        //LED标志置1,检测到人或车
  145.                         {
  146.                                 led_1 = 1;                                        //点亮LED
  147.                                 EA = 1;                                                //开启中断
  148.                                 if(time > 10)                                //10s后
  149.                                 {
  150.                                         light_flag = 0;                        //LED标志清零
  151.                                         EA = 0;                                           //关中断
  152.                                         time = 0;                                 //计时清零
  153.                                 }
  154.                                 Data = AD(1);
  155.                                 if(Data < 50)                                //未检测到LED点亮
  156.                                         Beep = 1;                                //声光报警
  157.                                 else                                                //检测到Led点亮
  158.                                         Beep = 0;                                //停止报警               
  159.                            }
  160.                         else
  161.                                 led_1 = 0;
  162.                 }
  163.                 else
  164.                 {
  165.                         if(light < light_limit)
  166.                         {
  167.                                 led_1 = 1;
  168.                                 Data = AD(1);
  169.                                 if(Data < 50)                                                                //未检测到LED点亮
  170.                                         Beep = 1;                                                                //声光报警
  171.                                 else                                                                                //检测到Led点亮
  172.                                         Beep = 0;                                                                //停止报警
  173.                         }
  174.                         else
  175.                                 led_1 = Beep = 0;
  176.                 }
  177.         }               
  178. }
  179. /*******************************************************************************
  180. * 函数名         : set_work_time()
  181. * 函数功能                 : 设定工作时间
  182. * 输入           : 无
  183. * 输出                  : 无
  184. *******************************************************************************/
  185. void set_work_time()
  186. {
  187.         if(key_2 == 0)                                                                                   //设置键按下
  188.         {
  189.                 delayms(10);                                                                        //延时消抖
  190.                 if(key_2 == 0)                                                                          //再次判断
  191.                 {
  192.                         while(key_2 == 0);
  193.                         LcdWriteCom(0x01);                                                         //清屏
  194.                         delayms(10);
  195.                         LcdWriteCom(0x80);                                                //显示
  196.                           LcdWriteData('S');
  197.                         LcdWriteData('E');
  198.                         LcdWriteData('T');
  199.                         LcdWriteData('-');
  200.                         LcdWriteData('w');
  201.                         LcdWriteData('o');
  202.                         LcdWriteData('r');
  203.                         LcdWriteData('k');
  204.                         LcdWriteData(' ');
  205.                         LcdWriteData('t');
  206.                         LcdWriteData('i');
  207.                         LcdWriteData('m');
  208.                         LcdWriteData('e');
  209.                         for(;;)                                                                                   //设定工作时间段
  210.                         {
  211.                                 LcdWriteCom(0xc0);
  212.                                 LcdWriteData('s');
  213.                                 LcdWriteData('t');
  214.                                 LcdWriteData('a');
  215.                                 LcdWriteData('r');
  216.                                 LcdWriteData('t');
  217.                                 LcdWriteData(':');
  218.                                 LcdWriteCom(0xca);
  219.                                 LcdWriteData(0x30+work_time_Start%100/10);
  220.                                 LcdWriteData(0x30+work_time_Start%10);
  221.                                 if(key_2 == 0)                                                        //按键2按下,每按一次+5
  222.                                 {
  223.                                         delayms(10);
  224.                                         if(key_2 == 0)
  225.                                         {
  226.                                                 while(key_2 == 0);
  227.                                                 work_time_Start+=1;
  228.                                                 if(work_time_Start > 24)
  229.                                                         work_time_Start = 24;
  230.                                         }
  231.                                 }
  232.                                 if(key_3 == 0)                                                        //按键3按下,每按一次-5
  233.                                 {
  234.                                         delayms(10);
  235.                                         if(key_3 == 0)
  236.                                         {
  237.                                                 while(key_3 == 0);
  238.                                                 work_time_Start -=1;
  239.                                                 if(work_time_Start<=work_time_End)                 //禁止起始时间小于结束时间
  240.                                                         work_time_Start = work_time_End;
  241.                                         }
  242.                                 }
  243.                                 if(key_4 == 0)                                                         //按键4按下,输入下一项
  244.                                 {
  245.                                         delayms(10);
  246.                                         if(key_4 == 0)
  247.                                         {
  248.                                                 while(key_4 == 0);
  249.                                                 LcdWriteCom(0x01);
  250.                                                 break;
  251.                                         }
  252.                                 }
  253.                         }
  254.                         for(;;)                                                                                   //设定工作时间段
  255.                         {
  256.                                 LcdWriteCom(0xc0);
  257.                                 LcdWriteData('s');
  258.                                 LcdWriteData('t');
  259.                                 LcdWriteData('o');
  260.                                 LcdWriteData('p');
  261.                                 LcdWriteData(' ');
  262.                                 LcdWriteData(':');
  263.                                 LcdWriteCom(0xca);
  264.                                 LcdWriteData(0x30+work_time_End%100/10);
  265.                                 LcdWriteData(0x30+work_time_End%10);
  266.                                 if(key_2 == 0)
  267.                                 {
  268.                                         delayms(10);
  269.                                         if(key_2 == 0)
  270.                                         {
  271.                                                 while(key_2 == 0);
  272.                                                 work_time_End += 1;
  273.                                                 if(work_time_End > work_time_Start)                //禁止结束时间大于开始时间
  274.                                                         work_time_End = work_time_Start;
  275.                                         }
  276.                                 }
  277.                                 if(key_3 == 0)
  278.                                 {
  279.                                         delayms(10);
  280.                                         if(key_3 == 0)
  281.                                         {
  282.                                                 while(key_3 == 0);
  283.                                                 work_time_End -=1;
  284.                                                 if(work_time_End < 0)
  285.                                                         work_time_End = 0;
  286.                                         }
  287.                                 }
  288.                                 if(key_4 == 0)
  289.                                 {
  290.                                         delayms(10);
  291.                                         if(key_4 == 0)
  292.                                         {
  293.                                                 while(key_4 == 0);
  294.                                                 LcdWriteCom(0x01);
  295.                                                 break;
  296.                                         }
  297.                                 }
  298.                         }
  299.                 }
  300.         }       
  301. }
  302. /*******************************************************************************
  303. * 函数名         : set_limit_light()
  304. * 函数功能                 : 设定光照阈值
  305. * 输入           : 无
  306. * 输出                  : 无
  307. *******************************************************************************/
  308. void set_limit_light()
  309. {
  310.         if(key_3 == 0)                                                                                   //键3按下
  311.         {
  312.                 delayms(10);                                                                        //延时消抖
  313.                 if(key_3 == 0)                                                                          //再次判断
  314.                 {
  315.                         while(key_3 == 0);
  316.                         LcdWriteCom(0x01);                                                         //清屏
  317.                         delayms(10);
  318.                         LcdWriteCom(0x80);                                                //显示
  319.                           LcdWriteData('S');
  320.                         LcdWriteData('E');
  321.                         LcdWriteData('T');
  322.                         LcdWriteData('-');
  323.                         LcdWriteData('L');
  324.                         LcdWriteData('i');
  325.                         LcdWriteData('g');
  326.                         LcdWriteData('h');
  327.                         LcdWriteData('t');
  328.                         LcdWriteData('-');
  329.                         LcdWriteData('L');
  330.                         LcdWriteData('i');
  331.                         LcdWriteData('m');
  332.                         LcdWriteData('i');
  333.                         LcdWriteData('t');
  334.                         for(;;)                                                                                   //设定光照阈值
  335.                         {
  336.                                 LcdWriteCom(0xc0);
  337.                                 LcdWriteData('D');
  338.                                 LcdWriteData('a');
  339.                                 LcdWriteData('t');
  340.                                 LcdWriteData('a');
  341.                                 LcdWriteData(':');
  342.                                 LcdWriteCom(0xca);
  343.                                 LcdWriteData(0x30+light_limit%1000/100);
  344.                                 LcdWriteData(0x30+light_limit%100/10);
  345.                                 LcdWriteData(0x30+light_limit%10);
  346.                                 if(key_2 == 0)                                                        //按键2按下,每按一次+5
  347.                                 {
  348.                                         delayms(10);
  349.                                         if(key_2 == 0)
  350.                                         {
  351.                                                 while(key_2 == 0);
  352.                                                 light_limit += 5;
  353.                                                 if(light_limit > 250)
  354.                                                         light_limit = 250;
  355.                                         }
  356.                                 }
  357.                                 if(key_3 == 0)                                                        //按键3按下,每按一次-5
  358.                                 {
  359.                                         delayms(10);
  360.                                         if(key_3 == 0)
  361.                                         {
  362.                                                 while(key_3 == 0);
  363.                                                 light_limit -= 5;
  364.                                                 if(light_limit < 10)
  365.                                                         light_limit = 10;
  366.                                         }
  367.                                 }
  368.                                 if(key_4 == 0)                                                         //按键4按下,输入下一项
  369.                                 {
  370.                                         delayms(10);
  371.                                         if(key_4 == 0)
  372.                                         {
  373.                                                 while(key_4 == 0);
  374.                                                 LcdWriteCom(0x01);
  375.                                                 break;
  376.                                         }
  377.                                 }
  378.                         }
  379.                 }
  380.         }       
  381. }
  382. /*******************************************************************************
  383. * 函数名         : read_time()
  384. * 函数功能                 : 转换时间
  385. * 输入           : 无
  386. * 输出                  : 无
  387. *******************************************************************************/
  388. void Read_time()
  389. {
  390.         hour = (Time_1[2]/16)*10 + (Time_1[2]&0x0f);
  391.         min = (Time_1[1]/16)*10 + (Time_1[1]&0x0f);
  392.         sec = (Time_1[0]/16)*10 + (Time_1[0]&0x0f);
  393. }
  394. /*******************************************************************************
  395. * 函数名         : display()
  396. * 函数功能                 : 主界面显示函数
  397. * 输入           : 无
  398. * 输出                  : 无
  399. *******************************************************************************/
  400. void display()
  401. {
  402.         LcdWriteCom(0x80);       
  403.         LcdWriteData('2');
  404.         LcdWriteData('0');
  405.         LcdWriteData('0'+Time_1[6]/16);                        //年
  406.         LcdWriteData('0'+(Time_1[6]&0x0f));
  407.         LcdWriteData('-');
  408.         LcdWriteData('0'+Time_1[4]/16);                        //月
  409.         LcdWriteData('0'+(Time_1[4]&0x0f));
  410.         LcdWriteData('-');
  411.         LcdWriteData('0'+Time_1[3]/16);                        //日
  412.         LcdWriteData('0'+(Time_1[3]&0x0f));
  413.         LcdWriteData(' ');

  414.         LcdWriteCom(0x8e);
  415.         LcdWriteData('0'+time%100/10);
  416.         LcdWriteData('0'+time%10);
  417.        
  418.        
  419.         LcdWriteCom(0xc0);       
  420.         LcdWriteData('0'+Time_1[2]/16);                        //时
  421.         LcdWriteData('0'+(Time_1[2]&0x0f));
  422.         LcdWriteData(':');
  423.         LcdWriteData('0'+Time_1[1]/16);                        //分
  424.         LcdWriteData('0'+(Time_1[1]&0x0f));
  425.         LcdWriteData(':');
  426.         LcdWriteData('0'+Time_1[0]/16);                        //秒
  427.         LcdWriteData('0'+(Time_1[0]&0x0f));       

  428.         LcdWriteCom(0xcd);                                                 //显示当前光照强度
  429.         LcdWriteData('0'+light/100);
  430.         LcdWriteData('0'+light%100/10);
  431.         LcdWriteData('0'+light%10);
  432. }
  433. /*******************************************************************************
  434. * 函数名         : delayms()
  435. * 函数功能                 : 延时函数,ms级别
  436. * 输入           : 无
  437. * 输出                  : 无
  438. *******************************************************************************/
  439. void delayms(unsigned int x)   //0.14ms误差 0us
  440. {
  441.         unsigned char i;
  442.         while(x--)
  443.         {
  444.                 for (i = 0; i<13; i++)
  445.                 {}
  446.         }
  447. }
  448. /*************************************************************
  449. * 函 数 名         : delay10ms
  450. * 函数功能                   : 延时函数,延时时间10ms*d
  451. * 输    入         : 无
  452. * 输    出         : 无
  453. *************************************************************/
  454. void delay10ms(int d)   //误差 0us
  455. {
  456.     unsigned char a,b,c;
  457.     for(c=d;c>0;c--)
  458.         for(b=38;b>0;b--)
  459.             for(a=130;a>0;a--);
  460. }
  461. /*************************************************************
  462. * 函 数 名         : set_time()
  463. * 函数功能                   : 设置时间
  464. * 输    入         : 无
  465. * 输    出         : 无
  466. *************************************************************/
  467. void set_time()                                                               
  468. {
  469.         char time_flag = 0;                         //定义一个时间变量
  470.         char time_flag_1 = 0;
  471.            if(key_1==0)                                //进入设置时间
  472.            {
  473.                    while(key_1==0);
  474.                 //设置年
  475.                 time_flag = Time_1[6]/16;                //取出DS1302 年的十位
  476.                 time_flag_1 = (Time_1[6]&0x0f);
  477.                 for(;;)
  478.                 {                               
  479.                         LcdWriteCom(0x82);  //显示坐标         
  480.                         LcdWriteCom(0x0e);  //光标
  481.                         delay10ms(50);       
  482.                         LcdWriteCom(0x0c);  //光标                       
  483.                         if(key_2 ==0)
  484.                         {
  485.                                 while(key_2==0);                         //时间加
  486.                                 time_flag++;
  487.                         }
  488.                         if(key_3 ==0)                                       
  489.                         {
  490.                                 while(key_3==0);                  //时间减
  491.                                 time_flag--;
  492.                         }
  493.                         if(time_flag>=9)                                           //显示范围
  494.                                 time_flag = 9;
  495.                         else if(time_flag<=0)
  496.                                 time_flag = 0;

  497.                         LcdWriteData(time_flag+'0');   //在lcd1602进行显示
  498.                        
  499.                         if(key_4 ==0)                                        //确认
  500.                         {
  501.                                 while(key_4==0);                  //时间减
  502.                                 Time_1[6] = time_flag*16;                        //时间写入数组
  503.                                 break;
  504.                         }
  505.                 }
  506.                
  507.                 for(;;)
  508.                 {
  509.                         LcdWriteCom(0x83);  //显示坐标         
  510.                         LcdWriteCom(0x0e);  //光标
  511.                         delay10ms(50);       
  512.                         LcdWriteCom(0x0c);  //光标       

  513.                        
  514.                         if(key_2 ==0)
  515.                         {
  516.                                 while(key_2==0);                         //时间加
  517.                                 time_flag_1++;
  518.                         }
  519.                         if(key_3 ==0)                                       
  520.                         {
  521.                                 while(key_3==0);                  //时间减
  522.                                 time_flag_1--;
  523.                         }
  524.                         if(time_flag_1>=9)                                           //显示范围
  525.                                 time_flag_1 = 9;
  526.                         else if(time_flag_1<=0)
  527.                                 time_flag_1 = 0;

  528.                         LcdWriteData(time_flag_1+'0');   //在lcd1602进行显示
  529.                        
  530.                         if(key_4 ==0)                                        //确认
  531.                         {
  532.                                 while(key_4==0);                  //时间减
  533.                                 Time_1[6] += time_flag_1;        //时间写入数组
  534.                                 break;
  535.                         }
  536.                 }

  537.                 //设置月
  538.                 time_flag = Time_1[4]/16;                //取出DS1302 月的十位
  539.                 time_flag_1 = (Time_1[4]&0x0f);
  540.                 for(;;)
  541.                 {
  542.                         LcdWriteCom(0x85);  //显示坐标         
  543.                         LcdWriteCom(0x0e);  //光标
  544.                         delay10ms(50);       
  545.                         LcdWriteCom(0x0c);  //光标       

  546.                        
  547.                         if(key_2 ==0)
  548.                         {
  549.                                 while(key_2==0);                         //时间加
  550.                                 time_flag++;
  551.                         }
  552.                         if(key_3 ==0)                                       
  553.                         {
  554.                                 while(key_3==0);                  //时间减
  555.                                 time_flag--;
  556.                         }
  557.                         if(time_flag>=9)                                           //显示范围
  558.                                 time_flag = 9;
  559.                         else if(time_flag<=0)
  560.                                 time_flag = 0;

  561.                         LcdWriteData(time_flag+'0');   //在lcd1602进行显示
  562.                        
  563.                         if(key_4 ==0)                                        //确认
  564.                         {
  565.                                 while(key_4==0);                  //时间减
  566.                                 Time_1[4] = time_flag*16;                        //时间写入数组
  567.                                 break;
  568.                         }
  569.                 }

  570.                
  571. ……………………

  572. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
智能路灯.7z (202.86 KB, 下载次数: 615)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:532512 发表于 2020-6-19 12:55 | 显示全部楼层
太谢谢了
回复

使用道具 举报

ID:982149 发表于 2021-11-19 00:22 来自手机 | 显示全部楼层
你好,有BOM吗
回复

使用道具 举报

ID:838393 发表于 2022-1-14 18:25 | 显示全部楼层
我看了一下,做得特别认真仔细,功能也非常丰富,谢谢了
回复

使用道具 举报

ID:1028987 发表于 2022-5-29 16:50 | 显示全部楼层
很好,制作完美
回复

使用道具 举报

ID:1031013 发表于 2022-6-1 12:58 | 显示全部楼层
感谢老哥的分享
回复

使用道具 举报

ID:1031013 发表于 2022-6-1 21:29 | 显示全部楼层
设计有思路了,感谢老哥
回复

使用道具 举报

ID:63541 发表于 2022-6-21 19:58 | 显示全部楼层
为什么我下载你的文件仿真时文本标注的汉字都是乱码,下载其他人的就不会乱码。
回复

使用道具 举报

ID:1063726 发表于 2023-2-21 13:10 | 显示全部楼层
厉害,功能齐全,要是能加一个检测光强实现pwm调光就好了
回复

使用道具 举报

ID:1089141 发表于 2024-3-6 18:17 | 显示全部楼层
内容很丰富,为我提供了思路
回复

使用道具 举报

ID:1089141 发表于 2024-3-7 19:29 | 显示全部楼层
这DS1302中的时间断电后不变是怎么实现的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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