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

📄 test3pin.c

📁 LCD lcm HZ系列 协议资料
💻 C
字号:
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
#include <reg52.h>
sbit MCLK=P3^5;
sbit SCLK=P3^6;
sbit SDA=P3^7;
uchar bdata DATA;
sbit BIT0=DATA^0;
sbit BIT7=DATA^7;
// 发送一个数据到模块
putbytespi(uchar ch)
{
	uchar i;
	uint c;
	
	if(!MCLK)return; //	
	MCLK=0;	//申请通讯
	DATA=ch;

	for(i=4;i!=0;i--)
	{
		while(SCLK); //检测从机响应
	
		SDA=BIT0;   //放一个bit到SDA
		MCLK=1;		
		DATA=DATA>>1; //准备下一个bit

		while(!SCLK); //检测从机响应
	
		SDA=BIT0;   //放一个bit到SDA
		MCLK=0;		
		DATA=DATA>>1; //准备下一个bit
	}
	while(SCLK); //检测从机收完
	MCLK=1;
	while(!SCLK);//等待从机准备好
	SDA=1;
}

//从模块接收一个数据
//调用之前最好检测MCLK是否为0(对方是否申请数据通讯)再进入,否则里面是死等此信号!
uchar getbytespi()
{
	uchar i;

	while(MCLK);
	SCLK=0;	//接受通讯

	for(i=4;i!=0;i--)
	{
		DATA=DATA>>1; //准备下一个bit
		while(!MCLK); //检测主机放数据
		BIT7=SDA;//收一个bit
		SCLK=1;

		DATA=DATA>>1; //准备下一个bit
		while(MCLK); //检测从机响应
		BIT7=SDA;  //收一个bit
		SCLK=0;	
	}
	
	while(!MCLK); //检测从机收完
	SCLK=1;
	return(DATA);	
}

//显示国标字符串
lcd_gbstring(uchar *pst)
{
	uchar i;
	putbytespi(0x1b);
	putbytespi(0x37);
	putbytespi(0x00);
	for(i=0;*pst!=0;i++)
	{
		putbytespi(*pst);
		pst++;
	}
	putbytespi(0x00);				
}

//显示unicode串
lcd_unicodestring(uchar n,uchar *pst)
{
	uchar i;
	putbytespi(0x1b);
	putbytespi(0x4e);
	putbytespi(0x00);
	putbytespi(n);
	for(i=0;i<n*2;i++)
	{
		putbytespi(*pst);
		pst++;
	}

}

//定义一个国标字符串
uchar code gb2312[]="abc123汉显液晶真好用。";
//定义一个unicode字符串"字符串abcABC123内码转换《》?。【】¥!☆●★◆◇㈠⑴⑵㈡〖〗{}№§"
uchar code unicode[]={0x5B,0x57,0x7B,0x26,0x4E,0x32,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x31,0x00,0x32,0x00,0x33,0x51,0x85,0x78,0x01,0x8F,0x6C,0x63,0x62,0x30,0x0A,0x30,0x0B,0xFF,0x1F,0x30,0x02,0x30,0x10,0x30,0x11,0xFF,0xE5,0xFF,0x01,0x26,0x06,0x25,0xCF,0x26,0x05,0x25,0xC6,0x25,0xC7,0x32,0x20,0x24,0x74,0x24,0x75,0x32,0x21,0x30,0x16,0x30,0x17,0xFF,0x5B,0xFF,0x5D,0x21,0x16,0x00,0xA7};

uchar code dx58[3] _at_ 0x3b; //这句dx58仿真器调试需要
main()
{
	uchar i;
	uint n;

	for(i=0;i<3;i++) //闪灯3下
	{
		putbytespi(0x1b);
		putbytespi(0x25);
		putbytespi(0x01);
	
		for(n=0;n<30000;n++);
	
		putbytespi(0x1b);
		putbytespi(0x25);
		putbytespi(0x00);

		for(n=0;n<30000;n++);
	}

	while(1)
	{
		//清屏
		putbytespi(0x1b);
		putbytespi(0x32);

		for(n=0;n<60000;n++);
		//显示一个GB2312数据串
		lcd_gbstring(gb2312);

	
		for(n=0;n<60000;n++);

		//显示一个unicode数据串
		lcd_unicodestring(0x27,unicode);

		for(n=0;n<60000;n++);


	
	}
}



⌨️ 快捷键说明

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