tft每日頭條

 > 圖文

 > stm32驅動lcd電路

stm32驅動lcd電路

圖文 更新时间:2024-10-16 04:04:38

大家好,我是老耿,高職青椒一枚,一直從事單片機、嵌入式、物聯網等課程的教學。對于高職的學生層次,同行應該都懂的,老師在課堂上教學幾乎是沒什麼成就感的。正是如此,才有了借助頭條平台尋求認同感和成就感的想法。在這裡,我準備陸續把自己花了很多心思設計的教學課件分享出來,如果您正是一名單片機愛好者或是一名同行,歡迎點贊 關注,各位的支持是本人持續輸出的動力,多謝多謝!#30天學會STM32##單片機#

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)1

前邊我們講解了LED、按鍵和蜂鳴器的應用,這三類器件本身工作原理十分簡單,因此我們的重點是放在STM32的GPIO上面。這一章我們來學習一下開發闆配套的那塊厚厚的液晶屏——LCD1602,聚焦的是這個器件本身的特點和工作時序。因此,我們需要熟讀它的數據手冊,因為手冊裡告訴了編程的要點、參數、時序等。閱讀器件手冊是做單片機和嵌入式開發必備的基本能力,我們就從這一章開始鍛煉起來吧。為了不讓篇幅太長,本章打算分四個部分來講解,本文是第四部分。

【學習目标】

  1. 了解LCD1602的工作原理
  2. 掌握LCD1602的工作時序
  3. 領悟軟件模拟時序的思路和方法

四、字符跳動顯示實驗

我們在前面的液晶指令描述中可以看到,LCD1602還支持光标和屏幕移動,下面我們就通過兩個實驗來感受一下動态顯示的效果。

4.1 任務描述

這個實驗是讓字符串裡的每個字符逐個跳出來顯示,我們将實驗效果分解在圖18中,中間部分做了一些省略,同時也通過視頻進行了展現。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)2

圖18 字符跳動顯示效果

4.2 工程源碼剖析

對于底層的lcd1602.c和lcd1602.h驅動文件來說,我們盡量不去改動。控制字符跳出的代碼在主程序裡實現,見如下代碼清單15。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)3

代碼清單15 字符跳動顯示主程序源碼

五、液晶滾動顯示實驗5.1 任務描述

這個實驗是讓整個屏幕畫面整體向左或向右滾動顯示,我們将實驗效果分解在圖19中,中間部分做了一些省略,同時也通過視頻進行了展現。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)4

圖19 液晶滾動顯示效果

5.2 工程源碼剖析

同理,還是隻修改主程序裡的控制代碼,見如下代碼清單16。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)5

代碼清單16 液晶滾動顯示主程序源碼

六、液晶顯示功能的擴展

在上面的實驗中,我們通過Lcd1602_ShowStr()函數實現了字符串信息的顯示。但不知你是否考慮過,倘若顯示的内容不是字符的類型,比如傳感器采集溫濕度值、ADC采集的電壓值等,這些數據都是浮點類型的,也想通過液晶顯示出來,該如何處理呢?

針對以上問題,我們補充一個顯示函數Lcd1602_printf(),來實現多種數據類型的顯示,就像使用printf()函數那樣,可以通過%d、%f、%s這樣的形式來指定顯示内容的數據類型。該函數用到了C語言中解決變參問題的操作方式,想詳細了解這部分知識的同學請自行搜索查閱,這裡不展開。源碼見如下代碼清單17。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)6

代碼清單17 Lcd1602_Printf()函數源碼

有了這個函數,我們就可以在主程序中像使用printf()函數那樣在液晶屏上“打印”需要的内容了,代碼清單18給了一個簡單示例。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)7

代碼清單18 使用帶變參顯示函數示例

可以看到,帶變參的Lcd1602_Printf()函數更靈活通用,使我們不必再糾結顯示内容究竟是什麼數據類型,這是它的優勢。那有沒有劣勢呢?當然有了,在顯示同樣内容的情況下,使用Lcd1602_Printf()函數比用Lcd1602_ShowStr()函數編譯出來的代碼量大了不是一點兒,如圖20所示。

stm32驅動lcd電路(我在高職教STM32LCD液晶顯示)8

圖20 編譯的代碼量對比

(第四部分完,共四部分)

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved