📄 szt.c
字号:
#include <stdio.h>
#include <reg51.h>
#include <szt.h>
void initial(void);
void delay(short i);
unsigned char keyscan(void);
void led(void);
void main(void)
{
unsigned char keyword;
initial();
while(1)
{
keyword=keyscan();
switch(keyword)
{
case 0:
P2_0=1;
P0_0=1;
break;
case 1:
P2_0=1;
P0_1=1;
break;
default:P0_0=0;
}
}
}
void initial(void)
{
P0=0xff;
P1_0=1;
P1_0=0;
P1=0xff;
P2=0xff;
P3=0xff;
IE=0x82;
TCON=0x00;
TH0=0xF6;
TL0=0x3C;
TMOD=0x01;
TR1=0; //close timer1
TR0=1; //open timer0
}
unsigned char keyscan()
{
P3_0=FALSE;
if(P1_0==FALSE)
return 0;
if(P1_1==FALSE)
return 1;
if(P1_2==FALSE)
return 2;
if(P1_3==FALSE)
return 3;
if(P1_4==FALSE)
return 4;
if(P1_5==FALSE)
return 5;
if(P1_6==FALSE)
return 6;
if(P1_7==FALSE)
return 7;
P3_0=TRUE;
delay(DELAY_VALUE);
P3_1=FALSE;
if(P1_0==FALSE)
return 8;
if(P1_1==FALSE)
return 9;
if(P1_2==FALSE)
return 10;
if(P1_3==FALSE)
return 11;
if(P1_4==FALSE)
return 12;
if(P1_5==FALSE)
return 13;
if(P1_6==FALSE)
return 14;
if(P1_7==FALSE)
return 15;
P3_1=TRUE;
delay(DELAY_VALUE);
P3_2=FALSE;
if(P1_0==FALSE)
return 16;
if(P1_1==FALSE)
return 17;
if(P1_2==FALSE)
return 18;
if(P1_3==FALSE)
return 19;
if(P1_4==FALSE)
return 20;
// if(P1_5=FALSE)
// return 21;
// if(P1_6=FALSE)
// return 6;
// if(P1_7=FALSE)
// return 7;
P3_2=TRUE;
delay(DELAY_VALUE);
}
void delay(short i)
{
int j=0;
int k=0;
k=i*DELAY_VALUE;
while(j<k)j++;
}
void TIMER(void) interrupt 1 using 2
{
TH0=0xF6;
TL0=0x3C;
}
//an jian sao miao qu dou dong
void timer0_isr(void) interrupt 1
{
TH0=0xf8;
TL0=0xcc;
keyt2=keyscan();
if(keyt2==0xFF){
if(release<250) release++;
}
if(release>2){
if(key_value==keyt2){
varify_times=0;
}
else{
if(varify_times<250) varify_times++;
if(varify_times>10{
if(key_had_deal){
key_value=keyt2;
varify_times=0;
release=0;
key_had_deal=0;
}
}
}
}
}
#i nclude <AT89X51.H>
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
while(1)
{
if(K1==0)
{
L1=0; //灯亮
}
else
{
L1=1; //灯灭
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -