📄 display.c
字号:
#include <hardware.c>
#define NOP() {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
void int3()interrupt 3 using 2
{
TR1=0;
TH1=0XF1;//0x4c;
TL1=0x99;//08;
TR1=1;
jishi4ms++;
if (key_bit==1) key_time++;
else key_time=0;
write_flash=1;
if (jishi4ms>=250) //计时时间更新,最终以分钟为单位循环计时//
{
jishi4ms=0;
jishi_sec++;
jd_bit=1;
if (jishi_sec>=60)
{
jishi_sec=0;
jishi_min++;
}
}
if ((jishi4ms%50)==0) {flash=!flash;chgc_bit=1;}
}
void delay(uchar us)
{
while (--us);
}
void htod_change() //十六进制转十进制并查表存入显示缓冲区//
{
uchar a;
uint b;
//disbuffer[3]=dismap1[a];
b=dis_hex_buffer%1000;
a=b/100;
disbuffer[2]=dismap1[a];
b=b%100;
a=b/10;
disbuffer[1]=dismap1[a];
a=b%10;
disbuffer[0]=dismap1[a];
}
void key_dis()
{
if(write_flash==1)
{
dig1=dig2=dig3=dig0=1;
seg=0xff;
key_h=0;
NOP();
if (seg==0xff)
{
keyword=0xff;
key_h=1;
NOP();
}
else
{
NOP();
if (key_time>100)
{
key_bit=0;
keyword=seg;
}
else key_bit=1;
NOP();
key_h=1;
}
discount++;
if (discount>3)
{
discount=0;
}
switch (discount)
{
case 0:
{
if (flash_0&&flash) seg=0;
else seg=disbuffer[discount];
dig0=0;
break;
}
case 1:
{
if (flash_1&&flash) seg=0;
else seg=disbuffer[discount]+8;
dig1=0;
break;
}
case 2:
{
if (flash_2&&flash) seg=0;
else seg=disbuffer[discount];
dig2=0;
break;
}
case 3:
{
if (flash_3&&flash) seg=0;
else
{
if (inmode>=0x10) seg=disbuffer[discount]+8; //充电时加上小数点。
else seg=disbuffer[discount];
}
dig3=0;
break;
}
}
write_flash=0;
}
}
void InitMCU()
{
uchar y,z;
y=0x55;
z=0x79;
ET1=1;
EA=1;
TMOD=0x10;
TH1=0xf6;
TL1=0x7a;
delay(250);
delay(250);
delay(250);
delay(250);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -