📄 zlg7289.h
字号:
#ifndef ZLG7289_H_
#define ZLG7289_H_
#include <intrins.h>
#include <reg52.h>
#ifndef uchar
#define uchar unsigned char
#endif
//申明一个全局变量,用于延时
//该变量在调用函数zlg7289_init()时被初始化
extern char zlg7289_delay_t;
/*
*宏定义:zlg7289_short_delay()
*功能:短延时
*说明:延时(zlg7289_delay_t*2+2)个机器周期
*/
#define zlg7289_short_delay() \
{\
uchar t = zlg7289_delay_t;\
while ( --t != 0 );\
}
/*
*宏定义:zlg7289_long_delay()
*功能:长延时
*说明:延时(zlg7289_delay_t*12+8)个机器周期
*/
#define zlg7289_long_delay()\
{\
uchar t = zlg7289_delay_t*6;\
while ( --t != 0 );\
}
//三线SPI
sbit zlg_dio=P1^7; //双向数据线
sbit zlg_clk=P1^6; //时钟信号
sbit zlg_cs=P1^5; //选通信号
sbit zlg_int=P3^2;
/*
*函数名: zlg7289_spi_init
*功能:初始化spi总线
*参数:
* t:延时时间
*说明:
* # t的取值可以参照以下公式:t>=5*f1/f2
* 其中f1表示C51的晶振频率,f2表示ZLG7289 的晶振频率
*/
void zlg7289_spi_init(uchar t) ;
/*
*函数名: zlg7289_write
*功能: 向总线写入一个字节
*参数:
* d:要写入的一个字节
*/
void zlg7289_write(uchar d);
/*
*函数名: zlg7289_read
*功能: 从总线读入一个字节
*返回:
* 返回读取的一个字节
*/
uchar zlg7289_read();
/*
*函数名: zlg7289_readkey
*功能: 读取键值
*返回:
* 返回读取的键值
*/
uchar zlg7289_readkey();
/*
*函数:zlg7289_cmd()
*功能:执行zlg7289不带数据指令
*参数:
*cmd:命令字
*/
void zlg7289_cmd(uchar cmd) ;
/*
*函数:zlg7289_cmd_with_data()
*功能:执行zlg7289 带数据指令
*参数:
*cmd:命令字
*d:数据
*/
void zlg7289_cmd_with_data(uchar cmd, uchar d) ;
/*
*函数:zlg_Download()
*功能:下载数据
*参数:
*mod:
* mod=0下载数据且按方式0 译码
* mod=1下载数据且按方式0 译码
* mod=2下载数据但不译码
*index:
* 数码管编号(横坐标),0~7
*dp:
* dp=0小数点不亮 ,dp=1小数点亮
*d:
* 要显示的数据
*说明:
* 方式0译码:
* 命令1 0 0 0 0 a2 a1 a0数据dp x x x d3 d2 d1 d0 显示0-9 - E H L P 空
* 方式1译码:
* 命令1 1 0 0 1 a2 a1 a0数据dp x x x d3 d2 d1 d0 显示0-F十六进制
* 方式2译码:
* 命令1 0 0 1 0 a2 a1 a0数据dp a b c d e f g 将dp-g中位值为1的点亮
* a2 a1 a0为数码管编号,d3 d2 d1 d0为数据
*/
void zlg_download(uchar mod,uchar index , bit dp,uchar d);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -