找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于单片机数码管上显示不完全的问题

查看数: 4113 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-5 21:10

正文摘要:

就是显示的数码管有断码,显示不完全 有没有大佬能解答一下? 单片机源程序如下: #include<reg52.h> #define uchar unsigned char #define uint unsigned uint uchar code seg[]={0x06,0x6d,0x40,0x4f,0x6d, ...

回复

ID:855120 发表于 2020-12-6 17:22
谢谢各位大佬解答,是没有消隐的问题,已经解决了
ID:855120 发表于 2020-12-6 17:21
wulin 发表于 2020-12-6 08:13
楼主程序没有大问题,只是动态数码管显示没有加消隐语句,不适合仿真观察。实物试验数码管会有鬼影,仿真就 ...

解决了,谢谢解答。
ID:332444 发表于 2020-12-6 08:57
P0=~seg[dis[i]];
ID:213173 发表于 2020-12-6 08:13
楼主程序没有大问题,只是动态数码管显示没有加消隐语句,不适合仿真观察。实物试验数码管会有鬼影,仿真就成乱码。显示程序修改如下:
void display(void)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                P0=0x00;//消隐
                P2=i;//位码
                P0=seg[dis[i]];//段码
                delayms(1);
        }
}
ID:420836 发表于 2020-12-6 01:49
也许字符码不正确?
ID:88256 发表于 2020-12-5 23:48
这个[ i] 被当成文字斜体处理(自动补上[ i])了,不知道管理人员能否取消这个功能或者禁用文字斜体?毕竟论坛经常会遇到发程序带[ i]的。如果没法解决,大家今后遇到正常文字的程序突然变成斜体的就应该留意是否出错了
ID:88256 发表于 2020-12-5 23:33
张天师 发表于 2020-12-5 23:04
看你程式要求,P0=seg[dis];应修改为P0=seg[ dis ];

我也是这样认为的,但是看显示的比较正常的,seg字模是 05-35-00 ,显示的也是类似,从图中可以看出,正在显示第A5位的数码管,373输出的也正是3的数据0x4f。如果按字面上的程序看,应该编译无法通过的,而后在发帖进入高级模式时,发现我的[ i ]也被吃掉了,返回文本模式看其实还在,只是最后面多出来一个[ / i ],删除后又自动加上去了,这个其实是论坛的程序影响的。

评分

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

查看全部评分

ID:814525 发表于 2020-12-5 23:04
看你程式要求,P0=seg[dis];应修改为P0=seg[ dis[i] ];

评分

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

查看全部评分

ID:180919 发表于 2020-12-5 22:52
P0=seg[i];
                P2=i;
                delayms(1);

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

Powered by 单片机教程网

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