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

📄 disp.c

📁 ucos下LCD显示屏驱动程序,LCD屏大小为128X64
💻 C
📖 第 1 页 / 共 2 页
字号:
//****************************************************************************
//Copyright (c) 2007-2008 ABX CO,.LTD
//----------All rights reserved----------
//文件名称:	disp.c
//模块功能:	本地显示
//创建日期:	2007.12.18
//创 建 人:	罗德良
//参考文档:	LPC2104开发板
//说	明:	预留将来扩展
//修改历史:
//2007.12.20    添加LCD显示底层驱动
//****************************************************************************
#define IN_DISP
#include "config.h"

OS_STK	TaskDispStk[TASK_DISP_SIZE];	//显示任务栈

#define _SDA            P0_19           //74HC164数据引脚
#define _SCK            P0_20           //74HC164时钟引脚
#define _LCS1           P0_26           //LCD CS1
#define _LCS2           P0_25           //LCD CS2
#define _LE             P0_23           //LCD EN
#define _LRW            P0_22           //LCD RW
#define _LRS            P0_13           //LCD RS
#define _LPOW           P0_5            //LCD 电源控制 (0, 开启电源; 1, 关闭电源)

#define LSDA_H          IOSET |= _SDA
#define LSDA_L          IOCLR |= _SDA
#define LSCK_H          IOSET |= _SCK
#define LSCK_L          IOCLR |= _SCK
#define LCS1_H          IOSET |= _LCS1
#define LCS1_L          IOCLR |= _LCS1
#define LCS2_H          IOSET |= _LCS2
#define LCS2_L          IOCLR |= _LCS2
#define LE_H            IOSET |= _LE
#define LE_L            IOCLR |= _LE
#define LRW_H           IOSET |= _LRW
#define LRW_L           IOCLR |= _LRW
#define LRS_H           IOSET |= _LRS
#define LRS_L           IOCLR |= _LRS
#define LPOW_H          IOSET |= _LPOW
#define LPOW_L          IOCLR |= _LPOW

#define LCD_ON          LPOW_L              //LCD电源开
#define LCD_OFF         LPOW_H              //LCD电源关

//LCD命令
#define DISPON          0x3f                //显示开
#define DISPOFF         0x3e                //显示关
#define LINESTAR        0xc0                //显示起始行
#define PAGESTAR        0xb8                //页面地址
#define COLSTAR         0x40                //显示起始列

#define LEFT            0x00                //左半屏
#define RIGHT           0x01                //右半屏

#define CMD             0x00                //命令
#define DATA            0x01                //数据

