HT1621b芯片驱动程序

CS : 片选输入接一上拉电阻当/CS 为高电平读写HT1621的数据和命令无效串行接口电路复位当/CS 为低电平和作为输入时读写HT1621的数据和命令有效.

WR : WRITE脉冲输入接一上拉电阻在/WR 信号的上升沿 DATA线上的数据写到HT1621.

DATA : 外接上拉电阻的串行数据输入/输出.

/* Includes ------------------------------------------------------------------*/
#include "drv_ht1621.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define HT1621_CS_PORT            GPIOC
#define HT1621_CS_PIN             GPIO_PIN_7
#define Ht1621CsHigh              (HT1621_CS_PORT->ODR |= (u8)(HT1621_CS_PIN))
#define Ht1621CsLow               (HT1621_CS_PORT->ODR &= (u8)(~HT1621_CS_PIN))#define HT1621_WR_PORT            GPIOC
#define HT1621_WR_PIN             GPIO_PIN_6
#define Ht1621WrHigh              (HT1621_WR_PORT->ODR |= (u8)(HT1621_WR_PIN))
#define Ht1621WrLow               (HT1621_WR_PORT->ODR &= (u8)(~HT1621_WR_PIN))#define HT1621_DATA_PORT          GPIOC
#define HT1621_DATA_PIN           GPIO_PIN_5
#define Ht1621DataHigh            (HT1621_DATA_PORT->ODR |= (u8)(HT1621_DATA_PIN))
#define Ht1621DataLow             (HT1621_DATA_PORT->ODR &= (u8)(~HT1621_DATA_PIN))#define LedPwmDuty(A)             TIM2->CCR2H = (u8)((A)>> 8);TIM2->CCR2L = (u8)(A);
#define LedOn()                   TIM2->CCER1 |= TIM2_CCER1_CC2E
#define LedOff()                  TIM2->CCER1 &= (~TIM2_CCER1_CC2E)  #define  COMMAND_CODE                0x80  //命令码
#define  WRITE_DATA_CODE             0xa0  //写命令
#define  READ_DATA_CODE              0xc0  //读命令
#define  DISPLAY_BEGIN_ADDR          (0X0F << 2) //显示起始地址
#define  SYS_EN                      0x02
#define  RC_256K                     0x30
#define  BIAS_13                     0x52
#define  TONE_ON                     0x12  //打开声音输出
#define  TONE_OFF                    0x10
#define  TONE_2K                     0xc0
#define  TONE_4K                     0x80
#define  LCD_ON                      0x06/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Public functions ----------------------------------------------------------*//*******************************************************************************
函数:LCD背光PWM
参数:
返回值:无
*******************************************************************************/
void TIM2_Configuration(void)
{TIM2_DeInit();TIM2_TimeBaseInit(TIM2_PRESCALER_1,  640);                                                      //25khzTIM2_OC2Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, 500, TIM2_OCPOLARITY_LOW);TIM2_Cmd(ENABLE);
}/*******************************************************************************
函数:延时函数 ms
参数:
返回值:无
*******************************************************************************/
void Ht1621_Delay(uint8_t ms)
{unsigned short jj;for (jj = 1; jj <= ms; jj++){nop();}
}/*******************************************************************************
函数:HT1621初始化
参数:
返回值:无
*******************************************************************************/
void Ht1621_Init()
{  GPIO_Init(HT1621_CS_PORT, HT1621_CS_PIN, GPIO_MODE_OUT_PP_HIGH_FAST);         //初始化端口GPIO_Init(HT1621_WR_PORT, HT1621_WR_PIN, GPIO_MODE_OUT_PP_HIGH_FAST);GPIO_Init(HT1621_DATA_PORT, HT1621_DATA_PIN, GPIO_MODE_OUT_PP_HIGH_FAST);Ht1621_WriteCommand(SYS_EN);   //SYS_EN 打开系统振荡器Ht1621_Delay(5);Ht1621_WriteCommand(RC_256K);   //RC_256K 系统时钟源 片内RC振荡器Ht1621_Delay(5);Ht1621_WriteCommand(BIAS_13);  //BIAS13 4个公共口 Ht1621_Delay(5);Ht1621_WriteCommand(TONE_4K);  //TONE_2KC0  TONE_4K80 Ht1621_Delay(5);Ht1621_WriteCommand(LCD_ON);   //LCD_ON 打开LCD偏压发生器Ht1621_Delay(5);
}/*******************************************************************************
函数:HT1621 写一字节数据
参数: 写数据的为位数 和 数据
返回值:无
*******************************************************************************/
void Ht1621_WriteNBit(uint8_t wData , uint8_t BitCnt)
{uint8_t i;for(i=0; i< BitCnt; i++){Ht1621WrLow;Ht1621_Delay(2);if((wData << i) & 0x80){Ht1621DataHigh;}else {Ht1621DataLow;}Ht1621_Delay(2);Ht1621WrHigh;Ht1621_Delay(2);}
}/*******************************************************************************
函数:HT1621 写数据操作(连续写  3位写操作命令+6位地址+ ...数据)
参数: 写数据指针
返回值:无
*******************************************************************************/
void Ht1621_WriteData(const uint8_t *wDataBuf)
{uint8_t i;Ht1621CsLow;Ht1621_Delay(2);Ht1621_WriteNBit(WRITE_DATA_CODE, 3);Ht1621_WriteNBit(DISPLAY_BEGIN_ADDR, 6);            //TODO: 20140820  hzg  注意要对应原理图上的起始地址for(i=0; i<10; i++){Ht1621_WriteNBit(wDataBuf[i], 8);  }Ht1621CsHigh;Ht1621_Delay(2);
}/*******************************************************************************
函数:HT1621 写命令操作(12位命令数据)
参数: 命令值
返回值:无
*******************************************************************************/
void Ht1621_WriteCommand(uint8_t Cmd)
{Ht1621CsLow;Ht1621_Delay(2);Ht1621_WriteNBit(COMMAND_CODE, 4);       Ht1621_WriteNBit(Cmd, 8);Ht1621CsHigh;Ht1621_Delay(2);
}/*******************************************************************************
函数:HT1621 蜂鸣器输出控制(12位命令数据)
参数: 开关标志
返回值:无
*******************************************************************************/
void Ht1621_BuzzerControl(uint8_t RunFlag)
{(RunFlag == 0)?Ht1621_WriteCommand(TONE_OFF):Ht1621_WriteCommand(TONE_ON);
}

