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

📄 lcdapi.c

📁 时钟芯片PCF8583的应用
💻 C
字号:
#include<reg51.h>

typedef unsigned char uchar;

sbit std = P1^5;
sbit cs = P1^4;
sbit sclk = P1^6;
sbit lcdk = P1^7; // 0时亮

void delay(int count)
{
	int i,j;
	for(i = count ; i ; i --)
		for(j = 125; j ; j --);
}

void write_lcd(bit data_comm,uchar content)  //L:comm; H:data;
{
	uchar i,j;
	delay(1);
	std = 1;
	cs = 1;
	for(i = 5; i ; i --)
	{
		sclk = 0;
		sclk = 1;
	}

	std = 0;
	sclk = 0;
	sclk = 1;

	std = data_comm;
	sclk = 0;
	sclk = 1;

	std = 0;
	sclk = 0;
	sclk = 1;
	
	for(i = 2; i ; i--)
	{
		for(j = 4; j ; j --)
		{
			content <<= 1;
			std = CY;
			sclk = 0;
			sclk = 1;
		}

		std = 0;
		for(j = 4; j ; j --)
		{
			sclk = 0;
			sclk = 1;
		}
	}
	cs = 0;
	std = 0;
	sclk = 0;
}

void clear_DDram()
{
	write_lcd(0,0x30);//转到基本指令集
	write_lcd(0,0x01);//把DDRAM填满空格,AC指向00H
	delay(1);
}

void init_lcd()
{
	write_lcd(0,0x30);//转到基本指令集
	lcdk = 0;
	clear_DDram();
	write_lcd(0,0x06);
	write_lcd(0,0x3c);
}

/*******************显示一行汉字*************************/
//addr为四行开始的地址0x80,0x90,0x88,0x98
void DisLineCN(unsigned char addr, unsigned char *chn)//指向code区的指针
{
  unsigned char data i;
  write_lcd (0,0x30);    //基本指令
  write_lcd (0,addr);   //写地址
  for (i=0;i!=16;i++)  //写16个字节,也就是8个汉字
  	write_lcd (1,chn[i]);
}

void DisChar(unsigned char addr,unsigned char _data)//显示一个字符
{
    write_lcd(0,0x30);
    write_lcd(0,addr);
    write_lcd(1,_data);
}


⌨️ 快捷键说明

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