Midas LCD SSD1803A控制器初始化代码实现
"Midas公司的LCD模块MCCOG42005A6W-BNMLWI使用SSD1803A控制器的初始化代码。该代码涉及了I²C通信、LCD显示设置以及按键定义等关键部分。" 在嵌入式系统中,初始化SSD1803A控制器是配置LCD显示屏的重要步骤。SSD1803A是一款常用的LCD控制器,用于驱动420x5行的点阵字符型液晶显示器。以下是对标题和描述中涉及知识点的详细解释: 1. **SSD1803A控制器**: SSD1803A是一款8位并行接口的LCD控制器,支持2行或4行显示,可显示5x7点阵的字符。它具有内置振荡器,可以通过设置控制字来调节显示模式、亮度和对比度。 2. **初始化过程**: - **Function Set** (0x31): 设置数据线宽度为8位(DL=1),显示器行数为2行(N=1),并确定内部寄存器选择(IS=1,RE=0)。 - **Internal Divider/OSC Frequency** (0x18+0x03): 设置内部分频器,选择振荡器频率为540kHz,并设置基址分频比为1/4。 - **Entry Mode Set** (0x06): 设定数据地址递增方式(I/D=1),表示每次写操作后地址自动加1。 - **Display ON/OFF Control** (0x0C): 开启显示(D=1),不显示光标(C=1,B=0)。 - **Contrast Setting**: 虽然在给定的代码中注释掉了,但通常会发送一个命令来设定对比度,以适应不同环境下的清晰度需求。 3. **I²C通信**: SDA和SCL引脚(P1^1和P1^0)被用来进行I²C通信,这是一种多主设备总线协议,用于连接低速外围设备。在这个例子中,可能用于与SSD1803A控制器进行通信。 4. **按键定义**: P2口的某些引脚(如P2^0, P2^1, P2^2)被定义为按键输入,分别对应Add键、Sub键和Run键,这对于用户交互和系统控制至关重要。 5. **数据数组**: - `codea` 和 `codeb` 数组可能用于设置正负偏置,例如设置显示的正负温度值。 - `Init` 数组包含了初始化所需的命令序列,按照顺序发送到SSD1803A控制器。 6. **SetVLCD函数**: 未在给出的代码中定义,但根据上下文,这个函数很可能是用来设置LCD的电压等级(VLCD),从而调整显示的亮度。 总结来说,这段代码提供了SSD1803A控制器的初始化流程,包括设置显示参数、通信接口配置以及用户交互界面的初步定义。在实际应用中,开发者可能需要根据具体的硬件平台和应用需求对这些参数进行微调。
#include <reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/****************************************************************************************/
// Pin Definition
/****************************************************************************************/
sbit SDA = P1^1;
sbit SCL = P1^0;
sbit RST = P1^2;
sbit Add_key = P2^0;
sbit Sub_key = P2^1;
sbit Run_key = P2^2;
#define Positive 7
#define Natural 24
#define Negative 7
void SetVLCD(void) ;
unsigned char VLCD = Natural;
unsigned char Rab = 0x05;
unsigned char code a[]= //+02
{
};
unsigned char code b[]= //-02
{
0x2d,0x30,0x32,0x00
};
unsigned char code Init[]={
(0x31),//function set:(IS=1 ,RE=0) DL=1,8 bit ;N=1,2-line or 4-line
(0x18+0x03),//internal divider/OSC frequency:011,540kHZ;BS0 = 1,1/4 bais
/*
(0x7f),// contrast set
(0x5f),// prower Icon control/contrast set
(0x65), //follower control */
(0x06),//Entry Mode Set I/D=1,DDRAM address is increased by 1
(0x0C),//Display ON/OFF Control: D=1->entire display is turen on,C=1->cursor is turned on,B=0->cursor blink is off.
(0x02),//Return Home
(0x32),//function set:(REV=0 ,RE=1) DL=1,8 bit ;N=0,1-line or 3-line
(0x06),//COM1-->COM8,SEG100-->SEG1
(0x10),//BS1=0
(0x08),//5-dot,1-line
(0x01),//clear display
};
剩余12页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 达梦数据库DM8手册大全:安装、管理与优化指南
- Python Matplotlib库文件发布:适用于macOS的最新版本
- QPixmap小demo教程:图片处理功能实现
- YOLOv8与深度学习在玉米叶病识别中的应用笔记
- 扫码购物商城小程序源码设计与应用
- 划词小窗搜索插件:个性化搜索引擎与快速启动
- C#语言结合OpenVINO实现YOLO模型部署及同步推理
- AutoTorch最新包文件下载指南
- 小程序源码‘有调’功能实现与设计课程作品解析
- Redis 7.2.3离线安装包快速指南
- AutoTorch-0.0.2b版本安装教程与文件概述
- 蚁群算法在MATLAB上的实现与应用
- Quicker Connector: 浏览器自动化插件升级指南
- 京东白条小程序源码解析与实践
- JAVA公交搜索系统:前端到后端的完整解决方案
- C语言实现50行代码爱心电子相册教程