找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5875|回復(fù): 5
收起左側(cè)

51單片機(jī)+光敏電阻的光控溫控紅外控制程序

[復(fù)制鏈接]
ID:302883 發(fā)表于 2021-1-18 11:33 | 顯示全部樓層 |閱讀模式
代碼電路參考百度多個(gè)作者修改而成,如有侵犯,請(qǐng)聯(lián)系本人,立即刪除。
本作品僅供學(xué)習(xí)參考,不喜勿噴,退出即可。
主要功能:
紅外遙控,開燈關(guān)燈,調(diào)風(fēng)扇的速度。
自動(dòng)調(diào)光,自動(dòng)溫度調(diào)速。
蜂鳴器報(bào)警風(fēng)速極限。液晶屏顯示溫度數(shù)值與光敏電阻電壓數(shù)值。
資料內(nèi)含代碼與電路

本次課題得名稱主要是由***提出,夏天天氣很熱宿舍風(fēng)扇轉(zhuǎn)得又不快,然后要按時(shí)熄燈。工作又沒做完,想要有一個(gè)涼快得夏天,還要自動(dòng)得調(diào)光系統(tǒng)方便學(xué)習(xí),并且保護(hù)眼睛。那這就是舒適得桌面環(huán)境了。所以就有這個(gè)課題。


電路分析:

主要功能:

紅外遙控,開燈關(guān)燈,調(diào)風(fēng)扇的速度。自動(dòng)調(diào)光,自動(dòng)溫度調(diào)速。

蜂鳴器報(bào)警風(fēng)速極限。液晶屏顯示溫度數(shù)值與光敏電阻電壓數(shù)值。

整體模塊:


詳細(xì)分析:

電源模塊:由12v轉(zhuǎn)5v,使用7805降壓芯片。

復(fù)位電路、晶振電路:這兩個(gè)電路加上STC89C52RC構(gòu)成控制電路,即51單片機(jī)最小系統(tǒng)。

顯示模塊:lcd 1602液晶顯示屏,其電阻RM是調(diào)背光亮度,顯示溫度,電壓,模式。

溫度模塊:使用DS18B20,對(duì)溫度進(jìn)行采集。

光敏電阻:對(duì)光線強(qiáng)弱控制。

A/D模塊:使用A/D C0832模數(shù)轉(zhuǎn)換芯片,對(duì)光敏測(cè)量出光敏電阻阻值。

電機(jī)驅(qū)動(dòng)模塊:使用L298N電路穩(wěn)壓。

紅外遙控:使用紅外傳感器,實(shí)現(xiàn)對(duì)電路共能得控制。

可以改進(jìn)的地方:

硬件布局方面:

飛線應(yīng)該減少,可以將兩個(gè)板子合成一個(gè)板子。

軟件:應(yīng)該實(shí)現(xiàn)程序優(yōu)化。


物品清單:

51單片機(jī) STC89C52RC

1/5

LCD 1602

1/4

熱敏傳感器 DS18B20

1/3.19

電機(jī)風(fēng)扇

1/3.3

光敏電阻

10/1.9

臺(tái)燈

1

紅外遙控

1/3.5

led燈若干

4

A/D轉(zhuǎn)換芯片 A/DC0832

1/6.2

杜邦線若干

1/

電機(jī)驅(qū)動(dòng) L289N

1/6

電容電阻若干

電池

1/1.6

開關(guān)接口若干

3個(gè)

蜂鳴器

板子

2/10

接觸片

10/1.8


完成效果圖:

實(shí)物圖:

Protuse實(shí)現(xiàn):

