标题: 共阳 共阴 有无小数点 数码管段选码表 [打印本页]

作者: 51黑科技    时间: 2016-2-3 19:25
标题: 共阳 共阴 有无小数点 数码管段选码表
接法为:Px.0~Px.7——a~h
unsigned char code distab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} //共阴数码管段选码表,无小数点
unsigned char code distab[16]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1} //共阴数码管段选码表,有小数点
unsigned char code distab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}  //共阳数码管段选码表,无小数点
unsigned char code distab[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e} //共阳数码管段选码表,有小数点



作者: sunshixing    时间: 2018-4-13 10:43
非常好
作者: wsh2981    时间: 2020-6-26 14:08
资料很好,谢谢。
作者: 080320083    时间: 2022-6-8 13:24
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char

sbit start=P1^0;
sbit sounder=P1^1;
sbit fuwei=P1^2;

uint num;
uint sec=0;
uint ms=0;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
                    0x92,0x82,0xf8, 0x80,0x90};


void delay(uint a)
{
   uint i,j;
        for(i=0;i<a;i++)
        for(j=0;j<120;j++);
       
}

void Display()
{
                P2=0x01;
                P0=table[sec/10];
          delay(5
);
                P2=0x02;
                P0=table[sec%10]&0x7f;       
          delay(5);
       
                P2=0x04;
                P0=table[ms/10];
          delay(5);
                P2=0x08;
                P0=table[ms%10];       
          delay(5);

}



void Time0()
{
TMOD=0x01;
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
ET0=1;
EA=1;       
TR0=0;
}

void main()
{
sounder=0;
while(1)
        {Time0();
                if(start==0)
                {
                        delay(5);
                        if(start==0)
                        {
                                TR0=1;
                                Display();
                                while(1)
                                {sounder=~sounder;
                                delay(1);

                                        Display();
                                        while(start!=0)
                                        {
                                                TR0=0;
                                                Display();
                                                while(fuwei==0)
                {
                  delay(5);
                        if(fuwei==0)
                        {Time0();
                              sec=0;ms=0;                                               
                        }
                                        }
                                }               
                        }
                        }
                }
        }
}

void int_T0() interrupt 1
{
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
        ms++;
        if(ms>=100)
        {
          ms=0;
          sec++;
  if(sec>=99)
   {
   sec=0;
   }
}
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1