找回密码
 立即注册

QQ登录

只需一步,快速开始

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

数码管消隐问题

[复制链接]
跳转到指定楼层
楼主
ID:105402 发表于 2016-2-13 22:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include"reg52.h"
#define uchar unsigned char
sbit S6=P2^7;
uchar a,b,d,num,time;
uchar code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar c[2]={0xff,0xff};
void delayms()
{
for(a=10;a>0;a--)
     for(b=124;b>0;b--);
}
void delayms2()
{
for(a=5;a>0;a--)
     for(b=124;b>0;b--);
}
void anjian()
{
if(S6==0)
    {
     delayms();
     if(S6==0)
        {
         TR0=~TR0;
        }
     while(!S6);
    }
c[0]=TAB[num/10];
c[1]=TAB[num%10];
}
void xianshi()
{

         if(d==2)d=0;
         P2=~(++d);
         P0=c[d-1];
         delayms2();
         P0=0xff;
         P2=~(++d);
         P0=c[d-1];
         delayms2();
         P0=0xff;

}
main()
{
IE=0x82;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0 = 0;   
while(1)
       {
         anjian();
         xianshi();

       }
}
void T0_() interrupt 1
{
TR0=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++time==20)
    {
     time=0;
     num++;
     num=(num>=60)?0:num;
    }
c[1]=TAB[num/10];
c[0]=TAB[num%10];
TR0=1;
}
程序不是已经消隐了吗?为啥还会出现鬼影?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2016-2-13 22:51 来自触屏版 | 只看该作者
有鬼影是你这个数码管的消影方式不对详见:http://www.51hei.com/bbs/dpj-10971-1.html
回复

使用道具 举报

板凳
ID:14010 发表于 2016-2-14 00:35 | 只看该作者
关闭位选--->送段码数据-->再打开位选-->延时。这样处理消隐效果很好。
回复

使用道具 举报

地板
ID:72781 发表于 2016-2-14 20:30 | 只看该作者
先把数据线清零,在打开位选,在送数据,在关闭位选。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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