打印
[复制链接]
1673|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shangjin66733|  楼主 | 2011-9-30 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//==============================================================
// ZLG7289U.H
// 数码管显示与键盘管理芯片 ZLG7289 的NUC1XX驱动程序头文件
// 2011.09.18
//==============================================================
#ifndef _ZLG7289_H_
#define _ZLG7289_H_
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
//定义I/O 接口
#define CLR_CS     DrvGPIO_ClrBit(E_GPA, 5)            
#define SET_CS     DrvGPIO_SetBit(E_GPA, 5)            
#define OUT_CS     DrvGPIO_Open(E_GPA, 5, E_IO_OUTPUT)   
#define CLR_CLK     DrvGPIO_ClrBit(E_GPA, 6)            
#define SET_CLK     DrvGPIO_SetBit(E_GPA, 6)            
#define OUT_CLK     DrvGPIO_Open(E_GPA, 6, E_IO_OUTPUT)  
#define CLR_DIO     DrvGPIO_ClrBit(E_GPA, 4)         
#define SET_DIO     DrvGPIO_SetBit(E_GPA, 4)            
#define QUA_DIO     DrvGPIO_Open(E_GPA, 4, E_IO_QUASI)   
#define GETBIT_DIO  DrvGPIO_GetBit(E_GPA, 4)              
#define INPUT_DIO   DrvGPIO_Open(E_GPA, 4, E_IO_INPUT)   
#define CLR_KRY     DrvGPIO_ClrBit(E_GPA, 3)            
#define SET_KEY     DrvGPIO_SetBit(E_GPA, 3)            
#define INPUT_KEY   DrvGPIO_Open(E_GPA, 3, E_IO_INPUT)   
#define GETBIT_KEY  DrvGPIO_GetBit(E_GPA, 3)
#define QUA_KEY    DrvGPIO_Open(E_GPA, 3, E_IO_QUASI)
#define FMQ_OUT     DrvGPIO_Open(E_GPB, 2, E_IO_OUTPUT);
#define FMQ_SET     DrvGPIO_SetBit(E_GPB, 2);
#define FMQ_CLR     DrvGPIO_ClrBit(E_GPB, 2);
//执行ZLG7289 纯指令
extern void ZLG7289_cmd(uint8_t cmd);
//执行ZLG7289 带数据指令
extern void ZLG7289_cmd_dat(uint8_t cmd, uint8_t dat);
//以下是ZLG7289 的用户指令集
//复位(清除)指令
#define ZLG7289_Reset() ZLG7289_cmd(0xA4)
//测试指令
#define ZLG7289_Test() ZLG7289_cmd(0xBF)
//左移指令
#define ZLG7289_SHL() ZLG7289_cmd(0xA0)
//右移指令
#define ZLG7289_SHR() ZLG7289_cmd(0xA1)
//循环左移指令
#define ZLG7289_ROL() ZLG7289_cmd(0xA2)
//循环右移指令
#define ZLG7289_ROR() ZLG7289_cmd(0xA3)
//下载数据
extern void ZLG7289_Download(uint8_t mod, uint8_t x, uint8_t dp, uint8_t dat);
//闪烁控制
// x 的8 个位分别对应数码管的8 个位,0-闪烁,1-不闪烁
#define ZLG7289_Flash(x) ZLG7289_cmd_dat(0x88,(x))
//消隐控制
// x 的8 个位分别对应数码管的8 个位,0-消隐,1-显示
#define ZLG7289_Hide(x) ZLG7289_cmd_dat(0x98,(x))
//段点亮指令
//seg=0~63,8 只数码管被看成64 只独立的LED
//每只数码管中各段的点亮顺序按照“g,f,e,d,c,b,a,dp”进行
#define ZLG7289_SegOn(seg) ZLG7289_cmd_dat(0xE0,(seg))
//段关闭指令
//seg=0~63,8 只数码管被看成64 只独立的LED
//每只数码管中各段的熄灭顺序按照“g,f,e,d,c,b,a,dp”进行
#define ZLG7289_SegOff(seg) ZLG7289_cmd_dat(0xC0,(seg))
//执行ZLG7289 键盘命令
extern char ZLG7289_Key();
//ZLG7289初始化
extern void ZLG7289_Init(void);
#endif //_ZLG7289_H_

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

粉丝