智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10739|回复: 2
打印 上一主题 下一主题

这个程序不知道那里出了问题,求解!!

[复制链接]

2

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
68
威望
38
贡献
20
兑换币
22
注册时间
2018-1-15
在线时间
5 小时
跳转到指定楼层
1#
发表于 2018-1-19 09:54:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

预期效果是单片机上数码管依次显示0~F,仿真也没问题,但单片机上就只显示数字0.
#include<reg52.h>

typedef unsigned int u16;
typedef unsigned char u8;

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay()
{
        int i;
        for(i=0;i<50000;i++);
}
void main()
{
       
        while(1)
        {
                u8 j=0;
          for(;j<16;j++)
                {
                        P1=smgduan[j];
                  delay();
                }
        }
       
}
回复

使用道具 举报

21

主题

589

帖子

0

精华

版主

论坛终极大(cai)佬(ji)

Rank: 9Rank: 9Rank: 9

积分
5196

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章

威望
2304
贡献
1416
兑换币
1584
注册时间
2018-1-10
在线时间
738 小时
推荐
发表于 2018-1-19 12:19:41 | 只看该作者
本帖最后由 神车名为GTR 于 2018-1-19 12:22 编辑

delay函数里i的范围不对

不过这个错误应该不是问题所在…………
还有就是你那个数组里只有16个数,为什么定义数组大小为17呢?
回复 支持 2 反对 0

使用道具 举报

2

主题

5

帖子

0

精华

注册会员

Rank: 2

积分
68
威望
38
贡献
20
兑换币
22
注册时间
2018-1-15
在线时间
5 小时
3#
 楼主| 发表于 2018-1-22 19:24:24 | 只看该作者
神车名为GTR 发表于 2018-1-19 12:19
delay函数里i的范围不对

不过这个错误应该不是问题所在…………

谢谢,那个是把int i ;改成unsigned int i;就可以了
是i的范围出错了。
至于17 ,改成16 好些,先前我可能是输错了。
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 13:16 , Processed in 0.040035 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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