智能车制作

标题: 帮我看看我这个程序哪错了,,, [打印本页]

作者: 流年未逝已成殇    时间: 2014-8-3 16:00
标题: 帮我看看我这个程序哪错了,,,
#include<REG51.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define U8 unsigned char
#define U16 unsigned int

sbit IN1=P1^0;       //P10与电机驱动IN1相连                           
sbit IN2=P1^1;                   //P11与电机驱动IN2相连                           
sbit IN3=P1^2;                   //P12与电机驱动IN3相连                             
sbit IN4=P1^5;                   //P13与电机驱动IN4相连      
sbit PWM1=P1^3;
sbit PWM2=P1^4;
sbit EN1=P3^1;
sbit EN2=P3^2;

sbit FORWORD_1=P0^0;
sbit FORWORD_2=P0^1;          
sbit FORWORD_UP1=P0^3;
sbit FORWORD_UP2=P0^4;
sbit LEFT=P0^5;
sbit RIGHT=P0^6;
sbit LEFT_UP=P0^7;
sbit RIGHT_UP=P0^8;
sbit sound=P3^3;

uchar data t_0;
uchar data motor_r;
uchar data motor_l;
uchar data Value;
uchar data mid;
void DelayMs(U8 ms);
void PWM_clock(U8 clock);
void PWM_start(U8 module,U8 mode);
////////////////////// 延时子程序/////////////////////////////
void DelayMs(U8 ms) //在11.0592M晶振下,stc10f系列(单周期指令)的ms级延时
{      
U16 i;
while(ms--)
{
   for(i = 0; i < 850; i++);
}
}
////////////////////主函数入口////////////////////////////

sfr CCON     = 0xD8; //PCA控制寄存器
sfr CMOD     = 0xD9; //PCA模式寄存器
sfr CCAPM0   = 0xDA; //PCA模块0模式寄存器 //模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)   
sfr CCAPM1   = 0xDB; //PCA模块1模式寄存器 //模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)
sfr CL       = 0xE9;    //PCA 定时寄存器 低位
sfr CH       = 0xF9; //PCA 定时寄存器 高位
sfr CCAP0L   = 0xEA; //PCA模块0的 捕获寄存器 低位
sfr CCAP0H   = 0xFA;    //PCA模块0的 捕获寄存器 高位
sfr CCAP1L   = 0xEB; //PCA模块1的 捕获寄存器 低位
sfr CCAP1H   = 0xFB; //PCA模块1的 捕获寄存器 高位
sfr PCA_PWM0 = 0xF2; //PCA PWM 模式辅助寄存器0
sfr PCA_PWM1 = 0xF3; //PCA PWM 模式辅助寄存器1
sbit CF   = 0xDF;     //PCA计数溢出标志位
sbit CR   = 0xDE;     //PCA计数器 运行控制位
sbit CCF1 = 0xD9;     //PCA模块1中断标志
sbit CCF0 = 0xD8;     //PCA模块0中断标志

//* CCAPOH = CCAPOL = 0XC0; //模块0输出 占空因数为25%
//* CCAPOH = CCAPOL = 0X80; //模块0输出 占空因数为50%
//* CCAPOH = CCAPOL = 0X40; //模块0输出 占空因数为75%

void PWM_clock(U8 clock);
void PWM_start(U8 module,U8 mode);

void PWM_clock(U8 clock)
{
CMOD |= (clock<<1);
CL = 0x00;
CH = 0x00;
}

void PWM_start(U8 module,U8 mode)
{
CCAP0L = 0XE0;
CCAP0H = 0XE0;   //模块0初始输出 占空因数为75%
CCAP1L = 0XE4;
CCAP1H = 0XE4;   //模块1初始输出 占空因数为25%

if(module==0)
   {
    switch(mode)
     {
   case 0: CCAPM0 = 0X42;break; //模块0设置为8位PWM输出,无中断
   case 1: CCAPM0 = 0X53;break; //模块0设置为8位PWM输出,下降沿产生中断
   case 2: CCAPM0 = 0X63;break; //模块0设置为8位PWM输出,上升沿产生中断
   case 3: CCAPM0 = 0X73;break; //模块0设置为8位PWM输出,跳变沿产生中断
   default: break;
   }
}
else
    if(module==1)
     {
      switch(mode)
       {
   case 0: CCAPM1 = 0X42;break; //模块1设置为8位PWM输出,无中断
   case 1: CCAPM1 = 0X53;break; //模块1设置为8位PWM输出,下降沿产生中断
   case 2: CCAPM1 = 0X63;break; //模块1设置为8位PWM输出,上升沿产生中断
   case 3: CCAPM1 = 0X73;break; //模块1设置为8位PWM输出,跳变沿产生中断
   default: break;
   }
   }
   else
     if(module==2)
        {
        switch(mode)
    {
      case 0: CCAPM0 = CCAPM1 = 0X42;break; //模块0和1设置为8位PWM输出,无中断
      case 1: CCAPM0 = CCAPM1 = 0X53;break; //模块0和1设置为8位PWM输出,下降沿产生中断
      case 2: CCAPM0 = CCAPM1 = 0X63;break; //模块0和1设置为8位PWM输出,上升沿产生中断
      case 3: CCAPM0 = CCAPM1 = 0X73;break; //模块0和1设置为8位PWM输出,跳变沿产生中断
      default: break;
      }
       }
CR=1; //PCA计数器开始计数
}

void PCA_Intrrpt(void) interrupt 7
{
if(CCF0) CCF0=0;
if(CCF1) CCF1=0;   //软件清零
if(CF)   CF=0;    //软件清零
}
///蜂鸣器响///
void Sound(void)
sound=0;
DelayMs(U8 ms);
sound=1;
//**小车转向子程序**///

void Turn_left(void)                                                      
{                                                                          
  IN1=0;                                                                  
  IN2=0;                                                                 
  IN3=0;                                                               
  IN4=1;                                                               
}                                                                        
void Turn_right(void)                                                   
{                                                                        
  IN1=1;                                                                  
  IN2=0;                                                                    
  IN3=0;                                                               
  IN4=0;                                                                 
}                                                                        

void Go(void)                                                           
{                                                                       
  IN1=1;                                                                        
  IN2=0;                                                               
  IN3=1;                                                                  
  IN4=0;                                                               
}
//**主程序**///

void main(void)
{
TMOD=0x02; /* timer 0 mode 2: 8-Bit reload */
TH0=0xAF;
TR0=1;     
PWM_clock(2);      // PCA/PWM时钟源为 定时器0的溢出
PWM_start(0,0); // 模块0,设置为PWM输出,无中断,初始占空因素为25%
while(1)
   {
    DelayMs(250);
   }

void Go(void)//直行
if (LEFT_UP==1);
void Turn_left(void)//左转
if( RIGHT_UP==1);
void Turn_right(void)//右转
if( FORWORD_UP1==1&& FORWORD_UP2==1)
void Turn_left(void)//左转90
if(FORWORD_1==1&& FORWORD_2==1)
void Turn_left(void)//左转90
if( FORWORD_UP1==1&& FORWORD_UP2==1)
void Turn_right(void)//右转90
if(FORWORD_1==1&& FORWORD_2==1)
void Turn_right(void)//右转90
if( FORWORD_UP1==1&& FORWORD_UP2==1)
void Turn_left(void)//左转90
if(FORWORD_1==1&& FORWORD_2==1)
void Turn_left(void)//左转90
if( FORWORD_UP1==1&& FORWORD_UP2==1)
void Turn_right(void)//右转90

}
这是错误提示
compiling 小车程序.c...
小车程序.c(24): error C144: base^pos: invalid bit position
小车程序.c(130): error C244: 'sound': can't initialize, bad type or class
小车程序.c(130): error C132: 'sound': not in formal parameter list
小车程序.c(131): error C132: '_DelayMs': not in formal parameter list
小车程序.c(132): error C244: 'sound': can't initialize, bad type or class
小车程序.c(132): error C132: 'sound': not in formal parameter list
小车程序.c(136): error C132: 'Turn_left': not in formal parameter list
小车程序.c(136): error C141: syntax error near '{'
小车程序.c(137): error C136: 'IN1': 'void' on variable
小车程序.c(137): error C244: 'IN1': can't initialize, bad type or class
小车程序.c(137): error C136: 'IN1': 'void' on variable
小车程序.c(137): error C132: 'IN1': not in formal parameter list
小车程序.c(138): error C244: 'IN2': can't initialize, bad type or class
小车程序.c(138): error C132: 'IN2': not in formal parameter list
小车程序.c(139): error C244: 'IN3': can't initialize, bad type or class
小车程序.c(139): error C132: 'IN3': not in formal parameter list
小车程序.c(140): error C244: 'IN4': can't initialize, bad type or class
小车程序.c(140): error C132: 'IN4': not in formal parameter list
小车程序.c(141): error C141: syntax error near '}'
小车程序.c(171): error C141: syntax error near 'void'
小车程序.c(173): error C141: syntax error near 'void'
小车程序.c - 21 Error(s), 0 Warning(s).


作者: 流年未逝已成殇    时间: 2014-8-3 16:01
芯片是STC12c5a60s2
作者: 917052549    时间: 2014-8-3 16:03
好长
作者: 流年未逝已成殇    时间: 2014-8-3 16:11
917052549 发表于 2014-8-3 16:03
好长

:'(:'(

作者: 机器人没名字    时间: 2014-8-3 17:13
为什么没有;号呢

作者: 机器人没名字    时间: 2014-8-3 17:14
好多错误啊
作者: 黑色枫夜    时间: 2014-8-4 12:38
难道不应该先把每条错误都百度一下为什么再来问么,你这样这么长这么多错一般都没心思看




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2