微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 初学者请教大神,这程序错在哪了

初学者请教大神,这程序错在哪了

时间:10-02 整理:3721RD 点击:
本人今年四十有四,初学51,照着书本编写了几段程序,可是在keil中老师提示错误,请大神帮忙看看,到底错哪了?

#include<reg52.h>

sfr P0M0=0X93;

sfr P0M1=0X94;

sfr P1M0=0X91;

sfr P1M1=0X92;

sfr P2M0=0X95;

sfr P2M1=0X96;

sfr P3M0=0Xb1;

sfr P3M1=0Xb2;

const unsigned charsg7[16](0x3f,0x06,ox5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71);

void ms_delay(unsigned int t)

{

  unsigned int i;

  for(t;t>0;t--)

    for(i=100;i>0;i--)

;

}

main()

{

int mun=0;

P0M0=0xff;

P0M1=0xff;

whil(1)

{

P0=seg7(mun);

ms_delay(1000);

mun++;

if(mun>15);

mun=0;

}

}

第二个


#include<reg52.h>

sfr P0M0=0X93;

sfr P0M1=0X94;

sfr P1M0=0X91;

sfr P1M1=0X92;

sfr P2M0=0X95;

sfr P2M1=0X96;

sfr P3M0=0Xb1;

sfr P3M1=0Xb2;

define p2   0xff    ;

void ms_delay(unsigned int t)

{

unsigned int i;

for(t;t>0;t--)

      for(i=100;i>0;i--)

;

}

main()

{

   int mun;

   P1M1=0x00 ;

   P1M0=0X00  ;

   while(1)

   {

     switch(mun)

   {

   case 0:

       p2=0xff;

       break;

   case 1:

       p2=0xfe;

       break;

   case 2:

       p2=0xfd;

       break;

   case 3:

       p2=0xfc;

       break;

   case 4:

       p2=0xfb;

       break;

   case 5:

       p2=0xfa;

       break;

   case 6:

       p2=0xf9;

       break;

   case 7:

       p2=0xf8;

       break;

   default:

       p2=0xff;

   }

   ms_delay(500);

   mun++;

   if(mun>4)

      mun=0;

   }


}



还请大神不吝赐教,谢谢。


你都是用STC单片机吗?sfr P0M0=0X93;
sfr P0M1=0X94;
sfr P1M0=0X91;
sfr P1M1=0X92;
sfr P2M0=0X95;
sfr P2M1=0X96;
sfr P3M0=0Xb1;
sfr P3M1=0Xb2;
define p2   0xff    ;貌似没什么卵用

charsg7[16](0x3f,0x06,ox5b,0x4f,    等号都没有
P0=seg7(mun);    这是调用哪个函数,我看了你的程序都没看到
define p2   0xff    ;      应该是#define P2 0xff      没有分号    但是这样改也不是啊,p2都是固定的怎么可以继续复制呢

whil(1)

while(1);

感觉都是语法上的错误,可能是笔误吧,程序一里whil(1)不就是写错了吗,应该是while(1)
你应该把keil编译的错误贴出来,这样看太麻烦

里面有些字符是输入错误的,比如charsg7数组中的oX5b,应该是0x5b的。建议你先了解一下C语言的基本语法,然后再学习单片机会比较好!

这位大哥 首先只想跟你说你应该先把C语言先搞好 当初我学的时候先看了一个月的C语言 视频加书。然后开始实践。再就是关于单片机的一些知识 你这程序里面开头的那些寄存器都包含在头文件里面 不需要再去管了,还有就是常用的几个英文单词要记住,打错了肯定是编译不过的。现在我写程序编译的话一般都没问题了。想学的话就要把基础打好 要不没法往下进行了,这是我给你的一个建议。这个程序你就不用关心它错在哪里了 回头再看看基础知识吧。

先学好c语法基础先 都是语法错误

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

网站地图

Top