找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助 谁在帮我看看,于数码管显示问题。

  [复制链接]
跳转到指定楼层
楼主
ID:194033 发表于 2017-5-6 00:48 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用hc139控制四个数码管动态显示,为啥最后一位一直都是8,而且四个数码管显示一直都不变。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:142559 发表于 2017-5-6 03:54 | 只看该作者
程序呢,还有硬件图
回复

使用道具 举报

板凳
ID:187614 发表于 2017-5-6 08:43 | 只看该作者
应该不会,要么都不对要么全对,要学好C51,先学会单步调试。试试单步调试排除软件问题,软件没问题再检查硬件是否正确。
回复

使用道具 举报

地板
ID:194033 发表于 2017-5-6 08:47 来自手机 | 只看该作者
程序太多,分模块写的
回复

使用道具 举报

5#
ID:194033 发表于 2017-5-6 08:50 来自手机 | 只看该作者
显示5558的那四个数码管,程序太多,分模块写的。怎么发呀。

P70506-084935.jpg (95.2 KB, 下载次数: 114)

P70506-084935.jpg
回复

使用道具 举报

6#
ID:192235 发表于 2017-5-6 08:58 | 只看该作者
最后一位显示8,应该是你没消隐导致两个数显示重叠了,具体的还得看你的程序,能不能发一下你的程序好帮你解决
回复

使用道具 举报

7#
ID:149451 发表于 2017-5-6 10:10 | 只看该作者
这问题问的,都不知如何帮你
回复

使用道具 举报

8#
ID:194033 发表于 2017-5-6 10:47 来自手机 | 只看该作者
图发不上来啊
回复

使用道具 举报

9#
ID:146492 发表于 2017-5-6 11:07 | 只看该作者
就根据你的提问来大致说下:1找硬件问题,2找程序问题。3程序下载至硬件协议/通讯/。
回复

使用道具 举报

10#
ID:197262 发表于 2017-5-6 12:47 | 只看该作者
什么都没有给|?
回复

使用道具 举报

11#
ID:164722 发表于 2017-5-6 13:17 | 只看该作者
动态刷新
回复

使用道具 举报

12#
ID:197257 发表于 2017-5-6 13:27 | 只看该作者
全部显示8表明数码管的abcdefg都被点亮,检查一下程序
回复

使用道具 举报

13#
ID:197274 发表于 2017-5-6 13:30 | 只看该作者
来个模拟图·电路看看 是实物还是模拟?
回复

使用道具 举报

14#
ID:153108 发表于 2017-5-6 13:53 | 只看该作者
你还是先把程序和原理图放出来吧 ,不然,我们也没办法帮你找问题
回复

使用道具 举报

15#
ID:111634 发表于 2017-5-6 14:51 | 只看该作者
本帖最后由 zl2168 于 2017-5-6 14:52 编辑

实例57  74LS139选通4位LED数码管动态显示
实例57 74LS139选通4位共阴LED数码管动态显示.rar (48.12 KB, 下载次数: 3)
Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

16#
ID:194033 发表于 2017-5-6 17:10 | 只看该作者
#include<reg51.h>
#include"SEGx8.H"
#include"DELAY.H"
#include"DS1302.H"
#include"NONGLI.H"

#define         SEGx8_Port  P0  //硬件端口定义

extern unsigned char dtime[7][2];
extern unsigned char ntime[3][2];

#define uchar unsigned char
#define uint unsigned int

sbit E1=P2^0; //定义数码管使能引脚1
sbit E2=P2^1; //定义数码管使能引脚2
sbit E3=P2^2; //定义数码管使能引脚3
sbit E4=P2^3; //定义数码管使能引脚4
sbit E5=P1^0; //定义数码管使能引脚5
sbit E6=P1^1; //定义数码管使能引脚6

