1602.c

来自「用AVRmega8515编写的lcd1602显示程序」· C语言 代码 · 共 90 行

C
90
字号
#include"1602.h"

#pragma data:code
const uchar table[]="I LOVE AVR !";  //双引号是将这些字符转化成ASCII码
const uchar table1[]="zhang yi !";

void delay(uint ms)
{
        uint i,j;
	for(i=0;i<ms;i++)
	   {
	   for(j=0;j<1141;j++);
       }
}

void write_com(uchar com)  //写指令
{
    CLR_RS_1602;   //选择命令端
	CLR_RW_1602;    //选择写端
	delay(1);   //延时1ms
	
	
	SET_E_1602;
	PORTA=com;
	CLR_E_1602;
}

void write_dat(uchar dat)  //写数据
{
    SET_RS_1602;    //选择数据端
	CLR_RW_1602;    //选择写端
	delay(1);   //延时1ms
	
	SET_E_1602;
	PORTA=dat;
	CLR_E_1602;

}

void LCD_init()
{
	write_com(0X38);	 //初始化设置,显示模式设置
	write_com(0X0C);	   //0X0C去光标
   	write_com(0X06);	   //地址从左往右加1
	write_com(0X01);	   
	delay(5); 
}
void display()
{
/*******************第一行显示**********/
   uchar i;
   write_com(0X80+0X00);
   delay(5);
   for(i=0;i<12;i++)
   {
     write_dat(table[i]);
	 delay(5);
   
   }

/******************第二行显示***************/
   write_com(0X80+0X40);
   delay(5);
   for(i=0;i<10;i++)
   {
     write_dat(table1[i]);
	 delay(5);
   }

  for(i=0;i<15;i++)
   {
       write_com(0x1C);
	   delay(100);
   
   }
}
void main()
{ 
   DDRA=0XFF;
   DDRC|=BIT(5)|BIT(6)|BIT(7);
   CLR_E_1602;

 
  
   LCD_init();
   delay(20);
   //write_com(0x84);
   //write_dat(0x34);
   display();
}

⌨️ 快捷键说明

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