📄 ym12864r.h
字号:
/**************************************
创建于:2006.9.6
修改于:2006.12.14
****************************************/
#ifndef YM12864R_H
#define YM12864R_H
#include<reg52.h>
#include <intrins.h> //__nop_()_()
//#define LCD_RS P2^0
//#define LCD_RW P2^1
//#define LCD_EN P2^2
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^2;
#define LCD_Data P1
#define LCD_Date_DDr P1
#define PortOut 0xff
#define PortIn 0xff
#define cmLcdClear 0x01 //清除显示
#define cmLcdGoBack 0x02 //地址归位
#define cmLcdOpen 0x0c //显示开
#define cmLcdLocal 0x80 //显示光标移动设置,开始位置!!!!
//0 0 0 0 0 0 0 1 I/D S :指定在资料的读取与写入时,设定游标移动方向及指定显示
/*
功能:把DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM 功能:执行该命令
后,所设置的行将显示在屏幕的第一行。显示起始行是由Z 地址计数器控制的,该命令自动将A0-A5 位地
址送入Z 地址计数器,起始地址可以是0-63 范围内任意一行。Z 地址计数器具有循环计数功能,用于显示
行扫描同步,当扫描完一行后自动加一。
*/
//0 0 0 0 0 0 1 D C B
//D=1:整体显示ON,C=1:游标ON,B=1:游标位置ON
//0 0 0 0 0 1 S/C R/L X X :设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM 的内容(72us)
//功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM 的内容
//0 0 0 0 1 DL X RE X X :72us
//DL=1 (必须设为1)
//RE=1: 扩充指令集动作
/******************************* RE=0:基本指令动作 *******************************/
//设定CGRAM 地址:0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0
//设定DDRAM地址 :0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0
//读取忙碌标志(BF)和地址:0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
//读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值(0us)
//写资料到RAM:1 0 D7 D6 D5 D4 D3 D2 D1 D0 :写入资料到内部的RAM( DDRAM/CGRAM/IRAM/GDRAM)72us
//读出RAM的值:1 1 D7 D6 D5 D4 D3 D2 D1 D0 :从内部RAM 读取资料( DDRAM/CGRAM/IRAM/GDRAM)72us
/******************************* RE=1:扩充指令集 **********************************/
//待命模式:0 0 0 0 0 0 0 0 0 1 :将DDRAM 填满“ 20H ”, 并且设定DDRAM 的地址计数器(AC)到“00H”72us
//卷动地址或IRAM 地址选择:0 0 0 0 0 0 0 0 1 SR
//:SR=1:允许输入垂直卷动地址,SR=0:允许输入IRAM地址。72us
//反白选择:0 0 0 0 0 0 0 1 R1 R0 :选择4 行中的任一行作反白显示,并可决定反白与否72us
//睡眠模式:0 0 0 0 0 0 1 SL X X //SL=1:脱离睡眠模式,SL=0:进入睡眠模式 72us
//扩充功能设定:0 0 0 0 1 1 X 1/RE G 0
//RE=1: 扩充指令集动作,RE=0: 基本指令集动作
//G=1 :绘图显示ON,G=0 :绘图显示OFF
//设定IRAM 地址或卷动地址:0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0
//SR=1:AC5—AC0 为垂直卷动地址
//SR=0:AC3—AC0 为ICON IRAM 地址 72us
//设定绘图RAM地址:0 0 1AC6 AC5 AC4 AC3 AC2 AC1 AC0
//设定CGRAM 地址到地址计数器(AC)72us
//#define SetStartLine 0b11000000
//#define SetX 0b10111000
//#define SetY 0b01000000
#define lcdWriteTime 0x50
#define io_SetBit(BitName,value) LCD_ ## BitName = value //位输出
#define io_SetData(PortName,value) PortName = value
//#define io_GetData(PortName) PortName
#define io_SetDir(PortName,value) PortName = value
#define macLcdDelay1Us() _nop_();_nop_();_nop_();
//sbit LCD_RS=P2^0;
//sbit LCD_RW=P2^1;
//sbit LCD_EN=P2^2;
void LcdInit(void);
//void LcdWaitFree(void);
void LcdWriteCommand(unsigned char cmd);
void LcdWriteData(unsigned char value);
void LcdSetXY( unsigned char x, unsigned char y );
void LcdWriteString(unsigned char x,unsigned char y,unsigned char *s);
void LcdWriteStr(unsigned char *s);
void LcdWriteCountStr(unsigned char count,unsigned char *s);
unsigned char LcdReadData(void);
#define LcdClear() LcdWriteCommand(cmLcdClear)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -