国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

51單片機追光程序Proteus仿真原理圖(太陽能充電)

[復制鏈接]
樓主
eng 發表于 2021-6-20 02:44:03 | 只看該作者 |只看大圖 |倒序瀏覽 |閱讀模式
51單片機追光程序Proteus仿真原理圖(太陽能充電) 1.png 仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51單片機追光程序Proteus仿真原理圖(太陽能充電) 2.gif


部分源碼:完整源碼請下載本文尾部的附件。
  1. /********************************************************************
  2. * 名稱   : PSend_Hex()
  3. * 功能   : 發送字符串函數,可控制發送長度
  4. * 變量   : 無
  5. * 返回值 : 無
  6. ********************************************************************/
  7. void Send_Hex(unsigned char *p,unsigned char num)
  8. {
  9.        while(num--)   //剩余發送的字符數
  10.     {
  11.         SBUF = *p; //將要發送的數據賦給串口緩沖寄存器
  12.             while(!TI);//等待發送結束
  13.             TI = 0;    //軟件清零
  14.             p++;       //指針加一
  15.     }   
  16. }
  17. void main()       //函數功能:主函數
  18. {      

  19.     uchar AD_Up,AD_Down,AD_Left,AD_Right;
  20.     uchar i,j,k;
  21.     uchar Table[4];
  22.     Delay_ms(2000);
  23.     UART_Init();   
  24.     while(1)
  25.     {
  26.         if(!ENTER)
  27.         {
  28.             Delay_ms(20);
  29.             while(!ENTER);
  30.             k++;   
  31.         }
  32.         if(k == 5)
  33.         {
  34.         LED1 = 1;
  35.         LED2 = 0;
  36.         for(i=0;i<8;i++)
  37.         {
  38.             switch(AD_CHANNEL)
  39.             {
  40.                 case 0: PCF8591_ISendByte(PCF8591,0x41);
  41.                 AD_Up=PCF8591_IRcvByte(PCF8591)*2;  //ADC0 模數轉換1
  42.                 break;  
  43.                
  44.                 case 1: PCF8591_ISendByte(PCF8591,0x42);
  45.                 AD_Down=PCF8591_IRcvByte(PCF8591)*2;  //ADC1  模數轉換2
  46.                 break;  
  47.                 case 2: PCF8591_ISendByte(PCF8591,0x43);
  48.                 AD_Left=PCF8591_IRcvByte(PCF8591)*2;  //ADC2 模數轉換3
  49.                 break;  
  50.                
  51.                 case 3: PCF8591_ISendByte(PCF8591,0x40);
  52.                 AD_Right=PCF8591_IRcvByte(PCF8591)*2;  //ADC3  模數轉換4
  53.                 break;
  54.             }

  55.             Send_Hex(Table,4);
  56.             if(++AD_CHANNEL>3)
  57.             {
  58.              AD_CHANNEL=0;
  59.              Table[0] = AD_Up;
  60.             Table[1] = AD_Down;
  61.             Table[2] = AD_Left;
  62.             Table[3] = AD_Right;
  63.              }
  64.         }
  65.         }
  66.         if(k%2 == 1)
  67.         {
  68.             LED1 = 0;
  69.             LED2 = 1;
  70.             AD_Up = 0;    //上
  71.             AD_Down = 0;//下
  72.             AD_Left = 0;//左
  73.             AD_Right = 0;//右   
  74.         }        
  75.         ///////////////////////////
  76.       
  77.         if(((AD_Up<AD_Down)&&(AD_Down-AD_Up>10))||(!UP))//上轉
  78.         {
  79.             for(i=0;i<10;i++)
  80.             {
  81.                 for(j=0;j<4;j++)
  82.                 {
  83.                     P2=Motor_Up[j];
  84.                     Delay_ms(10);
  85.                 }        
  86.             }   
  87.         }
  88.         //////////////////////////////////////
  89.         if(((AD_Up>AD_Down)&&(AD_Up-AD_Down>10))||(!DOWN))//下轉
  90.         {
  91.             for(i=0;i<10;i++)
  92.             {
  93.                 for(j=0;j<4;j++)
  94.                 {
  95.                     P2=Motor_Down[j];
  96.                     Delay_ms(10);
  97.                 }        
  98.             }
  99.         }
復制代碼
完整51單片機c源代碼和Protues 仿真文件.zip (364.97 KB, 售價: 5 E幣)
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 06:06

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表