📄 ad.txt
字号:
#include<reg51.h>
#include<intrins.h>
typedef unsigned char UINT8;
typedef unsigned int UINT16;
code UINT8 table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
code UINT8 BITSELECT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned long ss;
sbit sclk=P1^0;
sbit cs=P1^1;
sbit dat=P1^2;
#define S1 0x38
#define S2 0x34
#define S3 0x2c
#define S4 0x1c
void delay(UINT8 t)
{
for(;t>0;t--);
}
void init()
{
TMOD=0x01;
TH0=0xf8;
TL0=0xcc;
ET0=1;
EA=1;
TR0=1;
}
void senddata(unsigned long senddat)
{
UINT8 i;
senddat=0x210000;
cs=1;
_nop_();
_nop_();
cs=0;
_nop_();
_nop_();
sclk=0;
for(i=0;i<24;i++)
{
if((senddat&0x800000)==0)
dat=0;
else
dat=1;
_nop_();
//_nop_();
sclk=1;
_nop_();
//_nop_();
sclk=0;
senddat<<=1;
}
}
UINT8 ScanKey(void)
{
UINT8 key;
P3=0xff;
key=P3;
if((key & 0x3c)==0x3c)
return(0xff);
delay(1500);
P3=0xff;
key=P3;
if((key & 0x3c)==0x3c)
return(0xff);
while(1)
{
if((P3 & 0x3c) ==0x3c)
break;
}
return(key&0x3c);
}
main(void)
{
unsigned long yy;
UINT8 c;
init();
while(1)
{
senddata(0x210ff0);
_nop_();
_nop_();
c=ScanKey();
switch(c)
{ case S1:yy=yy-500;ss=ss-100;break;
case S2:yy=yy+500;ss=ss+100;break;
case S3:yy=yy-5;ss--;break;
case S4:yy=yy+5;ss++;break;
}
ss%=1200;
}
}
void time0() interrupt 1
{
static UINT8 num=0;
TH0=0xf8;
TL0=0xcc;
P2=0xff;
switch(num)
{
case 0:P0= table[ss%10];break;
case 1:P0= table[ss%100/10];break;
case 2:P0= table[ss%1000/100]&0x7f;break;
case 3:P0= table[ss/1000];break;
}
P2=BITSELECT[num];
num++;
num%=4;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -