找回密码
 立即注册

QQ登录

只需一步,快速开始

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

这个单片机程序怎么不显示数字?

[复制链接]
跳转到指定楼层
楼主

2.png (14 KB, 下载次数: 59)

2.png

1.png (89.05 KB, 下载次数: 57)

1.png

3.png (36.16 KB, 下载次数: 89)

3.png

4.png (15.08 KB, 下载次数: 63)

4.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:278457 发表于 2022-8-31 00:15 | 只看该作者
不知道什么问题,查不出来
回复

使用道具 举报

板凳
ID:824490 发表于 2022-8-31 06:33 | 只看该作者
本帖最后由 名字不是重点 于 2022-8-31 06:45 编辑

上一贴已说过了:
573的OE被接地了,没有消隐,没有消隐,没有消隐!!!
咋就不听不做呢???
我帮你调试好了,你可以直接用。

////打字太辛苦,画图更难受

#include <reg51.h>
#include <stdio.h>
#include <intrins.h>

sbit d1=P2^0;       //锁存段码
sbit d2=P2^1;      // 锁存位选

unsigned  char dis_buf[8];  //显示缓存
unsigned char dig;            //位选
unsigned code segout[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};    //0--9共阳段码表

void disp_8_num(void); //显示函数

void main(void)     //主程序
{
    unsigned char i;
    while (1)       //主循环
  {
  
    for(i=0;i<8;i++)  dis_buf=i; //缓存刷新:01234567
   
     disp_8_num();  //显示一帧
    }
}

void disp_8_num()
//显示函数,显示8个数字 {
      unsigned char i,j;   
  
     dig=0xfe;  //从第一位开始扫显
      for (i=0;i<8;i++)  //共8个位的数码管
      {
      
        P0=segout[dis_buf];   //送段码
        d1=1;        
        d1=0;
     
       P0=dig;    //送位码      
       d2=1;      
       d2=0;

       j=60;     //简单延时,以稳定显示
       while(j--);

       P0=0xff;    //消隐位码,段码和位码2选1或全选都可以
       d2=1;
       d2=0;
      
       P0=0x00;    //消隐段码
       d1=1;
       d1=0;     
        
       dig= _crol_(dig,1); //准备下一位的位码
        }
  }

回复

使用道具 举报

地板
ID:123289 发表于 2022-8-31 08:29 | 只看该作者
走单步,自己一步步的调试,看看问题出在哪了,要学会自己调试程序。
回复

使用道具 举报

5#
ID:213173 发表于 2022-8-31 08:32 | 只看该作者
shenqiwei 发表于 2022-8-31 00:15
不知道什么问题,查不出来

楼主抄书的,消隐代码错误,按图例改码。


回复

使用道具 举报

6#
ID:332444 发表于 2022-8-31 09:28 | 只看该作者
用我的数码管驱动绝对不会有任何问题存在,唯有段值阴阳区别,取反即可,看我帖子。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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