找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助帮看下这单片机程序,无法编译,谢了

[复制链接]
跳转到指定楼层
楼主
ID:1042173 发表于 2022-9-4 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
        sbit D0=P2^0;   //三个位控制
  sbit D1=P2^1;
  sbit D2=P2^2;
uchar subf[3]={8,8,8};
uchar dispdata[10]={0,1,2,3,4,5,6,7,8,9,}

void delay(uint t)
{
        uint i;
        while(t--)
        {
                for(i=0;i<150;i++)
                {}
                }
        }
//定时显示程序
void time0_int(void) interrupt1
{
        uchar i,;
        TH0=0;
        TL0=0;
        display();
}
//主函数
void main(void)
{
  EA=1;
  ET0=1;
TMOD=0X01;
TH0=0;
TL0=0;
TR0=1;
while(1)
{
        uchar i,j;
        for(i=0;i<=9;i++)
        {
                for(j=0;j<=2;j++)
                sub[ i]=dispdata[j]
        }

}
}
//显示子函数
void display(void)
{
        P0=subf[0];
        D0=1;
        delay(20)
        D0=0;
        P0=subf[0];
        D1=1;
        delay(20);
        D1=0;
        P0=subf[0];
        D2=1;
        delay(20);
        D2=0;
}



//那位大佬帮看下,程序那里错了,我编绎不过关,
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277948 发表于 2022-9-4 23:37 | 只看该作者
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4.         sbit D0=P2^0;   //?????
  5.   sbit D1=P2^1;
  6.   sbit D2=P2^2;
  7. uchar subf[3]={8,8,8};
  8. uchar dispdata[10]={0,1,2,3,4,5,6,7,8,9,};

  9. void display(void);
  10. void delay(uint t)
  11. {
  12.         uint i;
  13.         while(t--)
  14.         {
  15.                 for(i=0;i<150;i++)
  16.                 {
  17.        
  18.                 }
  19.         }
  20. }
  21. //??????
  22. void time0_int(void) interrupt 1 using 2
  23. {
  24.         TH0=0;
  25.         TL0=0;
  26.         display();
  27. }
  28. //???
  29. void main(void)
  30. {
  31.   EA=1;
  32.   ET0=1;
  33. TMOD=0X01;
  34. TH0=0;
  35. TL0=0;
  36. TR0=1;
  37. while(1)
  38. {
  39.         uchar i,j;
  40.         for(i=0;i<=9;i++)
  41.         {
  42.                 for(j=0;j<=2;j++)
  43.                 subf[i]=dispdata[j];
  44.         }

  45. }
  46. }
  47. //?????
  48. void display(void)
  49. {
  50.         P0=subf[0];
  51.         D0=1;
  52.         delay(20);
  53.         D0=0;
  54.         P0=subf[0];
  55.         D1=1;
  56.         delay(20);
  57.         D1=0;
  58.         P0=subf[0];
  59.         D2=1;
  60.         delay(20);
  61.         D2=0;
  62. }
复制代码



虽然不知道你从哪里cop的单你的C语言基础不是很好
回复

使用道具 举报

板凳
ID:59202 发表于 2022-9-4 23:56 | 只看该作者
把编译错误信息发上来看啊,反正你这程序一眼就看到好几个地方没加“;”。

评分

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

查看全部评分

回复

使用道具 举报

地板
ID:824490 发表于 2022-9-5 00:15 | 只看该作者
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4.   sbit D0=P2^0;   //三个位控制
  5.   sbit D1=P2^1;
  6.   sbit D2=P2^2;
  7. uchar subf[3]={8,8,8};
  8. uchar dispdata[10]={0,1,2,3,4,5,6,7,8,9} ;//====!

  9. void display(void);//====!

  10. void delay(uint t)
  11. {
  12.         uint i;
  13.         while(t--)
  14.         {
  15.                 for(i=0;i<150;i++);//====!
  16.                 //{} //====!
  17.                 }
  18.         }
  19. //定时显示程序
  20. void time0_int(void) interrupt 1   //====!
  21. {
  22.         //uchar i;  //====!
  23.         TH0=0;
  24.         TL0=0;
  25.         display();
  26. }
  27. //主函数
  28. void main(void)
  29. {
  30.   EA=1;
  31.   ET0=1;
  32. TMOD=0X01;
  33. TH0=0;
  34. TL0=0;
  35. TR0=1;
  36. while(1)
  37. {
  38.         uchar i,j;
  39.         for(i=0;i<=9;i++)
  40.         {
  41.                 for(j=0;j<=2;j++)
  42.                 subf[i]=dispdata[j];//====!
  43.         }

  44. }
  45. }
  46. //显示子函数
  47. void display(void)
  48. {
  49.         P0=subf[0];
  50.         D0=1;
  51.         delay(20); //====!
  52.         D0=0;
  53.         P0=subf[0];
  54.         D1=1;
  55.         delay(20);
  56.         D1=0;
  57.         P0=subf[0];
  58.         D2=1;
  59.         delay(20);
  60.         D2=0;
  61. }
复制代码
你这代码是自己敲的,还是COPY来的?一大堆错误,都是书写问题!

看看上面这个,有//====!所在的行都是错的,对比一下你的代码。

回复

使用道具 举报

5#
ID:88256 发表于 2022-9-5 00:16 | 只看该作者
太粗心了,有好几个地方漏写了“;”,定时显示的程序里i后面多了个“,”,主函数循环里的sub应为subf,其实编译不通过都有错误提示的,可以查看错误的类型以及行号(有的在上一行)。
另外,subf赋值3个,dispdata赋值10个,但在主程序的循环里,范围是南辕北辙根本对不上的。
回复

使用道具 举报

6#
ID:1040201 发表于 2022-9-5 14:49 | 只看该作者
还需要多练习一下
回复

使用道具 举报

7#
ID:1042173 发表于 2022-9-5 23:33 | 只看该作者
hhdsdy 发表于 2022-9-5 00:16
太粗心了,有好几个地方漏写了“;”,定时显示的程序里i后面多了个“,”,主函数循环里的sub应为subf,其 ...

我这是抄书上一的——不知乍不过
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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