📄 ht1621-c51.c
字号:
#define uchar unsigned char
//***************************HT1621常数定义*****************************
#define RAMSIZE 16 //RAM区16字节
#define BIAS 0x52 //1/3偏压,4个公共口
#define RC256K 0x30 //片内RC振荡器
#define SYSEN 0x02 //打开系统振荡器
#define SYSDIS 0x00 //关闭系统振荡器河LCD偏压发生器
#define LCDON 0x06 //打开LCD偏压发生器
#define HT_WR P2.1 //读写线
#define HT_CS P2.0 //片选线
#define HT_DATA P2.2 //数据线
void EnableHt1621(void);
void SendBitToHt1621(uchar nbit,uchar n);
void SendCommandToHt1621(uchar command);
void ResetHt1621(void);
void SetupHt1621(void);
void SendByteToHt1621(uchar addr,uchar byte);
void SendStringToHt1621(uchar addr,uchar *ptr,uchar len);
void Ht1621DisplayAll(void);
//*********************************************************************************
//函数名称:void EnableHt1621(void)
//函数功能:使能HT1621
//函数输入:无
//函数输出:无
//**********************************************************************************
void EnableHt1621(void)
{
HT_CS=0;
HT_WR=1;
NOP();
HT_WR=0;
NOP();
}
//*********************************************************************************
//函数名称:SendBitToHt1621(uchar nbit,uchar n)
//函数功能:向HT1621发送数据
//函数输入:nbit:发送的位串 n:发送的位数
//函数输出:无
//*********************************************************************************
void SendBitToHt1621(uchar nbit,uchar n)
{
uchar i;
for(i=0;i<n;i++)
{
if(nbit>=0x80)
HT_DATA=1;
else
HT_DATA=0;
HT_WR=0;
NOP();
HT_WR=1;
NOP();
nbit<<=1;
}
}
//***********************************************************************************
//函数名称:void sendcommandtoht1621(uchar command)
//函数功能:发送命令到HT1621
//函数输入:command:命令参数
//函数输出:无
//***********************************************************************************
void SendCommandToHt1621(uchar command)
{
EnableHt1621();
SendBitToHt1621(0x80,4);
SendBitToHt1621(command,8);
HT_WR=1;
NOP();
HT_CS=1;
NOP();
HT_DATA=1;
}
//***********************************************************************************
//函数名称:void ResetHt1621(void)
//函数功能:复位HT1621
//函数输入:无
//函数输出:无
//***********************************************************************************
void ResetHt1621(void)
{
HT_WR=1;
NOP();
HT_CS=1;
NOP();
HT_DATA=1;
}
//***********************************************************************************
//函数名称:void SetupHt1621(void)
//函数功能:初始化HT1621
//函数输入:无
//函数输出:无
//***********************************************************************************
void SetupHt1621(void)
{
SendCommandToHt1621(BIAS);
SendCommandToHt1621(RC256K);
SendCommandToHt1621(SYSEN);
SendCommandToHt1621(LCDON);
}
//***********************************************************************************
//函数名称:void SendByteToHt1621(uchar addr,uchar byte)
//函数功能:初始化HT1621
//函数输入:addr:地址 byte:发送的字节
//函数输出:无
//***********************************************************************************
void SendByteToHt1621(uchar addr,uchar byte)
{
addr<<=3;
EnableHt1621();
SendBittoHt1621(0xA0,3);
SendBittoHt1621(addr,6);
SendBittoHt1621(byte,8);
HT_WR=1;
NOP();
HT_CS=1;
}
/**************************************************************************************************************************
//函数名称:void SendStringToHt1621(uchar addr,uchar *ptr,uchar len)
//函数功能:发送字符串给HT1621
//函数输入:addr:起始地址 ptr:发送的字符串 len:发送的字符串长度
//函数输出:无
***************************************************************************************************************************/
void SendStringToHt1621(uchar addr,uchar *ptr,uchar len)
{
uchar i;
addr<<=2;
EnableHt1621();
SendBitToHt1621(0xa0,3);
SendBitToHt1621(addr,6);
if((len+addr)>RAMSIZE)len=RAMSIZE-addr;
for(i=0;i<len;i++)
{
SendBitToHt1621(ptr[i],8);
}
HT_CS=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -