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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4567|回復: 1
打印 上一主題 下一主題
收起左側(cè)

單相逆變串口控制EG8010源碼 顯示屏輸出25V,50hz,頻率可調(diào)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:341701 發(fā)表于 2018-7-24 14:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單相正弦逆變輸出25V 50Hz

單片機源程序如下:
  1. /**************************************************************/
  2. /*英特靈思科技技術(shù)支持
  3. */
  4. /****************************************************************/
  5. #include  "stm32f10x.h"
  6. #include  "pcb_config.h"
  7. #include  "jlx.h"
  8. #include "bsp_usart1.h"
  9. /****************************************************************/
  10. static int  freq = 0x7f;   //頻率初值
  11. int  volat    = 10;   //電壓初值
  12. int  num = 0;           //鍵值

  13. int  volatflag=1,freqflag=1,times=0,flag=0;//標志位
  14. int  buff[2];           //任意鍵值緩沖
  15. int  start=1,close=1;   //開關(guān)變量
  16. int  sum=0;             //任意鍵值的和
  17. int  n=0,k=0;           //任意鍵取值變量
  18. int  Press_Second1=0,Press_Second2=0; //13鍵功能復用標志位
  19. int  local=0;           //輸入數(shù)字位置排布
  20. u8   numstr[3];         //輸入數(shù)字位置排布

  21. int freq1;
  22. /****************************************************************/
  23. int main(void)
  24. {
  25.         unsigned char i,j;
  26.   unsigned char u[17]={1,5,9,13,    2,6,10,14,  3,7,11,15,    4,8,12,16};
  27. /*********************初始化程序段******************************/        
  28.         System_Start();
  29.         while (1)
  30.         {                        

  31.                   i=Read_KeyValue();
  32.                         j = u[i-1];
  33. /************************鍵控程序段*****************************/
  34.             switch(j)
  35.                   {         
  36.                   case 1:          //開機按鍵
  37.             //SendforGet_Data();        
  38.                                     flag=1;num = 1;
  39. /********************測試顯示程********************************/
  40.                                                 if(start==1)
  41.                                                 {
  42.                                                   clear_screen();               
  43.                                             display_GB2312_string(1,0,  "電壓");
  44.                     display_GB2312_string(1,65, "電流");
  45.                     display_GB2312_string(5,0,  "頻率");
  46.                     display_GB2312_string(5,65, "溫度");
  47.                                                         
  48.                                                         display_GB2312_string(3,0, "25V" ) ;               
  49.               display_GB2312_string(7,0, "50Hz" );
  50.                                                         
  51.                     display_GB2312_string(3,65, "2A");         
  52.               display_GB2312_string(7,65 ,"27C" );
  53.                                                         
  54.                                                   start=0;
  55.                                                   close=1;
  56.                                                         local=1;
  57.                                                 }
  58.                                        
  59.                                                    break;                 
  60.                                                 
  61.                 case 2:  flag=1;num = 2;break;                                         
  62.                 case 3:  flag=1;num = 3; break;
  63.                 case 4:  flag=1;num = 4; break;
  64.                 case 5:  flag=1;num = 5; break;
  65.                 case 6:  flag=1;num = 6; break;
  66.                 case 7:  flag=1;num = 7; break;
  67.                 case 8:  flag=1;num = 8; break;
  68.                 case 9:  flag=1;num = 9; break;        
  69.                 case 16: flag=1;num=0;   break;
  70.                 case 10:                       //頻率調(diào)節(jié)功能
  71.                         freqflag=1-freqflag;   //取反標志位      
  72. /**********************電壓調(diào)節(jié)程序段********************************************/
  73.                         if(freqflag==0)        //調(diào)壓顯示界面
  74.                                                 {  
  75.                            
  76.                                                         clear_screen();        
  77.                                                         display_GB2312_string(1,30, "調(diào)頻模式");
  78.                                                         display_GB2312_string(5,30, "頻率");
  79.               sum=0;                                                        
  80.                                                 }
  81.                                                 
  82.                                                 if(freqflag==1)
  83.                                                 {
  84.                                                         clear_screen();               
  85.                                             display_GB2312_string(1,0,  "電壓");
  86.                     display_GB2312_string(1,65, "電流");
  87.                     display_GB2312_string(5,0,  "頻率");
  88.                     display_GB2312_string(5,65, "溫度");
  89.                                                         display_GB2312_string(3,65, "2A");         
  90.               display_GB2312_string(7,65, "27C" );
  91.                                                         display_GB2312_string(3,0,  "25V" ) ;               
  92.             
  93.                                                 
  94.                                                         Press_Second2=1;                                 
  95.                                                 }        
  96.                                           break;                                
  97.                 case 11:                             //步進減頻 不用立即顯示
  98.                         
  99.                            if(freq<=0x33) freq=0x33;
  100.                         else if (freq>=0xff) freq==0xff;                             //freq=sum;        
  101.                                                            //freq=sum;
  102.                               freq=freq-0x02;        
  103.                
  104.             USART_SendData(USART1,0x84);
  105.                                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);        
  106.                
  107.                                                 USART_SendData(USART1,freq);
  108.                                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);         //發(fā)送完成發(fā)送完成
  109.                         
  110.                         freq1=freq+0x01;
  111.                         freq1=freq/2.5;
  112.                
  113.                                     sprintf(numstr,"%dHz",freq1);
  114.                               display_GB2312_string(7,0, numstr);
  115.                               
  116.                         break;                 
  117.                 case 12:                              //步進增頻        
  118.             if(freq<=0x33) freq=0x33;
  119.                         else if (freq>=0xff) freq=0xff;                             //freq=sum;        
  120.                
  121.                                                 freq=freq+0x02;        
  122.                                        
  123.                
  124.                         USART_SendData(USART1,0x84);
  125.                                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);        
  126.                                                 USART_SendData(USART1,freq);
  127.                                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);        //發(fā)送完成發(fā)送完成
  128.                
  129.                
  130.                         freq1=freq-0x01;
  131.                               freq1=freq/2.5;
  132.                
  133.                                     sprintf(numstr,"%dHz",freq1);
  134.                               display_GB2312_string(7,0, numstr);
  135.                         
  136.                         

  137.                         break;                 
  138.                 case 13:                               //電壓調(diào)節(jié)功能鍵
  139.                          volatflag=1-volatflag;        //取反標志位      
  140. /**********************電壓調(diào)節(jié)程序段**************************/
  141.                         if(volatflag==0)               //調(diào)壓顯示界面
  142.                                                 {  
  143.                            clear_screen();        
  144.                                                         display_GB2312_string(1,30, "調(diào)壓模式");
  145.                                                         display_GB2312_string(5,30, "電壓");
  146.                                                         sum=0;
  147.                                                 }
  148.                                                 if(volatflag==1)
  149.                                                 {
  150.                                                   clear_screen();
  151.                                                         
  152.                                                         display_GB2312_string(1,0,  "電壓");
  153.                     display_GB2312_string(1,65, "電流");
  154.                     display_GB2312_string(5,0,  "頻率");
  155.                     display_GB2312_string(5,65, "溫度");
  156.                                                         display_GB2312_string(3,65, "2A");         
  157.               display_GB2312_string(7,65 ,"27C" );
  158.                                                         display_GB2312_string(7,0,  "50Hz" );
  159.                                                 
  160.                                                         Press_Second1=1;
  161.                                                 
  162.                                                 }        
  163.                                           break;
  164. /***************************************************************/                 
  165.                 case 14:                              //步進減壓
  166.                                                             //volat=sum;
  167.                             volat=volat+1;        
  168. //                                          if(volat==0xff) volat=0x01;
  169. //                                                if(volat==0x00) volat=0xfb;
  170.                
  171.                                   USART_SendData(USART3,volat);
  172.                                   while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==Bit_RESET);         
  173. //                                          USART_SendData(USART1,volat);
  174. //                                          while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);        //發(fā)送完成
  175. //               
  176.                         sprintf(numstr,"%dV",volat);
  177.                               display_GB2312_string(3,0, numstr);
  178. //            Delay_us(20000);
  179. //            SendforGet_Data();               
  180.                         break;                 
  181.                 case 15:                                                             //步進增壓
  182.                                                                                            //volat=sum;
  183.                                                 volat=volat-1;
  184. //                                        if(volat==0xff)  volat=0x01;
  185. //                                        if(volat==0x00)  volat=0xfb;
  186.                          USART_SendData(USART3,volat);
  187.                                      while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==Bit_RESET);         
  188. //                  USART_SendData(USART1,0x83);
  189. //                  while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);         
  190. //                  USART_SendData(USART1,volat);
  191. //                  while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);        //發(fā)送完成
  192.                                     
  193.                         sprintf(numstr,"%dV",volat);
  194.                               display_GB2312_string(3,0, numstr);
  195. //                        Delay_us(20000);
  196. //                         SendforGet_Data();
  197.                
  198.                         break;                                         
  199. } //switch結(jié)束                        
  200. /**************************************************************/
  201.                         if(flag==1)
  202.                         {
  203.                                 buff[times++]=num;                                                               
  204.                                 flag=0;
  205.                   }
  206. /***************************************************************/        
  207.                 if(volatflag==0&&freqflag==1&&flag==0)
  208.                 {
  209.                         for(n=0;n<times;n++)
  210.                         {   
  211.                                 sum=sum*10+buff[n]*pow(10,(times-1-n));
  212.                                 Delay_us(1000);
  213.                                 if(local==1)
  214.                                 {sum=0;local=0;}
  215.                                 sprintf(numstr,"%dV",sum);
  216.                                 
  217.                                 display_GB2312_string(5,60, numstr);
  218.                         }
  219.                           times =0;
  220.                 }
  221. /**********************算法有誤*********************************/
  222.                 if(freqflag==0&&volatflag==1&&flag==0)
  223.                 {
  224.                         for(n=0;n<times;n++)
  225.                         {   
  226.                                 sum=sum*10+buff[n]*pow(10,(times-1-n));
  227.                                 Delay_us(1000);
  228.                                 if(local==1)
  229.                                 {sum=0;local=0;}
  230.                                 sprintf(numstr,"%dHz",sum);
  231.                                 
  232.                           display_GB2312_string(5,60, numstr);
  233.                         }
  234.                           times=0;
  235.                 }
  236. /**********************電壓值轉(zhuǎn)換成16進制************************/
  237.                 if(Press_Second1==1)           //電壓
  238.                 {
  239.                         sum =sum;        
  240.                         volat=sum;
  241.                         
  242. //                        USART_SendData(USART1,0x83);
  243. //                        
  244. //                        while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
  245.                         USART_SendData(USART3,volat);
  246.                         
  247.                         while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==Bit_RESET);        //發(fā)送完成
  248.                         
  249.                         Press_Second1=0;        
  250.                         sprintf(numstr,"%dV",volat);
  251.                         display_GB2312_string(3,0, numstr);
  252. //                        Delay_us(20000);
  253. //                  SendforGet_Data();        
  254.                 }
  255.                
  256.                 if(Press_Second2==1)                                            //頻率
  257.                 {        
  258.                         if(sum<20)
  259.                         {sum=20*2.5;}
  260.                         
  261.                         else if(sum>100)
  262.                         {
  263.                         sum=100*2.5;
  264.                         }
  265.                         
  266.                         else
  267.                         sum =sum*2.5;
  268.                         
  269.                         freq=sum/2.5;
  270.                         sum=sum+0x01;
  271.                   sprintf(numstr,"%dHz",freq);
  272.                         display_GB2312_string(7,0, numstr);
  273.                                                 
  274.                         USART_SendData(USART1,0x84);               
  275.                         while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
  276.                         
  277.                         USART_SendData(USART1,sum);
  278.                         while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);        //發(fā)送完成        
  279.                         freq=sum;
  280. //    Delay_us(20000);
  281. //                SendforGet_Data();        
  282.                         Press_Second2=0;
  283.                         
  284.                 }
  285.         }
  286. }
  287. /****************************************************************/
復制代碼

所有資料51hei提供下載:
單相逆變串口控制EG8010+顯示屏輸出25V,50hz,頻率可調(diào).rar (383.41 KB, 下載次數(shù): 88)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-7-24 17:42 | 只看該作者
此貼需要補全原理圖等資料后可獲得大量積分
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区三区视频免费观看 | 欧美一级视频免费看 | 91在线一区二区三区 | av无遮挡| 国产高清视频一区 | 欧美xxxⅹ性欧美大片 | 美女黄视频网站 | 日本一区视频在线观看 | 999久久久国产精品 欧美成人h版在线观看 | 日韩欧美一区二区三区在线播放 | 国产在线一区二区 | 国产精品久久久久久吹潮日韩动画 | 国产日韩电影 | 91美女在线观看 | 4hu最新网址 | 黄色电影在线免费观看 | 国内精品在线视频 | 久久久精品网站 | 韩日一区二区三区 | 国产一区二区三区在线 | 亚洲一区二区视频 | 久久久xxx | 99久久精品国产一区二区三区 | 久久精品欧美电影 | 国产精品乱码一区二区三区 | 国产成人叼嘿视频在线观看 | 久久av网站| 国产精品免费av | 日韩欧美天堂 | 欧美一区二区在线播放 | 欧美成人h版在线观看 | 久草福利| 国产美女视频黄 | 少妇一区二区三区 | 日韩一级电影免费观看 | 国产午夜精品一区二区三区嫩草 | 亚洲毛片在线观看 | 国产精品a久久久久 | xx性欧美肥妇精品久久久久久 | 欧美激情精品久久久久 | 国产中文视频 |