單片機(jī)源程序如下:
  1. /*-------------------------------------------------------------------                                                            
  2. 程序名稱:   在1602液晶上顯示出DS18B20的溫度與光敏電阻電壓
  3.                                                 自動(dòng)功能:                                                                        |        手動(dòng)功能:
  4.                                                 根據(jù)溫度的數(shù)值控制風(fēng)速                        |        紅外控制風(fēng)速
  5.                                                 根據(jù)光的亮暗控制光線的強(qiáng)弱        |        紅外控制燈的亮暗
  6. -------------------------------------------------------------------*/
  7. #include <reg52.h>      
  8. #include <intrins.h>
  9. #define uint unsigned int
  10. #define uchar unsigned char
  11. #define P0 P0
  12. sbit ds=P2^2;        //定義DS18B20通信端口
  13. sbit lcd_rs = P3^5;  //定義LCD控制端口
  14. sbit lcd_rw = P3^6;
  15. sbit lcd_en = P3^4;
  16. sbit IN1=P1^0;       //電機(jī)
  17. sbit M_pwm=P1^1;
  18. sbit fm=P2^4;
  19. sbit ir=P3^2;        //紅外
  20. sbit led=P1^2;       //臺(tái)燈

  21. sbit led1=P2^0;      //風(fēng)扇指示燈
  22. sbit led2=P2^1;                         //臺(tái)燈指示燈

  23. sbit CS=P2^7;        //AD芯片的定義口
  24. sbit CLK=P2^5;
  25. sbit DIO=P2^6;

  26. uint temp,temp1;          //溫度值定義
  27. bit flag;                                                 //溫度中的標(biāo)志位

  28. uchar code mun_to_char[] = {"0123456789ABCDEF"};  //定義數(shù)字跟ASCII碼的關(guān)系
  29. uchar data lcd1602_line1[]={"MODE:0  LIGHT:0 "};     //LCD1602液晶第一行
  30. uchar data lcd1602_line2[]={"TEMP:00.0 U:0.0 "};  //LCD1602液晶第二行。注意:用空格補(bǔ)位
  31.             
  32. uint AD_val;               //電壓值

  33. uchar irtime;                                                                                //用于計(jì)數(shù)時(shí)間
  34. uchar ircode[4];                                                                //儲(chǔ)存數(shù)據(jù)碼
  35. uchar irdata[33];                                                                //1引導(dǎo)碼 8位客戶1 8位客戶2 8位操作碼 8位操作反碼
  36. bit startflag,irok,irprosok;    //設(shè)置中斷標(biāo)志位 接收成功標(biāo)志位 處理成功標(biāo)志
  37. uchar  bitnum;                                                                        //位數(shù)值

  38. uchar num,pwm1,n,num2;
  39. uint pwm2;
  40. /*------------------------------------------------------------------------------
  41.                                       延時(shí)函數(shù)
  42. ------------------------------------------------------------------------------*/

  43. void delayus(uint t)   //微秒級(jí)的延時(shí)函數(shù)
  44. {
  45.         while(t--);
  46. }

  47. void delayms(uint ms)    //毫秒級(jí)的延時(shí)函數(shù)
  48. {
  49.         uchar i;
  50.         while(ms--)
  51.         {
  52.                 for(i=0;i<120;i++);
  53.         }
  54. }
  55. /*------------------------------------------------------------------------------
  56.                                                                                                                                                         AD轉(zhuǎn)換
  57. ------------------------------------------------------------------------------*/

  58. unsigned char AD(void)
  59. {
  60.         unsigned char i,dat;
  61.         CS=1;                      //一個(gè)轉(zhuǎn)換周期開始
  62.         CLK=0;                     //第一個(gè)脈沖做準(zhǔn)備
  63.         CS=0;                      //CS置0,片選有效
  64.         DIO=1;                     //規(guī)定的起始信號(hào)
  65.         CLK=1;                     //第一個(gè)脈沖
  66.         CLK=0;                     //第一個(gè)脈沖下降沿,此前DIO必須是高電平
  67.         DIO=1;                                                                                  //DIO置1,通道選擇信號(hào)
  68.         CLK=1;                                                                           //第二個(gè)脈沖,第2、3個(gè)脈沖下沉之前,DI必須跟別的輸入兩位數(shù)據(jù)用于選則通道
  69.         CLK=0;                     //第二個(gè)脈沖下降沿
  70.         DIO=0;                                                                                 //DI置0,選擇通道0
  71.         CLK=1;                                                                                 //第三個(gè)脈沖
  72.         CLK=0;                                                                                 //第三個(gè)脈沖下降沿
  73.         DIO=1;                                                                                 //第三個(gè)脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1
  74.         CLK=1;                                                                                  //第四個(gè)脈沖
  75.         for(i=0;i<8;i++)
  76.         {
  77.                 CLK=1;                   //第四個(gè)脈沖
  78.     CLK=0;        
  79.                 dat<<=1;                 //將下面儲(chǔ)存的低位數(shù)據(jù)向右移
  80.                 dat|=(unsigned char)DIO; //將輸出數(shù)據(jù)DIO通過或運(yùn)算儲(chǔ)存在dat最低位
  81.         }
  82.         
  83.         CS=1;                      //片選無效
  84.         return dat;                //將讀出的數(shù)據(jù)返回
  85. }
  86. /*------------------------------------------------------------------------------
  87.                                 蜂鳴器
  88. ------------------------------------------------------------------------------*/
  89. void bee()                 
  90. {
  91.         fm=0;
  92.         delayms(100);
  93.         fm=1;
  94.         delayms(100);
  95. }

  96. /*------------------------------------------------------------------------------
  97.                                紅外遙控
  98. ------------------------------------------------------------------------------*/

  99. void timer0init(void)//定時(shí)器0初始化 256*(1/12m)*12=0.256ms
  100. {

  101.   TMOD=0x02;//定時(shí)器0工作方式2,TH0是重裝值,TL0是初值
  102.   TH0=0x00; //重載值
  103.   TL0=0x00; //初始化值
  104.   ET0=1;    //開中斷
  105.   TR0=1;   
  106. }
  107. /////////////////////////////////////////////////////////////////////
  108. //定時(shí)器0中斷服務(wù)函數(shù)
  109. /////////////////////////////////////////////////////////////////////

  110. void tim0_isr (void) interrupt 1 using 1  //定時(shí)器0中斷服務(wù)函數(shù)
  111. {
  112.   irtime++;  //用于計(jì)數(shù)2個(gè)下降沿之間的時(shí)間
  113.         num++;
  114.         num2++;
  115.         if(num>62)
  116.         {
  117.                 num=0;
  118.         }
  119.         if(num<=pwm1)
  120.         {
  121.                 M_pwm=1;
  122.         }
  123.         else
  124.         {
  125.                 M_pwm=0;               
  126.         }
  127. }

  128. void int0init(void)  //外部中斷0初始化
  129. {
  130. IT0 = 1;   //指定外部中斷0下降沿觸發(fā),INT0 (P3.2)
  131. EX0 = 1;   //使能外部中斷
  132. EA = 1;    //開總中斷
  133. }


  134. void int0 () interrupt 0 //外部中斷0服務(wù)函數(shù)
  135. {
  136. if(startflag)
  137. {
  138.   if(irtime>32&&irtime<63)  //8-16ms
  139.         {
  140.            bitnum=0;
  141.         }
  142.         irdata[bitnum]=irtime;
  143.         irtime=0;
  144.         bitnum++;
  145.         if(bitnum==33)
  146.           {
  147.            bitnum=0;
  148.            irok=1;
  149.           }
  150. }
  151.   else
  152. {
  153.          irtime=0;
  154.          startflag=1;
  155. }
  156. }

  157. /*------------------------------------------------------------------------------
  158.                                  紅外碼值處理
  159. ------------------------------------------------------------------------------*/

  160. void irpros(void) // 紅外碼值處理
  161. {
  162.         uchar mun,k,i,j;
  163.         k=1;
  164.         for(j=0;j<4;j++)
  165.         {
  166.                 for(i=0;i<8;i++)
  167.                 {
  168.                         mun=mun>>1;
  169.                         if(irdata[k]>6)
  170.                         {
  171.                                 mun=mun | 0x80;
  172.                         }
  173.                                 k++;
  174.                 }
  175.                 ircode[j]=mun;
  176.         }
  177.         irprosok=1;
  178. }

  179. /*------------------------------------------------------------------------------
  180.                                    PWM控制
  181. ------------------------------------------------------------------------------*/

  182. void temp_pwm()
  183. {
  184.         
  185.         if(n==1)
  186.         {
  187.                  lcd1602_line1[6] = mun_to_char[1];
  188.                         if(pwm1<62)
  189.                         {
  190.                                 IN1=1;
  191.                                 pwm1++;
  192.                                 delayms(100);
  193.                         }
  194.                         else
  195.                         {
  196.                                 bee();
  197.                         }
  198.                
  199.         }
  200.                 if(n==3)   
  201.          {
  202.                 lcd1602_line1[6] =mun_to_char[2] ;
  203.                         if(pwm1>1)
  204.                         {
  205.                                 IN1=1;
  206.                                 pwm1--;
  207.                                 delayms(100);
  208.                         }
  209.                         else
  210.                         {
  211.                                 bee();
  212.                         }
  213.           }        
  214.                 if(n==5)    //停止
  215.                 {
  216.                         
  217.                         led1=1;
  218.                         IN1=0;
  219.                         pwm1=0;
  220.                 }
  221.         if(n==2)
  222.         {               
  223.                 pwm1=31;
  224.           delayms(100);               
  225.         }

  226. }
  227. void led_pwm()
  228. {
  229.                 if(n==6)
  230.         {
  231.                 lcd1602_line1[14] =mun_to_char[1] ;
  232.                 if(pwm2<800)
  233.                 {
  234.                  pwm2++;
  235.                  delayms(100);
  236.                 }
  237.         }
  238.         else
  239.         {
  240.                 bee();
  241.         }
  242.         if(n==7)
  243.         {
  244.                 lcd1602_line1[14] =mun_to_char[2] ;
  245.                 if(pwm2>1)
  246.                 {
  247.                  pwm2--;
  248.                 delayms(100);
  249.                 }
  250.         }
  251.         else
  252.         {
  253.                 bee();
  254.         }
  255. }
  256. /*------------------------------------------------------------------------------
  257.                                                                                                                                         紅外鍵值處理
  258. ------------------------------------------------------------------------------*/
  259. void ir_work(void)    //紅外鍵值處理
  260. {
  261.         switch(ircode[2])   //判斷操作碼(第三個(gè)數(shù)碼值)
  262.         {
  263.                         
  264.                          case 0x19:bee();break;          //      0
  265.                          case 0x45:n=1;temp_pwm();break; //加速  1
  266.                          case 0x47:n=3;temp_pwm();break; //減速  3
  267.                          case 0x46:n=2;temp_pwm();break; //復(fù)位  2
  268.                          case 0x1c:n=4;break;                                          //自動(dòng)模式 ok
  269.                          case 0x44:n=5;break;            //關(guān)閉點(diǎn)擊     4
  270.                          case 0x07:led=0;break;                                         //關(guān)燈  8
  271.                          case 0x15:led=1;break;                                         //開燈  7
  272.                          case 0x08:n=6;led_pwm();break; //調(diào)亮  <
  273.                    case 0x5a:n=7;led_pwm();break; //調(diào)亮  >
  274.                          case 0x16:n=8;break;                                          //自動(dòng)      *
  275.              default:break;
  276.                 }
  277.                   irprosok=0;                      //處理完成標(biāo)志
  278.   }

  279. /*------------------------------------------------------------------------------
  280.                                      單總線初始化函數(shù)(溫度)
  281. ------------------------------------------------------------------------------*/

  282. void ds_reset()    //單總線初始化函數(shù)
  283. {
  284.         ds=1;           
  285.         delayus(5);     
  286.         ds=0;         
  287.         delayus(80);   
  288.         ds=1;         
  289.         delayus(14);   
  290.         if(ds==0)      
  291.                 flag=1;   
  292.         else
  293.                 flag=0;   
  294.         delayus(20);
  295. }
  296. /*------------------------------------------------------------------------------
  297.                                                                                                                         讀時(shí)隙(即位讀。┖瘮(shù) (溫度)                        
  298. ------------------------------------------------------------------------------*/
  299. bit ds_read_bit()     //讀時(shí)隙(即位讀。┖瘮(shù)
  300. {
  301.         bit dat;        
  302.         ds=0;        
  303.         _nop_();      
  304.         _nop_();      
  305.         ds=1;        
  306.         _nop_();     
  307.         dat=ds;      
  308.         delayus(10);  
  309.         return dat;   
  310. }

  311. /*------------------------------------------------------------------------------
  312.                                                                                                                          讀一個(gè)字節(jié)函數(shù)
  313. ------------------------------------------------------------------------------*/
  314. uchar ds_read_byte()   //讀一個(gè)字節(jié)函數(shù)
  315. {
  316.         uchar i,j,k;
  317.         for(i=0;i<8;i++)   
  318.         {
  319.                 j=ds_read_bit();   
  320.                 k=(j<<7)|(k>>1);  
  321.         }
  322.         return k;  
  323. }
  324. /*------------------------------------------------------------------------------
  325.                                                                                                                     寫一個(gè)字節(jié)函數(shù)
  326. ------------------------------------------------------------------------------*/
  327. void ds_write_byte(uchar dat)   //寫一個(gè)字節(jié)函數(shù)
  328. {
  329.         uchar i;
  330.         for(i=0;i<8;i++)      
  331.         {
  332.                 ds=0;         
  333.                 _nop_();        
  334.                 ds=dat&0x01;   
  335.                 delayus(6);     
  336.                 ds=1;         
  337.                 dat=dat>>1;     
  338.         }
  339.                 delayus(6);   
  340. }
  341. /*------------------------------------------------------------------------------
  342.                                                                                                                    讀取溫度函數(shù)
  343. ------------------------------------------------------------------------------*/

  344. uint read_temperature()   //讀取溫度函數(shù)
  345. {
  346.         
  347.         uchar a,b;
  348.         ds_reset();
  349.   EA=0;        
  350.         ds_write_byte(0xcc);   
  351.         ds_write_byte(0xbe);   
  352.         a=ds_read_byte();   
  353.         b=ds_read_byte();   
  354.         temp=b;
  355.         temp=temp<<8;
  356.         temp=temp|a;      
  357.             temp=temp*0.0625*10+0.5;
  358.   EA=1;        
  359.         return temp;  

  360. }


  361. /*------------------------------------------------------------------------------
  362.                                                                                                                  1602液晶顯示
  363. ------------------------------------------------------------------------------*/

  364. void lcd_delay(uchar x) //LCD1602 延時(shí)
  365. {
  366.         uint i,j;
  367.     for(i=x;i>0;i--)
  368.         {
  369.                 for(j=120;j>0;j--);
  370.         }
  371. }
  372. /*------------------------------------------------------------------------------
  373.                                                                                                                 LCD1602 命令字寫入
  374. ------------------------------------------------------------------------------*/

  375. void write_com(uchar com) //LCD1602 命令字寫入
  376. {
  377.     lcd_rs = 0;
  378.     lcd_rw = 0;
  379.     lcd_en = 0;
  380.     P0 = com;
  381.     lcd_en = 1;
  382.           lcd_delay(5);
  383.     lcd_en = 0;     
  384. }

  385. /*------------------------------------------------------------------------------
  386.                                                                                                                  LCD1602 初始化
  387. ------------------------------------------------------------------------------*/

  388. void lcd_init()       //LCD1602 初始化
  389. {
  390.     write_com(0x38);
  391.     write_com(0x08);
  392.     write_com(0x01);
  393.     write_com(0x06);
  394.     write_com(0x0c);  //開顯示,不顯示光標(biāo)
  395. }

  396. /*------------------------------------------------------------------------------
  397.                                                                                                                  LCD1602 字符寫入
  398. ------------------------------------------------------------------------------*/

  399. void lcd_char_write(uchar x_pos,y_pos,lcd_dat) //LCD1602 字符寫入
  400. {
  401.     x_pos &= 0x0f; // X位置范圍 0~15
  402.     y_pos &= 0x01; // Y位置范圍 0~ 1
  403.     if(y_pos==1) x_pos += 0x40;
  404.     x_pos += 0x80;
  405.     write_com(x_pos);
  406.         lcd_delay(5);
  407.     lcd_rs = 1;
  408.     lcd_rw = 0;
  409.     lcd_en = 0;
  410.     P0 = lcd_dat;
  411.     lcd_en = 1;
  412.     lcd_en = 0;
  413.         P0 = 0xff;                 //釋放數(shù)據(jù)端口
  414. }

  415. void main()
  416. {
  417.         uchar i;
  418.         float adnum;
  419.         lcd_en=0;                  //關(guān)閉1602液晶使能,防止1602數(shù)據(jù)端影響單片機(jī)P0口輸出
  420.         led=0;        
  421.         P0=0xff;
  422.         int0init();                //外部中斷初始化
  423.   timer0init();              //定時(shí)器初始化
  424.         pwm2=400;
  425.         num=0;
  426.         pwm1=31;
  427.         lcd_init();                //LCD1602 初始化

  428.         
  429.   while(1)
  430.   {
  431.                         ds_reset();            //單總線初始化
  432.                         ds_write_byte(0xcc);   //跳線ROM
  433.                         ds_write_byte(0x44);   //啟動(dòng)溫度傳換
  434.                   AD_val=AD();                                         //讀取電壓的數(shù)值
  435.                         temp1=read_temperature(); //讀取當(dāng)前溫度值
  436.                         lcd1602_line2[5] = mun_to_char[temp1/100];   //把當(dāng)前溫度分解送到1602顯示
  437.                         lcd1602_line2[6] = mun_to_char[temp1%100/10];
  438.                         lcd1602_line2[8] = mun_to_char[temp1%10];
  439.                   lcd1602_line2[12] = mun_to_char[AD_val/51];
  440.                         lcd1602_line2[14] = mun_to_char[((AD_val%51)*100/51)/10];
  441.                         lcd1602_line2[15] = mun_to_char[((AD_val%51)*100/51)%10];
  442.                         for(i=0;i<16;i++) lcd_char_write(i,0,lcd1602_line1[i]);
  443.                   for(i=0;i<16;i++) lcd_char_write(i,1,lcd1602_line2[i]);
  444. //                        
  445. //                        if(temp1>260&&temp1<350) IN1=1;
  446. //                        else IN1=0;
  447.                 if(n==4)
  448.                 {
  449.                         lcd1602_line1[5] = mun_to_char[1];
  450.                         lcd1602_line1[6] =mun_to_char[0] ;
  451.                         led1=0;
  452.                                 if(temp1>250&&temp1<280) pwm1=31;
  453.                                 if(temp1>290&&temp1<310) pwm1=40;
  454.                                 if(temp1>310&&temp1<350) pwm1=50;
  455.                                 if(temp1>10&&temp1<200)  pwm1=20;
  456.                 }
  457.                 if(n==5)
  458.                 {
  459.                         lcd1602_line1[5] = mun_to_char[2];
  460.                         lcd1602_line1[6] =mun_to_char[0] ;
  461.                         led1=1;
  462.                         IN1=0;
  463.                         pwm1=2;
  464.                 }
  465.                 adnum=(AD_val/51);
  466.                 if(n==8)
  467.                 {
  468.                         if(adnum>3&&adnum<5){led=1;led2=0;}
  469.                         if(adnum>0&&adnum<2){led=0;led2=1;}        
  470.                 }
  471.                         
  472.                         if(irok==1)             //如果紅外編碼接收好了,
  473.             {   
  474.                                 irpros();             //進(jìn)行紅外碼值處理。
  475.                                 irok=0;
  476.             }
  477.   
  478.     if(irprosok==1)           //如果紅外碼值處理好后,
  479.           {
  480.            ir_work();               //進(jìn)行工作處理。
  481.           }
  482.         }
  483. }
復(fù)制代碼

word格式的以上資料51hei提供下載:
基于51單片的光控溫控紅外控制.rar (9.47 MB, 下載次數(shù): 87)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:582255 發(fā)表于 2021-1-24 22:52 | 顯示全部樓層
這個(gè)可以再改進(jìn)一下
回復(fù)

使用道具 舉報(bào)

ID:884588 發(fā)表于 2021-2-26 10:42 | 顯示全部樓層
別把線掛在風(fēng)扇上
回復(fù)

使用道具 舉報(bào)

ID:302883 發(fā)表于 2022-5-2 21:28 | 顯示全部樓層
aktuan007 發(fā)表于 2021-1-24 22:52
這個(gè)可以再改進(jìn)一下

謝謝哦好嘞,有改啦,發(fā)新帖了,算有改進(jìn)一吧
回復(fù)

使用道具 舉報(bào)

ID:302883 發(fā)表于 2022-5-2 21:29 | 顯示全部樓層
  5.1_phantom 發(fā)表于 2021-2-26 10:42
別把線掛在風(fēng)扇上

好嘞,會(huì)注意的,謝謝
回復(fù)

使用道具 舉報(bào)

ID:1102933 發(fā)表于 2023-12-12 10:39 | 顯示全部樓層
為啥電機(jī)沒有轉(zhuǎn)呢
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表