微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 哪位高手帮我看看这个程序那里出错了,帮帮忙啊

哪位高手帮我看看这个程序那里出错了,帮帮忙啊

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wela=P2^7;
sbit dula=P2^6;
sbit d1=P1^0;
uint code table[]={
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71,0xff,0xff};
uint code table1[]={
        0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void delay(uint z);
void main()
{
        EA=1;
        EX0=1;
       
        int i,num;
        while(1)
        {       
                num=0;
                do
                {
                        for(i=0;i<6;i++)
                        {
                                wela=1;
                                P0=table1[i];
                                wela=0;
                                dula=1;
                                P0=table[num];
                                dula=0;
                                delay(1000);
                                num++;
                                d1=1;
                        }
                }
                while(num<16);
        }
               
}
void delay(uint z)
{
        int x,y;
        for(x=z;x>0;x--)
                for(y=100;y>0;y--);
}
void exter0() interrupt 0
{
        d1=0;
        delay(1000);       
}
错误原因:
ZDSY_1.C(22): error C141: syntax error near 'int'
ZDSY_1.C(22): error C202: 'i': undefined identifier
ZDSY_1.C(25): error C202: 'num': undefined identifier
ZDSY_1.C(28): error C202: 'i': undefined identifier
ZDSY_1.C(31): error C202: 'i': undefined identifier
ZDSY_1.C(34): error C202: 'num': undefined identifier
ZDSY_1.C(37): error C202: 'num': undefined identifier
ZDSY_1.C(41): error C202: 'num': undefined identifier

C语言不过关啊~~~~~~~~~~分不清C和C++
把int i,sum放到main的下面试试

系统都提示 你了啊,字符没定义和int附近语法错误!
你看的书写习惯,貌似是那个郭天祥那小子学的吧,他视频我看过,那小子C语言基础太差编写不规范!

建议能用uchar就用uchar,其次uint,别int啊

int i,num;改成uint i,num;

你猜对了。

没什么问题,把int i,num;放在while循环里就好了,跟他们说的用int还是char没关系

刚开始学习c啊。

我把int i,num;放到void main()前面就可以了。但不知道为什么。

就这样,循环里用到的-新-变量在循环里设定,不然后面只在循环里执行,它不知道你定义了,它只在while里运行


我把int放到了while循环里也可以,但为什么放到void main下就不行呢?

这个涉及到局部变量和全局变量

51单片机不熟悉!针对你程序个人分析一下!有的单片机支持函数可重入性,有的不支持,最好不要在主函数中再次调用delay()函数!要想对于数据类型重新定义,最好用typedef关键字定义;你的中断是基于什么中断,是时间还是事件?估计是时间,但也没有时间设置;对于常量tab,最好加const关键字,增加函数健壮性;主循环可以用do..while(),虽然与while()效果一样,但编译会省空间;尽量不要用delay函数,会浪费资源。

在main外设置就是全局变量,在哪都可以用

在某个函数里定义就只在那个函数里有用(局部变量)

就是在不同的地方定义使用的范围就有区别,如果我说的不对不要笑哦,我语言可是挂过科的哦,呵呵

我加你以后我有问题也可以问你

哦,学习了,谢谢啦

呵呵,好啊,不过我是新手啊,可能要向你学习啦

嗯,学习了,刚开始用c语言写单片机程序,对c语言不熟悉,真在努力学习中

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

网站地图

Top