LCD显示--Ht1621b芯片显示屏驱动
Ht1621b芯片显示屏驱动
关于HT1621b芯片的详细信息可以参考数据手册上的内容:百度文库HT1621b中文资料
CS : 片选输入接一上拉电阻当/CS 为高电平读写HT1621的数据和命令无效串行接口电路复位当/CS 为低电平和作为输入时读写HT1621的数据和命令有效.
WR : WRITE脉冲输入接一上拉电阻在/WR 信号的上升沿 DATA线上的数据写到HT1621.
DATA : 外接上拉电阻的串行数据输入/输出.
以下为芯片驱动程序(STM8单片机):
#include "stm8s.h"
#include "global.h"/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
//显示芯片HT1621引脚定义
#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))//LCD屏背光PWM设定
#define BLACK_LIGHT_PORT GPIOD
#define BLACK_LIGHT_PIN GPIO_PIN_3
#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 variables ---------------------------------------------------------*/
void Ht1621_WriteCommand(uint8_t Cmd);
void Ht1621_WriteNBit(uint8_t BitCnt, uint8_t wData);
/* Public functions ----------------------------------------------------------*/
void Ht1621_Init(void);
void Ht1621_WriteData(const uint8_t *wDataBuf);
void Ht1621_BuzzerControl(uint8_t RunFlag);/*******************************************************************************
函数:延时函数 ms
参数:
返回值:无
*******************************************************************************/
void Ht1621_Delay(uint8_t ms)
{unsigned short jj;for (jj = 1; jj <= ms; jj++){nop();}
}/*******************************************************************************
函数:HT1621初始化
参数:
返回值:无
*******************************************************************************/
void Ht1621_Init(void)
{ 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<12; 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芯片显示屏驱动相关推荐
- LCD显示--HT1621b芯片驱动程序
HT1621b芯片驱动程序 CS : 片选输入接一上拉电阻当/CS 为高电平读写HT1621的数据和命令无效串行接口电路复位当/CS 为低电平和作为输入时读写HT1621的数据和命令有效. WR : ...
- WINCE5.0+S3C2443系统每隔几分钟会自动关闭LCD显示
这几天在调试WINCE5.0+S3C2443系统的时候,发现大概每隔6分钟的时候,系统就会自动关闭LCD屏的显示,这时候如果去点击触摸屏就会恢复显示.刚开始我还以为是系统进入了sleep状态了,发现在 ...
- LCD高抗干扰液晶段码屏显示驱动芯片:VK2C21A/B/BA/C/D 大量应用于音箱/音响面板LCD显示驱动
产品品牌:VINKA/永嘉微/永嘉微电 产品型号:VK2C21A/B/C/D/VK2C21BA 封装形式:SOP28/24/20.NSOP16.SSOP24(新封装) 概述: VK2C21是一个点阵式 ...
- LED驱动控制器/数码管显示LED驱动芯片VK1640B,8段*12位,上电复位,多用于各种小型LED数码管显示屏驱动
品牌:永嘉微电/VINKA 型号:VK1640B 封装:SSOP24 年份:新年份 概述 : VK1640B 是一款 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口.数据锁存 ...
- AT32驱动TFT LCD显示示例
1.1 案例 TFT LCD显示 1.1.1 简介 TFT LCD液晶显示屏是薄膜晶体管型液晶显示屏,TFT液晶每个像素都可以单独控制,因而每个节点都相对独立,并可以连续控制,这不仅提高了显示的反应速 ...
- USB摄像头驱动--LCD显示摄像头图像(附Makefile分析)
对于一个应用程序,最重要的是明白目的是什么:将摄像头的数据解析出来,按一帧一个图片的方式将数据传到LCD的Framebuffer中去(如果LCD没有自动将Framebuffer中的数据刷到LCD上还需 ...
- FPGA RGB565的LCD显示屏驱动(Verilog)
文章目录 1屏幕 2行场扫描时序 3分析 4代码 4-1产生9M驱动时钟 4-2驱动部分 4-3显示内容部分 4-3顶层 5结果 5-1 5-2 6Testbench 1屏幕 使用像素:480*272 ...
- Air系列模块驱动lcd显示
特别说明:只适用于有spi接口的模块,推荐使用Air202和Air800 1.硬件连线:选择标准SPI协议,对应的LCD与模块之间连线为: Air模块 LCD GND------- 地(GND) SP ...
- rk3328 rk3399使用fbtft驱动SPI LCD显示
rk3328-jd4核心板 LCD lli9341驱动芯片 1.修改编译配置文件,将fbtft编进内核 参考:https://blog.csdn.net/jklinux/article/detail ...
最新文章
- JAVA构造方法,继承关系和SUPER关键字
- python中保留小数_python保留小数位的三种实现方法
- iscroll.js 触屏手机web-kit浏览器滚动效果代码库
- Java黑皮书课后题第5章:**5.17(显示金字塔)编写程序,提示用户输入一个在1到15之间的整数,然后显示一个金字塔形状的图案
- .NET Core开发日志——RequestDelegate
- Xctf练习sql注入--supersqli
- MATLAB中的corrcoef函数求两个向量的相关系数。
- PAT——1054. 求平均值
- 计算机usb速度设置,怎样提升USB2.0的速度 注册列表修改法【详解】
- 随身助手271个可用api接口网站php源码(随身助手API)
- 基于微信小程序点餐系统的设计与实现(含word论文)
- python写邮箱验证工具_python应用POP3、IMAP、SMTP 协议,获取邮箱验证码
- 丁磊:那时候我们除了会写软件 什么也不会做
- 视频录制——SurfaceView + MediaRecorder 实现视频录制功能
- 一款适用甲方企业的外网资产周期性扫描监控系统
- python macd底背离_MACD的“底背离”狠不狠?回测告诉你结果
- 蓝桥杯第七届省赛 模拟风扇控制系统 by YYC
- 阴阳师2017 7服务器维护,《阴阳师》手游4月17日维护更新公告
- led伏安特性实验误差分析_1实验数据的误差分析与处理.doc
- March 7th Wednesday (三月 七日 水曜日)
热门文章
- 阿里P9赞不绝口的公众号
- 计算机房防凝露保温材料,你知道机房墙面为什么要做保温吗?那该怎么做?
- 2021年全球汽车铝合金轮毂收入大约14400百万美元,预计2028年达到16880百万美元
- 为什么说Context是Go中的“吸血鬼” | Gopher Daily (2020.10.26) ʕ◔ϖ◔ʔ
- 用 Python 将 html 转为 pdf、word
- COPC®认证—Callnovo顾客体验运营优秀实践7.0培训圆满结业
- 信号逻辑电平标准详解
- 手机中的SIM卡网络命令详解 - USSD代码
- 【借用前沿技术搞营销】IoTAI之上,拓展营销新边界
- 竞价教程:新手如何快速寻找暴利产品