LCD显示--HT1621b芯片驱动程序相关推荐

  1. LCD显示--Ht1621b芯片显示屏驱动

    Ht1621b芯片显示屏驱动 关于HT1621b芯片的详细信息可以参考数据手册上的内容:百度文库HT1621b中文资料 CS : 片选输入接一上拉电阻当/CS 为高电平读写HT1621的数据和命令无效 ...

  2. 龙芯1B:LCD显示例程

    文章目录 前言 一.LCD 二.触摸屏芯片XPT2046 1.XPT2046 2.函数 3.实用程序 三.示例程序 总结 前言 一个系统最缺不了人机交互的界面,就像电脑显示器一样,如果没有显示器,电脑 ...

  3. ds18b20温度传感器 lcd C语言,基于AVR单片机的18B20温度传感器及LCD显示的C语言程序设计...

    ***************************************************/ #include #include #define uchar unsigned char # ...

  4. 产业链人士:LCD显示驱动芯片价格有望趋于稳定

    8月18日消息,据国外媒体报道,在汽车.消费电子等多领域芯片供不应求,芯片代工商产能普遍紧张的情况下,LCD显示驱动芯片的供应也受到了影响. 今年3月份,产业链方面的人士就透露,LCD面板需求强劲,拉 ...

  5. TFT LCD显示原理详解

    <什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一):                 ...

  6. LCD高抗干扰液晶段码屏显示驱动芯片:VK2C21A/B/BA/C/D 大量应用于音箱/音响面板LCD显示驱动

    产品品牌:VINKA/永嘉微/永嘉微电 产品型号:VK2C21A/B/C/D/VK2C21BA 封装形式:SOP28/24/20.NSOP16.SSOP24(新封装) 概述: VK2C21是一个点阵式 ...

  7. Arduino应用开发——LCD显示GIF动图

    Arduino应用开发--LCD显示GIF动图 目录 Arduino应用开发--LCD显示GIF动图 前言 1 硬件介绍 1.1 硬件配置 1.2 硬件连接 2 开发环境搭建 2.1 安装开发板 2. ...

  8. AT32驱动TFT LCD显示示例

    1.1 案例 TFT LCD显示 1.1.1 简介 TFT LCD液晶显示屏是薄膜晶体管型液晶显示屏,TFT液晶每个像素都可以单独控制,因而每个节点都相对独立,并可以连续控制,这不仅提高了显示的反应速 ...

  9. I.MX6ULL之LCD显示

    I.MX6ULL之LCD显示 代码放在git仓库,有需要的可以自行下载:Gitee LCD的操作原理: 在Linux系统中通过Framebuffer驱动程序来控制LCD.我们只需要知道怎么获取LCD的 ...

