📄 anjian.txt
字号:
#include<reg52.h>
#include<intrins.h>
#include<ABSACC.H>
unsigned char code led7code[]={0X3f,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
unsigned char xdata seg_add _at_ 0x8FFF;
unsigned char xdata light_add _at_ 0x6FFF;
unsigned char data temp1,k1,k2;
//函数名称:delay
//入口参数;N
//函数功能:延时子程序,实现(16*N+24)us的延时
//系统采用11.0592MHZ 的时钟时,延时满足要求,其他情况需要改动
void delay(unsigned int N)
{
int i;
for(i=0;i<N;i++);
}
//函数名称:judge_hitkey
//函数功能:判断是否有键按下,有返回1,没有返回0
bit judge_hitkey() //判断是否有键按下,有返回1,没有返回0
{unsigned char temp;
P1=0xf0;
_nop_();
_nop_();
_nop_();
_nop_();
temp=P1;//读A5~A8的值
if((temp&0xf0)!=0xf0)//有键闭合
return(1);
else
return(0); //全1则无键闭合
}
//函数名称:scan_key
//函数功能:扫描键盘,返回键值
unsigned char scan_key()
{unsigned char value,scancode;
scancode= 0xfe;// 0xfe;
while(scancode!=0xef)
{
P1=scancode;
_nop_();
_nop_();
_nop_();
_nop_();
value=P1;
if((value&0xf0)!=0xf0)
break;
//scancode=(scancode<<1 )|0xf0;
scancode=_crol_(scancode,1);
}
value=~value;
return(value);
}
//函数名称:key_manage
//入口参数:扫描键盘返回的键值value
//函数功能:键盘散转
void key_manage(unsigned char value)
{
switch(value)
{case 0x11:temp1=0xf0;break;
case 0x12:temp1=0xf4;break;
case 0x14:temp1=0xf8;break;
case 0x18:temp1=0xfc;break;
case 0x21:temp1=0xf1;break;
case 0x22:temp1=0xf5;break;
case 0x24:temp1=0xf9;break;
case 0x28:temp1=0xfd;break;
case 0x41:temp1=0xf2;break;
case 0x42:temp1=0xf6;break;
case 0x44:temp1=0xfa;break;
case 0x48:temp1=0xfe;break;
case 0x81:temp1=0xf3;break;
case 0x82:temp1=0xf7;break;
case 0x84:temp1=0xfb;break;
case 0x88:temp1=0xff;break;
}
temp1=~temp1;
}
void main() using 0
{unsigned char value;
while(1){
temp1=temp1&0x0f;
k2=temp1/10; //取键值的整数部分
k1=temp1%10; //取键值的小数部分
if(k2!=0)
{seg_add=0xfb;
light_add=led7code[k2];} //显示整数部分
delay(1000);
seg_add=0xf7;
light_add=led7code[k1]; //显示小数部分
delay(1000);
if(judge_hitkey()) //判断是否有键按下
{
delay(1000); //延时20ms左右,消除抖动干扰
if(judge_hitkey()) //判断是否有效按键
{value=scan_key();
while(judge_hitkey());//等待按键释放
key_manage(value); //键盘扫描,按键散转,按键处理
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -