📄 display.c
字号:
//文件名:display.c
//入口参数:待显示的时间数组
//功能:显示
#include<reg51.h>
#define uchar unsigned char
extern bit Glint_enable_flag,Pause_flag;
extern bit volatile Glint_time_flag;
extern uchar Counter;
extern bit Time_set_mode;
uchar code Control_table[]={0x1e,0x1d,0x1b,0x17,0x0f};//显示位控制码
//p1.0,p1.1,p1.2,p1.3,p1.4
uchar Dis_bit_p=0;//控制位指针
uchar code Table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
/*共阳LED显示查表*/ /* 0 1 2 3 4 5 6 7 8 9 - 不显示*/
extern uchar Time[5];
void interrupt_t1() interrupt 3 using 2///////////////////////////////////////////////////
{
uchar tmp,tmp1,sndacc;
TH1=0xf8;//5ms
TL1=0xcd;
if(Time_set_mode==1||Pause_flag==1)
{
sndacc++;
if(sndacc==250)
{
Glint_time_flag=!Glint_time_flag;
sndacc=0;
}
}
if(Glint_enable_flag==1&&Glint_time_flag!=0&&(Counter-1)==Dis_bit_p )//闪烁
//如果是调时位,则跳过,不让其显示
//@@@@@@Dis_bit_p++;
{
Dis_bit_p++;
if(Dis_bit_p>4)
Dis_bit_p=0;
}
tmp=P1;
tmp=tmp&0xe0;//保存高三位1110,0000
tmp1=tmp|Control_table[Dis_bit_p];//取控制码
P1=tmp1;
if(Glint_enable_flag==1&&Glint_time_flag!=0&&Pause_flag==1/*&&(Counter-1)==Dis_bit_p */)//闪烁
P2=0xff;
else
{
switch(Dis_bit_p)
{
case 0: P2=Table[Time[0]];break;
case 1: P2=Table[Time[1]];break;
case 2: P2=Table[Time[2]];break;
case 3: P2=Table[Time[3]];break;
case 4: P2=Table[Time[4]];break;
}
}
Dis_bit_p++;
if(Dis_bit_p>4)
Dis_bit_p=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -