2756|2

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

麻烦各位帮我看一看我的程序哪里有问题,拜托了,我是新手阿 [复制链接]

#include
#define TIMER0H 0xD8
#define TIMER0L 0XF0
#define  uchar unsigned char
#define  ON   0
#define  OFF  1
TableLED[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
sbit  L0= P1^0;
sbit  L1= P1^1;
sbit  L2 =P1^2;
sbit  L3 =P1^3;
sbit  L4 =P1^4;
sbit  KEY_UP= P1^5;
sbit  KEY_DW= P1^6;
sbit  KEY_ST= P1^7;
sbit  KEY_T2=P3^2;
sbit  KEY_T3=P3^3;
uchar code
uchar preSet;
uchar Index;
uchar buff[2];
uchar flag;
uchar time,T,J;
uchar pps;
uchar sec;
uchar sec05;
uchar s;
uchar flag_run;
uchar time1,time2,time3;
void InitDevice(void);
void SetLED(void);
void Reload(void);
void OnRunning(void);
void Delay(uchar u);
void OnSetting(void);
main()
{
        InitDevice();
        time1=10;
        time2=20;
        time3=6;
        time=0;
        T=0;
        flag = 0x00;
        sec = 0;
        s = 0;
        sec05 = 0;
        Reload();
    L0=ON;
    L1=OFF;
        L2=OFF;
        L3=ON;
        L4=OFF;
        flag_run = 1;
        while(1)
        {
                if(KEY_ST==1)
                {
                        OnRunning();
                }
                else
                {
                        OnSetting();
                }
        }
}
void OnSetting(void)
{
        Delay(4);
        while(!KEY_ST);
        flag_run = 0;
        while(1)
        {
                if ( !KEY_UP)
                {
                        Delay(4);
                        while(!KEY_UP);
                    time1++;
                        time2++;
                        time3++;
                        if(time1>99) time1=1;
                        if(time2>99) time2=1;
                        if(time3>99) time3=1;
                        Reload();
                        SetLED();
                }
                if ( !KEY_DW)
                {
                        Delay(4);
                        while(!KEY_DW);
                    time1--;
                        time2--;
                        time3--;
                        if (time1<0)time1=99;
                        if (time2<0)time2=99;
                        if (time3<0)time3=99;
                        Reload();
                        SetLED();
                }
                if ( !KEY_ST )
                {
                        Delay(4);
                        while(!KEY_ST);
                        flag_run = 1;
                        return;
                }
        }
}
void Delay(uchar u)
{int i;
        while(u--)
        {
                i = 1000;
                while(i--);
        }
}
void OnRunning(void)
{
   if(flag)
  {
    flag=0;
    SetLED();
   if(T>time1+time2+time3*60)
   {
    return;
   }
   else if(T>=(time1+time2))
   {
     if(sec05==2)
       {
        L1=OFF;
        L2=ON;
        L4=ON;
        L3=OFF;
        J=0x04;
       }
        }
   else if(T>time1)
   {
      if(sec05==1)
      {
      L0=OFF;
      L1=ON;
      J=0x02;
      L3=ON;
          }
   }
   else
   {
     if(sec05==0)
     {
     L0=ON;
         J=0x01;
         L3=ON;
         }
   }
}
}
void SetLED(void)
{
   if(sec>100)
   {  
     buff[0]=sec/600;
         buff[1]=sec/60-buff[0]*10;
   }
   else
   {
     buff[0]=sec/10;
         buff[1]=sec-buff[0]*10;
        }
  }
void Reload(void)
{
   if(T>time1+time2+time3*60)
   {
     return;
   }
   else if(T>=(time1+time2))
   {
    sec=time3*60;
     return;
        }
        else if(T>=time1)
        {
          sec=time2;
          return;
         }
         else
         {
          sec=time1;
          return;
          }
}
void Timer0_Interruput(void) interrupt 1
{
        TR0 = 0;
        TH0 = TIMER0H;
        TL0 = TIMER0L;
        TR0 = 1;
        time++;
        if(time==100)
        {
                T=T+1;
         }
Index++;
        Index &=0x01;
        P0 = TableLED[buff[Index]];
        switch ( Index )
        {
                case  0 :
                        P2 = 0X80 |J;
                        break;
                case  1 :
                        P2 = 0X40 |J;
                        break;
        }
        pps ++;
        if ( !flag_run) return;
        if ( pps == 50 )
        {
                pps = 0;
                sec05 ++;
                flag = 1;
                if ( sec05 == 3)
                {
                        sec05 = 0;
                        sec -- ;
                        if (sec==0 )
                        {       
                                Reload();
                        s = -s;
                        }
                }
        }
}
void InitDevice(void)
{
        Index = 0;
        pps = 0;
        TH0  = TIMER0H;
        TL0  = TIMER0L;
    TMOD = 0X01;
    TR0 = 1;
        ET0 = 1;
        EA        = 1;
}
keil中提示的错误是 syntax error near 'unsigned'

最新回复

居然没分。。。  详情 回复 发表于 2009-5-14 11:23
点赞 关注

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
第18行是啥啊,uchar code ???
没写完?
你要在代码区定义常量?
你要定义名字为code的变量?code是关键字,不能作为变量名
 
 

回复

42

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
居然没分。。。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表