蓝桥基础之硬件配置(三)——LCD函数使用

蓝桥基础之硬件配置(三)——LCD函数使用

~QQ:3020889729

~小蔡

LCD主要函数介绍

第一部分LCD常用函数:

void STM3210B_LCD_Init(void);//LCD初始化函数
//初始化函数在比赛时是放在题目里的
void LCD_SetTextColor(vu16 Color);//设置字符显示颜色
void LCD_SetBackColor(vu16 Color);//设置LCD屏背景颜色

void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);//显示单个字符的显示函数
void LCD_DisplayStringLine(u8 Line, u8 *ptr);//显示字符串的显示函数

void LCD_ClearLine(u8 Line);//行清除
void LCD_Clear(u16 Color);//整页刷新

第二步·LCD函数的使用

详——见代码
u8 string[20];//显示字符串
//1
LCD_SetTextColor(Red);//设置红色字体
LCD_DisplayStringLine(Line2, string);//在第三行显示字符串内容
LCD_ClearLine(Line2);//清除第三行内容
LCD_Clear(Blue);//蓝色刷新LCD页面
//2
LCD_SetBackColor(Black);//设置LCD屏的背景色为黑色
//3
LCD_DisplayChar(Line2,319-16*2,'A');//在第二行从左到右第2*16列处开始显示字符A

第三步·LCD函数参数的了解

//函数中行参数的定义——共10行——0到9,每行显示,占据24‘行’的显示位置
#define Line0          0
#define Line1          24
#define Line2          48
#define Line3          72
#define Line4          96
#define Line5          120
#define Line6          144
#define Line7          168
#define Line8          192
#define Line9          216

//可以设置的颜色参数
#define White          0xFFFF
#define Black          0x0000
#define Grey           0xF7DE
#define Blue           0x001F
#define Blue2          0x051F
#define Red            0xF800
#define Magenta        0xF81F
#define Green          0x07E0
#define Cyan           0x7FFF
#define Yellow         0xFFE0

LCD显示的一些问题

① 怎样实现显示的字符串中含有我们需要的参数信息:
这就需要我们添加一个头文件#include "stdio.h" ,这样就可以使用一个叫 sprintf 的函数来指定组合一个字符串。
#include "stdio.h"
u8 A=5;
u8 string[20];//显示字符串

sprintf((char*)string," A is %d ",A);//这样就得到一个字符串为: A is 5 
LCD_DisplayStringLine(Line2, string);//在第三行显示字符串内容
//这样就显示了指定的字符串。

②单个字符的显示问题:
字符单个显示,需要用到字符显示函数,而这个函数的参数主要是在显示指定字符和指定位置上,也许大家不是那么清楚。
u8 B=3;
LCD_DisplayChar(Line2,319-16*2,B+'0');//显示出来的就是在从左边数2*16位置开始显示1个5

//因为该函数显示是按照ASCLL码显示的,所以如果参数不是字符(而是当前这样的1个数字)就需要加上一个0x30或者
干脆就加字符‘0’,这样就实现了某个位置显示单个数字。

在这里插入图片描述

③显示颜色问题:
每一次刷新显示字符串或者单个字符时,我们都可以进行对应的字符字体颜色的设置。(平时无要求或者题中无需高显高
亮时就无需管,设置一次字体颜色就好——如一开始就使用 LCD_SetTextColor(Red);//设置红色字体,后边无另外的设
置的话,就都是显示红色的字符了。)
u8 string[20];//显示字符串

LCD_SetTextColor(Red);//设置红色字体
LCD_DisplayStringLine(Line2, string);//在第三行显示字符串内容——为红色

LCD_SetTextColor(Green);//设置绿色字体
LCD_DisplayStringLine(Line2, string);//在第三行显示字符串内容就变——为绿色

LCD_SetTextColor(Red);//设置红色字体
LCD_DisplayChar(Line2,319-16*2,'A');//在第二行从左到右第2*16列处开始显示字符A
LCD_SetTextColor(Green);//设置绿色字体
LCD_DisplayChar(Line3,319-16*2,'B');//在第三行从左到右第2*16列处开始显示字符B
LCD_SetTextColor(Yellow);//设置黄色字体
LCD_DisplayChar(Line4,319-16*2,'C');//在第四行从左到右第2*16列处开始显示字符C
//这样就获得了3个颜色的三个不同字符——A(红)-B(绿)-C(黄)

结束

这就是简单的LCD函数使用了,希望对大家有所帮助。
还有其它的问题,也可以互相讨论,联系交流一下。
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
/* ************************************************ * File name: Display_DS1302.c * Function: 设置初始时间并从DS1302中读取时间并且在LCD21602中显示 * Description: * ************************************************/ #include #include #include #include #define SET_1(a,b) a|=(1<<b) #define CLE_0(a,b) a&=~(1<0; i-- ) //循环8次移位 { SCLK_0; temp = addr; if(temp&0x01;) DIO_1; //每次传输低字节 else DIO_0; addr>>= 1; //右移一位 SCLK_1; } //发送数据 for (i=8;i>0;i-- ) { SCLK_0; temp=dat; if(temp&0x01;) DIO_1; else DIO_0; dat>>=1; SCLK=1; } RST_0; } /******************************************* *函数名称: Read1302 ( ) *说 明: *功 能: 数据读取子程序 *参 数:读取的地址 *返回值 : 时间数据 *注意事项: ********************************************/ unsigned char Read1302(unsigned char addr) { unsigned char i,temp,dat1,dat2; RST_0; SCLK_0; RST_1; //发送地址 for(i=8;i>0;i-- ) //循环8次移位 { SCLK_0; temp=addr; if(temp&0x01;) DIO_1; //每次传输低字节 else DIO_0; addr>>=1; //右移一位 SCLK_1; } //读取数据 for( i=8;i>0;i--) { if(OUT) tempdate|=0x80; else tempdate&=0x70; SCLK_0; tempdate>>=1; SCLK_1; } RST_0; dat1=tempdate; dat2=dat1/16; //数据进制转换 dat1=dat1; //十六进制转十进制 dat1=dat1+dat2*10; return (dat1); } /******************************************* *函数名称: Initial() *说 明: *功 能: DS1302时间初始化 *参 数: *返回值 : 无 *注意事项: ********************************************/ void Initial(void) { Write1302 (WRITE_PROTECT,0X00); //禁止写保护 Write1302 (WRITE_SECOND,0x56); //秒位初始化 Write1302 (WRITE_MINUTE,0x34); //分钟初始化 Write1302 (WRITE_HOUR,0x12); //小时初始化 Write1302 (WRITE_PROTECT,0x80); //允许写保护 }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL not error

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值