找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机电子时钟,数码管显示不全

[复制链接]
跳转到指定楼层
楼主
不知道为什么数码管显示不完全。

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay_ms(unsigned int);
uchar code xianshi[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
int num=0;
int sec=22,secg=0,secs=0;
int min=5,ming=0,mins=0;
int hour=15,hourg=0,hours=0;
int i;
void zd1(){
         TMOD=0X01;
         TH0=(65536-50000)/256;   //TH0=(65536-50000)/256;
     TL0=(65536-50000)%256;   //TL0=(65536-50000)%256;
     ET0=1;
     TR0=1;


}

void main(){
   IT0=1;
   EX0=1;
   EA=1;
   IT1=1;
   EX1=1;
            zd1();
         
     while(1){           
                      secg=sec%10;
         secs=sec/10;
         ming=min%10;
         mins=min/10;
         hourg=hour%10;
         hours=hour/10;
           

   P0= xianshi[hours];
   P2=weixuan[0];
   delay_ms(5);
         P0= xianshi[hourg];
   P2=weixuan[1];
   delay_ms(5);
         P0= xianshi[mins];
   P2=weixuan[2];
   delay_ms(5);
         P0= xianshi[ming];
   P2=weixuan[3];
            delay_ms(5);  
          P0= xianshi[secs];
   P2=weixuan[4];
            delay_ms(5);
          P0= xianshi[secg];
   P2=weixuan[5];
            delay_ms(5);  
             }
}

void time0() interrupt 1{
          num++;
         TH0=(65536-50000)/256;   
     TL0=(65536-50000)%256;  
         if(num==20){
          num=0;
          sec++;
         }
          if(sec==60){
          sec=0;
          min++;
         
         }
         if(min==60){
         min=0;
         hour++;
         }
         if(hour==24){
                         hour=0;
         }
        
}

              void delay_ms(unsigned int dt)//延时函数
{
register unsigned char bt,ct;
for (;dt;dt--)
   for (ct=2;ct;ct--)
       for (bt=250;--bt;);
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:435708 发表于 2019-7-17 18:36 | 只看该作者
有可能 你用的共阳数码管 但是xianshi【】 用的共阴的段码
回复

使用道具 举报

板凳
ID:155507 发表于 2019-7-17 18:46 | 只看该作者
你这个数码管需要 消隐

   P0= xianshi[hours];
   P2=weixuan[0];
   delay_ms(5);
P0=0x00;  //消隐
   P0= xianshi[hourg];
   P2=weixuan[1];
   delay_ms(5);
P0=0x00;  //消隐



回复

使用道具 举报

地板
ID:105364 发表于 2019-7-17 23:11 | 只看该作者
数码管共阳共阴弄反,数码管显示的是605261吧。
回复

使用道具 举报

5#
ID:105364 发表于 2019-7-17 23:20 | 只看该作者
不是数码管用反。是代码没消隐 问题,如板凳所说。
回复

使用道具 举报

6#
ID:555516 发表于 2019-7-18 07:16 来自手机 | 只看该作者
1339337425 发表于 2019-7-17 18:36
有可能 你用的共阳数码管 但是xianshi【】 用的共阴的段码

我用的应该是共阴的数码管,之前我逐个显示是没问题的
回复

使用道具 举报

7#
ID:555516 发表于 2019-7-18 07:24 来自手机 | 只看该作者
angmall 发表于 2019-7-17 18:46
你这个数码管需要 消隐

   P0= xianshi[hours];

哇,,解决了,谢谢,但这个消隐不怎么看得懂,我的是共阴数码管如果p0=0x00不就都不显示吗?
回复

使用道具 举报

8#
ID:61950 发表于 2019-9-7 18:48 | 只看该作者
试试看能不能用
回复

使用道具 举报

9#
ID:648705 发表于 2019-11-26 16:34 | 只看该作者
为什么下载不了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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