⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 XX7299A是一款低价位且具有强抗干扰能力的多功能单片机外围芯片。它整合了数码管显示驱动(8 位数码管或者64 位LED)和键盘扫描(64个)控制
💻 C
字号:

/*********************************************************************
12M-AT89S52
XX7299A
********************************************************************/

#include <reg52.h>
#include <intrins.h>
#include <IIC_C51.h>
#include <XX7299A.h>

#define uchar unsigned char
#define uint unsigned int

unsigned char WrXX7299A(uchar addr,uchar d8)//写一个字节
{unsigned char ack;
 ack=I2C_SendStr(XX7299A_Write_DeviceAddr,addr,&d8,1);
 return ack;
}

unsigned char WrStrXX7299A(unsigned char suba,//连续写多个字节
                 unsigned char *s,unsigned char no)
{unsigned char ack;
 ack=I2C_SendStr(XX7299A_Write_DeviceAddr,suba,s,no);
 return ack;
}

unsigned char RdXX7299A(uchar addr,uchar *s)//读一个字节数据到s指向的单元
{unsigned char ack;
 ack=I2C_RcvStr(XX7299A_Write_DeviceAddr,addr,s,1);
 return ack;
}

unsigned char RdStrXX7299A(unsigned char suba,//读多个字节数据到s指向的单元
                  unsigned char *s,unsigned char no)
{unsigned char ack;
 ack=I2C_RcvStr(XX7299A_Write_DeviceAddr,suba,s,no);
 return ack;
}

int main(void)
{unsigned char nc;
 unsigned int i;
 unsigned char t[8]={1,2,3,4,5,6,7,8};
 unsigned char T[8]={8,7,6,5,4,3,2,1};
 
 WrXX7299A(Reg7299_DisDecode0,0xff);//设定当前组为译码显示
 WrStrXX7299A(Reg7299_DisDate0R,t,8);
 WrXX7299A(Reg7299_DisFlash0,0x55);//间隔闪烁
 WrXX7299A(Reg7299_DisFlash0,0x00);//停止闪烁
 WrStrXX7299A(0x00,T,8); //写E2PROM
 WrXX7299A(Reg7299_LoadEEPROM,0x80);//将E2PROM数据装载到寄存器显示
 for(nc=0;nc<4;nc++)
   WrXX7299A(Reg7299_DisDate1R +nc,0xff);//写第二组寄存器
 WrXX7299A(Reg7299_DisCtrl,0x14);//与显示消隐四位数码管显示
 WrXX7299A(Reg7299_DisCtrl,0x00);//恢复方式0显示模式
 
 WrXX7299A(Reg7299_ShiftCtrl,0x88);//显示数据移位
 WrXX7299A(Reg7299_ShiftCtrl,0x98); //显示数据移位
 WrXX7299A(Reg7299_ShiftCtrl,0x80); //显示数据移位
 WrXX7299A(Reg7299_ShiftCtrl,0x90); //显示数据移位
 
 while(1)
 {i=RdXX7299A(Reg7299_KeyValue,&nc);//读按键值到nc
  WrXX7299A(Reg7299_DisDate00,nc%10);//显示按键值
  WrXX7299A(Reg7299_DisDate01,nc/10%10);
  WrXX7299A(Reg7299_DisDate02,nc/100);
  if(i!=0xff)
   {WrXX7299A(Reg7299_DisDate03,i);
    while(1);
   }
 }




}

⌨️ 快捷键说明

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