首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
键盘显示模块调试程序
来源:本站整理  作者:佚名  2011-02-05 21:45:16



键盘显示模块调试
其程序框图如下图所示:
 #include <reg51.h>
#include <absaCC.h>
#define com XBYTE[0X9FFF]     ;8279命令入口地址
#define dat XBYTE[0x9eff]     ;8279数据入口地址
#define uchar unsigned char
#define uint unsigned int
sbit cflag=ACC^7;
uchar j=0,sq;
uchar code keytab[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
                       0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};  ;键码表
uchar code tab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
                    0x7c,0x39,0x5e,0x79,0x71};           ;字形表
void delay(uint t);   ;延时函数
void clr();           ;清除8279RAM数据
void serve();         ;8279中断服务函数

void main (void)       ;主函数
     {uint i;
      com=0xd1;        ;送清除指令
      do{ACC=com;}
      while(cflag!=0);  ;查状态寄存器DU,直到DU为零
      com=0x34;         ;定标值20
      com=0x10;         ;写8279工作模式:左端送入,8字符显示
      delay(200);       ;延时
      com=0x90;         ;写入8279显示RAM起始0单元,自动加1
      EA=1;             ;开中断
      EX0=1;
IT0=1;
     do{}
     while(1);          ;等待按键中断
   }
void serve() interrupt 0        ;中断服务函数
  {
       uint i;
       com=0x40;         ;读FIFO中的键值
       sq=dat&0x3f;      ;保留键编码部分
       for(i=0;i<16;i++)
           {if(sq==keytab[i]) break;   ;查键码表
                 }
                    dat=tab[i];            ;查字形表,将按键值送显示
  }
void delay(uint t)                     ;延时函数
    {uint i,j;
      for(i=0;i<t;i++);
         for(j=0;j<100;j++);
    }
void clr(void)         ;清除8279显示RAM数据函数 
  {com=0xd1;
   do{ACC=com;}
     while(cflag!=0);
     j=0;
     com=0x90;
     dat=0x40;
   }
测试过程中,每按一键,数码管显示相应的值,即调试成功。

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:316,925.80000 毫秒