91美女视频-亚洲免费观看视频-欧美a∨-久热在线视频-日韩黄网站-成av人片在线观看www-久操综合-超碰av在线播放-性欧美欧美巨大69-婷婷二区-av男人的天堂网-中文字幕一区在线播放-玖草在线观看-国产网址在线观看-免费在线不卡av

zhaocongxue
級別: 家園?
精華主題: 0
發帖數量: 371 個
工控威望: 500 點
下載積分: 1226 分
在線時間: 188(小時)
注冊時間: 2007-10-27
最后登錄: 2025-12-30
查看zhaocongxue的 主題 / 回貼
樓主  發表于: 2012-08-18 09:43
系統程序:
#include <c8051f000.h>
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
sbit P1_0=P1^0;
sbit P1_2=P1^2;
sbit P0_6=P0^6;
sbit P0_4=P0^4;
sbit P0_7=P0^7;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
#define CON 28585756
uint t[4]={0,0,0,0};
uint i=0,a=0,t1=0,t2=0,e=0,tt=0;
char d=1,n=1,jj=0,j=0,m=0;

union tcfint16{
      uint myword0;
      struct{uchar hi;uchar low;}bytes0;
      }myint16;
union tcfint116{
      uint myword1;
      struct{uchar hi;uchar low;}bytes1;
      }myint116;
void pca1()                            //設置脈沖捕捉
{    
EIE1=0x00;                          //禁止脈沖捕捉中斷
PCA0MD=0x00;                      //系統時鐘12分頻,禁止pca中斷
PCA0CN=0x00;                       //CR=0
PCA0CPM0=0x20;
PCA0CPM1=0x20;                      //正沿捕捉
}
void DAC0(uint DAChl)
{
myint16.myword0=DAChl;
DAC0L=myint16.bytes0.low;
DAC0H=myint16.bytes0.hi;
}
void delay()
{
uint xxxx,xxx=999,xx,x;
for(x=0;x<400;x++)
   for(xx=0;xx<x;xx++)
   {
     xxxx=xxx/1000;
    }
}
main()                              //主函數
{
uint t0;
uint dk1=0,dk2=0;
WDTCN=0xde;
WDTCN=0xad;            //關看門狗
XBR0=0x12;
XBR2=0x40;               //交叉開關設置,外部中斷無引腳
XBR1=0x00;
OSCICN=0x95;             //內部時鐘4MHz
DAC1CN=0;               //DCA1無效
PRT0CF=0xc0;
PRT1CF=0x18;
CKCON=0xe7;            //系統時鐘12分頻
TMOD=0x11;
TCON=0x00;               //外部中斷請求及標志位0
TH0=0x00;
TL0=0x00;
TH1=0x00;
TL1=0x00;
pca1();                   //pca初始化  
REF0CN=0x03;
DAC0CN=0x84;             //DCA0使能,左對齊
  P1_0=0;
  P1_2=1;
  P0_6=0;
  P0_7=0;
  P1_3=0;
  P1_4=0;
   EA=1;                          //中斷設置
   ET0=1;
   PT0=1;
   ET1=1;
   PT1=1;
   a=0x91A0;
   //a=0xF2A0;
     DAC0(a);
    delay();    
//****************************測頻*****************************//
  while(1){
   for(i=1;i<4;i++){
    CCF0=0;                         //變頻上升沿標志
   while(CCF0==0)
   {}
   TR1=1;
   CCF0=0;                          //變頻上升沿標志
   while(CCF0==0)
   {}
   TR1=0;
myint116.bytes1.low=TL1;
myint116.bytes1.hi=TH1;
TH1=0;
TL1=0;
if(myint116.myword1>6000&&myint116.myword1<30000)  //剔除粗大誤差值
{m++;
t[m]=myint116.myword1;
}
else
i--;}
    for(i=1;i<=2;i++)                //中值濾波
     for(jj=1;jj<=3-i;jj++)
       if(t[jj]>t[jj+1])
         {t[0]=t[jj];
         t[jj]=t[jj+1];
         t[jj+1]=t[0];
         }  
    dk1=t[2];                        
    for(i=0;i<4;i++)
    t=0;
    n=1;                           //進入鑒頻鑒相
//***************************鑒頻*****************************//
while(d==1){                        //測量變頻周期
   for(i=1;i<4;i++){
    CCF1=0;                       //變頻上升沿標志
   while(CCF1==0)
   {}
   TR1=1;
   CCF1=0;                         //變頻上升沿標志
   while(CCF1==0)
   {}
   TR1=0;
myint116.bytes1.low=TL1;
myint116.bytes1.hi=TH1;
TH1=0;
TL1=0;
if(myint116.myword1>6000&&myint116.myword1<30000)
{m++;
t[m]=myint116.myword1;
}
else
i--;                   }
    for(i=1;i<=2;i++)                  //中值濾波
     for(jj=1;jj<=3-i;jj++)
       if(t[jj]>t[jj+1])
         {t[0]=t[jj];
         t[jj]=t[jj+1];
         t[jj+1]=t[0];
         }  
    dk2=t[2];
    for(i=0;i<4;i++)
    t=0;
    if(dk2>dk1+2)                       //鑒頻
     {a=a+192;
      DAC0(a);}
     else
      d=0;
     }
    a=0xF2A0;
    DAC0(a);
//****************************鑒相*****************************//     TR0=1;
    while(n==1)
    {
    CCF1=0;
    while(CCF1==0)
    {}
    TR1=1;
    CCF0=0;
    while(CCF0==0)
    {}
    TR1=0;
    myint116.bytes1.low=TL1;
    myint116.bytes1.hi=TH1;
      TH1=0;
      TL1=0;
      t1=myint116.myword1;//假設變頻超前測t1
      if(t1>=(dk1-700))
      t1=t1-(dk1-700);
      else
      t1=700+t1;             //補償
    CCF0=0;
    while(CCF0==0)
    {}
    TR1=1;
    CCF1=0;
    while(CCF1==0)
    {}
    TR1=0;
    myint116.bytes1.low=TL1;
    myint116.bytes1.hi=TH1;
      TH1=0;
      TL1=0;
      t2=myint116.myword1;      //假設工頻超前測t2
    f(t2>=700)
    t2=t2-700;
    else
    t2=dk1-(700-t2);           //補償
      if(t1<=t2)               //變頻超前工頻
      {if(t1<250)
       {a=CON/dk1*16-t1;
       DAC0(a);}
       else{
       a=CON/dk1*16-250;
       DAC0(a);}
       n=0;                   //轉入測頻
       }
      else                      //工頻超前變頻
      {if(t2<250)
       {a=CON/dk1*16+t2;
       DAC0(a);}
        else{
       a=CON/dk1*16+250;
       DAC0(a);}
       n=0;                    //轉入測頻
      }
    }
  }
}
void t0_ISR()interrupt 1     //中斷服務程序
{TH0=0x00;
TL0=0x00;
TF0=0;
j++;
if(j==80)
{j=0;
P0_7=1;}
}
void t1_ISR()interrupt 3   //中斷服務程序
{TH1=0x00;
TL1=0x00;
TF1=0;
}


附件: 變頻工頻鎖相程序.doc (40 K) 下載次數:19
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網絡英雄

精華主題: 1 篇
發帖數量: 3413 個
工控威望: 21028 點
下載積分: 40366 分
在線時間: 1845(小時)
注冊時間: 2010-01-03
最后登錄: 2026-01-18
查看tkggtdkjpl的 主題 / 回貼
1樓  發表于: 2012-08-18 12:33
見過把PLC程序轉成單片機程序的,把單片機程序轉成PLC程序還是第一次看到
C語言你能編,PLC你不能編我覺得很好奇!
自動化單機,生產線,項目編程調試!

主站蜘蛛池模板: 欧美精品1区2区 | 九月婷婷综合 | 国产一区二区自拍视频 | 一级的大片 | 国产毛片毛片毛片毛片毛片毛片 | 青青青免费在线视频 | 成人在线你懂的 | 欧美亚洲 | 色哟哟一区| 超碰免费观看 | 日韩精品乱码久久久久久 | 日本中文字幕成人 | 一区二区三区高清在线观看 | 最好看的mv中文字幕国语电影 | 久草在现 | 老女人毛片50一60岁 | 视频1区 | 爱射网 | av网址观看 | 性高潮网站 | 六月婷婷激情 | 96看片| 天天干干干 | 久久精品这里只有精品 | 天堂在线免费观看 | 韩日视频| 国产激情第一页 | 偷拍亚洲另类 | 色呦呦在线播放 | 成人在线网 | 欧美人妻日韩精品 | 韩国特级毛片 | 国产日韩欧美日韩大片 | 夜夜春av | 成年人免费观看视频网站 | 亚洲欧美日韩一区二区三区四区 | 日韩一级片视频 | 91老师国产黑色丝袜在线 | 手机看片日韩欧美 | 日本久久高清 | 奇米影视奇米色 | 国产免费a级片 | 欧美一级免费在线观看 | 天堂中文在线观看视频 | 被黑人猛躁10次高潮视频 | 精东影业一区二区三区 | 91视频免费视频 | 国产乱妇4p交换乱免费视频 | 免费色站| 宝贝乖h调教灌尿穿环 | 亚洲精品www久久久久久 | 日韩一区二区三区免费 | 美女爽爽爽 | 久久av不卡| 国产a国产片| 老司机深夜福利网站 | 色就是欧美 | 美国一级大黄一片免费中文 | 国产极品美女高潮无套嗷嗷叫酒店 | 中文字幕av久久爽 | 播放毛片 | 狠狠欧美| 靠逼在线观看 | 国产精品区二区三区日本 | 久久99国产精品成人 | 亚洲一区二区三区四区av | 国产又大又黑又粗免费视频 | 亚洲最色网站 | 欧美一级啪啪 | 97超碰资源站| 国产一区二区视频免费观看 | 插插操操 | 久久日韩精品 | 免费播放片大片 | 毛片日韩| 老牛影视av牛牛影视av | 日韩少妇 | 久久亚洲电影 | 国产一区二区三区在线免费观看 | 日韩欧美h | 亚欧洲精品视频在线观看 | 国产高清区 | 制服丝袜在线第一页 | 亚洲在线一区二区 | 日韩中文字幕av在线 | 久草新免费 | 欧美日韩三级在线 | 一区二区三区久久久 | 国产精品51 | 黄色777 | 特一级黄色片 | 日本男人天堂 | 第一章豪妇荡乳黄淑珍 | 熟妇熟女乱妇乱女网站 | 中文字幕一区二区人妻 | 日本乱子伦 | 打屁股无遮挡网站 | 亚洲天堂中文在线 | 神马影院午夜伦理 |