单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

双位数码管的显示问题

[复制链接]
跳转到指定楼层
楼主
论坛里面的各位,想问一下,双位数码管显示相同的数字,是什么问题呢,数码管的显示程序是这样的。数码管的位选由三极管驱动。
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);
}

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

使用道具 举报

沙发
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 | 只看该作者
把段码输入后应该有位选输入,这样才能各位显示不一样。
回复

使用道具 举报

5#
累不死的狗 发表于 2019-1-11 14:25 | 只看该作者
这程序不能通过吧?
回复

使用道具 举报

6#
累不死的狗 发表于 2019-1-11 14:26 | 只看该作者
你那个格式都不对
回复

使用道具 举报

7#
累不死的狗 发表于 2019-1-11 14:27 | 只看该作者
你那个是几位数码管?
我看像是四位的数码管啊
回复

使用道具 举报

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

使用道具 举报

9#
 楼主| 清醒梦 发表于 2019-1-11 16:11 | 只看该作者
请问哪里的格式不对,可以说清楚一些吗?
回复

使用道具 举报

10#
 楼主| 清醒梦 发表于 2019-1-11 16:38 | 只看该作者
用了两个双位数码管
回复

使用道具 举报

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

使用道具 举报

12#
gh001 发表于 2019-1-12 09:25 | 只看该作者
你的问题可能出现在位选信号上面
回复

使用道具 举报

13#
 楼主| 清醒梦 发表于 2019-1-12 10:39 | 只看该作者
位选信号也要延时吗
回复

使用道具 举报

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

使用道具 举报

15#
wh8010jky 发表于 2019-1-12 10:43 | 只看该作者
可能是位选不对,那个P2=[0] P2=[1] P2=[2] P2=[3] 是什么意思?把数组[]贴出来看看
回复

使用道具 举报

16#
 楼主| 清醒梦 发表于 2019-1-12 11:03 | 只看该作者
本帖最后由 清醒梦 于 2019-1-12 12:54 编辑

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

使用道具 举报

17#
 楼主| 清醒梦 发表于 2019-1-12 12:05 | 只看该作者
uchar code b[4]={0x01,0x02,0x04,0x08}; //位码组合
回复

使用道具 举报

18#
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 (77.95 KB, 下载次数: 0)

LED.jpg
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机.

Powered by 单片机教程网

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