📄 ht1621.txt
字号:
#if 1
#define LCD_SYS_DIS 0x00 /*turn on system oscillator*/
#define LCD_SYS_EN 0x01 /*turn on system oscillator*/
#define LCD_LCD_ON 0x03 /*trun on LCD bias generator*/
#define LCD_LCD_OFF 0x02
#define LCD_RC_256 0x18 /*on-chip RC oscillator*/
#define LCD_IRQ_DIS 0x80 /*disable IRQ output*/
#define LCD_BIAS 0x29 /*4COM & LCD 1/3 bias option */
//#define LCD_TIMER_DIS 0x04 /*disable time base output*/
//#define LCD_WDT_DIS 0x05 /*disable WDT time_out flag output*/
#define LCD_TONE_OFF 0x08 /*turn off tone output*/
#define LCD_TONE_ON 0x09 /*turn on tone output*/
#define LCD_NORMAL 0xe3 /*normal mode*/
#define LCD_COMMAND 0x04 /*write command id to 1621*/
#define LCD_WRITE 0x05 /*write date/addr id to 1621*/
#endif
void WriteLcdCmd(void)
{
LCD_objectSendcommand(LCD_SYS_EN); /* only init one time */
LCD_objectSendcommand(LCD_LCD_ON);
LCD_objectSendcommand(LCD_RC_256);
LCD_objectSendcommand(LCD_IRQ_DIS);
LCD_objectSendcommand(LCD_BIAS);
}
void WriteLcdDriver(unsigned char lcd_on)
{
if(lcd_on)
_nop_();
#ifdef NO_PANEL_FALLDN_KEY //lzw 071010
WriteLcdCmd();
#endif
LCD_objectSenddata();
}
#if 1//#ifdef HT1621
void LCD_sendcmd(int cmd)
{
int i;
P_LCD_CE = 0;
for(i = 0;i<3;i++)
{
lcd_wait();
P_LCD_CL = 0;
lcd_wait();
if(cmd & 0x01)
P_LCD_DO = 1;
else
P_LCD_DO = 0;
cmd>>=1;
lcd_wait();
P_LCD_CL = 1;
lcd_wait();
}
}
void LCD_objectSendcommand(int command)
{
int i,j= 0x01;
LCD_sendcmd(j);
j = command;
for(i = 0;i<8;i++)
{
lcd_wait();
P_LCD_CL = 0;;
lcd_wait();
if(j & 0x80)
P_LCD_DO = 1;
else
P_LCD_DO = 0;
j<<=1;
lcd_wait();
P_LCD_CL = 1;
lcd_wait();
}
lcd_wait();
P_LCD_CL = 0;
lcd_wait();
P_LCD_DO = 0;
lcd_wait();
P_LCD_CL = 1;
lcd_wait();
P_LCD_CE = 1;
}
void LCD_objectSenddata()
{
unsigned char i,j;
unsigned char wrdata;
LCD_sendcmd(LCD_WRITE);
wrdata = 0;
for(i=0; i<6; i++)
{
lcd_wait();
P_LCD_CL = 0;
lcd_wait();
if(wrdata & 0x20)
P_LCD_DO = 1;
else
P_LCD_DO = 0;
lcd_wait();
wrdata <<= 1;
P_LCD_CL = 1;
lcd_wait();
}
#if 1
for(i=0; i<8; i++) {
lcd_wait();
P_LCD_CL = 0;
lcd_wait();
if(data & 0x80) {
P_LCD_DO = 1;
} else{
P_LCD_DO = 0;
}
lcd_wait();
P_LCD_CL = 1;
lcd_wait();
data <<= 1;
}
P_LCD_CE = 1;
#else
for (j=0;j<LCD_BUFF_MAX;j++)
{
wrdata = LCD_Buffer_Top[j];
for(i=0; i<8; i++)
{
lcd_wait();
P_LCD_CL = 0;
lcd_wait();
if(wrdata & 0x01)
P_LCD_DO = 1;
else
P_LCD_DO = 0;
lcd_wait();
P_LCD_CL = 1;
lcd_wait();
wrdata >>= 1;
}
}
P_LCD_CE = 1;
#endif
}
#endif // HT1621
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -