欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)風(fēng)力發(fā)電機(jī)迎風(fēng)面對風(fēng)向的追蹤系統(tǒng)設(shè)計(jì) 含電路原理圖、程序源碼 [打印本頁]

作者: zxcvbnm201    時間: 2019-4-8 15:09
標(biāo)題: 單片機(jī)風(fēng)力發(fā)電機(jī)迎風(fēng)面對風(fēng)向的追蹤系統(tǒng)設(shè)計(jì) 含電路原理圖、程序源碼
這是我做的一個追蹤系統(tǒng)
包含兩部分測量顯示部分和電機(jī)驅(qū)動部分
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


用proteus畫的仿真原理圖,還有仿真結(jié)果。

八位開關(guān)模擬八位二進(jìn)制編碼盤角度精度360/2^8=1.40625度

顯示電路選用數(shù)碼管動態(tài)掃描顯示,顯示角度-180~+180度


000000000000000000000000000000000


電機(jī)驅(qū)動用于接收單片機(jī)正負(fù)旋轉(zhuǎn)信號,驅(qū)動電機(jī)正反轉(zhuǎn)


單片機(jī)源程序如下:
  1. #include "reg51.h"

  2. sbit M1=P2^6;
  3. sbit M2=P2^7;
  4. sbit P20=P2^0;
  5. sbit P21=P2^1;
  6. sbit P22=P2^2;
  7. sbit P23=P2^3;
  8. sbit P24=P2^4;

  9. unsigned int table[10]={                        
  10.                                                 0xC0, //"0"
  11.                                                 0xF9, //"1"
  12.                                                 0xA4, //"2"
  13.                                                 0xB0, //"3"
  14.                                                 0x99, //"4"
  15.                                                 0x92, //"5"
  16.                                                 0x82, //"6"
  17.                                                 0xF8, //"7"
  18.                                                 0x80, //"8"
  19.                                                 0x90, //"9"
  20.          };

  21. float Angle,jiaodu;

  22. void Sys_Init()           //端口初始電平
  23. {
  24.         P0=0XFF;
  25.         P1=0XFF;
  26.         P2=0Xe0;
  27. }

  28. float Read_Data()        //從P1口讀四位二進(jìn)制碼,轉(zhuǎn)化為角度值
  29. {
  30.         unsigned int y=0;
  31.         float x=0.0;
  32.         y=0XFF^P1;
  33.         x=y*1.4;
  34.         return x;
  35. }
  36. void Delay10ms()                  //延時函數(shù)
  37. {
  38.         unsigned char i, j;

  39.         i = 20;
  40.         j = 113;
  41.         do
  42.         {
  43.                 while (--j);
  44.         } while (--i);
  45. }

  46. void Display()                                //顯示函數(shù)
  47. {
  48.         unsigned int i;
  49.         unsigned  B,C,D,E;
  50.     //        A=Angle/1000;                           //千位
  51.     if(jiaodu>180)
  52.         Angle=360.0-jiaodu;
  53.         else Angle=jiaodu;
  54.         B=(((int)Angle)%1000)/100;                   //百位
  55.         C=((int)Angle)%100/10;                           //十位
  56.         D=((int)Angle)%10;                                   //個位
  57.         E=((int)(jiaodu*10))%10;                   //十分位
  58.         for(i=0;i<5;i++)
  59.         {
  60.                 switch(i)
  61.                 {   
  62.                         case 0:
  63.                                         P20=1;                           //位選端打開
  64.                                         if(jiaodu>180)
  65.                                           P0=0xBF;               //向P0口輸數(shù)據(jù)
  66.                                         else P0=0xC0;
  67.                                         Delay10ms();           //延時
  68.                                         P20=0;                           //位選端關(guān)閉               
  69.                                         break;
  70.                         case 1:
  71.                                         P21=1;
  72.                                         P0=table[B];
  73.                                         Delay10ms();        
  74.                                         P21=0;
  75.                                         break;
  76.                         case 2:
  77.                                         P22=1;
  78.                                         P0=table[C];
  79.                                         Delay10ms();        
  80.                                         P22=0;
  81.                                         break;
  82.                         case 3:
  83.                                         P23=1;
  84.                                         P0=table[D];
  85.                                         Delay10ms();        
  86.                                         P23=0;
  87.                                         break;
  88.                         case 4:
  89.                                         P24=1;
  90.                                         P0=table[E];
  91.                                         Delay10ms();        
  92.                                         P24=0;
  93.                                         break;
  94.                         default:
  95.                                         break;
  96.                 }
  97.         }
  98. }        

  99. void Motor_Ctrl()                                 //步進(jìn)電機(jī)脈沖
  100. {
  101.         if(jiaodu<=180)                                 //角度小于180度P26輸出一個脈沖
  102.                 {
  103.                         M1=0;
  104.                         M2=1;
  105.                     Delay10ms();
  106.                     M1=1;
  107.                 }
  108.         else if(jiaodu>180)                          //角度大于180度P27輸出脈沖
  109.                 {
  110.                         M1=1;
  111.                         M2=0;
  112.                         Delay10ms();
  113.                     M2=1;
  114.                 }
  115.         else
  116.                 {
  117.                         M1=1;
  118.                         M2=1;
  119.                 }
  120. }

  121. void main()                                  //主函數(shù)
  122. {
  123.                 Sys_Init();
  124.         while(1)
  125.         {
  126.                 jiaodu=Read_Data();
  127.                 Motor_Ctrl();
  128.                 Display();
  129.         }
  130. }
復(fù)制代碼


全部資料51hei下載地址:
課程設(shè)計(jì).zip (30.2 KB, 下載次數(shù): 96)

作者: camelli    時間: 2019-4-12 23:49
電路圖打不開呀
作者: zxcvbnm201    時間: 2019-4-17 01:21
camelli 發(fā)表于 2019-4-12 23:49
電路圖打不開呀

用proteus8以上版本試試
作者: monkop    時間: 2019-4-17 10:52
謝謝樓主分享,最近有這方面想法
作者: 啦啦啦啦ADC    時間: 2019-11-6 22:19
電路圖打不開

作者: shenyuqiu    時間: 2019-11-7 16:38
請問這個是通過什么原理測量風(fēng)的角度的呢?
作者: dinghaidi    時間: 2020-5-12 15:51
樓主還在嗎,問一下,風(fēng)力發(fā)電機(jī)在proteus怎么找啊
作者: 譚擎蒼    時間: 2021-4-16 13:55
樓主,你這個運(yùn)行會出現(xiàn)[SPICE] TRAN:  Timestep too small; timestep = 1.25e-019: trouble with node #00007.
的問題,無法運(yùn)行啊

作者: 譚擎蒼    時間: 2021-4-16 14:56
樓主你好,這個程序我用protues8.9跑了一下報(bào)錯了,說[SPICE] TRAN:  Timestep too small; timestep = 1.25e-019: trouble with node #00007.
請問這是需要設(shè)置別的什么才能運(yùn)行嗎
作者: zuiqf1978    時間: 2021-4-28 00:18
風(fēng)力發(fā)電機(jī)有尾翼追風(fēng)!
作者: bomb1999    時間: 2021-4-28 10:54
zuiqf1978 發(fā)表于 2021-4-28 00:18
風(fēng)力發(fā)電機(jī)有尾翼追風(fēng)!

說得不錯咯,但是可以舉一反三,應(yīng)用到其他控制,也是移植啊。
作者: 徐sir    時間: 2022-1-3 08:37
譚擎蒼 發(fā)表于 2021-4-16 14:56
樓主你好,這個程序我用protues8.9跑了一下報(bào)錯了,說[SPICE] TRAN:  Timestep too small; timestep = 1.25 ...

我也是,請問您解決了嗎
作者: gchq521    時間: 2023-5-10 14:44
一樣,用protues8.9跑了一下報(bào)錯了,說[SPICE] TRAN:  Timestep too small; timestep = 1.25e-019: trouble with node #00007.




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1