📄 12864c.h
字号:
#ifndef __12864C_H__
#define __12864C_H__
#include <at89x52.h>
#define uchar unsigned char
#define uint unsigned int
/************************************************************
//LCD工作在串行模式时,PSB要接低电平,RS要接高电平,RST低电平有效
//引脚定义
*************************************************
| R/W-----P1.4 | E----P1.5
*************************************************
*/
sbit _SID = P1^4; /* R/W 数据输入端*/
sbit _CLK = P1^5; /* E 同步时钟*/
void delay(unsigned char t)
{
unsigned char i,j;
for(j=t;j>0;j--)
for (i = 0xff;i>0;i--)
{}
}
//************************************************************
//函数说明:串行传送一字节数据
//入口:dat为要要传送的数据(8位)
//出口:
//************************************************************
void sendBYTE(unsigned char dat)
{
uchar i;
for (i=0;i<8;i++)
{
_CLK = 0;
if ((dat & 0x80)!=0)//判断最高位是否为1
_SID = 1;
else
_SID = 0;
_CLK = 1;
dat = dat<<1;
}
}
//****************************************************************
//函数说明:写控制指令
//入口:dat为要写入的控制指令
//出口:
//****************************************************************
void sendCMD(unsigned char dat)/*写控制指令*/
/* 写入控制指令 */
{
unsigned char temp,i;
sendBYTE(0xf8); /*首先写入串口初始化命令:1 1 1 1 1 R/W RS 0*/
temp = dat & 0xf0;
sendBYTE(temp);
temp = (dat<<4)&0xf0;
sendBYTE(temp);
}
//***************************************************************8
//函数说明:写显示数据
//入口:dat为要写入的显示数据
//出口:
//*****************************************************************
void sendDAT(unsigned char dat)/*写显示数据*/
/* 写入显示数据 */
{
unsigned char temp;
sendBYTE(0xfa); /*首先选写入串口初始化命令:1 1 1 1 1 R/W RS 0*/
temp = dat & 0xf0;
sendBYTE(temp);
temp = (dat<<4)&0xf0;
sendBYTE(temp);
}
//*****************************************************************************
//函数说明:/*写汉字到LCD屏指定位置*/
//入口:/*x_add 显示RAM地址*//*dat/dat1 显示汉字编码*/
//出口:
//******************************************************************************
void disHZ(unsigned char x_add,unsigned char dat,unsigned char dat1)
{
sendCMD(x_add);
sendDAT(dat);
sendDAT(dat1);
}
//******************************************************************************
//函数说明:/*写汉字串到LCD屏指定位置*/
//入口:addr为地址,*hz 为字符串起始地址
//出口:
//*****************************************************************************
void disSTR(unsigned char addr,unsigned char *hz)
{
sendCMD(addr);
while(*hz!='\0')
{
sendDAT(*hz++);
sendDAT(*hz++);
}
}
//*********************************************************
//函数说明:/*初始化LCM*/
//入口:
//出口:
//********************************************************
void initlcm(void)
{
sendCMD(0x30);/*功能设置:一次送8位数据,基本指令集*/
sendCMD(0x04);/*点设定:显示字符/光标从左到右移位,地址加一*/
sendCMD(0x0c);/*显示设定:开显示,显示光标,当前显示位反白闪动(0x0f)*/
sendCMD(0x01);/*清DDRAM*/
sendCMD(0x02);/*DDRAM地址归位*/
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -