TM1721芯片驱动
带LCD/LED显示屏驱动以及按键扫描功能:
STB:在下降沿初始化串行接口,随后等待接收指令。STB 为低后的第一个字节作为指令。当处理指令时,当前其它处理被终止。STB 为高时,CLK、DIO 被忽略 。在时钟上升沿输入/输出串行数据,从低位开始。输出为N管开漏输出,需外加上拉电阻。
CLK:在时钟上升沿输入/输出串行数据。
DIO:在时钟上升沿输入/输出串行数据,从低位开始。输出为N管开漏输出,需外加上拉电阻 。
#include "global.h"
#include "drv_tm1721.h"
#include "drv_key.h"
/*-------------------------------------------*/
/*驱动包含函数: */
/*-------------------------------------------*/
unsigned char ret_var;
#define PWM2_VALUE 0x3f
#define PWM3_VALUE 0x1f
#define MODE_SET 0x30 //显示模式//0011 0000 SW2~3 PWM2~3 KEY0~3
#define PWM_WRITE 0x45 //写PWM寄存器 控制背光 固定地址模式
#define DISP_WRITE 0x44 //0100 0100 显示寄存器数据地址 固定地址
#define KEY_READ 0x46 //读键扫数据 0100 0010 固定地址
DISPLAT_DATA_U DisplayData;
/******************************************
函数:初始化端口
参数:
返回值:无
******************************************/
void TM1721_PORT_INIT(void)
{
GPIO_Init(PANEL_STB_GPIO_PORT, PANEL_STB_GPIO_PIN, GPIO_MODE_OUT_PP_HIGH_SLOW);
GPIO_Init(PANEL_CLK_GPIO_PORT, PANEL_CLK_GPIO_PIN, GPIO_MODE_OUT_PP_HIGH_SLOW);
PANEL_DIO_OUT_MODE;
}
/******************************************
函数:延时函数
参数:
返回值:无
******************************************/
void TM1721_Delay_ms(void)
{
//当将=1的时候,延时1ms
unsigned short jj;
for (jj = 1; jj <= 2; jj++)
{