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

📄 lcd.c

📁 maxim的AD191的AD采样控制程序
💻 C
字号:
//RS  (CS)	O	H: Data    L: Instruction Code
//R/W (SID)	O	H: Read    L: Write

#include"reg51.h"  
#define unchar unsigned char
#define unint unsigned int 
#define LCDDATA P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
//sbit EN=P1^7;
//extern void disp_graphic(unsigned int ru_kou);

void delay20us(void)
{
	unchar n;
	for(n=0;n<15;n++);
}

void delay15ms(void)
{
	unint n;
	for(n=0;n<4800;n++);
}

void delay125us(void)
{
	unchar n;
	for(n=0;n<100;n++);
}

//EN下降沿写入数据
void lcd_write_command(unchar c) //向LCD模块的命令寄存器写一个字节c。
{       
	RS=0;
	RW=0;
	EN=0;
	delay20us();
	EN=1;
	delay20us();
	LCDDATA=c;
	delay20us();
	EN=0;
	delay20us();
} 

void lcd_write_data(unchar ddata) //向LCD模块的字符发生器或显存写一个字节data。      
{      
    RS=1;
	RW=0;  
	EN=0;
	delay20us();
    EN=1;
    delay20us();     
    LCDDATA=ddata;  
    delay20us();
	EN=0; 	
	delay20us();
	RS=0;
}

unchar lcd_read_style()// 从LCD模块读取忙碌标志(BF)可以确认内部动作是否完成,
                                  // 同时可以读出地址计数器(AC)的值   
{
	unchar style;  
 	RS=0;
	RW=1;
	EN=0;
	delay20us();
	EN=1;
	delay20us();
   	style=LCDDATA; 
   	delay20us(); 
       	EN=0; 
       	delay20us();
       	RS=0;
       	RW=0;
   	return(style);
}	

unchar lcd_read_data(unchar addr)// 从LCD模块的字符发生器或显存读出一个字节    
{
	unchar in;  
    lcd_write_command(addr); 
 	RS=1;
	RW=1;
	EN=0;
	delay20us();
	EN=1;
	delay20us();
   	in=LCDDATA; 
   	delay20us(); 
    EN=0; 
    delay20us();
    RS=0;
    RW=0;
   	return(in);
}	

void lcd_init()   //初始化LCD模块。
{         
	lcd_write_command(0x30); //基本命令集
    delay125us();
	lcd_write_command(0x0c); //整体开显示,游标关闭
	delay125us();
	lcd_write_command(0x01); //清除显示
	delay15ms();
	lcd_write_command(0x06); //游标方向设定
	delay125us();
}   

void lcd_graphic_init()
{
  lcd_write_command(0x01);
	delay15ms();
	lcd_write_command(0x32);
	delay125us();
	lcd_write_command(0x36);
	delay125us();
}	
	

⌨️ 快捷键说明

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