基于STM32LCD12864驱动程序文档格式.docx
- 文档编号:14534143
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:18
- 大小:18.63KB
基于STM32LCD12864驱动程序文档格式.docx
《基于STM32LCD12864驱动程序文档格式.docx》由会员分享,可在线阅读,更多相关《基于STM32LCD12864驱动程序文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
LCD12864E--PD.15
#defineLCD_CONTROL_CLOCK
RCC_APB2Periph_GPIOD〃默认LCD12864的控
制口时钟
#defineLCD_DATAPORT_CLOCK
RCC_APB2Periph_GPI0D〃默认LCD12864的数
据口时钟
#defineLCD_RS_1LCD_CONTROL->
BSRR
&
二〜LCD_RS_Pin;
LCD_CONTROL->
BSRR|=LCD_RS_Pin//RS置高电平
#defineLCD_RS_0LCD_CONTROL->
BRR&
BRR|=LCD_RS_Pin//RS置低电平
#defineLCD_RW_1LCD_CONTROL->
二〜LCD_RW_Pin;
BSRR|=LCD_RW_Pin〃RW置高电平
#defineLCD_RW_0LCD_CONTROL->
BRR|=LCD_RW_Pin〃RW置低电平
#defineLCD_EN_1LCD_CONTROL->
BSRR&
二〜LCD_EN_Pin;
BSRR|=LCD_EN_Pin//EN置高电平
#defineLCD_EN_0LCD_CONTROL->
BRR
BRR|=LCD_EN_Pin//EN置低电平
#defineLCD_RESET_OLCD_CONTROL->
BRf=LCD_RESET_Pin//复位
#defineLCD_RESET_1LCD_CONTROL->
BSf=RLCD_RESET_Pin//复位脚拉高
#defineDATAOUTLCD_DATAPORT->
ODR&
=OxffOO;
LCD_DATAPORT->
ODR//数据输出寄存器
#defineDATAINLCD_DATAPORT->
DR
//数据输入寄存器
#defineLCD_BF((DATAIN)&
0x0080)
//忙状态
voidLCD_delayus(unsignedlongn);
//延时n(us)
voidLCD_delayms(unsignedlongn);
//延时n(ms)
voidLCD_WriteInitcmd(uint8_tinitcmd);
//写初始化命令
voidLCD_WaitLaisure(void);
//一直等
待到LCD内部操作完成,变为空闲状态
voidLCD_Writecmd(uint8_tcmd);
//写命
令到LCD12864
写一
voidLCD_WriteByte(uint8_tbyte);
//
字节数据到LCD12864
voidLCD_pos(uint16_tpos);
//LCD显示
位置设置
voidLCD_Setpos(uint16_trow,uint16_t
col);
//设定LCD12864勺显示地址,根据习惯voidLCD_DispChar(charch);
//显示一个字符
voidLCD_Setpos_DispChar(uint16_t
row,uint16_tcol,charch);
//在指定位置显示一个字符
voidLCD_DispString(charstr[]);
//显示
一个字符串,显示位置需提前设定
//在指定位置显示一个字符串
voidLCD_Setpos_DispString(uint16_t
row,uint16_tcol,charstr[]);
voidLCD_Dispnum(uint32_tnum);
//显示一个不超过8位的整数,显示位置需提前设置
//在指定位置显示一个不超过8位的整数
voidLCD_Setpos_Dispnum(uint16_t
row,uint16_tcol,uint32_tnum);
voidLCD_DispDecimal(uint32_tnum,uint16_t
显示位置需要提前设定
//在指定位置显示一个有效位不超过8位的浮点数
voidLCD_Setpos_DispDecimal(uint16_t
row,uint16_tcol,uint32_tnum,uint16_t
dot);
//显示日历,显示日期与时间
voidLCD_DispDateTime(uint32_t
year,uint16_tmonth,uint16_tday,uint16_thour,uint16_tmin,uint16_tsec);
voidLCD_DispPicture(constunsignedchar
picture]]);
//显示一幅图像128*64
//屏幕整体左移一格,用于滚动显示
voidLCD_ShiftLeft(void);
//屏幕整体右移一格,用于滚动显示
voidLCD_ShiftRight(void);
//清屏,清除显示
voidLCD_Clear(void);
//使光标还回原点位置
voidLCD_Return(void);
//关显示
voidLCD_Close(void);
//开显示
voidLCD_Open(void);
voidLCD_FlickerChar(uint16_trow,uint16_t
//关闭字符闪烁
voidLCD_CloseFlicker(void);
//屏幕秒闪烁一次
voidLCD_FlickerScreen(void);
voidLCD_PORT_Init(void);
//LCD连接端口初始化
配置初始
voidLCD_Init(void);
//LCD
#endif
#include"
stm32f10x.h"
#inelude"
stm32f10x_gpio.h"
LCD12864.h"
#include"
picture.h"
//延时n(us)
voidLCD_delayus(unsignedlongn)
{
unsignedlongj;
while(n--)
{j=8;
while(j--);
}
//延时n(ms)
voidLCD_delayms(unsignedlongn)
LCD_delayus(1100);
//写初始化命令
voidLCD_Writelnitcmd(uint8_tinitcmd)
LCD_RS_0;
LCD_RW_0;
LCD_EN_1;
DATAOUT|=initcmd;
LCD_delayus(600);
LCD_EN_0;
LCD_RW_1;
//一直等待到LCD内部操作完成,变为空闲状态
voidLCD_WaitLaisure(void)
uint16_tflag=0x00;
do
LCD_delayus(5);
flag=(uint16_t)LCD_BF;
}while(flag);
//写命令到LCD12864
voidLCD_Writecmd(uint8_tcmd)
LCD_WaitLaisure();
DATAOUT|=cmd;
//经过测试,取600。
550
都不可以
//写一字节数据到LCD12864
voidLCD_WriteByte(uint8_tbyte)
LCD_RS_1;
LCD_RW_O;
DATAOUT|=byte;
voidLCD_pos(uint16_tpos)
LCD_Writecmd(pos);
col)
voidLCD_Setpos(uint16_trow,uint16_t
uint16_tpos=0x00;
if(row+1>
3)pos=0x08;
if(row&
0x01)pos|=0x80;
elsepos|=0x90;
pos+=col-1;
voidLCD_DispChar(charch)
LCD_WriteByte(ch);
row,uint16_tcol,charch)
LCD_Setpos(row,col);
voidLCD_DispString(charstr[])
uint16_ti;
for(i=O;
str[i]!
='
\O'
;
i++)
LCD_WriteByte(str[i]);
row,uint16_tcol,charstr[])
LCD_DispString(str);
voidLCD_Dispnum(uint32_tnum)
charstr[12];
uint32_tq;
uint16_twei,i,j,k;
if(num>
=10000000)wei=8;
elseif(num>
=1000000)wei=7;
elseif(num>
=100000)wei=6;
=10000)wei=5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32LCD12864 驱动程序