➤ 液晶模块


在淘宝购买到 液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏 用于之后人工神经网络模式识别图片采集使用。

▲ 液晶外形

1.接口定义

▲ 外部引脚定义

▲ 不同命令模式对应的引线

▲ 模块后面设置接口串并对应的电阻

▲ ST7565R串口与并口对应情况

▲ 在RESET管脚增加一个10kΩ的上拉电阻

2.驱动器ST7565R

可以参照网络上对应的 ST7565R开发程序

02实验电路板1


1.电路板设计制作

使用ADuC845-3作为实验控制器。基于ADuC845来测试ST7565R液晶显示器的功能。

▲ 实验电路SCH

※ 错误: 在开始的时候将CS,ID设置错误了。将其颠倒过来即可。

▲ 实验电路板PCB

2.初步测试2

根据 创界uVision下的ADuC845的工程文件 中描述的方式对于开发板建立测试工程文件并进行程序下载。

C51\ADuC845\Test\2020\TestLCD\TestLCD.uvproj

3.制作LCD外部接口

使用串口对外接口的定义:

PIN14 PIN12 PIN11 PIN10 PIN9 PIN8 PIN7
DI CS LEDA VSS VDD SI SCK

▲ LCD对外引脚

▲ 连线的关系

▲ LCD外部引脚的设计

★ 注意:
使用电阻将LCD的reset管脚连接到VCC.这个电阻可以使用R14处焊接10kΩ电阻。

▲ 使用10k欧姆将RESET连接到VCC

03液晶底层程序


1.底层协议

根据 ST7565R数据手册 描述,ST7565R的SPI接口协议协议为:

▲ ST7565 SPI接口协议

▲ ST7565所有命令

2.主要子程序

(1) 延迟子程序

  • ST7565Nop(unsigned int nCommand);
nCount = 446;
while(1) {ST7565Nop(nCount);ST7565_SCK = 1;ST7565Nop(nCount);ST7565_SCK = 0;}
Command 25 50 100 250 500 1000 2000
Frequency 8642.6 4390.9 2213.2 889.7 445.5 222.9 111.5

▲ 设置Count与延迟之间的关系

使用最后一个数值求得Count与延迟之间的关系:
Rc/t=DelayCount=2.2422us/countR_{c/t} = {{Delay} \over {Count}} = 2.2422\,\,us/countRc/t​=CountDelay​=2.2422us/count

所以,延迟1ms(1000us)需要设置Count为:
Count=1000Rc/d=10002.2422=445.99Count = {{1000} \over {R_{c/d} }} = {{1000} \over {2.2422}} = 445.99Count=Rc/d​1000​=2.24221000​=445.99
实际测量得到的延迟为:1001.34us。

(2) 其它子程序

/*
**==============================================================================
** ST7565.H:            -- by Dr. ZhuoQing, 2020-10-31
**
**  Description:
**
**==============================================================================
*/
#ifndef __ST7565__
#define __ST7565__
//------------------------------------------------------------------------------
#ifdef ST7565_GLOBALS#define ST7565_EXT
#else#define ST7565_EXT extern
#endif // ST7565_GLOBALS
//------------------------------------------------------------------------------
//==============================================================================
sbit    ST7565_SCK = P3^4;
sbit    ST7565_SI  = P3^5;
sbit    ST7565_CS  = P3^6;
sbit    ST7565_DI  = P3^7;//------------------------------------------------------------------------------
void ST7565Init(void);
void ST7565Nop(unsigned int nTime);         // nTime:-->Delay(us) = 2.2422 us/counc// For 1000us: nTIme = 446
#define ST7565_DELAY_MS             ST7565Nop(446)
void ST7565DelayMS(unsigned int nms);void ST7565OutByte(unsigned char ucByte);void ST7565Command(unsigned char ucByte);
void ST7565Data(unsigned char ucByte);//------------------------------------------------------------------------------
#define ST7565_CMD_DISPLAY_ON       0xaf
#define ST7565_CMD_DISPLAY_OFF      0xae
#define ST7565_DISPLAY_ON           ST7565Command(ST7565_CMD_DISPLAY_ON)
#define ST7565_DISPLAY_OFF          ST7565Command(ST7565_CMD_DISPLAY_OFF)void ST7565StartLine(unsigned char ucLines);
void ST7565SetPage(unsigned char ucPages);
void ST7565SetColumn(unsigned char ucCols);
void ST7565WriteDataDim(unsigned char *pucByte, int nNumber);#define ST7565_SDD_NORMAL           ST7565Command(0xa0)
#define ST7565_SDD_REVERSE          ST7565Command(0xa1)
#define ST7565_DISPLAY_NORMAL       ST7565Command(0xa6)
#define ST7565_DISPLAY_REVERSE      ST7565Command(0xa7)
#define ST7565_DISPLAY_ALL_OFF      ST7565Command(0xa4)
#define ST7565_DISPLAY_ALL_ON       ST7565Command(0xa5)
#define ST7565_BIAS_1               ST7565Command(0xa2)
#define ST7565_BIAS_2               ST7565Command(0xa3)
#define ST7565_READWRITE_MODE       ST7565Command(0xe0)
#define ST7565_END                  ST7565Command(0xee)
#define ST7565_RESET                ST7565Command(0xe2)
#define ST7565_NOP                  ST7565Command(0xe3)void ST7565Clear(unsigned char ucData1);//------------------------------------------------------------------------------
void ST7565GotoXY(unsigned char ucX, unsigned char ucY);
void ST7565SetPoint(unsigned char ucX, unsigned ucY);//------------------------------------------------------------------------------
extern const unsigned char code F6x8[][6];
extern const unsigned char code F8X16[];void ST7565OutChar8X16(unsigned char ucX, unsigned char ucY, unsigned char ucChar);
void ST7565OutChar6X8(unsigned char ucX, unsigned char ucY, unsigned char ucChar);void ST7565OutString8X16(unsigned char ucX, unsigned char ucY, char * p);
//void ST7565OutString8X16C(unsigned char ucX, unsigned char ucY, const char * p);
void ST7565OutString6X8(unsigned char ucX, unsigned char ucY, char * p);
//void ST7565OutString6X8C(unsigned char ucX, unsigned char ucY, const char * p);#define ST7565_Print(x, y, p) ST7565OutString8X16(x, y, p)
#define ST7565_print(x, y, p) ST7565OutString6X8(x, y, p)//==============================================================================
//             END OF THE FILE : ST7565.H
//------------------------------------------------------------------------------
#endif // __ST7565__
/*
**==============================================================================
** ST7565.C:             -- by Dr. ZhuoQing, 2020-10-31
**
**==============================================================================
*/
#include <ADUC845.h>
#include <stdio.h>
#include <intrins.h>
#include "uc845.h"//------------------------------------------------------------------------------
#define ST7565_GLOBALS        1              // Define the global variables
#include "ST7565.H"//------------------------------------------------------------------------------
void ST7565Init(void) {ST7565_SCK = 1;ST7565_SI  = 1;ST7565_DI  = 1;ST7565_CS  = 1;    //--------------------------------------------------------------------------ST7565DelayMS(10);ST7565Command(0xa2);                    // Set Bias:0xa2     ST7565Command(0xc8);                    // Command Direction Select://  bit3=1:Reverse; bit3=0:normal                                                ST7565Command(0x2f);                    // Power control setST7565Command(0x24);                    // Set ra/rb 0x25ST7565Command(0x81);                    // Set ContrastST7565Command(0x27);                    // Set ra/rb ST7565Command(0xaf);                    // Display ONST7565Clear(0);
}//------------------------------------------------------------------------------
void ST7565Nop(unsigned int nTime) {while(nTime --) {_nop_();}}void ST7565DelayMS(unsigned int nms) {unsigned int i;for(i = 0; i < nms; i ++)ST7565_DELAY_MS;
}//------------------------------------------------------------------------------
#define ST7565_CLK_NOP      0
//------------------------------------------------------------------------------
void ST7565OutByte(unsigned char ucByte) {unsigned char ucMask, i;ucMask = 0x80;ST7565_SCK = 1;for(i = 0; i < 8; i ++) {ST7565_SCK = 0;if(ucByte & ucMask) ST7565_SI = 1;else ST7565_SI = 0;ST7565Nop(ST7565_CLK_NOP);ST7565_SCK = 1;ST7565Nop(ST7565_CLK_NOP);ucMask >>= 1;        }
}//------------------------------------------------------------------------------
void ST7565Command(unsigned char ucByte) {ST7565_CS = 0;ST7565_DI = 0;    ST7565OutByte(ucByte);ST7565_CS = 1;
}//------------------------------------------------------------------------------
void ST7565Data(unsigned char ucByte) {ST7565_CS = 0;ST7565_DI = 1;    ST7565OutByte(ucByte);ST7565_CS = 1;
}void ST7565StartLine(unsigned char ucLines) {unsigned char ucCommand;ucCommand = ucLines & 0x3f;ucCommand |= 0x40;ST7565Command(ucCommand);
}void ST7565SetPage(unsigned char ucPages) {unsigned char ucCommand;ucCommand = ucPages & 0xf;ucCommand |= 0xb0;ST7565Command(ucCommand);}void ST7565SetColumn(unsigned char ucCols) {unsigned char ucCommand;ucCommand = ucCols >> 4;ucCommand |= 0x10;ST7565Command(ucCommand);ucCommand = ucCols & 0xf;ST7565Command(ucCommand);}//------------------------------------------------------------------------------
void ST7565WriteDataDim(unsigned char *pucByte, int nNumber) {unsigned int i;ST7565_DI = 1;ST7565_CS = 0;for(i = 0; i < nNumber; i ++)ST7565OutByte(*(pucByte ++));ST7565_CS = 1;
}//------------------------------------------------------------------------------
void ST7565Clear(unsigned char ucData1) {unsigned char i, j, m;m = 0xb0;                               // Page Address Setfor(i = 0; i < 8; i ++) {ST7565Command(m);ST7565Command(0x10);                // Set Column addressST7565Command(0x00);for(j = 0; j < 192; j ++) {ST7565Data(ucData1);}m ++;}
}//------------------------------------------------------------------------------
void ST7565GotoXY(unsigned char ucX, unsigned char ucY) {ST7565SetPage(ucY);ST7565SetColumn(ucX);
}void ST7565SetPoint(unsigned char ucX, unsigned ucY) {unsigned char ucY8;unsigned char ucByte;ucY8 = ucY >> 3;ucY = ucY & 0x7;ucByte = 1 << ucY;ST7565SetPage(ucY8);ST7565SetColumn(ucX);ST7565Data(ucByte);}//------------------------------------------------------------------------------
const unsigned char code F6x8[][6] =
{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },   // sp{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },   // !{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },   // "{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },   // #{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   // ${ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },   // %{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },   // &{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },   // '{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },   // ({ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },   // ){ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },   // *{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },   // +{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },   // ,{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },   // -{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },   // .{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },   // /{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },   // :{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },   // ;{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },   // <{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },   // ={ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },   // >{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },   // ?{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },   // @{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },   // A{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },   // S{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },   // X{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // 55{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },   // _{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },   // '{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },   // a{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },   // c{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },   // d{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },   // e{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },   // g{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },   // j{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },   // o{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },   // p{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },   // q{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },   // s{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },   // x{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },   // y{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }    // horiz lines
};//======================================================
// 128X64I
// !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
//======================================================
const unsigned char code F8X16[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 00x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!10x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"20x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//#30x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$40xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//%50x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//&60x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'70x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//(80x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//)90x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//*100x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+110x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//,120x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//-130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.140x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,///150x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0160x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1170x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2180x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3190x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4200x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5210x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6220x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7230x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8240x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9250x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:260x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//;270x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//<280x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//=290x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//>300x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//?310xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@320x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A330x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B340xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C350x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D360x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E370x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F380xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G390x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H400x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I410x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J420x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K430x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L440x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M450x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N460xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O470x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P480xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q490x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R500x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S510x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T520x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U530x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V540xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W550x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X560x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y570x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z580x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[590x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\600x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//]610x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^620x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_630x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`640x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a650x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b660x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c670x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d680x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e690x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f700x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g710x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h720x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i730x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j740x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k750x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l760x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m770x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n780x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o790x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p800x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q810x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r820x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s830x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t840x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u850x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v860x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w870x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x880x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y890x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z900x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{910x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//|920x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//}930x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~94};//------------------------------------------------------------------------------
void ST7565OutChar8X16(unsigned char ucX, unsigned char ucY, unsigned char ucChar) {unsigned char i;int nBiase;if(ucChar > ' ')  ucChar -= ' ';    nBiase = ucChar;nBiase *= 16;ST7565GotoXY(ucX, ucY);for(i = 0; i < 8; i++) ST7565Data(F8X16[nBiase ++]);ST7565GotoXY(ucX, ucY + 1);for(i = 0; i < 8; i++) ST7565Data(F8X16[nBiase ++]);
}void ST7565OutChar6X8(unsigned char ucX, unsigned char ucY, unsigned char ucChar) {unsigned char i;int nBiase;if(ucChar > ' ')  ucChar -= ' ';    nBiase = ucChar;ST7565GotoXY(ucX, ucY);for(i = 0; i < 6; i++) ST7565Data(F6x8[nBiase][i]);
}//------------------------------------------------------------------------------
void ST7565OutString8X16(unsigned char ucX, unsigned char ucY, char * p) {unsigned char c;while(*(p)) {c = *(p ++);ST7565OutChar8X16(ucX, ucY, c);ucX += 8;}}void ST7565OutString6X8(unsigned char ucX, unsigned char ucY, char * p) {unsigned char c;while(*(p)) {c = *(p ++);ST7565OutChar6X8(ucX, ucY, c);ucX += 6;}
}/*
void ST7565OutString8X16C(unsigned char ucX, unsigned char ucY, const char * p) {unsigned char c;while(*(p)) {c = *(p ++);ST7565OutChar8X16(ucX, ucY, c);ucX += 8;}}
void ST7565OutString6X8C(unsigned char ucX, unsigned char ucY, const char * p) {unsigned char c;while(*(p)) {c = *(p ++);ST7565OutChar6X8(ucX, ucY, c);ucX += 6;}}
*///==============================================================================
//                END OF THE FILE : ST7565.C
//------------------------------------------------------------------------------

03测试


下面是测试串口命令的相关命令:

    else IFARG0("set") {sscanf(SDA(1), "%x", &nX);sscanf(SDA(2), "%x", &nY);sscanf(SDA(3), "%x", &nData);ST7565GotoXY(nX, nY);     ST7565Data((unsigned char)nData);
//        printf("%x %x %x", nX, nY, nData);} else IFARG0("clear") {sscanf(SDA(1), "%x", &nX);ST7565Clear((unsigned char)nX);} else IFARG0("line") {for(nX = 0; nX < 64; nX ++) {ST7565SetPoint(nX, nX);}} else IFARG0("c16") {sscanf(SDA(1), "%x", &nX);sscanf(SDA(2), "%x", &nY);sscanf(SDA(3), "%c", &c);ST7565OutChar8X16(nX, nY, c);} else IFARG0("c8") {sscanf(SDA(1), "%x", &nX);sscanf(SDA(2), "%x", &nY);sscanf(SDA(3), "%c", &c);ST7565OutChar6X8(nX, nY, c);} else IFARG0("s16") {sscanf(SDA(1), "%x", &nX);sscanf(SDA(2), "%x", &nY);ST7565OutString8X16(nX, nY, SDA(3));} else IFARG0("s8") {sscanf(SDA(1), "%x", &nX);sscanf(SDA(2), "%x", &nY);ST7565OutString6X8(nX, nY, SDA(3));}

▲ 输出字符

04:结论


  • 给出了对于购买液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏制作统一接口的方案:形成统一的PIN6的接口;
  • 编写了ST7565R的驱动程序。可以输出字符串。

1.LQ-COG12864

改变接口对应的顺序:

特别注意:需要外部将RST上拉到VCC;

▲ LQ-COG1284

2.TOPWAY LM6063A

  • LM6063A的数据手册

使用和上面定义相同的交叉引线; 同样需要将RST上拉10k至VCC。

▲ ###gs 2.TOPWAY LM6063

▲ 外部管脚定义

通过上面的测试,可以看到基于ST7565R控制器外部接口具有通用方式。
对于不同的LCD,需要调整相应的初始化的参数:对比度,以及对应的坐标进行调整。

■ 相关文献链接:

  • 液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏
  • ST7565R开发程序
  • 创界uVision下的ADuC845的工程文件
  • ST7565R数据手册

  1. 实验板的工程文件,基于ADC815:AD\ADuC845\2020\TestLCD7565R.PcbDoc * ↩︎

  2. TestLCD工程文件:C51\ADuC845\Test\2020\TestLCD\TestLCD.uvproj ↩︎

液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏相关推荐

  1. Java串口并口程序编写

    Java在传统上感觉和硬件打交道的比较少,这部分工作用C语言的比较多. 但并不是说Java不具备这样的能力. Sun就发布了Java和串口以及并口的开发包.但是在正常的搜索中只能找到Linux和Sol ...

  2. linux自带终端访问com口,配置实现通过串口(com 口、RS232 接口)终端控制 Linux 系统...

    开始之前,请确认机器有串口(com口, RS232接口),如果没有,那就没有办法达到通过串口控制机器的目的了.当然,也可以额外给机器安装一个带串口的 PCI 模块,然后想办法将模块驱动起来(内核默认能 ...

  3. 串口/COM口、USB、RS232、RS422、RS485的区别

    这些名字初了解总是容易弄混,网上总是没有将这些东西做一个明确的分类.我尝试通过资料进行分类 串口/COM口.USB是物理接口形式,属于硬件物理层面. RS232.RS422.RS485,他们都是由美国 ...

  4. 非常好用的com串口调试助手,带源码和注释

    非常好用的com串口调试助手,带源码和注释.适合调试上位机数据采集和学习使用编号:179650103450098XiaoxiaoQAQ

  5. 串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑

    转载地址:http://blog.sina.com.cn/s/blog_6566538d0100r7p8.html 有几个概念玩嵌入式的同志经常搞混.也不怨谁,现在的卖家为了一点可怜的销量都在故意混淆 ...

  6. 测试软件为什么不能识别串口,COM口识别,状态正常,设备无法通讯的解决方法...

    COM口识别,状态正常,设备无法通讯的解决方法 打开注册表HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//COM Name Arbite ...

  7. Java串口并口程序编写(转)

       2012-09-13 19:54 分享到:                                                             Java在传统上感觉和硬件打交 ...

  8. 串口 COM口 TTL RS-232 RS-485 区别(转载)

    Point: 1.串口.COM口是指的物理接口形式(硬件).而TTL.RS-232.RS-485是指的电平标准(电平协议:TTL+5V逻辑1,0V逻辑0).USB就不一样了,USB 是一种集各种软硬件 ...

  9. C# 串口 并口 打印代码

    一.调用CodeSoft打印: 利用第三方软件codesofe进行label设计,然后在程序中调用打印.这种方式维护起来比较方便,手动调整label各参数指标即可.  准备工作:1.安装打印机驱动 2 ...

最新文章

  1. 《LeetCode力扣练习》第55题 跳跃游戏 Java
  2. The copy of Windows is not genuine-微软自己用盗版
  3. VS2008常见编译错误(总结篇)
  4. java传值和通过引用传递
  5. Testing BlogJet
  6. mmap函数_Linux内存映射mmap原理分析
  7. 数值的加减会改变python中id_在Python中将一个变量的值赋给另一个变量时会发生什么?...
  8. android rom 刷机包下载地址,谷歌Android5.0 Nexus系列安卓ROM刷机包镜像/驱动下载地址发布...
  9. c语言char怎么用?
  10. 世界上最权威的68句创业名言
  11. PokemonGo完美度算法!是风姐还是松岛枫?--工地斗天地斗天马座
  12. 服务器被劫持怎么修复不了,电脑DNS被劫持怎么修复?电脑dns被劫持的完美解决方法...
  13. java权限控制是什么_论Java访问权限控制的重要性
  14. (新)B站视频播放源地址获取及B站视频下载
  15. 汽车行业,怎么样通过论坛快速引流?
  16. 微软翻译离线简体中文服务器,第一次使用微软翻译应用只有英语离线语言包
  17. 机器视觉之工业摄像机知识点(二)
  18. java,jsp页面添加提示图以及提示音乐
  19. 谷歌公布13GB 3D扫描数据集:17大类、1030个家用物品
  20. 直线相交的交点(Line-Line Intersection)

热门文章

  1. 使用@Controller注解为什么要配置mvc:annotation-driven /
  2. SQL Server 2012--Reporting Service报表阅览工具 - Power View【转载】
  3. jQuery实现自动左右滚动效果的代码实例
  4. 《精通Python设计模式》学习结构型之MVC模式
  5. ECS控制台支持创建资源时绑定标签
  6. vs2010,vs2012注释快捷键
  7. [Java]读取文件方法大全
  8. Exchange2003-2010迁移系列之七
  9. php5.5 php5.6,php 5.5 5.6的区别有哪些
  10. python装饰器执行顺序_python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures...