标题: ct107D消隐显示 [打印本页]

作者: aizn    时间: 2018-4-21 21:47
标题: ct107D消隐显示
#include"reg52.h"
#include"absacc.h"
#define uint unsigned int
#define uchar unsigned char
sfr AUXR = 0x8E;
code uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar dspbuf[8]={10,10,10,10,10,10,10,10};
uchar dspcom=0;
uint num=0,k=0;
bit flag=0;
void display();
void cls_led()
{
XBYTE[0X8000]=0Xff;

}
void cls_buzz()
{
XBYTE[0xa000]=0x00;
}
//void Delay10ms()  //@11.0592MHz
//{
//  uchar i, j;
// i = 108;
// j = 145;
// do
// {
//  while (--j);
// } while (--i);
//}
void main()
{
  cls_buzz();cls_led();
  AUXR |= 0x80;  
  TMOD &= 0xF0;  
  TL0 = 0xCD;  
  TH0 = 0xD4;
  TF0 = 0;  
  TR0 = 1;
  ET0=1;
  EA=1;
while(1)
{
  if(flag==1)
  {
   if(k==1000) k=0;
   flag=0;
   (k>=100)?(dspbuf[5]=k/100%10):(dspbuf[5]=10);
   (k>=10)?(dspbuf[6]=k/10%10):(dspbuf[5]=10);
   dspbuf[7]=k%10;
  }
}

}
void T0_time() interrupt 1
{
  TL0 = 0xCD;  
  TH0 = 0xD4;
  display();
  num++;
  if(num==50)
  {
   num=0;
   flag=1;
   k++;
}
}
void display()
{
XBYTE[0xe000]=0xff;
XBYTE[0xc000]=(1<<dspcom); //位选
XBYTE[0xe000]=tab[dspbuf[dspcom]];//段选输出数字
dspcom++;
if(dspcom==8) dspcom=0;
}






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