📄 ht1622.h
字号:
/*****************************************************************************
2片HT1622液晶显示模块底层函数
/*****************************************************************************/
#ifndef __LCD_bottom_function_H__
#define __LCD_bottom_function_H__
/*******************************************************************************/
//LCD显示底层函数部分
#define CMDOFF 0 //控制器掉电(控制字)
#define CMDON 1 // 控制器上电(控制字)
#define LCDOFF 2 // 控制器液晶关闭(控制字)
#define LCDON 3 //控制器液晶显示(控制字)
#define EXT32 0x1c //控制器液晶模式显示(控制字)
#define LCD_CS1 P2_4
#define LCD_CS2 P2_3
#define LCD_WR P2_1
#define LCD_RD P2_2
#define LCD_DAT P2_0
#define LCD_wbit(dat)\
LCD_DAT=dat;\
LCD_WR=1;\
LCD_WR=0;\
LCD_WR=1;
//*******************************写入显示数据**********************************
void LCDWD(unsigned char dat,unsigned char dat_addr)
{
unsigned char count,addr;
if(dat_addr>31){LCD_CS2=0;addr=(dat_addr-32)<<1;}
else {LCD_CS1=0;addr=dat_addr<<1; }
LCD_wbit(1);
LCD_wbit(0);
LCD_wbit(1);
for(count=0;count<6;count++)
{
LCD_wbit((bit)(addr&(0x20>>count)));
}
for(count=0;count<8;count++)
{
LCD_wbit((bit)(dat&(0x01<<count)));
}
LCD_DAT=1;
LCD_CS1=1;
LCD_CS2=1;
}
/*********************************************************************/
//读数据
unsigned char LCDRD(unsigned char dat_addr)
{
unsigned char count,addr,dat;
if(dat_addr>31){LCD_CS2=0;addr=(dat_addr-32)<<1;}
else {LCD_CS1=0;addr=dat_addr<<1; }
LCD_wbit(1);
LCD_wbit(1);
LCD_wbit(0);
for(count=0;count<6;count++)
{
LCD_wbit((bit)(addr&(0x20>>count)));
}
for(count=0;count<8;count++)
{
dat>>=1;
LCD_RD=1;
LCD_RD=0;
LCD_RD=1;
if(LCD_DAT)dat|=0x80;
}
LCD_CS1=1;
LCD_CS2=1;
return dat;
}
//*************************送控制字函数*********************************
void LCDWC(unsigned char dat)
{
unsigned char count;
LCD_CS1=0;
LCD_CS2=0;
LCD_wbit(1);
LCD_wbit(0);
LCD_wbit(0);
for(count=0;count<8;count++)
{
LCD_wbit((bit)(dat&(0x80>>count)));
}
LCD_wbit(0);
LCD_DAT=1;
LCD_CS1=1;
LCD_CS2=1;
}
//*********************控制器复位函数******************************
void LCD_reset()
{
LCDWC(CMDOFF);
LCDWC(LCDOFF);
LCDWC(CMDON);
LCDWC(LCDON);
LCDWC(EXT32);
}
//***********************显示高层函数部分***************************
void LcdInit()
{
unsigned char count;
LCD_reset();
for(count=0;count<64;count++)
{
LCDWD(0x00,count);
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -