×
单片机 > 单片机程序设计 > 详情

键盘显示模块调试程序

发布时间:2020-05-29 发布时间:
|

键盘显示模块调试 
其程序框图如下图所示: 
 #include  
#include CC.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         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; 
   } 
测试过程中,每按一键,数码管显示相应的值,即调试成功。 


关键字:键盘显示  模块调试 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil(MDK-ARM)系列教程(七)_菜单