?? main.c
字號:
#include<avr/io.h>
#define uchar unsigned char
#define uint unsigned int
uchar regdata1,lcm_x,lcm_y;
uchar reg[]=
{
0x00,0x01,0x02,0x03,0x10,0x11,0x12,0x21,0x31,0x41,0x51,0x20,0x30,0x40,0x50,0x60,0x61,0x70,0x71,
0x72,0x80,0x81,0x91,0x90,0xA0,0xA1,0xA2,0xA3,0xB0,0xB1,0xC0,0xC1,0xC8,0xC9,0xCA,0xD0,0xE0,0xF0,0xF1
};
uchar reg_value[]=
{
0xC9,0xF2,0x10,0x80,0x6B,0x00,0x91,0x13,0x7F,0x00,0x00,0x13,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x7F,0xAA,0x04,0x00,0x2D,0x11,0x00,0x00,0x00,0x13,0x7F,0x00,0x0A,0x80,0x80,0x00,0x80,0x00,0xA0,0x0F
};
uchar lab1[]=
{
/*"無無無無無無無無無無"
"聊聊聊聊聊聊聊聊聊聊"
"人人人人人人人人人人"
"好好好好好好好好好好"
"餓餓餓餓餓餓餓餓餓餓"
"液液液液液液液液液液"
"晶晶晶晶晶晶晶晶晶晶"
"哈哈哈哈哈哈哈哈哈哈"*/
" qhb05376029 " //第一行
"Welcome to 428工作室" //第二行
" GPS " //第三行
"====================" //第四行
"88888888888888888888" //第五行
"gggggggggggggggggggg" //第六行
"yayayayayayayayayaya" //第七行
"====================" //第八行
};
void delay(uchar i)
{
uint j,k;
for(j=0;j<i;j++)
for(k=0;k<1000;k++);
}
void lcd_regwr(uchar regnada)
{
DDRA=0XFF;
DDRB=0XFF;
PORTA=regnada;
;
;
PORTB&=0XFD;//chip enable
PORTB|=0X08;
PORTB|=0X40;
PORTB&=0XEF;
PORTB&=0XDF;
;
PORTB|=0X20;
PORTB|=0X10;
PORTB|=0X02;//chip disable
}
void lcd_regwrite(uchar regname,uchar regdata)
{
lcd_regwr(regname);
delay(2);
lcd_regwr(regdata);
delay(2);
}
void lcd_datawrite(uchar wrdata)
{
DDRB&=0XFE;
while((PINB&0X01)==1);
DDRA=0XFF;
DDRB=0XFF;
PORTA=wrdata;
;
;
PORTB&=0XFD;//chip enable
PORTB|=0X08;
PORTB|=0X40;
PORTB|=0X10;
PORTB&=0XDF;
;
PORTB|=0X20;
PORTB|=0X10;
PORTB|=0X02;//chip disable
}
uchar lcd_regread(uchar regname)
{
uchar reg_rddata;
lcd_regwr(regname);
DDRA=0X00;
DDRB=0XFF;
PORTB&=0XFD;//chip enable
PORTB|=0X20;
PORTB&=0XEF;
PORTB&=0XBF;
;
reg_rddata=PINA;
;
;
PORTB|=0X20;
PORTB|=0X10;
PORTB|=0X02;//chip disable
return reg_rddata;
}
/*----------------液晶初始化-----------------*//*
void lcd_init(void)
{ uchar i;
for(i=0;i<39;i++)
lcd_regwrite(reg[i],reg_value[i]);
}*/
void lcd_init(void)
{
uchar i;
for(i=0;i<39;i++)
lcd_regwrite(reg[i],reg_value[i]);
;
}
void wr_zb(uchar x,uchar y)
{
lcd_regwrite(0x60,x);
;
;
lcd_regwrite(0x70,y);
;
;
}
void clrram(void)
{
lcd_regwrite(0xE0,0x00);
regdata1=lcd_regread(0xF0);
regdata1=regdata1 | 0x08;
lcd_regwrite(0xF0,regdata1);
lcd_regwrite(0x00,0xC5);
lcm_x=0;lcm_y=0;
wr_zb(lcm_x,lcm_y);
lcd_datawrite(0);
}
void lgs1(uchar array[])
{
uchar i,j;
lcd_regwrite(0x10,0x6B);
lcd_regwrite(0x00,0xCD);
lcm_x=0;lcm_y=0;
wr_zb(lcm_x,lcm_y);
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
lcd_datawrite(array[i*20+j]);
}
}
/*---------------顯示漢字或字符----------------*//*
void chn_disp (uchar code *chn)
{ uchar i,j;
lcd_regwrite(0x10,0x6b); //中英文不對齊、不反白、光標不顯示
lcd_regwrite(0x00,0xcd); //文字模式,屏幕開啟
wr_zb(0,0);
for (j=0;j<8;j++)
{
for (i=0;i<20;i++)
lcd_datawrite(chn[j*20+i]);//寫資料到內部RAM中
}
}*/
/*void lgs2(uchar lcm_data1,uchar lcm_data2)
{
uchar i,j;
lcd_regwrite(0x00,0xc5);
lcm_x=0;lcm_y=0;
wr_zb(lcm_x,lcm_y);
for(i=0;i<32;i++)
for(j=0;j<40;j++)
lcd_datawrite(lcm_data1);
for(i=0;i<32;i++)
for(j=0;j<40;j++)
lcd_datawrite(lcm_data2);
}*/
/*void lgs5(uchar *array)
{
uchar i,j;
lcd_regwrite(0x00,0xc5);
lcm_x=0;lcm_y=0;
wr_zb(lcm_x,lcm_y);
for(i=0;i<128;i++)
for(j=0;j<20;j++)
lcd_datawrite(array[i*20+j]);
}*/
int main(void)
{
DDRB|=0X80;
PORTB|=0X80;
lcd_init();
clrram();
lgs1(lab1);
while(1)delay(100);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -