⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 金鹏8X10液晶显示代码(mega8) 适合于atmel系列avr单片机
💻 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 + -