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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)可控硅移相調(diào)壓程序和電路原理圖

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
電路原理圖如下:


單片機(jī)源程序如下:
  1. #include <STC15F2K60S2.H> //STC15系列單片機(jī)頭文件都是這個(gè)。
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. #include <STC15F2K60S2.H>

  5. #define         MAIN_Fosc                24000000UL        //定義主時(shí)鐘

  6. uchar num=0; //對(duì)可控硅移相角控制
  7. uchar jishuqi=0;  //記錄中斷次數(shù),有軟起動(dòng)作用,值不電輸出電壓不變

  8. uchar  sec1=0;
  9.   uchar  sec10=0;
  10.    uchar  sec100=0;
  11.           uchar  sec1000=0;


  12. sbit cdqd=P3^3;//啟動(dòng)充電信號(hào)0開1關(guān)

  13. sbit fdqd=P3^4;//啟動(dòng)放電信號(hào)0開1關(guān)

  14. //sbit cdr=P3^5;//充電停止信號(hào) 1關(guān),0開

  15. sbit fd=P3^7;//充電可控硅通斷  0:放電 1:關(guān)閉

  16. sbit pwm1=P3^5;//放電可控硅位通  0導(dǎo)通,1關(guān)閉
  17. sbit pwm2=P3^6;//放電可控硅位通  0導(dǎo)通,1關(guān)閉
  18.   // sbit led=P1^0;        實(shí)驗(yàn)板指示燈
  19.     sbit led=P1^2;
  20.         sbit cf=P1^0;

  21. unsigned char i;
  22. unsigned int ms;

  23. void        delay_ms( ms);
  24. /////////////主程序
  25. void main()
  26. {   cdqd=1;        

  27.         fd=1;
  28.         pwm1=1;
  29.         cf=1;
  30.                
  31.          //初始化
  32.         TMOD=0x01;

  33.   // TL0 = 0xa6;                //設(shè)置定時(shí)初始值 0.1ms
  34. //         TH0 = 0xFf;                //設(shè)置定時(shí)初始值
  35. // TL0 = 0x4a;                //設(shè)置定時(shí)初始值0.2ms
  36. //        TH0 = 0xFf;                //設(shè)置定時(shí)初始值
  37.   //  TL0 = 0x91;                //設(shè)置定時(shí)初始值0.4ms
  38. //        TH0 = 0xFe;                //設(shè)置定時(shí)初始值
  39.    // TL0 = 0x38;                //設(shè)置定時(shí)初始值0.5ms
  40. //        TH0 = 0xFe;                //設(shè)置定時(shí)初始值

  41.         
  42.    TL0 = 0x9c;                //設(shè)置定時(shí)初始值        0.1ms
  43.         TH0 = 0xFf;                //設(shè)置定時(shí)初始值

  44.    // TL0 = 0x68;                //設(shè)置定時(shí)初始值        1ms
  45.         //TH0 = 0xFC;                //設(shè)置定時(shí)初始值

  46.         EA=0;
  47.         ET0=1;
  48.         EX0=1;         
  49.         IT0=0;//必須設(shè)外部中斷觸發(fā)方式為上升沿下降沿同時(shí)觸發(fā)。STC最新15系列單片機(jī)外部中斷INT0口有上下沿同時(shí)觸發(fā)功能
  50.         pwm1=1;
  51.         pwm2=1;
  52.         led=1;
  53.           //   EA=1;
  54.         //         TR0=1;
  55.         while(1){  
  56.                     while(cdqd==0){EA=1; }                         //充電啟動(dòng)
  57.                           //  if(cdqd==0){EA=1;        cf=0; }                         //充電啟動(dòng)
  58.               jishuqi=0;
  59.                     if(cdqd==1){EA=0; jishuqi=0;  }                          //充電關(guān)閉

  60.                           if(fdqd==0){jishuqi=0; fd=0;        for(i=0;i<3;i++); fd=1;        for(i=0;i<3;i++);         }//放電延時(shí)2us};

  61.                         //        fd=1;
  62.          // if(cf==0)        {
  63.                    ////////////////////////////////////////
  64.                          //        delay_ms(500);
  65.                                  
  66.                                 led=~led;
  67.                 //                pwm=0;
  68.                                        
  69.                  // delay_ms(500);
  70.                 //                 pwm=1;
  71.                     // led=0;
  72.                
  73.                           // }
  74.                 /////////////////////////////////////////////
  75.                }




  76. }

  77. //延時(shí)程序
  78.    void  delay_ms(ms)
  79. {
  80.      unsigned int i;
  81.          do{
  82.               i = 200;
  83.                   while(--i)        ;   //14T per loop
  84.      }while(--ms);
  85. }


  86.           void Timer0Init(void)                //1000微秒@24.000MHz
  87. {
  88.         AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
  89.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  90.         TMOD |= 0x01;                //設(shè)置定時(shí)器模式
  91.         TL0 = 0x40;                //設(shè)置定時(shí)初始值
  92.         TH0 = 0xA2;                //設(shè)置定時(shí)初始值
  93.         TF0 = 0;                //清除TF0標(biāo)志
  94.         TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
  95. }



  96. //1毫秒定時(shí)器中斷程序                  
  97. void t0() interrupt 1
  98. {
  99.         unsigned char i;

  100. TL0=0x9c;
  101. TH0=0xff;                   //1haomiandingshi
  102.   // TL0 = 0xa6;                //設(shè)置定時(shí)初始值 0.1ms
  103. //         TH0 = 0xFf;                //設(shè)置定時(shí)初始值
  104. // TL0 = 0x4a;                //設(shè)置定時(shí)初始值0.2ms
  105. //        TH0 = 0xFf;                //設(shè)置定時(shí)初始值
  106.   //  TL0 = 0x91;                //設(shè)置定時(shí)初始值0.4ms
  107. //        TH0 = 0xFe;                //設(shè)置定時(shí)初始值
  108.    // TL0 = 0x38;                //設(shè)置定時(shí)初始值0.5ms
  109. //        TH0 = 0xFe;                //設(shè)置定時(shí)初始值

  110.         
  111. //  TL0 = 0x9c;                //設(shè)置定時(shí)初始值        0.1ms
  112. //        TH0 = 0xFf;                //設(shè)置定時(shí)初始值

  113.         // led=~led;
  114. //         pwm=~pwm;
  115.          num++;
  116.          
  117.          // jishuqi=8;                固定電壓輸出               
  118.    //        if(jishuqi>4) {jishuqi=5;  if(cdqd==0){}}  //全導(dǎo)通

  119. //jishuqi=4;
  120.         //第一個(gè)半波
  121. if(jishuqi==1){
  122.                         if(num==75)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  123.                      {
  124.                         TR0=0;
  125.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  126.                         pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  127.                         for(i=0;i<2;i++);//延時(shí)2us
  128.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  129.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  130.                         num=0;        //清零變量
  131.                // led=~led;        //驗(yàn)證指示LED
  132.                          //led=0;
  133.                      }         
  134.              }                //



  135.                   if(jishuqi==2){
  136.                         if(num==70)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  137.                      {
  138.                         TR0=0;
  139.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  140.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  141.                         for(i=0;i<2;i++);//延時(shí)2us
  142.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  143.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  144.                         num=0;        //清零變量
  145.          // led=~led;        //驗(yàn)證指示LED
  146.                          //led=0;
  147.                      }         
  148.              }                //


  149.                  
  150.                   if(jishuqi==3){
  151.                         if(num==65)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  152.                      {
  153.                         TR0=0;
  154.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  155.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  156.                         for(i=0;i<2;i++);//延時(shí)2us
  157.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  158.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  159.                         num=0;        //清零變量
  160.           //led=~led;        //驗(yàn)證指示LED
  161.                          //led=0;
  162.                      }         
  163.              }                //

  164.                            if(jishuqi==4){
  165.                         if(num==60)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  166.                      {
  167.                         TR0=0;
  168.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  169.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  170.                         for(i=0;i<2;i++);//延時(shí)2us
  171.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  172.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  173.                         num=0;        //清零變量
  174.          // led=~led;        //驗(yàn)證指示LED
  175.                          //led=0;
  176.                      }         
  177.              }                //


  178.                            if(jishuqi>=5){
  179.                         if(num==50)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  180.                      {
  181.                         TR0=0;
  182.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  183.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  184.                         for(i=0;i<2;i++);//延時(shí)2us
  185.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  186.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  187.                         num=0;        //清零變量
  188.          // led=~led;        //驗(yàn)證指示LED
  189.                          //led=0;
  190.                      }         
  191.              }                //


  192.                            if(jishuqi==6){
  193.                         if(num==40)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  194.                      {
  195.                         TR0=0;
  196.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  197.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  198.                         for(i=0;i<2;i++);//延時(shí)2us
  199.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  200.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  201.                         num=0;        //清零變量
  202.              //  led=~led;        //驗(yàn)證指示LED
  203.                          //led=0;
  204.                      }         
  205.              }                //


  206.           if(jishuqi==7){
  207.                         if(num==30)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  208.                      {
  209.                         TR0=0;
  210.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  211.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  212.                         for(i=0;i<2;i++);//延時(shí)2us
  213.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  214.                         pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  215.                         num=0;        //清零變量
  216.          // led=~led;        //驗(yàn)證指示LED
  217.                          //led=0;
  218.                      }         
  219.              }                //

  220. if(jishuqi==8){
  221.                         if(num==20)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  222.                      {
  223.                         TR0=0;
  224.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  225.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  226.                         for(i=0;i<2;i++);//延時(shí)2us
  227.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  228.                                 pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  229.                         num=0;        //清零變量
  230.          // led=~led;        //驗(yàn)證指示LED
  231.                          //led=0;
  232.                      }         
  233.              }                //

  234.                  if(jishuqi>=9){
  235.                         if(num==60)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  236.                      {
  237.                         TR0=0;
  238.                         pwm1=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  239.                                 pwm2=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  240.                         for(i=0;i<2;i++);//延時(shí)2us
  241.                         pwm1=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  242.                                 pwm2=1;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  243.                         num=0;        //清零變量                                                                         if(jish                        
  244.          // led=~led;        //驗(yàn)證指示LED
  245.                          //led=0;
  246.                      }         
  247.                       }                //


  248.         

  249.                 //第二個(gè)半波                                                
  250.         //                  if(jishuqi>=10){
  251.                 //        if(num==5)                //延時(shí)1毫秒導(dǎo)通,改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<10
  252.                     // {
  253.                 //        TR0=0;
  254.         //                pwm=0;        //觸發(fā)MOC3021導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  255.         //                for(i=0;i<2;i++);//延時(shí)2us
  256.         //                pwm=1;        //延時(shí)2us之后,關(guān)掉脈沖輸出,因?yàn)榭煽毓柙诜沁^零點(diǎn)情況下觸發(fā)信號(hào)丟失,會(huì)繼續(xù)保持導(dǎo)通。
  257.         //                num=0;        //清零變量
  258.           //      led=~led;        //驗(yàn)證指示LED
  259.                          //led=0;
  260.                    //  }         
  261.            //  }                //
  262.                 //第二個(gè)半波                                                                                                  
  263.         
  264.                                    //第10和大于10個(gè)半波
  265.                  
  266.                                       //        pwm=1;


  267.                            //if(num==7){led=~led;}
  268.                                    // led=~led;                //驗(yàn)證指示LED

  269.                                           //10MS計(jì)時(shí)器
  270.           // if(sec1>=10)        {sec1=0;sec10++;}
  271.                 //  if(sec10>=10)        {sec10=0;sec100++;}
  272.                 //         if(sec100>=10)        {sec100=0;sec1000++;}
  273.                 //                 if(sec1000>=8)        {sec100=0;sec1000++;}



  274. }               


  275.           //中斷程序
  276. void ex0() interrupt 0
  277. {
  278.         IE0=0;
  279.         num=0;
  280. //        jishuqi++;        //軟起過程的半波個(gè)數(shù)
  281.         TR0=1;          //交流過零點(diǎn)的時(shí)候,清楚標(biāo)志、計(jì)數(shù)變量并啟動(dòng)定時(shí)器。 /
  282. //        cf=0;
  283. sec1++;
  284.    if(sec1>=10){sec1=0;jishuqi++;}                                        //sec可以改移相角導(dǎo)通時(shí)間
  285.         //jishuqi=1;         
  286.          if(jishuqi>=7){jishuqi=7;}                                        //sec可以改移相角導(dǎo)通時(shí)間           

  287. }                                 
