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

📄 lcd12864串口c程序.c

📁 AVR单片机 LCD 12864 驱动程序 。A good sample code for learn lcd display .your can run it on me300 board . fo
💻 C
字号:
/*
LCD12864串行显示程序,在第一行显示“FALSHMAN”
FLASHMAN编写,在ME300B上运行成功,欢迎交流,QQ28476691
*/

#include <io8515v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
	
const uchar cs=0;
const uchar sid=1;
const uchar sclk=2;
const uchar psb=3;
const uchar rst=5;

void LcdIni(void);
void WrOp(uchar dat);
void WrDat(uchar dat);
void SndByte(uchar dat);
void delay(void);
	
main()
{
	LcdIni();
	WrOp(0x80);
	WrDat('F');
	WrDat('L');
	WrDat('A');
	WrDat('S');
	WrDat('H');
	WrDat('M');
	WrDat('A');
	WrDat('N');

	while(1);
}

void LcdIni(void)
{
	DDRC=0XFF;				
	PORTC=0XFF;				//PORTC输出全部为1
	PORTC &=~BIT(psb);		//psb为低,选择串口方式
	
	PORTC |=BIT(cs);		//片选有效
	PORTC &=~BIT(rst);
	delay();				//延时以复位
	PORTC |=BIT(rst);		
	PORTC &=~BIT(cs);		//片选无效
	
	WrOp(0x20);
	WrOp(0x01);
	WrOp(0x06);
	WrOp(0x0c);
	
}

void WrOp(uchar dat)
{
	PORTC |=BIT(cs);
	SndByte(0xf8);		//命令字1111 1100
	SndByte(dat & 0xf0);//高四位0000
	SndByte(dat<<4);
	PORTC &=~BIT(cs);
	delay();
}

void WrDat(uchar dat)
{
	PORTC |=BIT(cs);
	SndByte(0xfa);
	SndByte(dat & 0xf0);
	SndByte(dat<<4);
	PORTC &=~BIT(cs);
	delay();
}
	
void SndByte(uchar dat)
{
	uchar i;
	for(i=8;i>0;i--)
		{
			if(dat & BIT(i-1)) PORTC |=BIT(sid);   //置1
			else PORTC &=~BIT(sid);				//置0
			PORTC |=BIT(sclk);					
			NOP();
			PORTC &=~BIT(sclk);
		}
}

void delay(void)
{
	uchar i,j;
	for(i=0;i<200;i++)
		for(j=0;j<200;j++);
}

⌨️ 快捷键说明

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