⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ym12864r.h

📁 收集到的一些常用功能模块
💻 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 + -