藍橋杯嵌入式——簡單玩轉LCD應用

藍橋杯嵌入式——簡單玩轉LCD應用

作者:閆永成  QQ:793805481

  在藍橋杯比賽中,考場會提供液晶驅動參考例程,所以我們不用再去寫LCD顯示屏的代碼,直接去調用即可。

lcd.c和lcd.h文件

一些常用函數

在這裏插入圖片描述
  在這裏,我們只需要介紹一些常用函數,然後會使用就可以了。

1.LCD初始化函數,在使用LCD前,必須先對其初始化。

void STM3210B_LCD_Init(void);

2.字體顏色設置函數,參數爲:Blue,White,Red等顏色,首字母大寫。

void LCD_SetTextColor(vu16 Color);

3.設置字體背景顏色,參數同上。

void LCD_SetBackColor(vu16 Color);

4.擦除行函數,參數爲Line0,Line1,Line2等,LCD顯示屏共有0—9十行。

void LCD_ClearLine(u8 Line);

5.清屏函數,參數爲顏色,即清屏後屏幕爲相應顏色

void LCD_Clear(u16 Color);

6.顯示一個字符,參數分別爲:行(0—9) 列(共319列)要顯示字符的ASCII值。

void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);

例如:LCD_DisplayChar(Line4, 319-176, 'A');
第一個參數就是第四行,第二個參數是多少列,因爲LCD共319列,如果把列設置爲0的話,它是從右邊開始顯示的,爲了看着方便,319-176,表示的是,我想讓紅色的“A”顯示在左起的第176列。

7.顯示一串字符串,參數爲: 行,字符串地址。(每行最多20個字符)

void LCD_DisplayStringLine(u8 Line, u8 *ptr);

  瞭解了這些函數,在使用LCD屏顯示內容時,直接在主函數調用即可。

補充:

1.顯示字符串

當我們用void LCD_DisplayStringLine(u8 Line, u8 *ptr);顯示字符串時,有一定的侷限。
比如,當我們直接顯示一串英文字母時可以通過LCD_DisplayStringLine(Line3,(u8*) " Zhang");直接顯示。

但是,當我們要顯示變量的值時就沒法直接顯示。這時,我們需要調用一個sprintf()函數(這個函數在stdio.h中聲明,需要先包含頭文件)。

舉個例子:

u8 temp =15;//變量
sprintf((char*)string,"temp=%d ",temp);//通過此函數,將字符串”temp=15"賦值給string這個字符數組
LCD_DisplayStringLine(Line8,string);//顯示

這樣,我們就能顯示一些變量的值了。關於sprintf()函數,有不太理解的,可以百度一下。

2.高亮顯示某行

高亮顯示,簡單來說就是把某一行用較爲鮮豔的顏色顯示。比如,其他行都用藍色字體時,高亮顯示行可以用綠色或紅色實現。

LCD_SetTextColor(Blue);
LCD_DisplayStringLine(Line2,(u8*)"     Setting   ");//普通行
					 
sprintf((char*)LCD_Str,"     T_compare: %dC  ",T_compare);
LCD_DisplayStringLine(Line4,LCD_Str);//普通行
LCD_SetTextColor(Green);//改變高亮顏色
sprintf((char*)LCD_Str,"     H_cpmpare: %d%%  ",H_cpmpare);
LCD_DisplayStringLine(Line6,LCD_Str);//高亮顯示行
LCD_SetTextColor(Blue);//改變回普通顏色
					
sprintf((char*)LCD_Str,"Remember_Delay:%ds  ",Remember_Delay);
LCD_DisplayStringLine(Line8,LCD_Str);//普通行
	   
sprintf((char*)LCD_Str,"Ceshi_Fre: %.1fKHz  ",Ceshi_Fre);
LCD_DisplayStringLine(Line9,LCD_Str);//普通行

3.高亮顯示某個或某些字符

直接高亮顯示某個字符,如:

LCD_SetTextColor(Red);
LCD_DisplayChar(Line4, 319-150, 'A');

直接在第四行左邊數第150列紅色高亮顯示字符A,注意‘A’表示傳入的是A的ASCII值。

顯示某一數字變量

單個數字時直接可以像上邊那樣顯示

u8 temp=8;
LCD_DisplayChar(Line4, 319-150, temp+0x30);//+0x30結果就爲其ASCII值

多個數字時要逐位顯示,比如

dat1 = THH / 10;//十位
dat2 = THH % 10;//個位
LCD_SetTextColor(Red);
LCD_DisplayChar(Line4, 319-97, dat1+'0');//+'0'也表示其ASCII值
LCD_DisplayChar(Line4, 319-113, dat2+'0');
LCD_DisplayChar(Line4, 319-128, ':');

4.解決LCD工作時LED不能正常工作的問題。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章