微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > keil c 中的问题

keil c 中的问题

时间:10-02 整理:3721RD 点击:
#include        <at89x51.h>
#include        "ds1302_51.h"
#include        "led.h"
#include        "onekey51.h"
#define        K_SET        P1_0
#define        K_ADD        P1_1
#define        K_SUB        P1_2
#define        K_EXIT        P1_3
uchar        /*dis_buf[]={0,0,0,0,0,0},*/        tmp_buf        [6],pos=0,i_set,count_blk,count_500ms=0,c_rdkey=0;
bit        set_flag=0,blink=1,point_flag=1,f_rdkey=0;
void        TimerInit()
{
        TMOD&=~T0_M1_;
        TMOD|=T0_M0_;
        TH0=0xf7;
        TL0=0x00;
        ET0=1;
        EA=1;
        TR0=1;
}
void        ISR_T0()        interrupt        TF0_VECTOR
{       
        TH0=0xf7;
        TL0=0x00;
        ds1302_read_time();
        if(++count_500ms==200)
        {
                count_500ms=0;
                point_flag^=1;
        }
        if(set_flag)
        {
                if(++count_blk==100)
                {
                        count_blk=0;
                        blink^=1;
                }
        }
        P2=0x00;
        if(!set_flag)
                P0=led[dis_buf[pos]];
        else
        {
                if(pos!=i_set||blink)
                        P0=led[tmp_buf[pos]];
                else
                        P0=0xff;
        }
        if(!set_flag        &&        point_flag        &&        pos==2)
                {
                        P0&=0x7f;
                }
        if(pos==4        ||        (set_flag        &&        pos==2))
                P0&=0x7f;
        P2=1<<pos;
        if(++pos==6)
                pos=0;
        if(++c_rdkey==4)
        {
                c_rdkey=0;
                f_rdkey=1;
        }
}
void        TimeAdd()
{
        uchar        tmp;
        swich(i_set)
        {
                case        0:
                case        2:
                        tmp=10;
                        break;
                case        1:
                case        3:
                        tmp=6;
                        break;
                case        4:
                        if(tmp_buf[5]<2)
                                tmp=10;
                        else
                                tmp=4;
                        break;
                case        5:
                        if(tmp_buf[4]<4)
                                tmp=3;
                        else
                                tmp=2;
                        break;
                }
        if(++tmp_buf[i_set]==tmp)
        tmp_buf[i_set]=0;
}
void        TimeSub()
{
        uchar        tmp;
        swich(i_set)
        {
                case        0:
                case        2:
                        tmp=9;
                        break;
                case        1:
                case        3:
                        tmp=5;
                        break;
                case        4:
                        if(tmp_buf[5]<2)
                                tmp=9;
                        else
                                tmp=3;
                        break;
                case        5:
                        if(tmp_buf[4]<4)
                                tmp=2;
                        else
                                tmp=1;
                        break;
        }
        if(tmp_buf[i_set]==0)
                tmp_buf[i_set]=tmp;
        else
                tmp_buf[i_set]--;
}
void        SaveSet()
{
        uchar        h,m,s;
        s=(tmp_buf[1]<<4)        |        tmp_buf[0];
        m=(tmp_buf[3]<<4)        |        tmp_buf[2];
        h=(tmp_buf[5]<<4)        |        tmp_buf[4];
        ds1302_set_time(h,m,s);
}
void        main()
{
        uchar        temp,i;
        TimerInit();
        DS1302Init();
        while(1)
        {
                if(f_rdkey)
                {
                        f_rdkey=0;
                        if(!set_flag        &&        Read1Key(0,K_SET))
                        {
                                i_set=5;
                                count_blk=0;
                                for(i=0;i<6;i++)
                                        tmp_buf[i]=dis_buf[i];
                                set_flag=1;
                        }
                        if(set_flag)
                        {
                                if(Read1Key(0,K_SET))
                                {
                                        if(i_set--==0)
                                                i_set=5;
                                }
                                if(Read1Key(1,K_ADD))
                                {
                                        TimeAdd();
                                }
                                if(Read1Key(2,K_SUB))
                                        TimeSub();
                                }
                                if(temp==Read1Key(3,K_EXIT))
                                {
                                        if(temp==2)
                                                SaveSet();
                                        set_flag=0;
                                }
                        }
                }
        }
}

Build target '目标 1'
compiling DS1302.c...
DS1302.c(2): warning C318: can't open file 'ds1302_51.h'
DS1302.c(3): warning C318: can't open file 'led.h'
DS1302.c(4): warning C318: can't open file 'onekey51.h'
DS1302.C(10): error C129: missing ';' before 'bit'
目标未创建

错误是以上这些,我是不知道怎么弄了,求帮忙

你头文件都放在哪里了?如果是#include        "ds1302_51.h",这样包含的话,就需要把头文件放在你当前的工程文件中,或者放在keil根目录的keil\c51\inc文件夹中;或者就是直接包含头文件的路径如:
#include "c:\xxx\xxx\xxx\xx.h";你可以参考一下;   你还有error呢;

虽然我还是不懂,但还是谢谢你了。

楼上说得对,把'ds1302_51.h等头文件包含在该工程文件的文件夹里,再试试吧!


加载。h的头文件

谢谢   我再试试

文件 不全
keil C  加载的文件中没有,或是没找到该文件

该文件名中多了一个2
即该文件名不对,修改一下OK了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top