📄 12864_12.h
字号:
#include <avr/pgmspace.h>
#define CRPORT PORTC
#define DATAPORT PORTB
#define CRDDR DDRC
#define DATADDR DDRB
#define CS 3
#define RES 4
#define A0 5
#define SCL 5
#define SDA 3
void put_char(unsigned char data,unsigned char d_c)
{
if(d_c==1) CRPORT|=(1<<A0);
else CRPORT&=~(1<<A0);
CRPORT&=~(1<<CS);
SPDR = data; // 传送数据到SPI寄存器
while ((SPSR & (1 << SPIF)) == 0); // 等待数据传送完
CRPORT|=(1<<CS);
}
void puta(unsigned char msb,unsigned char lsb)
{
unsigned char i,j;
for(i=0xb0;i<0xb8;i++)
{
put_char(i,0);
put_char(0x10,0);
put_char(0x00,0);
for(j=0;j<128;j++)
{
put_char(msb,1);
put_char(lsb,1);
}
}
put_char(0b10101111,0);
}
void put_word(const unsigned char *a,unsigned char x,unsigned char y)
{
unsigned char i;
y<<=1;
x+=4;
put_char(y+0xb0,0);
put_char(x&0x0f,0);
put_char((x>>4)+0x10,0);
for(i=0;i<=15;i++) put_char(pgm_read_byte(a+i),1);
put_char(y+1+0xb0,0);
put_char(x&0x0f,0);
put_char((x>>4)+0x10,0);
for(i=16;i<=31;i++) put_char(pgm_read_byte(a+i),1);
}
void put_string(const unsigned char *s,unsigned char x,unsigned char y,unsigned char z)
{
for(;(x<=112)&&z;x+=16)
{
put_word(s,x,y);
s+=32;
z--;
}
while(!s)
{for(x=0;(x<=112)&&z;x+=16)
{
put_word(s,x,y);
s+=32;
z--;
}
y++;
}
}
void print_bmp(const unsigned char *s)
{
unsigned i,j;
for(j=0xb0;j<0xb8;j++)
{
put_char(j,0);
put_char(0x10,0);
put_char(0x04,0);
for(i=0;i<128;i++) put_char(pgm_read_byte(s+i),1);
s+=128;
}
}
void lcd_init(void)
{
CRDDR|=(1<<RES)|(1<<A0)|(1<<CS);
DATADDR|=(1<<SCL)|(1<<SDA);
CRPORT&=~(1<<RES);
CRPORT|=(1<<RES);
DDRB |= (1 << 2);
SPCR=(1<<SPE)|(1<<MSTR)|(1<<CPHA)|(1<<CPOL);
SPSR = (1<<SPI2X); // 设置SPI时钟倍速
put_char(0xa2,0);
put_char(0b01000000,0);
put_char(0b10100001,0);//地址反转
put_char(0b11001000,0);
put_char(0b11111000,0);
put_char(0x26,0);
put_char(0b10000001,0);
put_char(16,0);
put_char(0b00101100,0);
put_char(0b00101110,0);
put_char(0b00101111,0);
puta(0xff,0xff);
put_char(0b10101110,0);
put_char(0b11111000,0);
put_char(0b0,0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -