lcd.c

来自「Interfacing 8 bit LCD to any microcontro」· C语言 代码 · 共 93 行

C
93
字号
/*------------------------------------------------------------------------------------------
LCD.C
Source file to LCD operation
Project: RADIATION COUNTING SYSTEM
ELECTRONICS CORPORATION OF INDIA LIMITED, HYDERABAD
Developed By VINAY                			All rights reserved.
--------------------------------------------------------------------------------------------*/

#include"at89x51.h"
#include"lcd.h"
#include"lcdcmd.h"

sbit LCD_E = P1^2;
sbit LCD_RS = P1^3;


void LcdWriteCmd(unsigned char cmd) 
{

    LCD_RS = 0;
    LCD_E = 1;
    P2 = cmd;
    LCD_E = 0;
    delay(50);

}

void LcdMoveCursor(unsigned char row, unsigned char col)
{
    LcdWriteCmd(LCD_MOVEDISPLAY | (row << 6) | col);
}

void LcdWriteChar(unsigned char dval)
{

    LCD_RS = 1;
    LCD_E  = 1;
    P2 = dval;
    LCD_E  = 0;
    delay(0);

}


void LcdWriteString(unsigned char *str)
{
    while (*str != '\0')
    {
        LcdWriteChar(*str);
        ++str;
    }
}

void delay(long int k)
{
int i;
for (i=0;i<k;i++)
        {
        }
}
void LcdClear(void)
{
    LcdWriteCmd(LCD_CLEAR);
}

void LcdInit(void) {



    LcdWriteCmd(0x38);

    LcdWriteCmd(0x38);

    LcdWriteCmd(0x38);

    LcdWriteCmd(LCD_SETIFLEN | LCD_SETIFLEN_N | LCD_SETIFLEN_DL);

    // The thing oughta be initialized here.

    LcdWriteCmd(LCD_DISPEN); // display off, cursor off, no blink
    LcdWriteCmd(LCD_CLEAR);
    LcdWriteCmd(LCD_DISPEN | LCD_DISPEN_DISP); // | LCD_DISPEN_CURSOR);
    LcdWriteCmd(LCD_MOVEDIR | LCD_MOVEDIR_ID);

}

void LcdAutoMove(void)
{
LcdWriteCmd(LCD_MOVEDIR|LCD_MOVEDIR_SHIFT|LCD_MOVEDIR_ID);
}


⌨️ 快捷键说明

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