復(fù)制代碼

以上就是全部資料了,附件里面有可放大的pdf原理圖(僅供參考):
單片機(jī)可控硅移相調(diào)壓程序和電路原理圖.rar (24.17 KB, 下載次數(shù): 91)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:149799 發(fā)表于 2023-6-14 21:25 | 只看該作者
謝謝分享,這個(gè)比較詳細(xì)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品亚洲一区二区三区四区五区高 | 国精产品一区二区三区 | 国产欧美一区二区三区日本久久久 | 久久久久无码国产精品一区 | 午夜小电影| 97色在线视频 | 国产高清在线精品一区二区三区 | 欧美一区二区三区在线播放 | 国产精品永久 | 免费在线观看黄色av | 午夜寂寞网站 | 99国产精品99久久久久久 | 久久久久亚洲精品国产 | 欧美日韩高清一区 | 中文字幕av网站 | 国产99热在线 | 欧产日产国产精品视频 | 久久久国产一区二区三区四区小说 | 精品久久久久久久 | 精品日韩一区 | 一区二区三区不卡视频 | 日韩视频在线免费观看 | 日韩中文字幕在线观看视频 | 欧美激情视频一区二区三区在线播放 | 欧美久久久久久久久中文字幕 | 久久午夜影院 | 久久精品免费一区二区 | 久久精品二区 | 国产午夜在线 | 福利片一区二区 | 日韩黄色小视频 | 啪啪网页 | 国产黄色在线观看 | 免费观看的av毛片的网站 | 免费在线看黄 | www日本在线播放 | www.亚洲| 91成人小视频 | 区一区二区三在线观看 | 久久久激情 | 在线观看日本高清二区 |