⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ht1621_drv.c

📁 包含了8位CRC算化程序
💻 C
字号:
/**************** (c) 2004 ***************** ********************************     
File   	 :  Ht1621_drv.c
DESCRIPTION: HT1621 LCD driver routine	
COMPILER :  c compiler
VERSION  :  1.0
DATE 	 :  2004/1/23
AUTHOR   :  flydragon
******************************************************************************/

/****************************************************************************/
#define WR 2				// I/o
#define CS 3				// I/O
#define DATA 1				// I/O
#define BUSDR PADR			// I/O PORT
#define BUSDDR PADDR		// I/O PORT DIRECT
#define BUSOR PAOR			// I/O PULL UP 
/*****************************************************************************/
#define LCDON 0X3
#define BIASCOM 0X29
#define LCDADDRESS 0X0
#define SYSTEMEN 0X1
#define LCDMODE 0XE3
#define SYSTEMCLOCK 0X14		//crystal oscillator
#define TONE4K 0X40				// BUZ 4K HZ
#define TONEOFF 0X8
#define TONEON  0X9

#define COMMAND 0X80
#define DATAMODE 0XA0

/*****************************************************************************
Name:Lcd_SetOut
Description: set lcd pins output mode
Parameters:
*******************************************************************************/
void Lcd_SetOut(void)
{
	SetBit(BUSDDR,WR);
	SetBit(BUSOR,WR);
	SetBit(BUSDDR,CS);
	SetBit(BUSOR,CS);
	SetBit(BUSDDR,DATA);
	SetBit(BUSOR,DATA);
}

/*****************************************************************************
Name:ByteOut
Description:	output one byte data/command
Parameters:
*********************************************************************************/
void ByteOut(unsigned char outdata,unsigned char counter,unsigned char lowbit)
{
unsigned char i,ndata,ncounter,nlowbit;
ndata=outdata;
ncounter=counter;
nlowbit=lowbit;

ClrBit(BUSDR,CS);

for(i=0;i<ncounter;i++)
	{
	SetBit(BUSDR,WR);
	ClrBit(BUSDR,WR);
	if(ValBit(ndata,7-i))
		SetBit(BUSDR,DATA);
		else
			ClrBit(BUSDR,DATA);
	SetBit(BUSDR,WR);	
	}

if(nlowbit==1)
	{
	SetBit(BUSDR,WR);
	ClrBit(BUSDR,WR);	

	ClrBit(BUSDR,DATA);
	SetBit(BUSDR,WR);
	}
}
/****************************************************************************
Name:Lcd_WriteData
Description: Write data to lcd
Parameters: display datas address
*****************************************************************************/
void Lcd_WriteData(unsigned char * addr,unsigned char counter,unsigned char toneout)
{
unsigned char i;

SetBit(BUSDR,CS);

Lcd_SetOut();

ClrBit(BUSDR,CS);

ByteOut(COMMAND,3,0);

ByteOut(SYSTEMEN,8,1);

ByteOut(LCDMODE,8,1);

ByteOut(BIASCOM,8,1);

ByteOut(SYSTEMCLOCK,8,1);

ByteOut(TONE4K,8,1);			// tone output 4k hz

if(toneout)
	ByteOut(TONEON,8,1);
else	
	ByteOut(TONEOFF,8,1);
	
							
ByteOut(LCDON,8,1);				// write lcd 	

SetBit(BUSDR,CS);

ByteOut(DATAMODE,3,0);

ByteOut(LCDADDRESS,6,0);

for(i=0;i<counter;i++)
	ByteOut(*(addr+i),8,0);

SetBit(BUSDR,CS);
SetBit(BUSDR,WR);
SetBit(BUSDR,DATA);

}
/***************************END OF FILE******************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -