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

📄 1621c.c

📁 C51-HT1621-C语言读写驱动模块
💻 C
字号:
#include <reg52.h>
/*设定1621 command低8位数据*/
/**************************/
#define RC256			0x18		/*系统时钟选择为:片内RC振荡器*/ 
#define X32K			0x14 		/*系统时钟选择为:晶振*/
#define E256			0x1C 		/*系统时钟选择为:外部时钟源*/
/**************************/
#define BIAS			0x29 		/*1/3 偏压4背极*/
#define SYSEN			0x01		/*打开系统时钟*/ 
#define SYSDIS			0x00 		/*关闭系统时钟和*/
#define LCDON			0x03		/*打开偏压发生器*/ 
#define LCDOFF			0x02		/*关闭偏压发生器*/
/**************************/
#define ToneOn			0x09 		/*打开音频输出*/   
#define ToneOff 		0x08		/*关闭音频输出*/
#define Tone4k			0x40 		/*音频输出频率为4K*/
#define Tone2k			0x60		/*音频输出频率为2K*/
/**************************/        
#define TIMEREN 		0x06 		/*时基输出使能*/ 
#define TIMERDIS		0x04 		/*时基输出禁能*/
#define CLRTIME			0x0C 		/*清零进基发生器*/
/**************************/
#define WDTEN			0x07 		/*使能WDT溢出标志输出*/
#define WDTDIS			0x05 		/*禁止WDT溢出标志输出*/
#define CLRWDT			0x0E		/*清零WDT*/
/**************************/
#define IRQEN			0x88 		/*使能IRQ输出*/
#define IRQDIS			0x80 		/*禁止IRQ输出*/
/**************************/
/* cpu 晶振11.0596        */
/**************************/
sbit WRITE = P1^0;
sbit SDATA = P1^1;
sbit CS = P1^4;
unsigned char buff[16];
/**************************/
unsigned int wait_time;
unsigned char num;
unsigned char move_data;
/**************************/
sbit WDI = P1^6;
sbit SYBJ = P1^7;
void install_cpu()
{
	PSW=0;
	TMOD=0x21;   
	TH0=0xfc;    /*1ms*/
	TL0=0x66;    
	TH1=0x0fd;   /* 9600 */ 
	TL1=0x0fd;
	SCON=0xf0;   /* 9bit */ 
	TCON=0x50;   
	T2CON=0x0;
	T2MOD=0x0;
	ET0=1;
/*	ES=1;*/
	PT0=1;
	EA=1;
}
void install_bit()
{
	void install_1621();
	unsigned char i; 
	SYBJ=0;
	install_1621();
	for(i=0;i<16;i++)
	{
		buff[i]=0;
	}
	num=0;
	move_data=1;
}
void test()
{
	unsigned char i;
	if(num<16)
	{
		if(buff[num]==255)
		{
			num++;
			move_data=1;
		}
		else
		{
			buff[num]=buff[num]|move_data;
			move_data=move_data<<1;
		}
	}
	else
	{
		for(i=0;i<16;i++)
		{
			buff[i]=0;
		}
		num=0;
		move_data=1;
	}
}
void main()
{
	void install_cpu();
	void install_bit();
	void SendData_to_1621(unsigned char adrr_1621,unsigned char *addr_showbuff,unsigned char data_count);
	void Delay(unsigned int i);
	void test();
	install_cpu();
	install_bit();

	for(;;)
	{
		SendData_to_1621(0,buff,16);
		Delay(500);
		test();
			
	}
}
void t0_time()	interrupt 1
{
	ET0=0;
	WDI=!WDI;
	wait_time++;
	TH0=0xfc;    /*1ms*/
	TL0=0x66;
	ET0=1;
}
void Delay(unsigned int i)
{
	wait_time=0;
	while(wait_time<i);
}
/**************************/
/*install 1621*/
void install_1621()
{
	void Bit_wr_install();
	void Bit_wr(unsigned char buff,unsigned char num);
	void Bit_wr_end();
	Bit_wr_install();
	Bit_wr(0x80,0x03);
	
	Bit_wr(SYSEN,0x08);
	Bit_wr(0x00,0x01);

	Bit_wr(LCDON,0x08);
	Bit_wr(0x00,0x01);

	Bit_wr(0x0d,0x08);
	Bit_wr(0x00,0x01);

	Bit_wr(RC256,0x08);
	Bit_wr(0x00,0x01);

	Bit_wr(BIAS,0x08);
	Bit_wr(0x00,0x01);

	Bit_wr_end();
}
/*发送1个命令子程序*/
void SendCommand_to_1621(unsigned char command_H,unsigned char command_L)
{
	void Bit_wr_install();
	void Bit_wr(unsigned char buff,unsigned char num);
	void Bit_wr_end();
	Bit_wr_install();
	Bit_wr(command_H,0x03);
	Bit_wr(command_L,0x08);
	Bit_wr(0x00,0x01);
	Bit_wr_end();
}
/*发送N个数据子程序*/
void SendData_to_1621(unsigned char addr_1621,unsigned char *addr_showbuff,unsigned char data_count)
{
	void Bit_wr_install();
	void Bit_wr(unsigned char buff,unsigned char num);
	unsigned char i;
	Bit_wr_install();
	Bit_wr(0x80,0x01);
	Bit_wr((addr_1621|0x40),0x08);
	for(i=0;i<16;i++)
	{
		Bit_wr(*(addr_showbuff+i),0x08);
	}
}
/*即起动1621初始化子程序*/
void Bit_wr_install()
{
	CS=1;
	WRITE=1;
	CS=0;
}
void Bit_wr_end()
{
	CS=1;
}
/*发送字节数据子程序*/
void Bit_wr(unsigned char buff,unsigned char num)
{
	unsigned char n;
	for(n=0;n<num;n++)
	{
		if((buff&0x80)==0x80)
		{
			SDATA=1;
		}
		else
		{
			SDATA=0;
		}
		WRITE=0;
		buff=buff<<1;
		WRITE=1;
	}
}

⌨️ 快捷键说明

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