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

📄 zlg7290b.c

📁 MSP430 DS1302程序库
💻 C
字号:
/*
           ZLG7290B.c
           
           数码管显示与键盘管理芯片ZLG7290 的MSP430 驱动程序C 文件
           
      说明:该库函数使用了IIC.c的库函数,故必须将IIC.C包含在工程中
           在使用该库函数前,要在该头文件上,根据硬件实际电路进行端口修改
           使用时,只需将ZLG7290B.C包含在工程中,在使用库函数的地方,包含头文件
           ZLG7290B.H就行了
           使用时,至少要调用一次ZLG7290_Init()初始化函数
           该库函数不包含中断函数,用户需自行在必要的模块添加中断函数    

           Copyright (c) 2008,323实验室 罗佳芳
           
           All rights reserved.

*/

#include "IIC.h"
#include "ZLG7290B.h"

/*
*函数: ZLG7290_Init()
*功能: 对ZLG7290进行初始化
*说明: 在使用键盘和LED时,必须调用这个初始化程序
*/
void ZLG7290_Init(void)
{
	ZLG7290_intSEL &= ~ZLG7290_pinINT;  //将中端位设置为外围功能
	ZLG7290_intIFG &=~ZLG7290_pinINT;  //清除中断标志
	ZLG7290_intIE |= ZLG7290_pinINT;   //使中断使能
	ZLG7290_intIES |=ZLG7290_pinINT;   //下降沿触发
	
	
	
	_EINT();   //开总中断
	
	}

/*
函数:ZLG7290_WriteReg()
功能:向ZLG7290 的某个内部寄存器写入数据
参数:
      RegAddr:ZLG7290 的内部寄存器地址
      dat:要写入的数据
返回:
      0:正常
      1:访问ZLG7290 时出现异常
*/
unsigned char ZLG7290_WriteReg(unsigned char RegAddr,unsigned char dat)
{
	
        unsigned char b;
        b = IIC(&dat,1,RegAddr,ZLG7290_IIC_WRITE);     //调用IIC库函数,输出数据
        return b;
}

/*
函数:ZLG7290_ReadReg()
功能:从ZLG7290 的某个内部寄存器读出数据
参数:
      RegAddr:ZLG7290 的内部寄存器地址
      dat:保存读出的数据
返回:
      0:正常
      1:访问ZLG7290 时出现异常
说明:读出的值会保存在dat指针所指的地址,只读一个字节      
*/
unsigned char ZLG7290_ReadReg(unsigned char RegAddr,unsigned char *dat)
{
        unsigned char b;
        b = IIC(dat,1,RegAddr,ZLG7290_IIC_READ);
        return b;
}

/*
函数:ZLG7290_cmd()
功能:向ZLG7290 发送控制命令
参数:
      cmd0:写入CmdBuf0 寄存器的命令字(第1 字节)
      cmd1:写入CmdBuf1 寄存器的命令字(第2 字节)
返回:
      0:正常
      1:访问ZLG7290 时出现异常
*/
unsigned char ZLG7290_cmd(char cmd0, char cmd1)
{
        unsigned char b;
        unsigned char buf[2];
        buf[0] = cmd0;
        buf[1] = cmd1;
        b = IIC(buf,2,ZLG7290_CmdBuf,ZLG7290_IIC_WRITE);
        return b;
}

/*
函数:ZLG7290_SegOnOff()
功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段
参数:
      seg:取值0~63,表示数码管(或LED)的段号
      b:0 表示熄灭,1 表示点亮
返回:
      0:正常
      1:访问ZLG7290 时出现异常
说明:
      段寻址的命令字格式:
      	0 0 0 0 0 0 0 1  on 0 S5 S4 S3 S2 S1 S0
      在每一位数码管中,段号顺序按照“a,b,c,d,e,f,g,dp”进行
*/
unsigned char ZLG7290_SegOnOff(char seg, unsigned char b)
{
        char cmd;
        cmd = seg & 0x3F;   //D0~D5是段位
        if ( b ) cmd |= 0x80;  //最高位的0表示关,1表示亮
        return ZLG7290_cmd(0x01,cmd);  //段寻址的的命令字的第一个字节是0x01
}

/*
函数:ZLG7290_Download()
功能:下载数据并译码
参数:
      addr:取值0~7,显示缓存DpRam0~DpRam7 的编号
      dp:是否点亮该位的小数点,0-熄灭,1-点亮
      flash:控制该位是否闪烁,0-不闪烁,1-闪烁
      dat:取值0~31,表示要显示的数据
返回:
      0:正常
      1:访问ZLG7290 时出现异常
说明:
       指令格式:
         0 1 1 0 A3 A2 A1 A0   dp flash 0 d4 d3 d2 d1 d0
      显示数据具体的译码方式请参见ZLG7290 的数据手册
*/
unsigned char ZLG7290_Download(char addr, unsigned char dp, unsigned char flash, char dat)
{
        char cmd0;
        char cmd1;
        cmd0 = addr & 0x0F;
        cmd0 |= 0x60;
        cmd1 = dat & 0x1F;
        if ( dp ) cmd1 |= 0x80;
        if ( flash ) cmd1 |= 0x40;
        return ZLG7290_cmd(cmd0,cmd1);
}

⌨️ 快捷键说明

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