热门关键词: 模具抛光机 传奇私服辅助工具 玻璃纤维生产设备 家用游泳池设备 反渗透水处理设备 电子枪工作原理 河北低压成套设备
  IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
相关专题
请各位大虾帮解释一下8279的中断处理程序取键值的问题
新闻出处:21ic 发布时间:2007-05-21
ccjchen 发布于 2007-5-21 13:55:00
我将8279的 IRQ 引脚与89C52的INT1端相连,即用中断取得8279的按键值,然后在液晶lcd上根据不同的按键值显示不同的内容.但是我发现一个怪现象,那就是我发现当我某一键按下后,其他按键也获得了与这一按键同样的键值;也就是当有新的按键按下后,新的按键先执行一下之前按键的操作,然后才执行本按键的操作.这是什么原因引起的呢?以下是我的中断取键值的部分:
#define COM8279 XBYTE[0x8401]//8279命令状态口
#define DAT8279 XBYTE[0x8400]//8279数据口
void key()interrupt 2 using 2
{
   uchar kk,s;
   COM8279=0xd1;//总清楚命令
   do
    {
        s=COM8279;
    }while(s&0x80==1);//等待清楚结束
   COM8279=0x00;//键盘显示方式
   COM8279=0x2a;//时钟分频
   kk=COM8279;
   while (kk&0x0f==0);      //无键按下等待
   flag2=1;flag3=1;flag4=1;
}
void main(void)
{    
     
     initlcm();//初始化lcd
     initmcu();//初始化mcu
     for(;;)
     {
         delay(100);
       if(flag2==1)
        {
            flag2=0;
           COM8279=0x40;         //读fifo ram 命令

            m=DAT8279;m=m&0x3f;   //取键盘数据低6位
        }
          dealkey();//键盘处理函数
}




关闭】【打印
友情链接:
© 2007 电子设备网 网站地图