找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

请教为啥单片机+74hc595显示不正常?

查看数: 1786 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-4-1 20:38

正文摘要:

晚上好,各位老师,请教一下我的程序是否有问题,单片机STC8H8K64U,两个74HC595推动四位数码管,刚开始采用延时程序,hour=1234.可以正常显示1234.后来采用定时中断显示,hour改为1111.显示444.请教一下,这样写程序 ...

回复

ID:731755 发表于 2024-4-3 08:16
xiaobendan001 发表于 2024-4-2 19:18
是,放前边的同时,判定那部分也要放前边,否则K=0的时候就无法参与显示了
或者你把数组改成LED8[5],然 ...

好的,谢谢,师傅。
ID:1109793 发表于 2024-4-2 19:18
13872888583 发表于 2024-4-2 19:02
自加加放到前面,目前hour=1234,试过k=3,4,5.其中3少一位显示,4显示错误,还是少一位,5显示和4一样, ...

是,放前边的同时,判定那部分也要放前边,否则K=0的时候就无法参与显示了
或者你把数组改成LED8[5],然后把1234放到LED8[1]~LEN8[4],就一样能显示1234了。
ID:731755 发表于 2024-4-2 19:03
Hephaestus 发表于 2024-4-2 17:03
214、215行应该挪到217~219的括号内部,现在显示4个一样的数字看不出来,如果是1234就有大问题了。

没事,采用二楼那位师傅刚刚好,目前就是1234.
ID:731755 发表于 2024-4-2 19:02
xiaobendan001 发表于 2024-4-2 10:43
3的话就要放前边,4就放后边,总之就是不能让数组越界。不越界还有一个办法,把数组定义大一些。

自加加放到前面,目前hour=1234,试过k=3,4,5.其中3少一位显示,4显示错误,还是少一位,5显示和4一样,最后一位乱码。
ID:731755 发表于 2024-4-2 18:58
君工创 发表于 2024-4-2 15:11
if(K>3){K=0;)这样也可以吧。

不可以,采用二楼那位师傅的就刚刚好
ID:883242 发表于 2024-4-2 17:03
214、215行应该挪到217~219的括号内部,现在显示4个一样的数字看不出来,如果是1234就有大问题了。
ID:965189 发表于 2024-4-2 15:11
if(K>3){K=0;)这样也可以吧。
ID:1109793 发表于 2024-4-2 10:43
13872888583 发表于 2024-4-2 10:13
不能是3,3就少一位了。

3的话就要放前边,4就放后边,总之就是不能让数组越界。不越界还有一个办法,把数组定义大一些。
ID:731755 发表于 2024-4-2 10:13
xiaobendan001 发表于 2024-4-2 08:41
放前边也没问题吧,主要是后面的if(k>=4)改成3才对啊,因为=4就是led[4]就越界了。

不能是3,3就少一位了。
ID:1109793 发表于 2024-4-2 08:41
放前边也没问题吧,主要是后面的if(k>=4)改成3才对啊,因为=4就是led[4]就越界了。
ID:731755 发表于 2024-4-1 22:35
lkc8210 发表于 2024-4-1 22:20
先把211行的k++移到213行之后
确保LED8[k]里k的值不会超过4

高手,正常了,现在4个1111了。以前不明白,为啥自加加要放到后面。现在知道了
ID:161164 发表于 2024-4-1 22:20
先把211行的k++移到213行之后
确保LED8[k]里k的值不会超过4

评分

参与人数 1黑币 +15 收起 理由
13872888583 + 15 共享资料的黑币奖励!

查看全部评分

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

Powered by 单片机教程网

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