最新文章

  1. 【组合数学】指数生成函数 ( 证明指数生成函数求解多重集排列 )
  2. 【搜索引擎】Smartsys部署ES的准备工作
  3. 终极解决方式——找到占用U盘的程序
  4. 看了这一篇,就不用看别的——Java中Object关于锁的的三个方法:wait,notify,notifyAll的作用
  5. linux uboot nfs启动,uboot中利用TFTP和NFS加载镜像到ram运行
  6. SVM学习(续)核函数 松弛变量和惩罚因子
  7. P4643-[国家集训队]阿狸和桃子的游戏【结论】
  8. 计算机单词修改是否正确,计算机组装必懂的53个单词及装机步骤51条.doc
  9. java 项目 人力资源项目,基于jsp的人力资源系统-JavaEE实现人力资源系统 - java项目源码...
  10. oracle 分页_80分页查询,不止写法
  11. 设计模式---状态变化模式之备忘录模式(Memento)
  12. opencv python 实现灰度图像和彩色图像直方图全局均衡化和自适应均衡化
  13. Centos7 ifconfig这个命令没找到的解决方法
  14. 20张图深度详解MAC地址表、ARP表、路由表
  15. 计算机视觉(三)线性分类器
  16. JEECMS V8.1常用标签举例
  17. 技术债务的高息信用卡:深入了解那些知名的端到端机器学习平台
  18. OpenCvSharp函数:Dilate膨胀、GetStructuringElement获取形态操作的结构元素、Erode腐蚀
  19. python格式化输出(二)--字符串的格式化输出
  20. iPhone无法连接Wi-Fi解决方法

热门文章

  1. fir fpga 不同截止频率_用MATLAB设计FIR滤波器的方法
  2. 丐中丐双卡个人微型工作站,二手Tesla M40 12G水冷显卡改造上机心得
  3. 初学者应该怎么快速的学习Java编程?
  4. 嵌入式学习之Linux驱动篇-迅为视频更新了
  5. 模式识别和机器学习、数据挖掘的区别与联系
  6. 为什么玩无线电的人那么少
  7. IIC实例的SDA_In和SDA_Out的代码理解GPIOB-MODER=~(3(9*2));GPIOB-MODER|=09*2;
  8. 解决MySQL导入Excel无法打开Excel的问题
  9. 用java分析班级成绩
  10. 世界首富贝索斯正式签定离婚协议 前妻分到383亿美元股票