📄 gfstc.h
字号:
#ifndef __GFSTC_H__
#define __GFSTC_H__
#include <STC516.H>
#include <absacc.h>
#include <intrins.h> //_nop_();
#define Reg8255 XBYTE[0x8003]
#define Reg8255A XBYTE[0x8000]
#define Reg8255B XBYTE[0x8001]
#define Reg8255C XBYTE[0x8002]
#define uchar unsigned char
uchar con1ms=0,conkey=0,con=0,n;
uchar led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar scan[]={0x80,0x40,0x08,0x04,0x20,0x10,0x02,0x01};
void Init_T(void)
{
TMOD=0x21;
TH0=0xF8;TL0=0xCC;
TH1=0xFA;TL1=0xFA;
TR0=1;TR1=1;
ET0=1;ET1=1;
}
void Init_UART(void)
{
SCON=0x50;
PCON=0x00;
TI=0;RI=0;
ES=1;
}
void Init(void) //T1产生串口波特率,工作在方式2,波特率为9600
{ //T0用于控制显示与键盘的工作,设定8255的工作方式
Reg8255=0x89;Reg8255A=0x00;Reg8255B=0x00;Reg8255C=0xFF;
Init_T();Init_UART();
EA=1;
}
void display(uchar X,uchar B) //确定哪一位显示什么
{
Reg8255A=0x00;
Reg8255B=0x00;
_nop_();_nop_();
Reg8255B=led[X];
Reg8255A=scan[B];
}
uchar Rkeyval(void)
{
uchar keyval=0,key;
if(conkey==1)
{
conkey=0;
key=(~Reg8255C)&0xFF;
if(key!=0)
{
while(((~Reg8255C)&0x0F)!=0);
keyval=key;
}
}
return keyval;
}
void time_T0(void) interrupt 1
{
EA=0;
ET0=0;TR0=0;TH0=0xF8;TL0=0xCC;TR0=1;
con1ms++;con++;
if(con1ms>7) con1ms=0;
if(con==100)
{
con=0;
conkey=1;
}
ET0=1;
EA=1;
}
void Serial(void) interrupt 4
{
if(RI)
{
n=SBUF;
RI=0;
}
if(TI) TI=0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -