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

📄 lcd.c

📁 1602 的avr程序
💻 C
字号:
#include<avr/io.h>
#define uint unsigned int 
#define uchar unsigned char 
const uchar table[]="   Nothing is";
const uchar table1[]="   impossible!";
const uchar table2[]="Jiang kaibo";

void delay(uint ms)
{
   uint a,b;
   for(a=0;a<ms;a++)
   for(b=0;b<1141;b++);//???
}


void write_com(uchar com)
{
  PORTB&=0XFE;     //命令操作
  PORTB&=0XFD;     //写操作
  PORTA=com;       //读入指令
  PORTB|=0X04;    // E变为高
  delay(1);        //E延时
  PORTB&=~(1<<2);  //E变为低
}

void write_dat(uchar dat)
{
  PORTB|=0X01;        //数据操作
  PORTB&=0XFD;
  PORTA=dat;
  PORTB|=0X04;
  delay(1);
  PORTB&=~(1<<2);
}

void main()
{   uint i;
    DDRA=0XFF;
	DDRB|=0X07;
    PORTB&=~(1<<2);   //E 变为低

	write_com(0X38);  //显示模式设置
	delay(5);
	write_com(0X01);  //清屏
	delay(5);
    write_com(0X0F);  //光标显示闪烁 这句不加则重上电则不显示
	delay(5);
    write_com(0X06);   //屏幕不移动
	delay(5);
	write_com(0X80+0);  //从头开始显示
    delay(5);
    for(i=0;i<13;i++)  
	{
	  write_dat(table[i]);  //写数据
	  delay(5);
	}
	write_com(0x80+0x40); //从第二行开始显示
	delay(5);
    for(i=0;i<14;i++)  
	{
	  write_dat(table1[i]);  
	  delay(5);
	}
	write_com(0x80+0x10);//从第一行第二页开始显示
     delay(5);
	 for(i=0;i<11;i++)  
	{
	  write_dat(table2[i]);  
	  delay(5);
	}


	  for(i=0;i<16;i++)
	  {
	    write_com(0x18);  //左移
	    delay(10);
      }
	  delay(75);
      for(i=0;i<16;i++)
      {
	    write_com(0x1C);   //右移
       }
		delay(75);
     
	write_com(0x08);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -