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

📄 12864.c

📁 AVR——M16的12864LCD程序C
💻 C
字号:
#include<iom16.h>
#define SPLC501_A0  0
#define SPLC501_CS  1
#define SPLC501_RES  2
///////////////
unsigned char const xiao11[]={}
////////////////////
void SPI_Write(unsigned char data_com,unsigned char dc)///dc=0时发命令DC=1时发数据
{
 if(dc)PORTD|=1 << SPLC501_A0;
 else PORTD&=~(1 << SPLC501_A0);
 PORTD&=~(1 << SPLC501_CS);
 SPDR = data_com; 
 while(!(SPSR&(1 << SPIF)));
 PORTD|=1 << SPLC501_CS;
}
/////////////
void LCD_init(void)//初始化函数
{
 unsigned char nc;
 DDRB =(1 << DD_MOSI)|(1 << DD_SCK);
 SPCR =(1 << SPE)|(1 << MSTR)|(1 << SPR0);
 PORTD&=~(1 << SPLC501_RES);
 for(nc=10;nc>0;nc--);
 PORTD|=1 << SPLC501_RES;
 for(nc=10;nc>0;nc--);
 SPI_Write(0xa2,0);
 SPI_Write(0xa0,0);
 SPI_Write(0xc8,0);
 SPI_Write(0x26,0);
 SPI_Write(0x81,0);
 SPI_Write(0,0);
 SPI_Write(0x2f,0);
}
///////////////
void Frame_dis(unsigned int * P)
{
 unsigned char i,j,page=0xb0;
 	for(i=0;i<8;i++)
	{SPI_Write(page++,0);
	SPI_Write(0x10,0);
	SPI_Write(0x00,0);
	for(j=0;j<128;j++)
	SPI_Write(*P++,1);
	
	}
}
///////////////
void Display_Words(unsigned char *P,page_f,page_sum,column_f,column_sum)
{
unsigned char i,j,page=0xb0;
for(i=page_f;i<page_sum+page_f;i++)
{
 SPI_Write(page+i,0);
 SPI_Write(0x10|((0x0f&column_f)>>4),0);
 SPI_Write(0x00|(0x0f&column_f),0);
 	for(j=0;j<column_sum;j++)
		SPI_Write(*P++,1);
}
}
///////////////
int main(void)
{unsigned int r=0,nc;
		LCD_Init();
		Display_word(xiao11,0,2,0,16);
		Display_word(xiao12,0,2,17,16);
		while(1){
		r+=1;
		r&=0x3f;
		for(nc=50000;nc>0;nc--);
		SPI_Write(0x40+r,0);
		}
 
}

⌨️ 快捷键说明

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