📄 zlg7290.c
字号:
#include "SAMtwi.h"
#include <AT91SAM7S128.H>
#include "zlg7290.h"
/******************************************
函数:ZLG7290_WriteReg()
功能:向ZLG7290 的某个内部寄存器写入数据
参数:
RegAddr:ZLG7290 的内部寄存器地址
dat:要写入的数据
*******************************************/
void ZLG7290_WriteReg(unsigned char RegAddr, char dat)
{
TWIsend(ZLG7290,RegAddr,&dat,1);
}
/******************************************
函数:ZLG7290_ReadReg()
功能:读取ZLG7290 的某个内部寄存器数据
参数:
RegAddr:ZLG7290 的内部寄存器地址
dat:要写入的地址
*******************************************/
void ZLG7290_ReadReg(unsigned char RegAddr, char *dat)
{
TWIread(ZLG7290,RegAddr,dat,1);
}
/******************************************
函数:ZLG7290_cmd()
功能:向ZLG7290 发送控制命令
参数:
cmd0:写入CmdBuf0 寄存器的命令字(第1 字节)
cmd1:写入CmdBuf1 寄存器的命令字(第2 字节)
******************************************/
void ZLG7290_cmd(char cmd0, char cmd1)
{
char buf[2];
buf[0] = cmd0;
buf[1] = cmd1;
TWIsend(ZLG7290,ZLG7290_CmdBuf,buf,2);
}
/*********************************************
函数:ZLG7290_SegOnOff()
功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段
参数:
seg:取值0~63,表示数码管(或LED)的段号
b:0 表示熄灭,1 表示点亮
返回:
0:正常
1:访问ZLG7290 时出现异常
说明:
在每一位数码管中,段号顺序按照“a,b,c,d,e,f,g,dp”进行
********************************************/
void ZLG7290_SegOnOff(char seg, char b)
{
char cmd;
cmd = seg & 0x3F;
if ( b ) cmd |= 0x80;
ZLG7290_cmd(0x01,cmd);
}
/*******************************************
函数:ZLG7290_Download()
功能:下载数据并译码
参数:
addr:取值0~7,显示缓存DpRam0~DpRam7 的编号
dp:是否点亮该位的小数点,0-熄灭,1-点亮
flash:控制该位是否闪烁,0-不闪烁,1-闪烁
dat:取值0~31,表示要显示的数据
*********************************************/
void ZLG7290_Download(char addr, char dp, char flash, char dat)
{
char cmd0;
char cmd1;
cmd0 = addr & 0x0F;
cmd0 |= 0x60;
cmd1 = dat & 0x1F;
if ( dp ) cmd1 |= 0x80;
if ( flash ) cmd1 |= 0x40;
ZLG7290_cmd(cmd0,cmd1);
}
/*************************************************
/*******************************************
函数:ZLG7290_Download()
功能:下载数据并译码
参数:
addr:取值0~7,显示缓存DpRam0~DpRam7 的编号
dp:是否点亮该位的小数点,0-熄灭,1-点亮
flash:控制该位是否闪烁,0-不闪烁,1-闪烁
dat:取值0~31,表示要显示的数据
*********************************************/
/******************************************
函数:ZLG7290_GetKey()
功能:读取ZLG7290 的键值寄存器数据
参数:
i:输出指针地址
*******************************************/
void ZLG7290_GetKey(char *i)
{
TWIread(ZLG7290,1,i,1);
}
/*************************************************/
void ZLG7290_disp(unsigned char * led_seg)
{
TWIsend(ZLG7290,ZLG7290_DpRam,led_seg,4);
}
/************************************************/
void ZLG7290_Init()
{
ZLG7290_WriteReg(ZLG7290_ScanNum,3); //显示4个数码管
ZLG7290_Download(0,1,1,8);
ZLG7290_Download(1,1,1,8);
ZLG7290_Download(2,1,1,8);
ZLG7290_Download(3,1,1,8);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -