找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求大神幫我看看程序錯誤在哪里

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:228032 發(fā)表于 2017-8-17 10:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
哪位大神能幫我看看程序錯誤  ,是做智能小車的
#include<reg52.h>
#define unchar unsigned char
#define unit unsigned int
#define num_1 100
#define num_2 1000
#define num_3 50
#define unchar unsigned char
#define unit unsigned int
unchar a;
void init()
{
  TMOD=0x20;
  TH1=0xfd;
  TR1=1;
  REN=1;
  SM0=0;
  SM1=1;
  EA=1;
  ES=1;
}
sbit In1=P1^0;
sbit In2=P1^1;     //定義左電機1的兩個連接端In1,In2;
sbit In3=P1^2;
sbit In4=P1^3;     //定義右電機2的兩個連接端In3,In4;
sbit In5=P1^4;
sbit In6=P1^5;     //定義左電機3的兩個連接端In5,In6;
sbit In7=P1^6;
sbit In8=P1^7;     //定義右電機4的兩個連接端In7,In8;
unsigned int i,j;
void main()
{
  void Stop_1()
  {
   In1=1;
   In2=1;
   }       //定義電機1停止;
  void Transferred_1()
  {
  In1=0;
  In2=1;
  }      //定義電機1正轉(zhuǎn);
  void Reverse_1()
  {
  In1=1;
  In2=0;
  }        //定義電機1反轉(zhuǎn);
  void Stop_2()
  {
   In3=1;
   In4=1;
   }       //定義電機2停止;
  void Transferred_2()
  {
  In3=0;
  In4=1;
  }      //定義電機2正轉(zhuǎn);
  void Reverse_2()
  {
  In3=1;
  In4=0;
  }        //定義電機2反轉(zhuǎn);
  void Stop_3()
  {
   In5=1;
   In6=1;
   }       //定義電機3停止;
  void Transferred_3()
  {
  In5=0;
  In6=1;
  }      //定義電機3正轉(zhuǎn);
  void Reverse_3()
  {
  In5=1;
  In6=0;
  }        //定義電機3反轉(zhuǎn);
  void Stop_4()
  {
   In7=1;
   In8=1;
   }       //定義電機4停止;
  void Transferred_4()
  {
  In7=0;
  In8=1;
  }      //定義電機4正轉(zhuǎn);
  void Reverse_4()
  {
  In7=1;
  In8=0;
  }        //定義電機4反轉(zhuǎn);
    void Stop()
    {
  
    {
    Stop_1();
    Stop_2();
    Stop_3();
    Stop_4();
    }}        //定義子功能:停止
    void Advance()
    {
    for(i=0;i<num_1;i++);
    for(j=0;j<num_2;j++);
    {
    Transferred_1();
    Transferred_2();
    Transferred_3();
    Transferred_4();
    }}       //定義子功能:前進(jìn)
    void Retreat()
    {
    for(i=0;i<num_1;i++);
    for(j=0;j<num_2;j++);
    {
    Reverse_1();
    Reverse_2();
    Reverse_3();
    Reverse_4();
    }}       //定義子功能反轉(zhuǎn)
    void Turn_left()   //電機1,電機3停止,電機2,電機4正轉(zhuǎn);
    {
    Stop_1();
    Stop_3();
    Transferred_2();
    Transferred_4();
    }      //定義子功能左轉(zhuǎn)
    void Turn_right()   //電機1,3正轉(zhuǎn),電機2,4反轉(zhuǎn);
  
    {
    Transferred_1();
    Transferred_3();
    Stop_2();
    Stop_4();
    }
  
    void ser()interrupt 4
    {
    ES=0;
    RI=0;    //將接收中斷標(biāo)志位清0
    a=SBUF;     //將接收到的數(shù)據(jù)賦值給a
    switch(a)
    {
    case 65: Advance();break;       //發(fā)送的是A,前進(jìn)指令
    case 66: Retreat();break;    //發(fā)送的是B,后退指令
    case 67: Turn_left();break;    //發(fā)送的是C,左轉(zhuǎn)指令
    case 68: Turn_right();break;    //發(fā)送的是D,右轉(zhuǎn)指令
    default: Stop();
    }
   ES=1;
   }  }
報錯是   CARKEIL.C(33): error C141: syntax error near '{'
CARKEIL.C(34): error C136: 'In1': 'void' on variable
CARKEIL.C(153): error C141: syntax error near '}'

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

使用道具 舉報

沙發(fā)
ID:228032 發(fā)表于 2017-8-17 10:12 | 只看該作者
來人吶  來神吶
回復(fù)

使用道具 舉報

板凳
ID:190832 發(fā)表于 2017-8-17 10:34 | 只看該作者
你再好好學(xué)學(xué)C語言基礎(chǔ)好不好,函數(shù)只能在最外層定義,哪有在函數(shù)里面定義函數(shù)的,而且還在主函數(shù)里面定義函數(shù)。你應(yīng)該把所有函數(shù)定義放在最外面,函數(shù)里面只能調(diào)用函數(shù)。真是服了。。。
回復(fù)

使用道具 舉報

地板
ID:190832 發(fā)表于 2017-8-17 11:09 | 只看該作者
hange_v 發(fā)表于 2017-8-17 10:34
你再好好學(xué)學(xué)C語言基礎(chǔ)好不好,函數(shù)只能在最外層定義,哪有在函數(shù)里面定義函數(shù)的,而且還在主函數(shù)里面定義 ...

另外,四輪小車的轉(zhuǎn)向絕對不是你程序中那樣簡單左右轉(zhuǎn),你還需要考慮轉(zhuǎn)向時里外車輪轉(zhuǎn)速是不同的。你的這種轉(zhuǎn)向只能是三輪的小車,并且一個是萬向輪。
回復(fù)

使用道具 舉報

5#
ID:227393 發(fā)表于 2017-8-17 12:09 來自觸屏版 | 只看該作者
可以做成函數(shù)模塊,主程序直接調(diào)用就好了啊
回復(fù)

使用道具 舉報

6#
ID:187532 發(fā)表于 2017-8-19 11:48 | 只看該作者
第一子函數(shù)要放在主函數(shù)后面需要在開頭進(jìn)行聲明,第二子函數(shù)要放在sbit定義后面,第三刨去語法錯誤,我覺得你的邏輯也有問題
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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