资源简介
这个程序是用于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上的两个can发送和接收例程
- lcd12864的VHDL程序
- LCD12864滚动显示
- STM32 电子密码锁设计,LCD12864显示
- STM32 LCD12864并口驱动实验
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32F407 串口配置 串口1~6 六串口同时
- STM32F407_6个串口同时使用的代码
- STM32F407实时时钟_DS1302实时时钟模块和
- stm32f407读写flash的demo,基于正点原子
- 基于STM32F407的视频采集与传输系统设
- Lcd12864大时钟万年历 农历生肖温度
- LCD12864驱动程序 带字库版本ST7920内含
- LCD12864驱动程序 并口通信,带字库版
- STC89C52+LCD12864+18B20+1302万年历
- STM32F407ZG_ESP8266例程
- 带字库LCD12864ST7920的Proteus仿真
- Keil5下的STM32F407程序
- USART基于hal库stm32f407串口通讯.rar
- 完整的STM32F407_MODBUS通信工程代码。
- STM32指针式时钟工程项目
- stm32f407和摇杆制作的控制手柄代码
- STM32F407. 基于PID速度环的步进电机速度
- STM32F407 基于232或485的57&42;步进电机旋
- STM32F407与OV2640的二维码识别实验
- stm32f407+ov5640颜色识别与追踪
- NRF24L01收发程序STM32F407
- uCOS-III+STemWin+Fatfs+usb在STM32F407上成功移
- STM32F407串口1-6 CAN1&2测试例程
- 基于STM32F407的MLX90614驱动程序(寄存器
评论
共有 条评论