unsigned char SEGx8_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char SEGx8_bits[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

/*--------------------------底层驱动-----------------------------*/
void SEGx8_WEI(unsigned char _Numb)        //位选
{
   
        switch(_Numb)
        {
                case 0: P2=0X00;break;
                case 1: P2=0X01;break;
                case 2: P2=0X02;break;
                case 3: P2=0X03;break;
                case 4: P2=0X04;break;
                case 5: P2=0X05;break;
                case 6: P2=0X06;break;
                case 7: P2=0X07;break;
                case 8: P2=0X08;break;
                case 9: P2=0X09;break;
                case 10: P2=0X0A;break;
                case 11: P2=0X0B;break;
                case 12: P2=0X0C;break;
                case 13: P2=0X0D;break;
                case 14: P2=0X0E;break;
                case 15: P2=0X0F;break;
                case 16: P1=0X00;break;
                case 17: P1=0X01;break;
                case 18: P1=0X02;break;
                case 19: P1=0X03;break;
                default :break;
        }

               
}

void SEGx8_DUAN(unsigned char _Numb)        //位选
{
   
        switch(_Numb)
        {
                case 0: SEGx8_Port=0X3f;break;
                case 1: SEGx8_Port=0X06;break;
                case 2: SEGx8_Port=0X5b;break;
                case 3: SEGx8_Port=0X4f;break;
                case 4: SEGx8_Port=0X66;break;
                case 5: SEGx8_Port=0X6d;break;
                case 6: SEGx8_Port=0X7d;break;
                case 7: SEGx8_Port=0X07;break;
                case 8: SEGx8_Port=0X7f;break;
                case 9: SEGx8_Port=0X6f;break;
                default :break;
        }

               
}

/*----------------------------实际应用------------------------*/
void showtime(void)
{       
                    unsigned char i,d1,d2,m1,m2;
                        Conversion(0,YEAR,MONTH,DATE);
                        m1=month_moon/10;
                        m2=month_moon%10;
                        d1=day_moon/10;
                        d2=day_moon%10;
                       
                        for(i=0;i<10;i++)
                        {
                                SEGx8_WEI(0);SEGx8_Port=0X5b;delayms(1);//显示年
                                SEGx8_WEI(1);SEGx8_Port=0X3f;delayms(1);
                                SEGx8_WEI(2);SEGx8_DUAN(dtime[5][0]-0x30); delayms(1);
                                SEGx8_WEI(3);SEGx8_DUAN(dtime[5][1]-0x30); delayms(1);
                                                               
                        SEGx8_WEI(4);SEGx8_DUAN(dtime[4][0]-0x30);delayms(1);//显示月
                         SEGx8_WEI(5);SEGx8_DUAN(dtime[4][1]-0x30);delayms(1);

                            SEGx8_WEI(6);SEGx8_DUAN(dtime[3][0]-0x30);delayms(1);//显示日
                            SEGx8_WEI(7);SEGx8_DUAN(dtime[3][1]-0x30);delayms(1);
                               
                            SEGx8_WEI(8);SEGx8_DUAN(dtime[2][0]-0x30);delayms(1); //显示时
                             SEGx8_WEI(9);SEGx8_DUAN(dtime[2][1]-0x30);delayms(1);
                                                                                                                                                                         
                                SEGx8_WEI(10);SEGx8_DUAN(dtime[1][0]-0x30);delayms(1);//显示分
                                SEGx8_WEI(11);SEGx8_DUAN(dtime[1][1]-0x30);delayms(1);
                                       
                            SEGx8_WEI(12);SEGx8_DUAN(dtime[0][0]-0x30);delayms(1);//显示秒
                             SEGx8_WEI(13);SEGx8_DUAN(dtime[0][1]-0x30);delayms(1);
                          
                                SEGx8_WEI(14);SEGx8_DUAN(dtime[6][0]-0x30);delayms(1);//显示星期
                                SEGx8_WEI(15);SEGx8_DUAN(dtime[6][1]-0x30);delayms(1);
                               
                                SEGx8_WEI(16);SEGx8_DUAN(m1-0x30); delayms(1);//农历月
                                SEGx8_WEI(17);SEGx8_DUAN(m2-0x30); delayms(1);

                                SEGx8_WEI(18);SEGx8_DUAN(d1-0x30); delayms(1);//农历日
                                SEGx8_WEI(19);SEGx8_DUAN(d2-0x30); delayms(1);                               

                        }       
               
               
}

回复

使用道具 举报

17#
ID:194033 发表于 2017-5-6 17:11 | 只看该作者
这是数码管显示的程序
回复

使用道具 举报

18#
ID:194033 发表于 2017-5-6 17:20 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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