声明:该程序是基于ATmega64单片机的,采用7.3728Mhz晶振,并采用串行传输的方式。
PC5 = CS; PC6 = SID; PC7 = SCLK;
上图是液晶12864的时序图。
#include <avr/io.h>
#include <util/delay.h>
//位操作宏定义
#define SETB(bit) (1 << (bit))
#define CLRB(bit) ~(1 << (bit))
//LCD_PIN管脚定义
#define LCD_CS_H PORTC |= SETB(PIN5) //CS拉高
#define LCD_CS_L PORTC &= CLRB(PIN5) //CS拉低
#define LCD_SID_H PORTC |= SETB(PIN6)
#define LCD_SID_L PORTC &= CLRB(PIN6)
#define LCD_SCLK_H PORTC |= SETB(PIN7)
#define LCD_SCLK_L PORTC &= CLRB(PIN7)
//____________________________________________
//初始化io端口
void initPort()
{
DDRC = 0xE0; //端口c,设置为输出
PORTC = 0xff; //输出为高电平
}
//向LCD发送一个8位的命令
void LCD_Sendbyte_command(unsigned char command)
{
unsigned