📄 1.c
字号:
#include <avr/io.h>
#define cd PD2
#define rd PD1
#define wr PD0
void delay(int c)
{
int i,j;
for(i=0;i<c;i++)
for(j=0;j<1000;j++)
;
}
char rd_state() //读状态
{
char temp;
DDRB=0x00;
PORTD|=(1<<cd);
PORTD&=~(1<<rd);
temp=PINB;
PORTD|=(1<<rd);
return(temp);
}
void rd_enable() //等待可读写
{
char temp;
temp=rd_state();
while((temp&0x03)!=0x03)
temp=rd_state();
}
void rd_auto() //等待自动读写
{
char temp;
temp=rd_state();
while((temp&0x04)!=0x04)
temp=rd_state();
}
void wr_auto() //等待自动写
{
char temp;
temp=rd_state();
while((temp&0x08)!=0x08)
temp=rd_state();
}
/*写命令、写数据命令*********************
数据1、数据2、命令、参数个数*************
*****************************************/
void wr_data(char data1,char data2,char cmd,char num)
{
char temp;
temp=num;
if(temp==2)
{
rd_enable();
DDRB=0xff;
PORTD&=~(1<<cd);
PORTB=data1;
PORTD&=~(1<<wr);
PORTD|=(1<<wr);
}
if(temp==2||temp==1)
{
rd_enable();
DDRB=0xff;
PORTD&=~(1<<cd);
PORTB=data2;
PORTD&=~(1<<wr);
PORTD|=(1<<wr);
}
rd_enable();
PORTB=0xff;
PORTD|=(1<<cd);
PORTB=cmd;
PORTD&=~(1<<wr);
PORTD|=(1<<wr);
}
char rd_data() //读数据
{
char temp;
rd_enable();
PORTD&=~(1<<cd);
PORTD&=~(1<<rd);
temp=PINB;
PORTD|=(1<<rd);
return(temp);
}
void lcd_init()
{
wr_data(0x00,0x00,0x40,0x02); //设置文本显示首地址
wr_data(0x14,0x00,0x41,0x02); //设置文本显示宽度
wr_data(0x40,0x01,0x42,0x02); //设置图形显示首地址
wr_data(0x20,0x00,0x43,0x02); //设置图形显示宽度
wr_data(0x00,0x00,0xa7,0x00); //光标形状设置
wr_data(0x00,0x00,0x80,0x00); //显示方式设置,“或”
wr_data(0x00,0x00,0x9c,0x00); //显示开关设置
}
void main()
{
char i,temp=0,row=0;
delay(50);
DDRD=0x07;
lcd_init();
wr_data(0x00,0x00,0x24,0x02); //设置写地址
wr_data(0x00,0x00,0xb0,0x00); //设置自动写方式
for(i=0;i<127;i++)
{
wr_auto();
DDRB=0xff;
PORTD&=~(1<<cd);
PORTB=temp;
PORTD&=~(1<<wr);
PORTD|=(1<<wr);
temp++;
// P1=temp;
}
wr_data(0x00,0x00,0xb2,0x00); //自动写结束
wr_data(0x40,0x01,0x24,0x02); //设置写地址
wr_data(0x00,0xaa,0xc4,0x01); //写图像区
while(1)
{
/* wr_data(row,0x00,0x40,0x02); //设置文本显示首地址
delay(40);
row++;
if(row>126)
row=100;*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -