导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→8279的应用问题[求助]

* 39644: 8279的应用问题[求助]

   flora_qqq 
flora_qqq发表的帖子 

 8279的应用问题[求助]
在用8279做一个键盘显示的东西,在调试中发现上电复位后,4位显示总是显示8,测试单片机的WR RD端总是输出高,按按键后8279的IRQ端没有输出,麻烦各位大侠,帮忙看看!程序如下:
//8279键盘和显示程序
#include  <at89x51.h>  
#include  <absacc.h>  
#include  <stdio.h>  
#define COM8279  XBYTE [0xF2FF]     //定义8279控制口
#define DATA8279 XBYTE [0xF0FF]    //定义8279数据口
#define uchar unsigned char   
#define uint unsigned int

uint keyval;   //定义键内码传递参数;
uint time;    //定义延时参数;

void delay(uint time);
void key(void);

void main()
 {
  delay(1300);                //开机延时
  COM8279 = 0xD3;             //清除RAM和FIFO
  delay(1);
  EA=1;
  EX1=1;                    //开总中断,开外部中断1;
  IT1=1;                   //外部中断1选用下降沿
  
  COM8279=0x00;         //8279键盘双键互锁,编码扫描,左端入口
  COM8279=0x32;        //时钟分频设置,分频数为18
  COM8279=0x70;     //设置读显示命令
  COM8279=0x90;    //设置写显示命令
  while(1);
 }                     

void delay (uint time)      //传递参数为time
 {
  uchar j;
  while (time--)          //用time-1来进行循环/
  {
   for (j=100;j>  0;j--)     //用j来进行125次循环,大约8us
    {;}
  }
 }


 void intsvr1(void) interrupt 2 using 1
 {
  keyval=DATA8279;
  key();
 }

//按键确认程序
void key(void)

 switch(keyval)
 {
  case 0xC3:   //0号键赋值;
  {
   P0=0x3F;      
   DATA8279=P0;
   break;
  }
  
  case 0xC2:   //1号键赋值;
  {
   P0=0x06;
   DATA8279=P0;
   break;
  }
  
  case 0xC1:   //2号键赋值;
  {
   P0=0x5B;
   DATA8279=P0;
   break;
  }
  
  case 0xc0:   //3号键赋值;
   {
    P0=0x4F;
 DATA8279=P0;
    break;
  }
  
  case 0xCB:   //4号键赋值;
   {
    P0=0x66;
 DATA8279=P0;
    break;
  }

  case 0xCC:   //5号键赋值;
   {
    P0=0x6D;
 DATA8279=P0;
    break;
  }
  
  case 0xC9:   //6号键赋值;
   {
    P0=0x7D;
 DATA8279=P0;
    break;
  }

  case 0xC8:   //7号键赋值;
   {
    P0=0x07;
 DATA8279=P0;
    break;
  }

  case 0xD3:   //8号键赋值;
   {
    P0=0x7F;
 DATA8279=P0;
    break;
  }

  case 0xD2:   //9号键赋值;
   {
    P0=0x6F;
 DATA8279=P0;
    break;
  }
 
  case 0xD1:   //A号键赋值;
   {
    P0=0x77;
 DATA8279=P0;
    break;
  }
  
  case 0xD0:   //B号键赋值;
   {
    P0=0x7C;
 DATA8279=P0;
    break;
  }
  
  case 0xE3:   //C号键赋值;
   {
    P0=0x39;
 DATA8279=P0;
    break;
  }
  
  case 0xE1:   //D号键赋值;
   {
    P0=0x5E;
 DATA8279=P0;
    break;
  }
  
  case 0xE2:   //E号键赋值;
   {
    P0=0x79;
 DATA8279=P0;
    break;
  }
 
  case 0xE0:   //F号键赋值;
   {
    P0=0x71;
 DATA8279=P0;
    break; 
   }
   default:
   break;
}
}


发表时间:2008年4月25日11:41:02

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  39854.[详细]?
摘要:COM8279=0x00;         //8279键盘双键互锁,编码扫描,左端入口   COM8279=0x32;......(224字)
- [thywyj][595次] 2008年4月25日

  40560.[详细]后面要有写命令是什么意思呀?
摘要:后面得有写命令,不太明白?......(26字)
- [flora_qqq][839次] 2008年4月28日

[上一篇帖子]:[讨论]推荐低成本TFT真彩液晶显示驱动方案4.3寸,5.7寸,7寸,8.4寸,10.4寸推荐低成本
[下一篇帖子]:谁打开过*.A的库文件?请教各位高手:怎么打开*.A的库文件?