236719016 发表于 2012-2-16 20:13:52

新手学习,哪位大侠帮忙看下这程序怎么编译不了,看着都没错。。。

原程序如下,出错在中断,提示说
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_719437DPS1C2.jpg
(原文件名:S3]FEC9006SWDCZ40NOZFCU.jpg)




#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit p0=P3^0;
sbit p1=P3^1;
sbit p2=P3^2;
sbit p3=P3^3;


void time1();
void key_switch(void);
void lighting_engineer(void);

uchar speed;
uchar time_mark;
uchar value;
uchar time_variabl;




void main()
{
        TMOD=0x01;
        EA=1;
        ET0=1;
        TF0=1;
        TH0=0x1f;
        TL0=0xf6;
        value=0xfe;
        while(1)
        {
                key_switch();
                lighting_engineer();
        }
}


void key_switch()
{
        if(!p0)
        {
                speed=200;
        }
        if(!p1)
        {
                speed=100;
        }
        if(!p2)
        {
                speed=50;
        }       
        if(!p3)
        {
                speed=30;
        }       
}

void lighting_engineer()
{
        if(time_mark==1)
                {
                        time_mark=0;
                        value>>=1;
                        P0=value;
                if(value==0x00)
                {
                        value=0xfe;
                }
}





void time1() interrupt 1
{
        TH0=0x1f;
        TL0=0xf6;
        time_variable++;
        if(speed==time_variable)
        {
                time_mark=1;
                time_cariable=0;
        }

}

236719016 发表于 2012-2-16 20:16:21

怎么回事,本来都排得好好的,贴出来就是这样没头了。。。
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_719438SRCAVJ.jpg
(原文件名:9%MOC$(_9GTPDUL2YP3B(~7.jpg)

http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_719439VOCGHD.jpg
(原文件名:GHWQJI6$ND1W%RURU8ASLR0.jpg)

aheadlead 发表于 2012-2-16 20:21:11

很有可能是你的程序前面出错了

就在那一行的上面的有内容的那一行

236719016 发表于 2012-2-16 20:27:22

谢谢,看到了,少了个}。。。这些小地方怎么避免出错,请各位大侠出招相授。。。

aheadlead 发表于 2012-2-16 20:31:14

使用括号自动匹配。。

我是一高中生,好久没玩单片机了。不知道Keil有没有这功能,至少垃圾得要死的Dev-C++有括号高亮显示。

其实我觉得这种问题可以自己查出来的,多写点程序吧。

Guoyy 发表于 2012-2-16 20:44:56

编程还是要多敲代码才行,错的多了自然就有经验了

zyyn123 发表于 2012-2-16 20:51:34

楼主你检查一下你的time_variable变量名称的拼写吧.

farmerzhangdl 发表于 2012-2-16 22:41:31

学习写程序的第一件事情:
在你写下{的时候,直接写下},然后再写{}之间的程序。

vp110 发表于 2012-2-16 22:53:07

void lighting_engineer() 函数最后少一个}
time_variable变量名定义的少了一个e

Name_006 发表于 2012-2-16 23:13:44

回复【4楼】aheadlead NC高中生
-----------------------------------------------------------------------

真的是高中生吗、、、、
让我等好惭愧啊

xiaofeng87 发表于 2012-2-19 14:51:56

呵呵 高中生就有这个觉悟了 佩服啊
页: [1]
查看完整版本: 新手学习,哪位大侠帮忙看下这程序怎么编译不了,看着都没错。。。