久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1046|回復: 1
打印 上一主題 下一主題
收起左側

基于stm32的智能家居系統程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:1120158 發表于 2024-11-1 22:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. #include "sys.h"
  2. #include "usart.h"
  3. #include "led.h"
  4. #include "timer.h"
  5. #include "ADC.h"
  6. #include "usart3.h"
  7. #include "key.h"
  8. #include "oled.h"
  9. #include "math.h"
  10. #include "dht11.h"
  11. #include "bmp280.h"
  12. #include "gizwits_product.h"

  13. u32 STM32_xx0=0X4E4C4A;
  14. u32 STM32_xx1=0X364B1322;
  15. u32 STM32_xx2=0X132D13  ;

  16. #define FLASH_SAVE_ADDR 0x08010000

  17. u8 buff[30];//參數顯示緩存數組
  18. u8 count;
  19. dataPoint_t currentDataPoint;//云端數據點
  20. u8 wifi_sta;//wifi連接狀態標志
  21. u8 mode=0;//模式控制自動和手動
  22. u8 NTP_sta=0;//網絡時間獲取狀態
  23. u8 display_contrl=0;  
  24. u8 curtain_flag=0;
  25. u8 last_curtain_flag=0;

  26. extern u8 DHT11_Temp,DHT11_Hum;                //溫濕度
  27. u16 Pre;                                                        //氣壓檢測值
  28. u16 gz_value;                                                //光照檢測值                       
  29. u16 m2_value;                                                //煙霧檢測值
  30. u16 m7_value;                                                //一氧化碳檢測值
  31. u16 m135_value;                                                //空氣質量檢測值

  32. u16 A_DHT11_Temp=35;                                //溫度閾值                    高于閾值時報警
  33. u16 A_DHT11_Hum=60;                                        //濕度閾值                                 低于閾值時報警
  34. u16 A_pre=1500;                                                        //氣壓閾值                                 低于閾值時報警
  35. u16 A_gz_value=4000;                                //光照強度閾值                 低于閾值時打開窗簾和照明燈
  36. u16 A_m2_value=4000;                                //煙霧閾值                                 高于閾值時報警
  37. u16 A_m7_value=4000;                                //一氧化碳閾值           高于閾值時報警
  38. u16 A_m135_value=1500;                        //空氣質量閾值                 低于閾值時報警


  39. //協議初始化
  40. void Gizwits_Init(void)
  41. {       
  42.     TIM3_Int_Init(9,7199);//1MS系統定時
  43.     usart3_init(9600);//WIFI初始化
  44.     memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));//設備狀態結構體初始化
  45.     gizwitsInit();//緩沖區初始化
  46. }

  47. //數據采集
  48. void userHandle(void)
  49. {
  50.     currentDataPoint.valueled=!LED0;
  51.     currentDataPoint.valueCurtain=curtain_flag;
  52.     currentDataPoint.valuetemp=DHT11_Temp;
  53.     currentDataPoint.valuehumidity=DHT11_Hum;
  54.     currentDataPoint.valuepre=Pre;
  55.     currentDataPoint.valueGZ_Value=gz_value;
  56.     currentDataPoint.valueMQ2_Value=m2_value;
  57.     currentDataPoint.valueMQ7_Value=m7_value;
  58.     currentDataPoint.valueMQ135_Value=m135_value;
  59. }

  60. void Get_Data(u16 count);//獲取傳感器數據
  61. void WIFI_Contection(u8 key);//WiFi連接控制
  62. void Canshu_Change(u8 key);//系統參數調節
  63. void Mode_Change(u8 key);//模式切換
  64. void BUJING_Cotrol(u8 mode,u16 time,u16 count);

  65. int main(void)
  66. {
  67.     u8 t=0;
  68.     int key_value;                //按鍵值
  69.     uart_init(115200);                         //串口初始化為115200
  70.     delay_init();            //延時函數初始化
  71.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  72.     Adc1_Channe_Init();                        //ADC通道初始化
  73.     KEY_Init();                                        //按鍵引腳初始化
  74.     bmp280Init();
  75.     while(DHT11_Init());       
  76.     LED_Init();                                          //初始化與LED連接的硬件接口
  77.     OLED_Init();                                //OLED初始化
  78.     OLED_Clear();                                //OLED清屏
  79.     Gizwits_Init();                  //協議初始化
  80.     BEEP = 0;
  81.           printf("初始化完成!\r\n");
  82. //        STMFLASH_Write(FLASH_SAVE_ADDR+10,&A_DHT11_Temp,2);        //開機讀取溫度閾值
  83. //        STMFLASH_Write(FLASH_SAVE_ADDR+12,&A_DHT11_Hum,2);        //開機讀取濕度閾值
  84. //        STMFLASH_Write(FLASH_SAVE_ADDR+14,&A_pre,2);                        //開機讀取氣壓閾值
  85. //        STMFLASH_Write(FLASH_SAVE_ADDR+18,&A_gz_value,2);        //開機讀取光照強度閾值
  86. //        STMFLASH_Write(FLASH_SAVE_ADDR+20,&A_m2_value,2);        //開機讀取煙霧閾值
  87. //        STMFLASH_Write(FLASH_SAVE_ADDR+22,&A_m7_value,2);        //開機讀取一氧化碳閾值
  88. //        STMFLASH_Write(FLASH_SAVE_ADDR+24,&A_m135_value,2);        //開機讀取空氣質量閾值
  89.        
  90. //        STMFLASH_Read(FLASH_SAVE_ADDR+10,&A_DHT11_Temp,2);        //開機讀取溫度閾值
  91. //        STMFLASH_Read(FLASH_SAVE_ADDR+12,&A_DHT11_Hum,2);        //開機讀取濕度閾值
  92. //        STMFLASH_Read(FLASH_SAVE_ADDR+14,&A_pre,2);                        //開機讀取氣壓閾值
  93. //        STMFLASH_Read(FLASH_SAVE_ADDR+18,&A_gz_value,2);        //開機讀取光照強度閾值
  94. //        STMFLASH_Read(FLASH_SAVE_ADDR+20,&A_m2_value,2);        //開機讀取煙霧閾值
  95. //        STMFLASH_Read(FLASH_SAVE_ADDR+22,&A_m7_value,2);        //開機讀取一氧化碳閾值
  96. //        STMFLASH_Read(FLASH_SAVE_ADDR+24,&A_m135_value,2);        //開機讀取空氣質量閾值

  97.     while(1)
  98.     {
  99.         Get_Data(0);
  100.         if(gz_value<=A_gz_value&&mode==0)   //光照強度小于閾值
  101.         {
  102.             LED0=0;          //LED12亮
  103.             curtain_flag=0;  //打開窗簾
  104.         }else if(gz_value>A_gz_value&&mode==0){
  105.             LED0=1;           //LED12關閉
  106.             curtain_flag=1;  //關閉窗簾
  107.         }
  108.         if(last_curtain_flag!=curtain_flag&&mode==0)   
  109.         {
  110.             BUJING_Cotrol(curtain_flag,3,270);  //控制步進電機旋轉模擬窗簾的關閉和打開
  111.             last_curtain_flag = curtain_flag;
  112.         }
  113.         if(last_curtain_flag!=currentDataPoint.valueCurtain&&mode==1)
  114.         {
  115.             BUJING_Cotrol(currentDataPoint.valueCurtain,3,270);
  116.             curtain_flag = currentDataPoint.valueCurtain;
  117.             last_curtain_flag = currentDataPoint.valueCurtain;
  118.         }       
  119. //                                 if(mode==0)
  120. //                                 {
  121. //                                         key_value = KEY_Scan(0);
  122. //                                         if(key==2)
  123. //                                         {
  124. //                                                 curtain_flag=0;  //打開窗簾
  125. //                                         }
  126. //                                          if(key==3)
  127. //                                         {
  128. //                                                 curtain_flag=1;  //關閉窗簾
  129. //                                         }
  130. //                                 }
  131.         if(mode==1)
  132.         {
  133.             LED0=!currentDataPoint.valueled;
  134.         }
  135.         if(DHT11_Temp>=A_DHT11_Temp||DHT11_Hum<=A_DHT11_Hum||Pre>=A_pre||m135_value<=A_m135_value||m2_value>=A_m2_value||m7_value>=A_m7_value)
  136.         {
  137.             BEEP=!BEEP;
  138.         }else BEEP = 0;
  139.         
  140.         
  141.         

  142.         key_value = KEY_Scan(0);
  143.         
  144.         if(key_value==4)
  145.         {
  146.             display_contrl++;
  147.         }
  148.         if(display_contrl%2==0&&t>=10)
  149.         {
  150.             OLED_ShowCHinese(0,0,0);
  151.             OLED_ShowCHinese(16,0,2);
  152.             sprintf((char*)buff,":%2dC",DHT11_Temp);
  153.             OLED_ShowString(32,0,buff,16);        //顯示溫度
  154.             OLED_ShowCHinese(64,0,1);
  155.             OLED_ShowCHinese(82,0,2);
  156.             sprintf((char*)buff,":%2d%%",DHT11_Hum);
  157.             OLED_ShowString(96,0,buff,16);//顯示濕度       
  158.             
  159.             OLED_ShowCHinese(0,2,3);
  160.             OLED_ShowCHinese(16,2,4);
  161.             sprintf((char*)buff,":%2dhpa     ",Pre);
  162.             OLED_ShowString(32,2,buff,16);//顯示氣壓
  163.             
  164.             OLED_ShowCHinese(0,4,5);
  165.             OLED_ShowCHinese(16,4,6);
  166.             OLED_ShowCHinese(32,4,7);
  167.             OLED_ShowCHinese(48,4,8);
  168.             sprintf((char*)buff,":%4dppm",gz_value);
  169.             OLED_ShowString(64,4,buff,16);//顯示光照強度
  170.             
  171.             OLED_ShowCHinese(0,6,21);
  172.             OLED_ShowCHinese(16,6,22);
  173.             OLED_ShowCHinese(32,6,23);
  174.             OLED_ShowCHinese(48,6,24);
  175.             //sprintf((char*)buff,":%4dppm",m135_value);
  176.             //OLED_ShowString(64,6,buff,16);//顯示空氣質量
  177.             OLED_ShowString(64,6,":",16);
  178.         }else if(display_contrl%2==1&&t>=10)
  179.         {
  180.             OLED_ShowCHinese(0,0,13);
  181.             OLED_ShowCHinese(16,0,14);
  182.             OLED_ShowCHinese(32,0,15);
  183.             OLED_ShowCHinese(48,0,16);
  184.             sprintf((char*)buff,":%4dppm",m2_value);
  185.             OLED_ShowString(64,0,buff,16);//顯示M2數據
  186.             
  187.             OLED_ShowCHinese(0,2,17);
  188.             OLED_ShowCHinese(16,2,18);
  189.             OLED_ShowCHinese(32,2,19);
  190.             OLED_ShowCHinese(48,2,20);
  191.             sprintf((char*)buff,":%4dppm",m7_value);
  192.             OLED_ShowString(64,2,buff,16);//顯示M7數據
  193.             
  194.             OLED_ShowCHinese(0,4,5);
  195.             OLED_ShowCHinese(16,4,6);
  196.             OLED_ShowCHinese(32,4,7);
  197.             OLED_ShowCHinese(48,4,8);
  198.             sprintf((char*)buff,":%4dppm",gz_value);
  199.             OLED_ShowString(64,4,buff,16);//顯示光照強度
  200.             
  201.             OLED_ShowCHinese(0,6,21);
  202.             OLED_ShowCHinese(16,6,22);
  203.             OLED_ShowCHinese(32,6,23);
  204.             OLED_ShowCHinese(48,6,24);
  205. //            sprintf((char*)buff,":%4dppm",m135_value);
  206. //            OLED_ShowString(64,6,buff,16);//顯示M135數據
  207.             
  208.             
  209.             
  210.             
  211.         }
  212. //        if(t>10)
  213. //        {
  214. //          if(m135_value>100)
  215. //            {
  216. //                OLED_ShowCHinese(80,6,23);//有人
  217. //                OLED_ShowCHinese(96,6,24);
  218. //                //報警
  219. //                BEEP=!BEEP;
  220. //               
  221. //        
  222. //            }
  223. //            else
  224. //            {
  225. //                OLED_ShowCHinese(80,6,25);//無人
  226. //                OLED_ShowCHinese(96,6,24);
  227. //                BEEP = 0;
  228. //            }
  229. //        }

  230.         

  231.         userHandle();                //用戶數據采集
  232.         WIFI_Contection(key_value);//WiFi連接控制
  233.         gizwitsHandle((dataPoint_t *)¤tDataPoint);//機智云協議處理
  234.         
  235.         Canshu_Change(key_value);
  236.         
  237.         t++;
  238.         delay_ms(100);
  239.     }
  240. }

  241. void WIFI_Contection(u8 key)//WiFi連接控制
  242. {
  243.     if(key==2)
  244.     {
  245.         printf("WIFI進入AirLink連接模式\r\n");
  246.         gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
  247.     }                       
  248.     if(key==3)
  249.     {  
  250.         
  251.         printf("WIFI復位,請重新配置連接\r\n");
  252.         gizwitsSetMode(WIFI_RESET_MODE);//WIFI復位
  253.     }
  254. }

  255. void Canshu_Change(u8 key)
  256. {
  257.     u8 obj=7;
  258.     if(key==1)
  259.     {
  260.         BEEP=0;
  261.         OLED_Clear();
  262.         while(1)
  263.         {
  264.             key = KEY_Scan(0);
  265.             if(key==1)
  266.             {
  267.                 obj++;
  268.                 if(obj>=8)
  269.                 {
  270.                     obj=0;
  271.                 }
  272.             }
  273.             sprintf((char *)buff,"Working md:%4d",mode);
  274.             OLED_ShowString(8,0,buff,12);
  275.             sprintf((char *)buff,"A_Temp    :%4d",A_DHT11_Temp);
  276.             OLED_ShowString(8,1,buff,12);
  277.             sprintf((char *)buff,"A_Hum     :%4d",A_DHT11_Hum);
  278.             OLED_ShowString(8,2,buff,12);
  279.             sprintf((char *)buff,"A_pre     :%4d",A_pre);
  280.             OLED_ShowString(8,3,buff,12);
  281.             sprintf((char *)buff,"A_gz_val  :%4d",A_gz_value);
  282.             OLED_ShowString(8,4,buff,12);
  283.             sprintf((char *)buff,"A_m2_val  :%4d",A_m2_value);
  284.             OLED_ShowString(8,5,buff,12);
  285.             sprintf((char *)buff,"A_m7_val  :%4d",A_m7_value);
  286.             OLED_ShowString(8,6,buff,12);
  287.             sprintf((char *)buff,"A_m135_val:%4d",A_m135_value);
  288.             OLED_ShowString(8,7,buff,12);
  289.             if(obj==0)
  290.             {
  291.                 OLED_ShowString(0,0," ",12);
  292.                 OLED_ShowString(0,1,">",12);
  293.                 OLED_ShowString(0,2," ",12);
  294.                 OLED_ShowString(0,3," ",12);
  295.                 OLED_ShowString(0,4," ",12);
  296.                 OLED_ShowString(0,5," ",12);
  297.                 OLED_ShowString(0,6," ",12);
  298.                 OLED_ShowString(0,7," ",12);
  299.             }
  300.             if(obj==1)
  301.             {
  302.                 OLED_ShowString(0,0," ",12);
  303.                 OLED_ShowString(0,1," ",12);
  304.                 OLED_ShowString(0,2,">",12);
  305.                 OLED_ShowString(0,3," ",12);
  306.                 OLED_ShowString(0,4," ",12);
  307.                 OLED_ShowString(0,5," ",12);
  308.                 OLED_ShowString(0,6," ",12);
  309.                 OLED_ShowString(0,7," ",12);
  310.             }
  311.             if(obj==2)
  312.             {
  313.                 OLED_ShowString(0,0," ",12);
  314.                 OLED_ShowString(0,1," ",12);
  315.                 OLED_ShowString(0,2," ",12);
  316.                 OLED_ShowString(0,3,">",12);
  317.                 OLED_ShowString(0,4," ",12);
  318.                 OLED_ShowString(0,5," ",12);
  319.                 OLED_ShowString(0,6," ",12);
  320.                 OLED_ShowString(0,7," ",12);
  321.             }
  322.             if(obj==3)
  323.             {
  324.                 OLED_ShowString(0,0," ",12);
  325.                 OLED_ShowString(0,1," ",12);
  326.                 OLED_ShowString(0,2," ",12);
  327.                 OLED_ShowString(0,3," ",12);
  328.                 OLED_ShowString(0,4,">",12);
  329.                 OLED_ShowString(0,5," ",12);
  330.                 OLED_ShowString(0,6," ",12);
  331.                 OLED_ShowString(0,7," ",12);
  332.             }
  333.             if(obj==4)
  334.             {
  335.                 OLED_ShowString(0,0," ",12);
  336.                 OLED_ShowString(0,1," ",12);
  337.                 OLED_ShowString(0,2," ",12);
  338.                 OLED_ShowString(0,3," ",12);
  339.                 OLED_ShowString(0,4," ",12);
  340.                 OLED_ShowString(0,5,">",12);
  341.                 OLED_ShowString(0,6," ",12);
  342.                 OLED_ShowString(0,7," ",12);
  343.             }
  344.             if(obj==5)
  345.             {
  346.                 OLED_ShowString(0,0," ",12);
  347.                 OLED_ShowString(0,1," ",12);
  348.                 OLED_ShowString(0,2," ",12);
  349.                 OLED_ShowString(0,3," ",12);
  350.                 OLED_ShowString(0,4," ",12);
  351.                 OLED_ShowString(0,5," ",12);
  352.                 OLED_ShowString(0,6,">",12);
  353.                 OLED_ShowString(0,7," ",12);
  354.             }
  355.             if(obj==6)
  356.             {
  357.                 OLED_ShowString(0,0," ",12);
  358.                 OLED_ShowString(0,1," ",12);
  359.                 OLED_ShowString(0,2," ",12);
  360.                 OLED_ShowString(0,3," ",12);
  361.                 OLED_ShowString(0,4," ",12);
  362.                 OLED_ShowString(0,5," ",12);
  363.                 OLED_ShowString(0,6," ",12);
  364.                 OLED_ShowString(0,7,">",12);
  365.             }
  366.             if(obj==7)
  367.             {
  368.                 OLED_ShowString(0,0,">",12);
  369.                 OLED_ShowString(0,1," ",12);
  370.                 OLED_ShowString(0,2," ",12);
  371.                 OLED_ShowString(0,3," ",12);
  372.                 OLED_ShowString(0,4," ",12);
  373.                 OLED_ShowString(0,5," ",12);
  374.                 OLED_ShowString(0,6," ",12);
  375.                 OLED_ShowString(0,7," ",12);
  376.             }
  377.             if(obj==0)
  378.             {
  379.                 if(key==3)
  380.                 {
  381.                     A_DHT11_Temp+=1;
  382.                 }
  383.                 if(key==2)
  384.                 {
  385.                     A_DHT11_Temp-=1;
  386.                 }
  387.             }
  388.             if(obj==1)
  389.             {
  390.                 if(key==3)
  391.                 {
  392.                     A_DHT11_Hum+=1;
  393.                 }
  394.                 if(key==2)
  395.                 {
  396.                     A_DHT11_Hum-=1;
  397.                 }
  398.             }
  399.             if(obj==2)
  400.             {
  401.                 if(key==3)
  402.                 {
  403.                     A_pre+=20;
  404.                 }
  405.                 if(key==2)
  406.                 {
  407.                     A_pre-=20;
  408.                 }
  409.             }
  410.             if(obj==3)
  411.             {
  412.                 if(key==3)
  413.                 {
  414.                     A_gz_value+=50;
  415.                 }
  416.                 if(key==2)
  417.                 {
  418.                     A_gz_value-=50;
  419.                 }
  420.             }
  421.             if(obj==4)
  422.             {
  423.                 if(key==3)
  424.                 {
  425.                     A_m2_value+=50;
  426.                 }
  427.                 if(key==2)
  428.                 {
  429.                     A_m2_value-=50;
  430.                 }
  431.             }
  432.             if(obj==5)
  433.             {
  434.                 if(key==3)
  435.                 {
  436.                     A_m7_value+=50;
  437.                 }
  438.                 if(key==2)
  439.                 {
  440.                     A_m7_value-=50;
  441.                 }
  442.             }
  443.             if(obj==6)
  444.             {
  445.                 if(key==3)
  446.                 {
  447.                     A_m135_value+=50;
  448.                 }
  449.                 if(key==2)
  450.                 {
  451.                     A_m135_value-=50;
  452.                 }
  453.             }
  454.             if(obj==7)
  455.             {
  456.                 if(key==3)
  457.                 {
  458.                     mode+=1;
  459.                 }
  460.                 if(key==2)
  461.                 {
  462.                     mode-=1;
  463.                 }
  464.                 if(mode >= 2) mode = 0;
  465.             }
  466.             if(key==4)
  467.             {
  468.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+10,&A_DHT11_Temp,2);        //開機讀取溫度閾值
  469.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+12,&A_DHT11_Hum,2);        //開機讀取濕度閾值
  470.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+14,&A_pre,2);                        //開機讀取氣壓閾值
  471.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+18,&A_gz_value,2);        //開機讀取光照強度閾值
  472.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+20,&A_m2_value,2);        //開機讀取煙霧閾值
  473.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+22,&A_m7_value,2);        //開機讀取一氧化碳閾值
  474.     //                                STMFLASH_Write(FLASH_SAVE_ADDR+24,&A_m135_value,2);        //開機讀取空氣質量閾值
  475.                 OLED_Clear();
  476.                 break;
  477.             }
  478.         
  479.         }
  480.     }
  481. }

  482. void Get_Data(u16 count)//獲取傳感器數據
  483. {
  484.     static float bmp280_press,bmp280;                                //氣壓

  485.     DHT11_Read_Data(&DHT11_Temp,&DHT11_Hum);

  486.     bmp280GetData(&bmp280_press,&bmp280,&bmp280);
  487.     Pre = bmp280_press;

  488.     gz_value   = 4096 - get_Adc_Value(0x04);

  489.     m2_value   = get_Adc_Value(0x07);

  490.     m7_value   = get_Adc_Value(0x05);

  491.     m135_value = 4096 - get_Adc_Value(0x06);
  492. }
  493. //void Mode_Change(u8 key)
  494. //{
  495. //        if(key==2)
  496. //        {
  497. //                mode++;
  498. //                if(mode>=2) mode = 0;
  499. //        }
  500. //        if(mode==0) OLED_ShowString(0,0,"MODE:Auto",12); //HM
  501. //        if(mode==1) OLED_ShowString(0,0,"MODE:H_M_",12); //HM
  502. //}

  503. void BUJING_Cotrol(u8 mode,u16 time,u16 count)
  504.     {
  505.     if(mode==0)
  506.     {
  507.         while(count--)
  508.         {
  509.             BUJ1=1; BUJ2=0; BUJ3=0;BUJ4=0;
  510.             delay_ms(time);
  511.             BUJ1=0; BUJ2=1; BUJ3=0;BUJ4=0;
  512.             delay_ms(time);
  513.             BUJ1=0; BUJ2=0; BUJ3=1;BUJ4=0;
  514.             delay_ms(time);
  515.             BUJ1=0; BUJ2=0; BUJ3=0;BUJ4=1;
  516.             delay_ms(time);
  517.         }
  518.     }
  519.     if(mode==1)
  520.     {
  521.         while(count--)
  522.         {
  523.             BUJ1=0; BUJ2=0; BUJ3=0;BUJ4=1;
  524.             delay_ms(time);
  525.             BUJ1=0; BUJ2=0; BUJ3=1;BUJ4=0;
  526.             delay_ms(time);
  527.             BUJ1=0; BUJ2=1; BUJ3=0;BUJ4=0;
  528.             delay_ms(time);
  529.             BUJ1=1; BUJ2=0; BUJ3=0;BUJ4=0;
  530.             delay_ms(time);
  531.         }
  532.     }
  533. }
