鱼C论坛

 找回密码
 立即注册
查看: 2596|回复: 2

c51数码管消隐求助

[复制链接]
发表于 2013-12-21 18:16:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
单片机:stc89c52rc
实验版:tx-1c

数码管部分代码:

for(i=0;i<10;i++){
         for(j=0;j<w;j++){
                 P0=mybit[5-j];
                 wela=1;
                 wela=0;
                 P0=num[a[j]];
                 dula=1;
                 dula=0;
                 delay(3);
         }
}

问题:数码管总是出现右边一位的影子。

全部代码:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define NUMBER 199
sbit dula=P2^6;
sbit wela=P2^7;
sbit f=P2^3;

void delay(int t){
         int i,j;
         for(i=0;i<t;i++)
                 for(j=0;j<100;j++);
}

void number(){
         int i,j,a[6],w;
         uchar code num[]={
         0x3f,0x06,0x5b,0x4f,
         0x66,0x6d,0x7d,0x07,
         0x7f,0x6f,0x77,0x7c,
         0x39,0x5e,0x79,0x71},
         mybit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
         static long int n=NUMBER;
         long int m;
         m=n;
         n--;
         if(n<0){
                 n=NUMBER;
                 wela=1;
                 P0=0;
                 wela=0;
                 dula=1;
                 P0=0xff;
                 dula=0;
                 P1=0;
                 f=0;
                 delay(1500);
                 f=1;
         }
         for(w=0;m!=0;w++){
                 a[w]=m%10;
                 m/=10;
         }
         for(i=0;i<10;i++){
                 for(j=0;j<w;j++){
                         P0=mybit[5-j];
                         wela=1;
                         wela=0;
                         P0=num[a[j]];
                         dula=1;
                         dula=0;
                         delay(3);
                 }
         }
}
void led(){
         static int i=0,flag=1;
         static uchar light,light1=0xfe,light2=0x7f;
         light=light1&light2;
         P1=light;
         light1=_crol_(light1,flag);
         light2=_crol_(light2,-flag);
         i++;
         flag=(i%3==0)?-flag:flag;
}
void main(){
         while(1){
                 led();
                 number();
         }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-21 18:42:23 | 显示全部楼层
想消隐的话就在每次让数码管显示完一个数字后先不急着显示下一个数字,而是让数码管显示  ’无‘也就是说给数码管送0x00,这样数码管就全灭了,就可以消隐了,然后在显示你的下一个数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-21 18:47:42 | 显示全部楼层
感觉好厉害的样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 03:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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