?? lcd1.i
字號:
// CodeVisionAVR C Compiler
// (C) 1998-2006 Pavel Haiduc, HP InfoTech S.R.L.
// I/O registers definitions for the AT90USB1287
#pragma used+
sfrb PINA=0;
sfrb DDRA=1;
sfrb PORTA=2;
sfrb PINB=3;
sfrb DDRB=4;
sfrb PORTB=5;
sfrb PINC=6;
sfrb DDRC=7;
sfrb PORTC=8;
sfrb PIND=9;
sfrb DDRD=0xa;
sfrb PORTD=0xb;
sfrb PINE=0xc;
sfrb DDRE=0xd;
sfrb PORTE=0xe;
sfrb PINF=0xf;
sfrb DDRF=0x10;
sfrb PORTF=0x11;
sfrb TIFR0=0x15;
sfrb TIFR1=0x16;
sfrb TIFR2=0x17;
sfrb TIFR3=0x18;
sfrb TIFR4=0x19;
sfrb TIFR5=0x1a;
sfrb PCIFR=0x1b;
sfrb EIFR=0x1c;
sfrb EIMSK=0x1d;
sfrb GPIOR0=0x1e;
sfrb EECR=0x1f;
sfrb EEDR=0x20;
sfrb EEARL=0x21;
sfrb EEARH=0x22;
sfrw EEAR=0x21; // 16 bit access
sfrb GTCCR=0x23;
sfrb TCCR0A=0x24;
sfrb TCCR0B=0x25;
sfrb TCNT0=0x26;
sfrb OCR0A=0x27;
sfrb OCR0B=0x28;
sfrb PLLCSR=0x29;
sfrb GPIOR1=0x2a;
sfrb GPIOR2=0x2b;
sfrb SPCR=0x2c;
sfrb SPSR=0x2d;
sfrb SPDR=0x2e;
sfrb ACSR=0x30;
sfrb OCDR=0x31;
sfrb MONDR=0x31;
sfrb SMCR=0x33;
sfrb MCUSR=0x34;
sfrb MCUCR=0x35;
sfrb SPMCSR=0x37;
sfrb RAMPZ=0x3b;
sfrb SPL=0x3d;
sfrb SPH=0x3e;
sfrb SREG=0x3f;
#pragma used-
// Interrupt vectors definitions
void delay(unsigned int t);
void delay_1ms(unsigned int x);
void send_command(unsigned char command_data);
void send_data(unsigned char command_data);
void lcd_init();
// CodeVisionAVR C Compiler
// (C) 1998-2000 Pavel Haiduc, HP InfoTech S.R.L.
#pragma used+
void delay_us(unsigned int n);
void delay_ms(unsigned int n);
#pragma used-
//#define uint unsigned int
//#define uchar unsigned char
//uchar command_data;
void delay(unsigned int t)
{
unsigned int x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
void delay_1ms(unsigned int x) // 延時
{
unsigned int j;
unsigned char i;
for(j=0;j<x;j++)
{
for(i=0;i<120;i++);
}
}
void send_command(unsigned char command_data)
{
unsigned char i;
unsigned char i_data,temp_data1,temp_data2;
i_data=0xf8;
delay_1ms(10);
PORTC.6=1;
PORTC.4=0;
for(i=0;i<8;i++)
{
PORTC.5=(i_data&0x80);
PORTC.4=0;
PORTC.4=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
PORTC.5=(i_data&0x80);
PORTC.4=0;
PORTC.4=1;
i_data=i_data<<1;
}
i_data=command_data;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
PORTC.5=(i_data&0x80);
PORTC.4=0;
PORTC.4=1;
i_data=i_data<<1;
}
PORTC.6=0;
}
void send_data(unsigned char command_data)
{
unsigned char i;
unsigned char i_data,temp_data1,temp_data2;
i_data=0xfa;
delay_1ms(10);
PORTC.6=1;
for(i=0;i<8;i++)
{
PORTC.5=(i_data&0x80);
PORTC.4=0;
PORTC.4=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
PORTC.5=(i_data&0x80);
PORTC.4=0;
PORTC.4=1;
i_data=i_data<<1;
}
i_data=command_data;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
PORTC.5=(i_data&0x80);
PORTC.4=0;
PORTC.4=1;
i_data=i_data<<1;
}
PORTC.6=0;
}
void lcd_init()
{
delay_1ms(100);
command_data=0x30;
send_command(command_data); /*功能設(shè)置:一次送8位數(shù)據(jù),基本指令集*/
command_data=0x04;
send_command(command_data); /*點設(shè)定:顯示字符/光標(biāo)從左到右移位,DDRAM地址加1*/
command_data=0x0C;
send_command(command_data); /*顯示設(shè)定:開顯示,顯示光標(biāo),當(dāng)前顯示位反白閃動*/
command_data=0x01;
send_command(command_data); /*清DDRAM*/
command_data=0x02;
send_command(command_data); /*DDRAM地址歸位*/
command_data=0x80;
send_command(command_data); /*把顯示地址設(shè)為0X80,即為第一行的首位*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -