找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1960|回复: 0
收起左侧

ct107D消隐显示

[复制链接]
ID:313390 发表于 2018-4-21 21:47 | 显示全部楼层 |阅读模式
#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;
}

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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