专栏中心

EEPW首页 > 专栏 > 74HC245按键扫描(电子表项目)

74HC245按键扫描(电子表项目)

发布人:0750long 时间:2009-07-09 来源:工程师 发布文章
74HC245按键扫描(电子表项目)

 

//程序说明:用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

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

大联大世平集团携手NXP举办线上研讨会,揭秘主动式悬架控制板及S32K3选型

氢气传感器助力检测电池爆炸隐患

NEC Electronics C编译器软件安装演示视频

视频 2009-04-16

NEC Electronics 汇编器与PM+软件安装演示视频

视频 2009-04-16

NEC Electronics SM+软件安装演示视频

视频 2009-04-16

无刷电机控制详解(第三篇):换相

纳芯微携汽车电子一站式解决方案亮相2026北京车展

2026-04-30

HiperPLC

视频 2009-04-09

Infobip 推出 AgentOS:告别手动编排,AI 驱动客户旅程

2026-04-30

pcb布线技术

资源下载 2007-02-09

凭借先进封装与3DFabric 集成,赋能下一代AI计算

联电22纳米领军动能续旺 组队Intel拼美国制造

无刷电机控制详解(第四篇):电流控制

PCB叠层设计

资源下载 2007-02-09

量子电池颠覆传统物理定律

LinkSwitch-II

视频 2009-04-09

向tg求救

slsh827 2005-09-02

MUSA获得SGLang主线支持!5月10日北京,AI Meetup等你来

更多 培训课堂
更多 焦点
更多 视频

技术专区