//8x16字库
//说	明:	采用Pctolcd2002创建本字库文件
//			点阵格式 -- 阴码
//			取模走向 -- 逆向(高位在前)
//			取模方式 -- 列行式
static const UCHAR ucFont8X16[] = {

0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x0F,0x1F,0x30,0x20,0x30,0x1F,0x0F,/*"0",0*/

0x00,0x10,0x10,0xF8,0xF8,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x3F,0x20,0x20,0x00,/*"1",1*/

0x00,0x70,0x78,0x08,0x08,0x88,0xF8,0x70,0x00,0x30,0x38,0x2C,0x26,0x23,0x31,0x30,/*"2",2*/

0x00,0x30,0x38,0x88,0x88,0xC8,0x78,0x30,0x00,0x18,0x38,0x20,0x20,0x31,0x1F,0x0E,/*"3",3*/

0x00,0x00,0xC0,0xE0,0x30,0xF8,0xF8,0x00,0x00,0x07,0x07,0x24,0x24,0x3F,0x3F,0x24,/*"4",4*/

0x00,0xF8,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x19,0x39,0x21,0x20,0x31,0x1F,0x0E,/*"5",5*/

0x00,0xE0,0xF0,0x98,0x88,0x98,0x18,0x00,0x00,0x0F,0x1F,0x31,0x20,0x31,0x1F,0x0E,/*"6",6*/

0x00,0x38,0x38,0x08,0xC8,0xF8,0x38,0x08,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,/*"7",7*/

0x00,0x70,0xF8,0x88,0x08,0x88,0xF8,0x70,0x00,0x1C,0x3E,0x23,0x21,0x23,0x3E,0x1C,/*"8",8*/

0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x00,0x31,0x33,0x22,0x33,0x1F,0x0F,/*"9",9*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",10*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x00,0x00,/*".",11*/

0x00,0x00,0x00,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,/*":",12*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,/*"-",13*/

0x00,0x00,0xC0,0xF8,0xF8,0xE0,0x00,0x00,0x20,0x3C,0x3F,0x23,0x02,0x27,0x3F,0x38,/*"A",14*/

0x00,0x08,0x08,0xF8,0xF8,0x08,0x08,0x00,0x00,0x20,0x20,0x3F,0x3F,0x20,0x20,0x00,/*"I",15*/

0x08,0xF8,0xF8,0x08,0x08,0x18,0xF0,0xE0,0x20,0x3F,0x3F,0x20,0x20,0x30,0x1F,0x0F,/*"D",16*/

0xE0,0xF0,0x18,0x08,0x08,0x18,0xF0,0xE0,0x0F,0x1F,0x30,0x20,0x20,0x30,0x1F,0x0F,/*"O",17*/

0xC0,0xF0,0x38,0x08,0x08,0x08,0x38,0x38,0x07,0x1F,0x38,0x20,0x20,0x30,0x18,0x08,/*"C",18*/

0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,/*"T",20*/

0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,/*"e",21*/

0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,/*"m",22*/

0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,/*"p",23*/

//0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,/*"S",24*/

//0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,/*"R",25*/

//0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,/*"U",26*/

//0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,/*"N",27*/

//0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,/*"Y",28*/

//0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,/*"W",29*/

};
//开机画面
//static UCHAR ucPic[] = {0x01, 0x01};
/*
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0x01,0x01,0x38,0x7C,0x7C,0xFC,0xF8,0xE0,0xE1,0xE7,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xF8,0x78,0x01,0x01,0x87,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0xE7,0xE3,0xE1,0xF8,0xFC,0xFC,0xFC,0xFC,0x78,0x01,0x01,0x83,0xFF,0xFF,0xFF,0xC7,0xC1,0xC1,0xF8,0xFC,0xFC,0xFC,0x78,0x00,0x01,0x07,0xFF,0xFF,0xFF,0xFF,0x1F,0x07,0x01,0x61,0x38,0x3C,0x3C,0x3C,0x38,0x61,0x61,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x0F,0x0F,0x7E,0x7E,0xFC,0xFC,0xF8,0x70,0x01,0x03,0x87,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xF0,0xC0,0x00,0x0E,0x3E,0x7F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0x80,0xFF,0xFF,0xFF,
0x8F,0x0F,0x0F,0x3F,0x7F,0xFC,0xFC,0xFC,0x78,0x00,0x03,0x87,0xFF,0xFF,0xFF,0x7F,0x1F,0x0F,0x87,0xC3,0xE1,0xF1,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x3C,0x7E,0xFF,0xFF,0xFF,0x3E,0x00,0x00,0x81,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7E,0x7E,0x7C,0x7C,0x7C,0x7C,0x7C,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFC,0xFD,0xFF,0xFF,0xFF,0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0x7C,0x7C,0x3C,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x1E,0x1C,0x1C,0x3C,0xFC,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xE3,0xC1,0xC0,0xC8,0x9C,0x9C,0x1C,0x3E,0xFA,0xF8,0x7C,0x3C,0x1E,0x8F,0xCF,0xEF,0x7B,0x39,0x19,0x5F,0x1F,0x1F,0x0F,0x8F,0xCF,0x7F,0x3F,0x1F,0x8F,0x4F,0x2F,0x1F,0x9F,0xCF,0x6F,0x3F,0x9F,0x8F,0x47,0x27,0x17,0x1F,0x4F,0x0F,0x1F,0x0F,0x6F,0x3F,0xBF,0x9F,0x5F,
0x0F,0x0F,0x87,0x87,0x77,0x3F,0x1F,0x8F,0x4F,0x2F,0x1F,0x9F,0xCF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xF8,0xF8,0xFE,0x7E,0x3E,0x1E,0x8F,0xE7,0xF3,0x79,0x3C,0x1E,0x8F,0x8F,0x87,0xC7,0x67,0x3F,0x9F,0xCF,0xCF,0x47,0x67,0x77,0x3F,0x1F,0x0F,0x27,0x03,0x11,0x88,0xCC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB3,0xB1,0xB1,0xB3,0xB3,0xB3,0xB3,0xB3,0xB1,0xB1,0xB9,0xB8,0xBC,0xBE,0xBF,0xBF,0xB8,0xB8,0xB9,0xBC,0xBE,0xBF,0xBC,0xBC,0xBA,0xB8,0xB8,0xBC,0xBC,0xBE,0xBF,0x88,0x80,0x80,0xA0,0xB0,0xB8,0xBC,0xBE,0xBE,0xB8,0xB8,0xB8,0xBC,0xBA,0xB8,0xB8,0xBC,0xBE,0xBE,0xBE,0xBE,0xB8,0xB8,0xBC,0xB8,0xB8,
0xB8,0xB8,0xBD,0xBC,0x88,0x80,0x80,0xA0,0xB0,0xB8,0xBC,0xBE,0xBE,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xB3,0xB1,0xB0,0xB8,0xBE,0xBF,0xBF,0xBF,0xBF,0xB8,0xB8,0xB8,0xB9,0xBC,0xBE,0xBE,0xB8,0xB8,0xB9,0xBD,0xBC,0xBE,0xBB,0xB8,0xBC,0xBA,0xB8,0xB8,0xBC,0xBC,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

};
*/

volatile float  fAiDisp[2];             //AI显示值
//****************************************************************************
//函数名称:	Disp_Init
//函数功能:	显示初始化
//输入参数:	void
//输出参数:	void
//返 回 值:	void
//创建日期:	2007.09.05
//创 建 人:	罗德良
//参考文档:	LPC2200开发板
//说	明:	扫描方式显示
//修改历史:
//****************************************************************************
void Disp_Init(void)
{
    PINSEL0 = (PINSEL0 & P0_5_MARK) | P0_5_0;
    PINSEL0 = (PINSEL0 & P0_13_MARK) | P0_13_0;
    PINSEL1 = (PINSEL1 & P0_19_MARK) | P0_19_0;
    PINSEL1 = (PINSEL1 & P0_20_MARK) | P0_20_0;
    PINSEL1 = (PINSEL1 & P0_22_MARK) | P0_22_0;
    PINSEL1 = (PINSEL1 & P0_23_MARK) | P0_23_0;
    PINSEL1 = (PINSEL1 & P0_25_MARK) | P0_25_0;
    PINSEL1 = (PINSEL1 & P0_26_MARK) | P0_26_0;
    
    IODIR |= _SDA + _SCK + _LCS1 + _LCS2 + _LE + _LRW + _LRS + _LPOW;
    
    LCD_OFF;
}

//****************************************************************************
//函数名称: Disp_Char
//函数功能: 向LCD送一个字节
//输入参数: UCHAR ucChr
//输出参数: void
//返 回 值: void
//创建日期: 2007.07.30
//创 建 人: 罗德良
//参考文档: LPC2104开发板
//说    明:	
//修改历史:
//****************************************************************************
static void Disp_Char(UCHAR ucChr)
{
    UCHAR i;
    
    for (i = 0; i < 8; i++)
    {
        LSCK_L;             //SCK = 0

        if ((ucChr & (0x80 >> i)) != 0)
            LSDA_H;         //DA = 1
        else
            LSDA_L;         //DA = 0
       
        LSCK_H;             //SCK = 1
    }
}

//****************************************************************************
//函数名称: LCD_Write
//函数功能: 向LCD送命令/数据
//输入参数: UCHAR ucDat     命令/数据内容
//          UCHAR ucType    0, 命令; 1, 数据
//          UCHAR ucLocate  0, 左半屏; 1, 右半屏
//输出参数: void
//返 回 值: void
//创建日期: 2007.12.24
//创 建 人: 罗德良
//参考文档: LPC2104开发板
//说    明:	
//修改历史:
//****************************************************************************
static UCHAR LCD_Write(UCHAR ucDat, UCHAR ucType, UCHAR ucLocate)
{
    LRW_H;
   
    if(ucLocate == LEFT)                    //选择左半屏
    {
        LCS1_H;
        LCS2_L;
    }
    else                                    //选择右半屏
    {
        LCS1_L;
        LCS2_H;
    }

    LE_L;                                   //使能信号为L
    if(ucType == 0)
        LRS_L;                              //命令方式 
    else
        LRS_H;                              //数据方式
    
    LRW_L;                                  //置读/写选择为L 

    LE_H;                                   //使能信号为H
    
    Disp_Char(ucDat);                       //将控制指令代码输出到的数据端口
    
    LE_L;                                 	//使能信号为L  

    LCS1_H;                                 //置片选1为H
    LCS2_H;                                 //置片选2为H 
    
    return(0);
}

//****************************************************************************
//函数名称: LCD_Cls
//函数功能: LCD清屏
//输入参数: void
//输出参数: void
//返 回 值: void
//创建日期: 2007.12.24
//创 建 人: 罗德良
//参考文档: LPC2104开发板
//说    明:	
//修改历史:
//****************************************************************************
static void LCD_Cls(void)
{
   UCHAR i, k, p;
   
   for (p = 0; p < 2; p++)
   {
       for(i = 0; i < 8; i++)                           //共8页,64行    		  
       {
            LCD_Write(PAGESTAR + i, CMD, p);            //写页地址
        	
            LCD_Write(COLSTAR, CMD, p);                 //写列起始地址	
         	 
            for(k = 0; k < 64; k++)
        	{
                LCD_Write(0x00, DATA, p);               //写0,清屏
        	}
        }
    }
}

//****************************************************************************
//函数名称: LCD_Init
//函数功能: LCD显示初始化
//输入参数: void
//输出参数: void
//返 回 值: void
//创建日期: 2007.12.24
//创 建 人: 罗德良
//参考文档: LPC2104开发板, YM12864A.pdf
//说    明:	
//修改历史:
//****************************************************************************
static void LCD_Init(void)
{
    LCD_OFF;
    OSTimeDly(100);                 //关LCD电源
    LCD_ON;                         //开LCD电源
    OSTimeDly(20);
    
    LCD_Write(DISPON, CMD, LEFT);          //写LCD左半屏(显示开)
    LCD_Write(DISPON, CMD, RIGHT);         //写LCD右半屏(显示开)	
    LCD_Write(LINESTAR, CMD, LEFT);        //写LCD左半屏(起始行)
    LCD_Write(LINESTAR, CMD, RIGHT);       //写LCD右半屏(起始行)	
    LCD_Write(PAGESTAR, CMD, LEFT);        //写LCD左半屏(起始页)
    LCD_Write(PAGESTAR, CMD, RIGHT);       //写LCD右半屏(起始页)
    LCD_Write(COLSTAR, CMD, LEFT);         //写LCD左半屏(起始列)
    LCD_Write(COLSTAR, CMD, RIGHT);        //写LCD右半屏(起始列)
    
    LCD_Cls();    //清屏	
}

//****************************************************************************
//函数名称: LCD_Write_Half
//函数功能: 向LCD送半个字符串
//输入参数: UCHAR *ucpStr       数据
//          UCHAR ucXStar       X坐标
//          UCHAR ucType        0, 正常显示; 1, 反白显示
//输出参数: void
//返 回 值: void
//创建日期: 2007.12.24
//创 建 人: 罗德良
//参考文档: LPC2104开发板
//说    明:	
//修改历史:
//****************************************************************************
static UCHAR LCD_Write_Half(UCHAR *ucpStr, UCHAR ucXStar, UCHAR ucType)
{
    UCHAR i;
    
    if (ucpStr == NULL) return (1);
    
    for (i = 0; i < 8; i++)
    {
        if (ucType == 0)
        {//正常显示
            if (ucXStar < 8)
                LCD_Write(*ucpStr++, DATA, LEFT);

⌨️ 快捷键说明

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