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

QQ登錄

只需一步,快速開始

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

基于三相電源的頻率檢測(cè)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:532475 發(fā)表于 2019-5-14 13:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
該程序能檢測(cè)處理后的三相電源信號(hào),希望有所幫助。

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. unsigned long fre;  
  3. unsigned char time;
  4. unsigned int count;
  5. unsigned char led[6];
  6. unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,
  7.                    0x6d,0x7d,0x07,0x7f,0x6f};  //數(shù)碼管0123456789顯示
  8. sbit swan=P2^0;
  9. sbit wan =P2^1;
  10. sbit qian=P2^2;
  11. sbit bai =P2^3;
  12. sbit shi =P2^4;
  13. sbit ge=P2^5;
  14. sbit  ppp=  P0^0 ;

  15. void timer_init();                     //函數(shù)聲明        
  16. void display(unsigned long num);
  17. void delay(unsigned int a);

  18. void main()
  19. {  
  20. // timer_init(); //定時(shí)/計(jì)數(shù)器初始化     
  21. while(1)  
  22.      {   //display(fre); //數(shù)碼管顯示
  23.          P2 = 0x75;  
  24.                   P0 = 0x35;      
  25.          }  
  26. }

  27. void delay(unsigned int a)   //延時(shí)約1ms(12Mhz晶振)
  28. {
  29. unsigned char i;
  30. while(a--!=0)
  31. for(i=125;i>0;i--);
  32. }

  33. void display(unsigned long num)   //顯示函數(shù)
  34. {unsigned char sw,w,q,b,s,g;
  35.   P0 = 0x75;

  36. //sw=num/100000;P0=table[sw];swan=0;delay(2);swan=1;
  37. //w=num/10000%10;P0=table[w];wan=0;delay(2);wan=1;
  38. //q=num/1000%10;P0=table[q];qian=0;delay(2);qian=1;
  39. //b=num%1000/100;P0=table[b];bai=0;delay(2);bai=1;
  40. //s=num%100/10;P0=table[s];shi=0;delay(2);shi=1;
  41. //g=num%10;P0=table[g];ge=0;delay(2);ge=1;
  42. }

  43. void timer_init(void)   //定時(shí)/計(jì)數(shù)器初始化      
  44. {   TMOD=0x06;    //計(jì)數(shù)器0工作工作方式2,自動(dòng)重裝初值      
  45. TH0=0; //計(jì)數(shù)器初值為0  
  46. TL0=0;  
  47. TR0=1; //計(jì)數(shù)器開始計(jì)數(shù)   
  48. ET0=1;   //打開計(jì)數(shù)器0中斷      
  49. RCAP2H=(65536-62500)/256; //在程序初始化時(shí)給RCAP2L和RCAP2H賦值           
  50. RCAP2L=(65536-62500)%256; //TH2 和 TL2 將會(huì)在中斷產(chǎn)生時(shí)自動(dòng)使 TH2=RCAP2H,TL2=RCAP2L。        
  51. TH2=RCAP2H;   //12M晶振下每次中斷62.5ms                  
  52. TL2=RCAP2L;   
  53. ET2=1;     //打開定時(shí)器2中斷     
  54. TR2=1;     //定時(shí)器2開始計(jì)時(shí)      
  55. EA=1;     //開總中斷      
  56. }

  57. void timer2(void) interrupt 5 //定時(shí)器2中斷(62.5ms)
  58. {
  59. time++;   
  60. TF2=0;//定時(shí)器2的中斷標(biāo)志位TF2不能夠由硬件清零,所以要在中斷服務(wù)序中將其清零   
  61. if (time==16)    //定時(shí)1s時(shí)間到  
  62.    {
  63.          time=0;     //計(jì)時(shí)清0     
  64.         EA=0;     //關(guān)中斷        
  65.          fre=7;
  66.         //fre=(long)count*256+TL0; //count*256強(qiáng)制轉(zhuǎn)換成long型,否則將不產(chǎn)生進(jìn)位  
  67.         TL0=0;     //清零計(jì)數(shù)器0計(jì)數(shù)   
  68.     TH0=0;     
  69.     count=0;     //清零計(jì)數(shù)器0計(jì)數(shù)         
  70.         EA=1;      //開始中斷
  71.         }
  72. }

  73. void timer0(void)interrupt 1//計(jì)數(shù)器0中斷         
  74. {
  75.   count++;
  76. }
復(fù)制代碼





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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-5-14 18:31 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

板凳
ID:439742 發(fā)表于 2021-12-12 23:06 | 只看該作者
沒有什么用
回復(fù)

使用道具 舉報(bào)

地板
ID:439742 發(fā)表于 2021-12-12 23:06 | 只看該作者
沒有什么用
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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