exercize2.c

来自「使用proteus仿真的1602显示屏」· C语言 代码 · 共 83 行

C
83
字号
/* lcd command */
#include<regx51.h>
#define twoline_8bit  56
#define clear         1
#define cursor_home   2
#define cursor_left   4
#define cursor_right  6
#define cursor_off    12
#define cursor_on     14
#define goto_line_2   192
#define goto_line_1   128
/* lcd control lines */
sbit rs=P3^5	  ;
sbit rw=P3^4   ;
sbit enable=P3^3  ;

void delay()
{
  int b,a;

  for(b=0;b<250;b++)
  for(a=0;a<250;a++);

   
}
void  write_lcd_command(unsigned command)
{
  rw=0;
  rs=0;
  enable=1;
  P1=command;
  delay();
  enable=0;
  rw=1;
}	   
void write_lcd_data(unsigned lcddata)
{
  rw=0;
  rs=1;
  enable=1;
  P1=lcddata;
  delay();
  enable=0;
  rw=1;
}
void init_lcd(void)
{
  write_lcd_command(twoline_8bit);
  write_lcd_command(cursor_off);
  write_lcd_command(cursor_right);
}
void clear_lcd()
{
  write_lcd_command(0x01);
  write_lcd_command(0x02);
  write_lcd_command(0x80);
}
void display_lcd_string(char *p)
{
  while(*p)
  {
     write_lcd_data(*p);
	 p++;
   }
}
void gotoxy(unsigned x,unsigned y)
{
  if(x==1)
     write_lcd_command(goto_line_1+y);
  else
     write_lcd_command(goto_line_2+y);
}


void main(void)
{
  init_lcd();
  clear_lcd();
  display_lcd_string("Hello Keil C");
  gotoxy(2,1);
  display_lcd_string("LCD display");
  while(1);
}

⌨️ 快捷键说明

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