竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx

上传人:b****5 文档编号:15727724 上传时间:2022-11-15 格式:DOCX 页数:15 大小:19.93KB
下载 相关 举报
竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx_第1页
第1页 / 共15页
竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx_第2页
第2页 / 共15页
竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx_第3页
第3页 / 共15页
竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx_第4页
第4页 / 共15页
竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx

《竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx》由会员分享,可在线阅读,更多相关《竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

竞赛时写的几个程序分享了液晶驱动LCD12864Word下载.docx

**

**------------------------------------------------------------------------------------------------------

**SystemFunction:

LCDDriver------液晶驱动

** 

液晶型号:

12864

**使用LPC2103连接方式:

(串行)

SID:

P0.6(MOSI),SCLK:

P0.4(SCK0)

PSB:

GND(serial),/RST:

VCC,CS:

VCC

LEDA:

VCC,LEDK:

GND

**Modifiedby:

**Modifieddate:

********************************************************************************************************/

#include"

config.h"

/*系统常量定义*/

/*PINSEL0引脚功能选择寄存器常量*/

#defineSCK0 

(1<

<

8) 

//P0.4定义位,01

#defineMOSI0 

12) 

//P0.6定义位,01

/*SPI_SPCRSPI控制寄存器常量*/

#defineCPHA 

3) 

//时钟相位控制

#defineCPOL 

4) 

//时钟极性控制

#defineMSTR 

5) 

//主模式选择

#defineLSBF 

6) 

//字节的移动方向

#defineSPI_MODEMSTR 

//选择SPI接口模式为主模式、SCK高有效空闲状态为0,上升沿采样,MSB传输在前

/*变量定义*/

uint8uiDisp_Addr=0x00;

//液晶显示ddram地址

/*********************************************************************************************************

**Functionname:

delay

延时函数

**Inputparameters:

uiDly

**Outputparameters:

*********************************************************************************************************/

voiddelay(uint32uiDly)

{

uint32i;

for(;

uiDly>

0;

uiDly--)

for(i=0;

i<

5000;

i++);

}

LCD_SPI_Initial

SPI接口初始化

voidLCD_SPI_Initial()

PINSEL0|=(SCK0|MOSI0);

//设置P0.4为SPI0串行时钟端,P0.6为SPI主出从入端

SPI_SPCCR=8;

//SPI时钟计数寄存器

SPI_SPCR=SPI_MODE;

//SPI控制寄存器

}

LCD_Serial_Send

主控CPU向LCD串行发送数据或指令

uidata 

待发送数据或指令;

uimark 

数据或指令标志,1为指令,0为数据

voidLCD_Serial_Send(uint8uidata,uint8uimark)

uint8uiComorData;

switch(uimark)

case0:

uiComorData=0xfa;

break;

case1:

uiComorData=0xf8;

SPI_SPDR=uiComorData;

//写入SPI数据寄存器,发送数据或指令判断控制字

while((SPI_SPSR&

0x80)==0);

//等待发送完毕(SPIF传输完成标志置位)

delay

(1);

SPI_SPDR=(uidata&

0xf0);

//写入SPI数据寄存器,启动发送高4位

while((SPI_SPSR&

delay

(1);

SPI_SPDR=((uidata&

0x0f)<

4);

//写入SPI数据寄存器,启动发送低4位

LCD_Initial

LCD初始化

voidLCD_Initial() 

//LCD初始化

LCD_Serial_Send(0x30,1);

//功能设置:

基本指令集

LCD_Serial_Send(0x04,1);

//点设定:

显示字符/光标从左到右移位,DDRAM地址加1

LCD_Serial_Send(0x0c,1);

//显示设定:

开显示,不显示光标位置

LCD_Serial_Send(0x01,1);

//清DDRAM

LCD_Serial_Send(0x02,1);

//DDRAM地址归位

LCD_Serial_Send(0x80,1);

//显示地址设置

LCD_Erase

清LCDDDRAM寄存器

voidLCD_Erase()

LCD_Serial_Send(0x01,1);

LCD_Position_Select

选择LCDDDRAM地址

uiline,uirow显示行和列的值

voidLCD_Position_Select(uint8uiline,uint8uirow)

if(uiline==1)

uiDisp_Addr=0x80+uirow-1;

elseif(uiline==2)

uiDisp_Addr=0x90+uirow-1;

elseif(uiline==3)

uiDisp_Addr=0x88+uirow-1;

else

uiDisp_Addr=0x98+uirow-1;

LCD_Disp_Char

**Descr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1