7290.c

来自「读卡器 fm1702实现收发 zlg7290实现按键与显示控制」· C语言 代码 · 共 86 行

C
86
字号
#include "I2C.h"
#include "ZLG7290.h"

sbit SPEAKER=P2^3;

uchar code  duanma[10] ={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6}; // 0-9段码

uchar data jw[16];
uchar data num[2],address[2];       			

void  Clearall(void); 				// 全清除显示

void KeyFun(uchar num,uchar *d)  //重编键值 且执行功能键
{
  switch(num)
  {
    case 1:  {*d=0;break;}
    case 2:  {*d=1;break;}
    case 3:  {*d=2;break;}
    case 4:  {*d=3;break;}
    case 9:  {*d=4;break;}
    case 10:  {*d=5;break;}
    case 11:  {*d=6;break;}
    case 12:  {*d=7;break;}
    case 17:  {*d=8;break;}
    case 18:  {*d=9;break;}
    case 19:  {*d=10;break;}
    case 20:  {*d=11;break;}
    case 25:  {*d=12;break;}
    case 26:  {*d=13;break;}
    case 27:  {*d=14;break;}
    case 28:  {*d=15;break;} 
    default: break;	
   }
}                                  
	

void int1() interrupt 2 using 0
{
   	unsigned char data KeyValue,p,*q;

    uint i;
	//读取键值
    Delay(1);
	KeyValue=ZLG7290_ReadReg(ZLG7290_Key);
	Delay(1);
   
	//显示键值
		KeyFun(KeyValue,&p);
        jw[p]=p;
		q=&jw[p];
		i=q;
 	    address[0]=i/16;
		address[1]=i%16;

        ZLG7290_WriteReg(0x10,duanma[0]);
		Delay(5);
        ZLG7290_WriteReg(0x12,duanma[0]);
		Delay(5);
        ZLG7290_cmd(0x63,address[0]);
		Delay(5);
        ZLG7290_cmd(0x65,address[1]);
		Delay(5);
        num[0]=p/10;
        num[1]=p%10;
	
		ZLG7290_WriteReg(0x14,duanma[num[0]]);
		Delay(5);
		ZLG7290_WriteReg(0x11,duanma[num[1]]);
		Delay(5);
	  
}

void main(void)
{
   EA = 0;
   EX1 = 1;
   EA = 1;                                 //开中断1   
   Clearall();
   SPEAKER=0;                            
   while(1)
   {
	 Delay(10);                       //有卡时
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?