• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: LCD12864  stm32F407  

资源简介

这个程序是用于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

评论

共有 条评论