📄 ht1622.c
字号:
/*
#define CS_1622 P14.0
#define SK_1622 P3.0
#define DI_1622 P3.1
#define DO_1622 P3.2
*/
#define CS_1622 P1.0
#define SK_1622 P1.1
#define DI_1622 P1.2
#include "config.h"
/**********************************************************************
/*Name: Reset_1621() */
/*Function: */
/**********************************************************************/
void Reset_1622(void)
{
CS_1622=1;
SK_1622=1;
DI_1622=1;
Delay(10);
CS_1622=0;
CS_1622=0;
SK_1622=0;
SK_1622=0;
}
/***********************************************************************/
/*Name: SendBit_HT1622() */
/*Function: */
/**********************************************************************/
void SendBit_HT1622(unsigned char op_data,unsigned char num)
{
unsigned char temp1;
for(temp1=0;temp1<num;temp1++)
{
if( (op_data&0X80)==00 )
{DI_1622=0;}
else{DI_1622=1;}
SK_1622=1; SK_1622=1; SK_1622=1; SK_1622=1;
SK_1622=0;
op_data=op_data<<1;
}
}
/*********************************************************************
A
*********************************************************************/
void SENDCOMA(unsigned char command)
{
Reset_1622();
SendBit_HT1622(0x080,4); /*ID=100 0*/
SendBit_HT1622(command,8); /* send command*/
}
/*********************************************************************
B
*********************************************************************/
void SENDCOMB(unsigned char address)
{
Reset_1622();
Delay(10); /*delay 10us*/
SendBit_HT1622(0xA0,4); /*ID=101 0*/
SendBit_HT1622(address,5); /* send address*/
}
/*********************************************************************
C
*********************************************************************/
void SENDCOMC(unsigned char command)
{
Reset_1622();
SendBit_HT1622(0x90,4); /*ID=100 1*/
SendBit_HT1622(command,8); /* send command*/
}
/*---------------------------------------------------------------------------*/
/* Name: EXLCDWRITE */
/* Func: write *write_data size of data_length to LCD */
/* Date: 2005/04/27 */
/*---------------------------------------------------------------------------*/
unsigned char LCDWRITE_1622(unsigned char *write_data, unsigned char data_length)
{
unsigned char i;
/* set address point 0*/
SENDCOMB(0x00);
/*writes data continuously*/
for(i=0;i<data_length;i++)
{
SendBit_HT1622(*write_data++, 8);
}
CS_1622=1;
return(1);
}
/*-------------------------------------------------------------------------------+
/* name : initHT1622()
/* function : initial LCD controller / driver (HT1622)
+-------------------------------------------------------------------------------*/
void initLCD_1622(void)
{
SENDCOMA(LCD_1622_BIAS); /*set*/
SENDCOMA(LCD_1622_RC256); /*set*/
SENDCOMA(LCD_1622_SYSEN); /*oscillator ON*/
SENDCOMA(LCD_1622_LCDON); /*Display ON*/
SENDCOMA(LCD_1622_TIMERDIS); /*Disable Timer Output*/
}
/*-------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------*/
void DISP_ALL(unsigned char data)
{
register char i;
unsigned char str[16], *p;
for(i = 0, p = str; i < 16; i++)
*p++ = data;
LCDWRITE_1622(str, 16);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -