找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1824|回复: 6
打印 上一主题 下一主题
收起左侧

求求大家帮我看看这个程序有什么错误,编译之后老是提示少一个分号在11行

[复制链接]
跳转到指定楼层
楼主
ID:559868 发表于 2019-6-12 13:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit NS_GRE = P0^5 ;      
sbit NS_YEL = P0^4 ;
sbit NS_RED = P0^3 ;  
sbit EW_GRE = P0^2 ;
sbit EW_YEL = P0^1 ;  
sbit EW_RED = P0^0 ;  
uint8  EW_Timer = unused8;
uint8  NS_Timer = unused8;  
uint8  YEL_Timer = unused8;
int main(void)
{
    Timer_Init();   
    INT0_Init();      
    EA=1;         
    NS_GRE = OFF;      
    NS_YEL = OFF;
    NS_RED = OFF;   
    EW_GRE = OFF;  
    EW_YEL = OFF;  
    EW_RED = OFF;   
    P3 = 0xFF;     
    EW_Timer = EWTime_Count;
    while(1)
         {
         if((EW_Timer != unused8) && (EW_Timer != 0))
         {
             display1(EW_Timer/10, EW_Timer%10);      
                EW_RED_ON();                             
                NS_GRE_ON();
                          }
else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8))
{              
EW_RED_ON();
NS_YEL_ON();                        
YEL_Timer = YELTime_Count;
}
if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0))
{
display1(YEL_Timer/10, YEL_Timer%10);
}
if((EW_Timer != unused8) && (YEL_Timer == 0))
{
                EW_Timer = unused8;
                YEL_Timer = unused8;                     
                NS_RED_ON();                             
                EW_GRE_ON();                             
                NS_Timer = NSTime_Count;                 
           }
if((NS_Timer != unused8) && (NS_Timer != 0))
{                display2(NS_Timer/10, NS_Timer%10);      
                EW_GRE_ON();                             
                NS_RED_ON();                             
           }
                          else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8))
                          {
              NS_RED_ON();                             
                EW_YEL_ON();
                YEL_Timer = YELTime_Count;
                }
if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0))
{   
                display2(YEL_Timer/10, YEL_Timer%10);
                }
if((NS_Timer != unused8) && (YEL_Timer == 0))
{               
                NS_Timer = unused8;
                YEL_Timer = unused8;
                EW_RED_ON();                           
                NS_GRE_ON();                           
                EW_Timer = EWTime_Count;               
           }
           if(Flag_Key == 1)
                          {        
                P3 = 0xFF;           
                EW_RED_ON();        
                NS_RED_ON();                        
                EW_Timer = unused8;
                NS_Timer = unused8;
                YEL_Timer = unused8;
           }
    }
}
sbit Key = P3^2;
uint8  Flag_Key = 0;
void INT0_Init(void)
{
    EX0 = 1;
    IT0 = 1;
}
void Key_Stop(void) interrupt 0
{
    Delay10uS(200);
    if(Key == 0)
         {
        Flag_Key = 1;
    }
}
sbit NS_GRE = P0^5;      
sbit NS_YEL = P0^4;
sbit NS_RED = P0^3;   
sbit EW_GRE = P0^2;  
sbit EW_YEL = P0^1;  
sbit EW_RED = P0^0;   
uint8  EW_Timer = unused8;  
uint8  NS_Timer = unused8;  
uint8  YEL_Timer = unused8;
int main(void)
{
    Timer_Init();   
    INT0_Init();      
    EA=1;               
    NS_GRE = OFF;   
    NS_YEL = OFF;
    NS_RED = OFF;   
    EW_GRE = OFF;  
    EW_YEL = OFF;  
    EW_RED = OFF;   
    P3 = 0xFF;     
    EW_Timer = EWTime_Count;
    while(1)
    {
if((EW_Timer != unused8) && (EW_Timer != 0))
{
                display1(EW_Timer/10, EW_Timer%10);      
                EW_RED_ON();                             
                NS_GRE_ON();                             
           }
                          else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8))
{
                EW_RED_ON();                             
                NS_YEL_ON();                             
               YEL_Timer =YELTime_Count;
               }
if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0))
{
                display1(YEL_Timer/10, YEL_Timer%10);
                }
if((EW_Timer != unused8) && (YEL_Timer == 0))
{               
                EW_Timer = unused8;                     
                YEL_Timer = unused8;                     
                NS_RED_ON();                             
                EW_GRE_ON();                             
                NS_Timer = NSTime_Count;                 
           }
if((NS_Timer != unused8) && (NS_Timer != 0))
{               
                display2(NS_Timer/10, NS_Timer%10);      
                EW_GRE_ON();                             
                NS_RED_ON();                             
           }
else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8))
{
                NS_RED_ON();                             
                EW_YEL_ON();                             
                YEL_Timer = YELTime_Count;            
           }
           if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0))
                          {   
                display2(YEL_Timer/10, YEL_Timer%10);
                }
           if((NS_Timer != unused8) && (YEL_Timer == 0))
{               
                NS_Timer = unused8;
                YEL_Timer = unused8;
                EW_RED_ON();                           
                NS_GRE_ON();                           
                EW_Timer = EWTime_Count;               
           }
           if(Flag_Key == 1)
                          {      
                P3 = 0xFF;           
                EW_RED_ON();        
                NS_RED_ON();                        
                EW_Timer = unused8;  
                NS_Timer = unused8;
                YEL_Timer = unused8;
           }
    }
}
uint8  Timer = 20;  
void Timer_Init(void)
{
    TMOD=0x01;            
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    ET0=1;                    
    TR0=1;                 
}
void timer1(void) interrupt 1
{               
    TH0=(65536-50000)/256;  
    TL0=(65536-50000)%256;
    if(Timer > 0)
         {
        Timer--;
        if(Timer == 0)
                  {   
            Timer = 20;
            if((EW_Timer != unused8) && (EW_Timer > 0))
                                {
                EW_Timer--;
                                }
            if((NS_Timer != unused8) && (NS_Timer >0))
                                {  
                NS_Timer--;
            }
            if((YEL_Timer != unused8) && (YEL_Timer >0))
                                {
                YEL_Timer--;
            }
        }
    }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2019-6-12 21:49 | 只看该作者
uint8是什么鬼?数据类型定义错误。unused8又是什么鬼?变量没有定义。竟然有两个main函数,你不错谁错?
回复

使用道具 举报

板凳
ID:104825 发表于 2019-6-12 22:43 来自手机 | 只看该作者
有可能是输入法的问题!将输入法调成英文,把提示错误的行及附近几行重写一遍
回复

使用道具 举报

地板
ID:207421 发表于 2019-6-13 01:20 | 只看该作者
怎么看着像用 苹果电脑在编程
回复

使用道具 举报

5#
ID:332444 发表于 2019-6-13 09:46 | 只看该作者
sbit NS_GRE = P0^5 ;      这些分号疑是中文的?
回复

使用道具 举报

6#
ID:158375 发表于 2019-6-13 16:37 | 只看该作者
要想提高的快,编程过程中的调试,需要自己修改错误,别动不动就问高人。
回复

使用道具 举报

7#
ID:211052 发表于 2019-6-13 17:50 | 只看该作者
sbit EW_RED = P0^0 ; 这个分号是中文输入法下的。所以uint8  EW_Timer = unused8; 编译过不去
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表