找回密码
 立即注册

QQ登录

只需一步,快速开始

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

编译错误,拜托各位大神帮帮忙!实在没办法了!

[复制链接]
跳转到指定楼层
楼主
ID:913770 发表于 2021-4-28 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以帮忙看看这个程序的错误吗!拜托了,真的找不出了,14个错误,谢谢!!!
#include<reg52.h>
#define unchar unsigned char
#define unint unsigned int
#define SW1 0x2e
#define SW2 0x2d
#define SW3 0x2b
#define SW4 0x27
#define SW5 0x0f
#define ZHENGZHUAN 0
#define FANZHUAN 1
#define TINGZHI 2
#define JIASU 3
#define JIANSU 4
unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xal,0x84,0xff,0xf7};
unsigned char dispbitcode[]={0x7f,0xbf,0xdf,0xef};
unsigned char dispbuf[4]={0,0,0,0};
unsigned char dispbitcnt;
unint i;
unchar tp=0;
unint count=0;
unint n=0;
unint xs;
unint m;
unchar keyvalue;
sbit p07=P0^7;
sbit p30=P3^0;
sbit p31=P3^1;
sbit p37=P3^7;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
sbit p13=P1^3;
sbit p15=P1^5;
void ledshow();
unsigned char keyscan()
void zhengzhuan();
void fanzhuan();
void tingzhi();
void jiasu();
void jiansu();
void t0(void);
void INT_0(void);
void Timer_1(void);
void main(void);
{
P30=1;
P31=0;
TMOD=0x12;
THO=0x66;
TLO=0x50;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
IT0=1;
EX0=1;
while(1)
{
ledshow();
keyvalue=keyscan();
switch(keyvalue);
{
case ZHENGZHUAN:
zhengzhuan();
break;
case FANZHUAN:
fanzhuan();
break;
case TINGZHI:
tingzhi();
break;
case JIASU:
jiasu();
break;
case JIANSU:
jiansu();
break;
default:break;
}
}
}
void delay()
{
unsigned char i,j;
for (i=1;i<=125;i++)
for (j=1;j<=50;j++)
{}
]
unsigned char keyscan()
{
unchar temp=0;
P1=0xff;
if((P1&0x2f)!=0x2f)
{
delay();
if((P1&0x2f)!=0x2f)
{
temp=P1&0x2f)!
switch (temp)
{
case SW1:
return 0;
break;
case SW2:
return 1;
break;
case SW3:
return 2;
break;
case SW4:
return 3;
break;
case SW5:
return 4;
break;
default:break;
}
}
}
while((P1&0x2f)!=0x2f);
}
void ledshow()
{
P2|0xf0;
P0=dispcode[dispbuf[0]];
P2=0xef;
for(i=0;i<700;i++);

P2|0xf0;
P0=dispcode[dispbuf[1]];
P2=0xdf;
p07=0;
for(i=0;i<700;i++);

P2|0xf0;
P0=dispcode[dispbuf[2]];
P2=0xbf;
for(i=0;i<700;i++);

P2|0xf0;
P0=dispcode[dispbuf[3]];
P2=0x7f;
for(i=0;i<700;i++);

disbuf[3]=xs/1000;
dispuf[2]=(xs%1000)/100;
dispuf[1]=(xs%100)/10;
dispuf[0]=xs%10;
}
void t0(void)interrupt 1 using 0
{
if (count>100)
count=0;
if(count>tp)
P37=0;
else P37=1;
count++;
}
void INT_0(void) interrupt 0
{
EX1=0;
n++;
EX1=1;
}
void Timer_1(void) interrupt 3
{
TH1=0x65;
TL1=0xF3;
m++;
if(m==20)//50*20=1S
{
xs=(n*10)/4;
m=0;
n=0;
}
}
void zhengzhuan()
{
P30=0;
P31=1;
}
void tingzhi()
{
P30=0;
P31=0;
}
void jiasu()
{
if(tp>99)
tp=100;
else tp=tp+2;
}
void jiansu()
tp=0;
else tp=tp-2;
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:451718 发表于 2021-4-28 22:34 | 只看该作者
你这代码写得太随心所欲了吧,用“狂草”来形容,一点不为过哦。
1,#define 和 typedef 是有区别的。
2,大小写不区分。
3,程序格式一线天,数花括号都要费不小的劲咧。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:844772 发表于 2021-4-28 22:43 | 只看该作者
void main(void);
switch(keyvalue);
P2|0xf0;
我就是看看有多长,就看到好几个问题,顺手复制了三个而已。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:889094 发表于 2021-4-28 23:24 | 只看该作者
THO=0x66;
TLO=0x50;
TH0,TL0
这代码应该是老师发给大家发错的吧?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:155507 发表于 2021-4-29 07:05 | 只看该作者
错误太多:主要是抄写错误,少写分号,错用字符号,错用大小写等等。
给你改了,对比一下就知道哪里错了。

  1. #include <reg52.h>
  2. #define unchar unsigned char
  3. #define unint unsigned int
  4. #define SW1 0x2e
  5. #define SW2 0x2d
  6. #define SW3 0x2b
  7. #define SW4 0x27
  8. #define SW5 0x0f
  9. #define ZHENGZHUAN 0
  10. #define FANZHUAN 1
  11. #define TINGZHI 2
  12. #define JIASU 3
  13. #define JIANSU 4
  14. unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xal,0x84,0xff,0xf7};
  15. unsigned char dispbitcode[]={0x7f,0xbf,0xdf,0xef};
  16. unsigned char dispbuf[4]={0,0,0,0};
  17. unsigned char dispbitcnt;
  18. unint i;
  19. unchar tp=0;
  20. unint count=0;
  21. unint n=0;
  22. unint xs;
  23. unint m;
  24. unchar keyvalue;
  25. sbit p07=P0^7;
  26. sbit p30=P3^0;
  27. sbit p31=P3^1;
  28. sbit p37=P3^7;
  29. sbit p10=P1^0;
  30. sbit p11=P1^1;
  31. sbit p12=P1^2;
  32. sbit p13=P1^3;
  33. sbit p15=P1^5;
  34. void ledshow();
  35. unsigned char keyscan(); //<-------------
  36. void zhengzhuan();
  37. void fanzhuan();
  38. void tingzhi();
  39. void jiasu();
  40. void jiansu();
  41. void t0(void);
  42. void INT_0(void);
  43. void Timer_1(void);
  44. void main(void)   //; <-------
  45. {
  46.         p30=1;  //P30<------
  47.         p31=0;  //P31<------
  48.         TMOD=0x12;
  49.         TH0=0x66;    //THO<------
  50.         TL0=0x50;   //TLO<------
  51.         EA=1;
  52.         ET0=1;
  53.         ET1=1;
  54.         TR0=1;
  55.         TR1=1;
  56.         IT0=1;
  57.         EX0=1;
  58.         while(1)
  59.         {
  60.                 ledshow();
  61.                 keyvalue=keyscan();
  62.                 switch(keyvalue) //;<------
  63.                 {
  64.                 case ZHENGZHUAN:
  65.                         zhengzhuan();
  66.                         break;
  67.                 case FANZHUAN:
  68.                         fanzhuan();  // <------
  69.                         break;
  70.                 case TINGZHI:
  71.                         tingzhi();
  72.                         break;
  73.                 case JIASU:
  74.                         jiasu();
  75.                         break;
  76.                 case JIANSU:
  77.                         jiansu();
  78.                         break;
  79.                 default:break;
  80.                 }
  81.         }
  82. }
  83. void delay()
  84. {
  85.         unsigned char i,j;
  86.         for (i=1;i<=125;i++)
  87.         for (j=1;j<=50;j++)
  88.         {}
  89. }        //]<------
  90. unsigned char keyscan()
  91. {
  92.         unchar temp=0;
  93.         P1=0xff;
  94.         if((P1&0x2f)!=0x2f)
  95.         {
  96.                 delay();
  97.                 if((P1&0x2f)!=0x2f)
  98.                 {
  99.                         temp=P1&0x2f;  //)!<------
  100.                         switch (temp)
  101.                         {
  102.                         case SW1:
  103.                                 return 0;
  104.                                 break;
  105.                         case SW2:
  106.                                 return 1;
  107.                                 break;
  108.                         case SW3:
  109.                                 return 2;
  110.                                 break;
  111.                         case SW4:
  112.                                 return 3;
  113.                                 break;
  114.                         case SW5:
  115.                                 return 4;
  116.                                 break;
  117.                         default:break;
  118.                         }
  119.                 }
  120.         }
  121.         while((P1&0x2f)!=0x2f);
  122. }
  123. void ledshow()
  124. {
  125.         P2|=0xf0;  //P2|0xf0; <------
  126.         P0=dispcode[dispbuf[0]];
  127.         P2=0xef;
  128.         for(i=0;i<700;i++);

  129.         P2|=0xf0; //P2|0xf0; <------
  130.         P0=dispcode[dispbuf[1]];
  131.         P2=0xdf;
  132.         p07=0;
  133.         for(i=0;i<700;i++);

  134.         P2|=0xf0; //P2|0xf0; <------
  135.         P0=dispcode[dispbuf[2]];
  136.         P2=0xbf;
  137.         for(i=0;i<700;i++);

  138.         P2|=0xf0; //P2|0xf0; <------
  139.         P0=dispcode[dispbuf[3]];
  140.         P2=0x7f;
  141.         for(i=0;i<700;i++);

  142.         dispbuf[3]=xs/1000;        //disbuf <------
  143.         dispbuf[2]=(xs%1000)/100;  //dispuf <------
  144.         dispbuf[1]=(xs%100)/10;    //dispuf <------
  145.         dispbuf[0]=xs%10;          //dispuf <------
  146. }
  147. void t0(void)interrupt 1 using 0
  148. {
  149.         if (count>100)
  150.         count=0;
  151.         if(count>tp)
  152.         p37=0;       //P37<------
  153.         else p37=1;  //P37<------
  154.         count++;
  155. }
  156. void INT_0(void) interrupt 0
  157. {
  158.         EX1=0;
  159.         n++;
  160.         EX1=1;
  161. }
  162. void Timer_1(void) interrupt 3
  163. {
  164.         TH1=0x65;
  165.         TL1=0xF3;
  166.         m++;
  167.         if(m==20)//50*20=1S
  168.         {
  169.                 xs=(n*10)/4;
  170.                 m=0;
  171.                 n=0;
  172.         }
  173. }
  174. void zhengzhuan()
  175. {
  176.         p30=0; //P30<------
  177.         p31=1; //P31<------
  178. }
  179. void tingzhi()
  180. {
  181.         p30=0; //P30<------
  182.         p31=0; //P31<------
  183. }
  184. void jiasu()
  185. {
  186.         if(tp>99)
  187.         tp=100;
  188.         else tp=tp+2;
  189. }
  190. void jiansu()
  191. {   // 少写<------
  192.         if(tp<0)  //少写 <------
  193.         tp=0;
  194.         else tp=tp-2;
  195. }
  196. void fanzhuan()   //少写 <------
  197. {
  198.         ;
  199. }
复制代码

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:569384 发表于 2021-4-29 08:20 | 只看该作者
编译器有提示错误的位置,点进去看一下就知道了。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:913770 发表于 2021-4-29 20:40 来自手机 | 只看该作者
angmall 发表于 2021-4-29 07:05
错误太多:主要是抄写错误,少写分号,错用字符号,错用大小写等等。
给你改了,对比一下就知道哪里错了。 ...

谢谢!!!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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