单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 650|回复: 17
收起左侧

双位数码管的显示问题

[复制链接]
清醒梦 发表于 2019-1-11 10:34 | 显示全部楼层 |阅读模式
论坛里面的各位,想问一下,双位数码管显示相同的数字,是什么问题呢,数码管的显示程序是这样的。数码管的位选由三极管驱动。
void display()       //显示程序
{
   P2=b[0],P0=a[NB%10];      /*由k的不同值进入确定显示数值*/
   delay(100);

   P2=b[1],P0=a[NB/10];
   delay(100);

   P2=b[2],P0=a[DX%10];
   delay(100);
         
   P2=b[3],P0=a[DX/10];
   delay(100);
}

回复

使用道具 举报

wc86110 发表于 2019-1-11 11:49 | 显示全部楼层
哪有问题,想要不同自个改就好
回复

使用道具 举报

HC6800-ES-V2.0 发表于 2019-1-11 13:06 | 显示全部楼层
用我这个试试,就是你的程序,我改了点符号,自己看,问题在哪里!
void display()       //显示程序
{
   P2=b[0];P0=a[NB%10];      /*由k的不同值进入确定显示数值*/
   delay(100);

   P2=b[1];P0=a[NB/10];
   delay(100);

   P2=b[2];P0=a[DX%10];
   delay(100);
         
   P2=b[3];P0=a[DX/10];
   delay(100);
}
回复

使用道具 举报

xuyaqi 发表于 2019-1-11 13:14 | 显示全部楼层
把段码输入后应该有位选输入,这样才能各位显示不一样。
回复

使用道具 举报

累不死的狗 发表于 2019-1-11 14:25 | 显示全部楼层
这程序不能通过吧?
回复

使用道具 举报

累不死的狗 发表于 2019-1-11 14:26 | 显示全部楼层
你那个格式都不对
回复

使用道具 举报

累不死的狗 发表于 2019-1-11 14:27 | 显示全部楼层
你那个是几位数码管?
我看像是四位的数码管啊
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-11 15:55 | 显示全部楼层
是两位数码管,程序改了,还是显示一样的数字,好像不能
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-11 16:11 | 显示全部楼层
请问哪里的格式不对,可以说清楚一些吗?
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-11 16:38 | 显示全部楼层
用了两个双位数码管
回复

使用道具 举报

杀死比亚 发表于 2019-1-12 07:51 | 显示全部楼层
你在每位数码管显示后面加一句P0=0(共阴);如果是共阳让P0=0xff;这样的作用是每一位数码管显示完了以后,要将P0口的数据清零,不然会影响下一位显示,如果还不行,加上适当的延时函数
回复

使用道具 举报

gh001 发表于 2019-1-12 09:25 | 显示全部楼层
你的问题可能出现在位选信号上面
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-12 10:39 | 显示全部楼层
位选信号也要延时吗
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-12 10:41 | 显示全部楼层
加了P0=0xff,也延时了,但还是显示两个相同的数字。
回复

使用道具 举报

wh8010jky 发表于 2019-1-12 10:43 | 显示全部楼层
可能是位选不对,那个P2=[0] P2=[1] P2=[2] P2=[3] 是什么意思?把数组[]贴出来看看
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-12 11:03 | 显示全部楼层
本帖最后由 清醒梦 于 2019-1-12 12:54 编辑

位选信号有什么问题,求指导,共阳极数码管的位选信号接pnp型三极管的集电极,发射极接电源,基极接单片机的P2口
回复

使用道具 举报

 楼主| 清醒梦 发表于 2019-1-12 12:05 | 显示全部楼层
uchar code b[4]={0x01,0x02,0x04,0x08}; //位码组合
回复

使用道具 举报

GUELL 发表于 2019-1-12 14:48 | 显示全部楼层

#include<reg51.h>
#define uchar unsigned char
typedef unsigned char uint8;     
sbit  led1=P3^2;
sbit  led2=P3^3;
uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uchar ms,i,num=12;
void delay(uint8 ms)   
  {
  uint8 i;
  while(ms--)
    {
    for(i=0;i<120;i++);
    }
  }
void main()
  {
  while(1)
   {
   led2=1;
   P1=table[num%10];
   led1=0;
   delay(1);
   led1=1;
   P1=table[num%100/10];
   led2=0;
   delay(1);
   }
}
LED.jpg
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

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