资源简介
这个程序是用于stm32F407 驱动 12864 LCD使用的,lcd是带有中文字库版本的lcd。 关于这份代码 请参考我的csdn博客 https://jeason.blog.csdn.net/article/details/99691445 有问题您可以在博客下留言,我会尽快回复您的
代码片段和文件信息
#include “LCD12864.h“
#include “delay.h“
#define LCD_12864_RS PCout(0)
#define LCD_12864_RW PCout(1)
#define LCD_12864_EN PCout(2)
void LCD_12864_show_string(u8 x u8 yu8 *str)
{
LCD_12864_pos(xy);
while(*str != 0)
{
LCD_12864_write_data(*str);
str ++;
}
}
void LCD_12864_show_int(u8 xu8 yint numu8 len)
{
u32 temp=1;
u8 i=0;
LCD_12864_pos(xy);
if(num <0)
{
LCD_12864_write_data(‘-‘); //显示符号
num *=-1;
}
for(i=0;i temp *=10;
for(i=0;i {
if(num == 0)
break;
LCD_12864_write_data((num/temp)+‘0‘);
num%=temp;
temp/=10;
}
}
void LCD_12864_show_float(u8 x u8 y float num u8 len1 u8 len2)
{
int num_int=0;
float num_decimal;
u32 temp=1;
u8 icnt =0enshow = 0;
u8 show_str[20];
show_str[len1 +len2+1] =0; // 结束符
num_int = (int)num;
if(num < 0) show_str[cnt++] = ‘-‘;// 显示正负号
num *=-1;
for(i=0;i for(i=0;i {
if(enshow == 0 && (num_int/temp != 0) ) // 从第一个不等于0的数字开始
enshow=1;
if(enshow)
{
show_str[cnt++] = num_int/temp +‘0‘;
}else
{
show_str[cnt++] = ‘ ‘; // 填充空格
}
num_int %= temp;
temp /=10;
}
num_decimal = num-num_int; // 取出小数部分
if(show_str[cnt-1] == ‘ ‘)show_str[cnt-1] =‘0‘;
show_str[cnt++] = ‘.‘; // 填充小数点
temp = 1;
for(i=0;i num_decimal *= temp;
num_int = (int)num_decimal;
for(i=0;i {
show_str[cnt++] = num_int/temp +‘0‘;
num_int %= temp;
temp /=10;
}
LCD_12864_show_string(xyshow_str);
}
void LCD_12864_show_HEX(u8 x u8 y u32 num u8 len);
void LCD_12864_show_bin(u8 x u8 y u32 num u8 len);
/*LCD_12864_pos
设置 显示的位置
*/
void LCD_12864_pos(u8 X u8 Y)
{
u8 pos;
if (Y==0)
{Y=0x80;}
else if (Y==1)
{Y=0x90;}
else if (Y==2)
{Y=0x88;}
else if (Y==3)
{Y=0x98;}
pos = X+Y ;
LCD_12864_write_command(pos);// 显示地址
}
/*LCD_12864_write_command
向12864 写指令
*/
void LCD_12864_write_command(u8 cmd)
{
LCD_12864_check_busy();
LCD_12864_RS = 0;
LCD_12864_RW = 0;
delay_us(500);
LCD_DB_OUT(cmd);
LCD_12864_EN = 1;
delay_us(500);
LCD_12864_EN = 0;
}
/*LCD_12864_write_data
向 12864 写数据
*/
void LCD_12864_write_data(u8 data)
{
LCD_12864_check_busy();
LCD_12864_RS = 1;
LCD_12864_RW = 0;
delay_us(500);
LCD_DB_OUT(data);
LCD_12864_EN = 1;
delay_us(500);
LCD_12864_EN = 0;
}
/*LCD_12864_clean_screen
清屏
*/
void LCD_12864_clean_screen(void)
{
LCD_12864_write_command(0x01);
delay_us(500);
}
/*LCD_12864_clean_gdram
清除 GDRAM缓存
*/
void LCD_12864_clean_gdram(void)
{
unsigned char xy ;
for(y=0;y<64;y++)
for(x=0;x<16;x++)
{
LCD_12864_write_command(0x34);
LCD_12864_write_command(y+0x80);
// 行地址
LCD_12864_write_command(x+0x80);
// 列地址
LCD_12864_write_command(0x30);
LCD_12864_write_data
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-08-17 17:51 LCD12864\
文件 5150 2019-08-17 15:04 LCD12864\LCD12864.c
文件 3016 2019-08-17 13:11 LCD12864\LCD12864.c.baiduyun.uploading.cfg
文件 690 2019-08-17 12:38 LCD12864\LCD12864.h
相关资源
- 四线两相步进电机控制 Stm32F407 定时
- 基于STM32F407的 DMA + DAC 定时器触发实现
- 基于MSP430的LCD12864描点程序
- ADS1256 包含.c.h文件 stm32f407 SPI
- stm32 f407 各个模块引脚整理
- STM32F407系列ZG/VG/IG原理图封装全
- stm32单片机lcd12864串行程序
- STM32F407 标准库 实现6路串口配置,D
- STM32F407 ADC1双通道采样,DMA传输程序库
- LCD12864取模软件
- 基于msp430和12864的超声波测距
- STM32F407最小系统板(SWD口)
- STM32F103C8T6 LCD12864 串行通信
- STM32F407 485 MODBUS
- msp430G2553测各种波形的频率和幅度并显
- 基于proteus仿真的LCD12864的驱动程序
- stm32F407光电编码器代码
- LCD12864仿真
- STM32F407W5500
- 基于proteus仿真单片机贪吃蛇程序在
- 利用AT89C51对LCD12864的控制
- LCD12864中文资料带汉字库
- LCD12864(KS0108) C51程序
- 基于STM32F407的OTM8009液晶显示驱动
- 单片机GPS接收LCD12864显示Keil程序
- msp430g2553和LCD12864的串行显示代码
- 基于单片机和LCD12864的简易计算器
- STM32F407驱动AD7606的8路16位AD同步采样含
- 基于单片机万年历+温度+LCD12864 prote
- Verilog HDL编写的FPGA LCD12864液晶显示代
评论
共有 条评论