復制代碼

原理圖: 無
仿真: 無
代碼: 基礎程序.7z (310.56 KB, 下載次數: 5)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1041200 發表于 2024-11-2 22:24 | 只看該作者
沒有原理圖,只是一個程序沒有什么用,能否補上原理圖呢?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美三级视频在线观看 | 久久精品亚洲成在人线av网址 | 欧美a级成人淫片免费看 | 国产精品视频一二三区 | 国产乱码高清区二区三区在线 | 久久久久久av| 欧美日韩在线免费观看 | 天天操天天插 | 亚洲精品国产电影 | 99精彩视频| 午夜免费成人 | 99久久免费观看 | 国产精品资源在线 | 欧美一区二区大片 | 日韩中文字幕视频在线 | 久久久美女 | 中文字幕国产日韩 | 91色站| 中文字幕日韩一区 | 亚洲精品成人av久久 | 日本一区二区高清不卡 | 久久99精品久久久久婷婷 | 日韩成人免费在线视频 | 神马久久久久久久久久 | 国产午夜精品一区二区三区嫩草 | 国产精品网址 | 天天综合日日夜夜 | 在线一区二区国产 | 久久久成人精品 | 四虎影院在线观看av | 成人免费视频7777777 | 国产免费一区 | 午夜激情一区 | 天天天天天天天干 | 久久久久久免费精品一区二区三区 | 久久精品视频播放 | 成人午夜免费福利视频 | 久久99这里只有精品 | 视频一区在线观看 | 91最新视频| 色综合久久久 |