//程序说明:用TIMER0中断实现对键盘每隔500MS扫描进行扫描
//返回键值放主程序中处理
#ifndef __keyscan__h__
#define __keyscan__h__
//定义按键的扫描芯片断口
sbit keycs1=P3^2; //74HC245双向总线发送接收器
sbit keycs2=P3^3;
sbit keycs3=P1^1;
sbit keycs4=P1^0
sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
sbit key4=P1^4;
sbit key5=P1^5;
sbit key6=P1^6;
sbit key7=P1^7
void timer0() intrrupt 1
{
//扫描74HC245时要,要先锁存74H573,防止按键电平干扰影响显示
uchar i,temp;
TH0=0X12 //重装值
TL0=0XEF
keycs1=1; //选通74HC245 按键为扬升快捷键 1%、2%、3%。。。。。
keycs2=0;
keycs3=0;
keycs4=0; //屏蔽其他三个74HC245;
if(!key1)
{
incline_flag1=1;
if(!key2)
{
incline_flag2=1;
}
if(!key1)
{
incline_flag3=1;
if(!key2)
{
incline_flag4=1;
}
if(!key1)
{
incline_flag5=1;
if(!key2)
{
incline_flag6=1;
}
if(!key1)
{
incline_flag7=1;
if(!key2)
{
incline_flag8=1;
}
keycs1=0;
keycs2=1; //选通74HC245 按键为扬升快捷键 9%、10%速度加、减等按键
keycs3=0;
keycs4=0; //屏蔽其他三个74HC245;
if(!key0)
{
incline_flag9=1;
if(!key1)
{
incline_flag10=1;
}
if(!key2)
{
inclineADD_flag=1;
if(!key3)
{
inclineDEC_flag=1;
}
if(!key4)
{
speedADD_flag=1;
if(!key5)
{
speedDEC_flag=1;
}
// if(!key6)
//{
// incline_flag7=1;
// if(!key7)
//{
// incline_flag8=1;
//}
keycs1=0;
keycs2=0;
keycs3=1; //选通74HC245 按键为速度快捷键 8KM/H、7KM/H、6KM/H。。
keycs4=0; //屏蔽其他三个74HC245;
if(!key0)
{
speed_flag8=1;
if(!key1)
{
speed_flag7=1;
}
if(!key2)
{
speed_flag6=1;
}
if(!key3)
{
speed_flag5=1;
}
if(!key4)
{
speed_flag4=1;
if(!key5)
{
speed_flag3=1;
}
if(!key6)
{
speed_flag2=1;
if(!key7)
{
speed_flag1=1;
}
keycs1=0;
keycs2=0;
keycs3=0; //选通74HC245 按键为其他捷键 START、STOP、等
keycs4=1; //屏蔽其他三个74HC245;
if(!key0)
{
ST0_flag=1;
}
if(!key1)
{
STA_flag=1;
}
if(!key2)
{
pro_flag=1;
}
if(!key3)
{
CLR_falg=1;
}
if(!key4)
{
mod_flag=1;
}
if(!key5)
{
fan_flag=1;
}
if(!key6)
{
speed_flag=1;
}
if(!key7)
{
speed_flag=1;
}
#endif
文章评论(0条评论)
登录后参与讨论