找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5305|回复: 9
打印 上一主题 下一主题
收起左侧

求大神看看,各种错误,搞得我都绝望了

[复制链接]
跳转到指定楼层
楼主
ID:152530 发表于 2017-1-5 19:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

这是源程序
#include <REGX52.H>
#define  uint unsigned int
#define  uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z)
void main()
{
        num=0;
        tt=0;
        TMOD=0x01;
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        wela=1;
        P0=0xea;
        wela=0;
        while(1)
        {
                if(tt==20)
                {
                        tt=0;
                        P1^0=1;
                        if(num==16)
                        num=0;
                        num++;
                        dula=1;
                        P0=table[num];
                        dula=0;
                        delay(1000);
                }
        }
       
}
void delay(uint z)
{
                unit x,y;
                for(x=z;x>0;x--)
                        for(y=110;y>0,=;y--);
}
void exter0() interrupt 1
{
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        t++;
}
这是错误
learn3.c(14): error C132: 'main': not in formal parameter list
learn3.c(14): error C141: syntax error near '{'
learn3.c(15): error C136: 'num': 'void' on variable
learn3.c(15): error C244: 'num': can't initialize, bad type or class
learn3.c(15): error C136: 'num': 'void' on variable
learn3.c(15): error C132: 'num': not in formal parameter list
learn3.c(16): error C244: 'tt': can't initialize, bad type or class
learn3.c(16): error C132: 'tt': not in formal parameter list
learn3.c(17): error C244: 'TMOD': can't initialize, bad type or class
learn3.c(17): error C132: 'TMOD': not in formal parameter list
learn3.c(18): error C244: 'TH0': can't initialize, bad type or class
learn3.c(18): error C132: 'TH0': not in formal parameter list
learn3.c(19): error C244: 'TL0': can't initialize, bad type or class
learn3.c(19): error C132: 'TL0': not in formal parameter list
learn3.c(20): error C244: 'EA': can't initialize, bad type or class
learn3.c(20): error C132: 'EA': not in formal parameter list
learn3.c(21): error C244: 'ET0': can't initialize, bad type or class
learn3.c(21): error C132: 'ET0': not in formal parameter list
learn3.c(22): error C244: 'TR0': can't initialize, bad type or class
learn3.c(22): error C132: 'TR0': not in formal parameter list
learn3.c(23): error C244: 'wela': can't initialize, bad type or class
learn3.c(23): error C132: 'wela': not in formal parameter list
learn3.c(24): error C244: 'P0': can't initialize, bad type or class
learn3.c(24): error C132: 'P0': not in formal parameter list
learn3.c(25): error C244: 'wela': can't initialize, bad type or class
learn3.c(25): error C132: 'wela': not in formal parameter list
learn3.c(26): error C141: syntax error near 'while'
learn3.c(26): error C141: syntax error near '1'
learn3.c(28): error C141: syntax error near '==', expected ')'
learn3.c(30): error C231: 'tt': redefinition
learn3.c(31): error C129: missing ';' before '^'

我死了算了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2017-1-5 22:56 | 只看该作者
  1. #include <REG52.H>   // #include <regx52.H>和#include <reg52.H> 不一样
  2. #define  uint unsigned int
  3. #define  uchar unsigned char

  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. sbit PP10 = P1^0;
  7. uchar num, tt;

  8. uchar code table[]={
  9.         0x3f,0x06,0x5b,0x4f,
  10.         0x66,0x6d,0x7d,0x07,
  11.         0x7f,0x6f,0x77,0x7c,
  12.         0x39,0x5e,0x79,0x71};

  13. void delay(uint z);
  14. void main()
  15. {
  16.         num=0;
  17.         tt=0;
  18.         TMOD=0x01;
  19.         TH0=(65535-50000)/256;
  20.         TL0=(65535-50000)%256;
  21.         EA=1;
  22.         ET0=1;
  23.         TR0=1;
  24.         wela=1;
  25.         P0=0xea;
  26.         wela=0;
  27.         while(1)
  28.         {
  29.                 if(tt==20)
  30.                 {
  31.                         tt=0;
  32.                         PP10=1;
  33.                         if(num==16)
  34.                          num=0;
  35.                         num++;
  36.                         dula=1;
  37.                         P0=table[num];
  38.                         dula=0;
  39.                         delay(1000);
  40.                 }
  41.         }
  42.        
  43. }
  44. void delay(uint z)
  45. {
  46.         uint x,y;
  47.         for(x=z;x>0;x--)
  48.         for(y=110;y>0;y--);
  49. }
  50. void exter0() interrupt 1
  51. {
  52.         TH0=(65535-50000)/256;
  53.         TL0=(65535-50000)%256;
  54.         tt++;
  55. }

复制代码


试试看。
回复

使用道具 举报

板凳
ID:137239 发表于 2017-1-6 08:58 | 只看该作者
楼上正解!
回复

使用道具 举报

地板
ID:150865 发表于 2017-1-6 11:51 | 只看该作者
你的代码敲错太多了 延时函数里面uint你写错了 ,第二个for循环也有问题,你用的tt没有定义,肯定错误很多啊
回复

使用道具 举报

5#
ID:149988 发表于 2017-1-6 13:53 | 只看该作者

RE: 求大神看看,各种错误,搞得我都绝望了

给你修改了一下,仔细对照一下,会有帮助的。
#include <reg51.h>
#include <intrins.h>
#define  uint unsigned int
#define  uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit aa=P1^0;  //P1^0在这里定义一下
uchar num;
uchar tt=0;  //tt应定义为全局变量,所以应在这里定义
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
//void delay(uint z) //缺少“;”号
void main()
{
  num=0;
//  tt=0;
  TMOD=0x01;
  TH0=(65535-50000)/256;
  TL0=(65535-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;
  wela=1;
  P0=0xea;
  wela=0;
  while(1)
  {
    if(tt==20)
    {
      tt=0;
//      P1^0;  //P1^0不能直接用,在前面定义一下
      aa=1;    //在前面定义了aa=P1^0;
      }
      if(num==16)
      {
      num=0;
      num++;
      dula=1;
      P0=table[num];
      dula=0;
      delay(1000);
      }
   
  }
}
void delay(uint z)
{
//  unit x,y; //unit是错误的
  uint x,y;   //unit应为uint
  for(x=z;x>0;x--)
//  for(y=110;y>0,=;y--);  //多了,和=两个符号
  for(y=110;y>0;y--);      //应是这样的
}
void exter0() interrupt 1
{
  TH0=(65535-50000)/256;
  TL0=(65535-50000)%256;
//  t++;   //双t写成了一个t
  tt++;    //应是双t                 
}
回复

使用道具 举报

6#
ID:160316 发表于 2017-1-6 16:18 | 只看该作者

你的代码敲错太多了 延时函数里面uint你写错了 ,第二个for循环也有问题,你用的tt没有定义,肯定错误很多啊
回复

使用道具 举报

7#
ID:150865 发表于 2017-1-6 23:07 | 只看该作者
18815796398 发表于 2017-1-6 16:18
你的代码敲错太多了 延时函数里面uint你写错了 ,第二个for循环也有问题,你用的tt没有定义,肯定错误很 ...

兄弟 干嘛要赋值粘贴啊
回复

使用道具 举报

8#
ID:149988 发表于 2017-1-7 08:33 | 只看该作者

RE: 求大神看看,各种错误,搞得我都绝望了

这个问题我昨天回答过。
#include <REGX52.H>
#define  uint unsigned int
#define  uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit aa=P1^0;  /**********增加一组sbit aa=P1^0;************/
//uchar num;
uchar num,tt;  /**********增加一组tt************/
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z); /**********增加一组void delay(uint z);************/
//void delay(uint z)/**********应该有";"号************/
void main()
{
        num=0;
        tt=0;/*********tt没有定义*************/
        TMOD=0x01;
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        wela=1;
        P0=0xea;
        wela=0;
        while(1)
        {
                if(tt==20)
                {
                        tt=0;
                        aa=1;/***********P1^0不能直接用,增加一组aa=1;************/
                       // P1^0=1;/***********P1^0不能直接用************/
                        if(num==16)
                        num=0;
                        num++;
                        dula=1;
                        P0=table[num];
                        dula=0;
                        delay(1000);
                }
        }
        
}
void delay(uint z)
{
                uint x,y;/***********增加一组uint x,y;************/
               // unit x,y;/**************unit书写错误,应该是uint****************/
                for(x=z;x>0;x--)
                   for(y=110;y>0;y--);
                      //  for(y=110;y>0,=;y--);/**************unit书写错误,多写了",="****************/
}
void exter0() interrupt 1
{
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        tt++; /***********增加一组tt++;************/
      //  t++;  /***********少了一个t***************/
}
回复

使用道具 举报

9#
ID:100391 发表于 2017-1-8 18:34 | 只看该作者
你的头文件是不是写错了?#include <REGX52.H>??应该是#include <REG52.H>吧,开头处的void delay(uint z)  这句后面应该有 ; 才对(后面的那个 函数可以不用;)。
回复

使用道具 举报

10#
ID:152530 发表于 2017-1-15 18:11 | 只看该作者
谢谢各位了,当时脑子短路了,半夜里打的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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