搜索
bottom↓
回复: 10

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

[复制链接]

出0入0汤圆

发表于 2012-2-16 20:13:52 | 显示全部楼层 |阅读模式
原程序如下,出错在中断,提示说

(原文件名: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;
        }

}

出0入0汤圆

 楼主| 发表于 2012-2-16 20:16:21 | 显示全部楼层
怎么回事,本来都排得好好的,贴出来就是这样没头了。。。

(原文件名:9%MOC$(_9GTPDUL2YP3B(~7.jpg)


(原文件名:GHWQJI6$ND1W%RURU8ASLR0.jpg)

出0入0汤圆

发表于 2012-2-16 20:21:11 | 显示全部楼层
很有可能是你的程序前面出错了

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

出0入0汤圆

 楼主| 发表于 2012-2-16 20:27:22 | 显示全部楼层
谢谢,看到了,少了个}。。。这些小地方怎么避免出错,请各位大侠出招相授。。。

出0入0汤圆

发表于 2012-2-16 20:31:14 | 显示全部楼层
使用括号自动匹配。。

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

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

出0入0汤圆

发表于 2012-2-16 20:44:56 | 显示全部楼层
编程还是要多敲代码才行,错的多了自然就有经验了

出0入0汤圆

发表于 2012-2-16 20:51:34 | 显示全部楼层
楼主你检查一下你的time_variable变量名称的拼写吧.

出0入0汤圆

发表于 2012-2-16 22:41:31 | 显示全部楼层
学习写程序的第一件事情:
在你写下{的时候,直接写下},然后再写{}之间的程序。

出0入0汤圆

发表于 2012-2-16 22:53:07 | 显示全部楼层
void&#160;lighting_engineer() 函数最后少一个  }
time_variable  变量名定义的少了一个e

出0入0汤圆

发表于 2012-2-16 23:13:44 | 显示全部楼层
回复【4楼】aheadlead NC高中生
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2012-2-19 14:51:56 | 显示全部楼层
呵呵 高中生就有这个觉悟了 佩服啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 13:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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