lcd202.c
来自「高奇公司ICD的例子,全部能用,非常好!C语言编程」· C语言 代码 · 共 103 行
C
103 行
/*********************************************************************
* Filename: lcd202.c *
* Date: 10/19/2002 *
* Edit by Yamato View ,Goldenchip Electronic Co. ,Ltd. *
* *
* TEL: 86-0591-3375855-721 *
* *
*********************************************************************/
#include <pic.h>
#include "lcd.h"
// PORTBITS
#define PortBit(port,bit) ((unsigned)&(port)*8+(bit))
#define RS RA1
#define E RA0
#define DATA PORTD
void Write_Lcd_Cmd( unsigned char cmd ) // 写命令到LCD子程序
{
DATA = cmd ; // 送高4位
RS = 0; // 设置为发送命令格式
E = 1; // 发送信号,下降沿触发
NOP();
NOP();
E = 0;
Delay5Ms(); //
}
void Write_Lcd_Data( unsigned char data ) // 写数据到LCD的子程序
{
DATA = data; // 送高4位
RS = 1; // 设置为发送数据格式
E = 1; //
NOP();
NOP(); //
E = 0; // set enable low
Delay5Ms(); //
}
void Init_Lcd( void ) // 初始化 LCD 显示
{
DATA = 0x00;
TRISD = 0x00;
TRISA = 0xFC;
Delay15Ms(); // ~15mS延时
DATA = 0x38;
RS = 0 ;
E = 1;
NOP();
NOP();
E = 0;
Delay5Ms();
Delay15Ms();
Write_Lcd_Cmd( 0x38 ); //
Write_Lcd_Cmd( 0x0C ); // 开显示
Write_Lcd_Cmd( 0x06 ); // 设置指针移动方式
Write_Lcd_Cmd( 0x01 ); // 清屏
// while(1){}
}
void Home_Clr( void ) // 清屏
{
Write_Lcd_Cmd( 0x01 );
}
void Line_1( void ) // 从第一行显示
{
Write_Lcd_Cmd( 0x80 );
}
void Line_2( void ) // 从第2行开始显示
{
Write_Lcd_Cmd (0xC0 );
}
void Delay15Ms( void ) // 精确 15ms 延时
{
unsigned char outer, inner;
for (outer = 45; outer > 0; outer--)
for (inner = 235; inner > 0; inner--);
}
void Delay5Ms( void ) // 精确 5ms 延时
{
unsigned char outer, inner;
for (outer = 15; outer > 0; outer--)
for (inner = 240; inner > 0; inner--);
}
void Delay200Us( void ) // 精确 200us 延时
{
unsigned char delay;
for (delay = 167; delay > 0; delay--);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?