77范文网 - 专业文章范例文档资料分享平台

STM32的LCD19264-12864经典程序

来源:网络收集 时间:2018-12-08 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

现在STM32越来越流行,在学校搞的很火,本人最近也在学习,做了一个LCD19264的程序,先与大家分享,多谢关注!

本程序是有LCD12864该进的,液晶驱动为ST7920。可以稍微改动即可用于12864

一、以下是LCD19264头文件

////////////////////////////////////////////////////////////////////////////////

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

* 函数功能:STM32F103VET6 19264-1液晶显示 ,串---并口19264 * 编写时间:2012.07.22 * 作 者:ZhouGanJin * 版 本:V1.1

* 液晶19264-1简介: 并口不多说;串口引脚4根 RW(SID),E1(CLK1),E2(CLK2),PSB=0, RS(CS)=1,

* 通过预编译选择串并口方式

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

#ifndef _LCD19264_H #define _LCD19264_H

/* 端口定义 --------------------------- 本程序只用了GPIOA -----------------------------------*/ /* 函数申明 ---------------------

STM32配置和19264函数声明 -------------------------------*/

#define LCD_RS_H

GPIO_SetBits(GPIOA, GPIO_Pin_0) //GPIOA->BSRR=GIOP_pin_0

#define LCD_RS_L GPIO_ResetBits(GPIOA, GPIO_Pin_0) //GPIOA->BRR=GIOP_pin_0 #define LCD_RW_H GPIO_SetBits(GPIOA, GPIO_Pin_1) #define LCD_RW_L GPIO_ResetBits(GPIOA, GPIO_Pin_1) #define LCD_E1_H GPIO_SetBits(GPIOA, GPIO_Pin_2) #define LCD_E1_L GPIO_ResetBits(GPIOA, GPIO_Pin_2) #define LCD_E2_H GPIO_SetBits(GPIOA, GPIO_Pin_3) #define LCD_E2_L GPIO_ResetBits(GPIOA, GPIO_Pin_3) #define LCD_PSB_H GPIO_SetBits(GPIOA, GPIO_Pin_4)

#define LCD_PSB_L GPIO_ResetBits(GPIOA, GPIO_Pin_4)

#define LCD_DATA_PORT GPIOD

#define LCD_DATA GPIOD->BSRR

//BSRR高十六位是复位,低十六位是置位

void Lcm_Wr_Dat(u8 wrdata,u8 enable); //写数据

void Lcm_Wr_Com(u8 wrcommand,u8 enable); //写指令 void Lcm_Rd_Status(u8 enable);//读忙状态

void Lcm_Init(u8 enable); //液晶初始化

void Lcm_GotoXY(u8 pos_X,u8 pos_y); //设定坐标 void Lcm_SETXY(u8 pos_X,u8 pos_y,u8 enable);

void Lcm_Disp_Char(u8 onechar,u8 enable);//显示单个字符

void Lcm_Disp_Char_setxy(u8 x,u8 y,u8 ch,u8 enable); //定坐标显示单个字符 void Lcm_Disp_Str(u8 *string,u8 enable);//显示字符串

void Lcm_Disp_Str_setxy(u8 x,u8 y,u8 *strings,u8 enable);//定坐标显示字符串

void Delay_ms(u32 m);//1ms延时 void Lcm_Delay(void);

/*function all ------函数定义-------------

以下函数包含19264液晶的串并行方式 ----------------------------------------*/

#define PSB_SERIAL 0 #ifdef PSB_SERIAL

// -------以下为串口函数-------- serial transmission------/// //-----------传送8bits 数据----

void Send_byte(u8 bbyte,u8 enable) {

u8 i;

for(i=0;i<8;i++) {

LCD_E1_L; LCD_E2_L;

if(0x80&bbyte) LCD_RW_H;

else LCD_RW_L; if(!enable)

//CLK = 01

; 串行用下降沿

//SID=1;

}

{ } else { }

bbyte<<=1;

//?

LCD_E2_H; Lcm_Delay(); LCD_E2_L;

LCD_E1_H; Lcm_Delay(); LCD_E1_L;

Lcm_Delay(); }

//-----------写指令函数 ----

void Lcm_Wr_Com(u8 wcomd,u8 enable) {

Lcm_Delay(); Send_byte(0xf8,enable); //1111_1,RW(0),RS(0),0 -----------指令 }

Send_byte(0xf0&wcomd,enable); //high 4bits Send_byte(0xf8&(wcomd<<4),enable); //low 4bits

//-----------写数据函数 ----

void Lcm_Wr_Dat(u8 wdata,u8 enable) {

Lcm_Delay(); Send_byte(0xfa,enable); //1111_1,RW(0),RS(1),0 ---------数据 Send_byte(0xf0&wdata,enable); //high 4bits }

Send_byte(0xf8&(wdata<<4),enable); //low 4bits

#else

// -------以下为并口函数-------- parallel Transmission-------///

//---------读忙函数----------------

void Lcm_Rd_Status(u8 enable) {

u16 getd;

while(1) {

Lcm_Delay();

}

LCD_RS_L; //命令

LCD_RW_H; //读取 Lcm_Delay();

//LCD_DATA=0xFFFF0000; //LCD_DATA=0xFF; 高16位为复位,即写入0使其不忙 GPIO_Write(LCD_DATA_PORT, 0XFFFF) ; //准备读取数据 , 写0x0000则与上相同 Lcm_Delay(); }

if(!enable) { }

LCD_E1_L; Lcm_Delay(); LCD_E1_H;

getd=GPIO_ReadInputData(LCD_DATA_PORT); if((getd&0x0080)==0) break;

else { LCD_E2_L; }

Lcm_Delay(); LCD_E2_H;

if((getd&0x0080)==0) break;

//-----写指令----------------

void Lcm_Wr_Com(u8 wcomd,u8 enable) {

Lcm_Rd_Status(enable); Lcm_Delay(); LCD_RS_L; Lcm_Delay(); LCD_RW_L; Lcm_Delay();

LCD_DATA=wcomd|(~wcomd<<16); Lcm_Delay(); if(!enable) {

LCD_E1_H; Lcm_Delay(); LCD_E1_L;

//

}

else { LCD_E2_H; Lcm_Delay(); }

LCD_E2_L;

// Lcm_Delay(); }

//------写数据----------------

void Lcm_Wr_Dat(u8 wdata,u8 enable) { }

Lcm_Rd_Status(enable); Lcm_Delay(); LCD_RS_H; Lcm_Delay(); LCD_RW_L; Lcm_Delay();

LCD_DATA=wdata|(~wdata<<16); Lcm_Delay(); if(!enable) { LCD_E1_H; Lcm_Delay(); }

LCD_E1_L;

else { LCD_E2_H; }

Lcm_Delay(); LCD_E2_L;

#endif

//----选定坐标,全屏选择---------- void Lcm_GotoXY(u8 pos_x,u8 pos_y) {

u8 addr;

if((pos_x>11)||(pos_y>1)) return;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库STM32的LCD19264-12864经典程序在线全文阅读。

STM32的LCD19264-12864经典程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/352935.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: