天天看點

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

九、LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

  在上文中我們終于實作了一個簡單版的無線滾動屏!本節對其工程進行詳細講解——

工程概述

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

keil u5 PK51IDE

無線顯示屏采用藍牙序列槽透傳子產品和LCD1602液晶顯示子產品

單片機采用STC89C51單片機

實作上位機通過序列槽助手發送一行msg,其在LCD屏上顯示出來

要求msg長度小于32

更多詳情請見前兩節内容

1、LCD1602封裝——LCD1602.C内部封裝(一般不要改動)用的時候隻需要根據平台重新修改.h内的宏定義即可

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

下面是一些基于LCD1602基本通信函數封裝的功能函數:

void LCD1602_Clear(void)//clear screen  是清屏函數

void LCD1602_WriteChar(t_uc x,t_uc y,t_uc temp_data)//(x,y),data,ascill  是控制在16X2的LCD顯示屏上某個位置(x,y)顯示一個字元temp_data的函數

   void LCD1602_WriteString(t_uc x,t_uc y,t_uc *s)//(x,y),string data  是在第一行(y==0)或在第二行(y==1)的第x個位置顯示一個字元串s,不支援自動換行

   void LCD1602_ShowMessage(t_uc from,t_uc *s,t_uc delay_ms)//from(0~31),msg,each char delay time  是從0~31顯示屏的某個位置開始顯示完字元串s,并且顯示每個字元間隔時間delay_ms,這裡字元串不能超出屏的範圍!

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

2、LCD1602封裝——LCD1602.h根據平台重新修改.h内的宏定義适應不同硬體平台

下面是根據AT89C52的平台特性對宏進行的修改,由于51單片機引腳操作比較簡單,且支援讀寫,無需切換屬性~是以下面部分宏定義的功能可以不定義~但是對于STM32就比較複雜了!正因如此,我STM32的封裝也沒想到一個比較好的處理方式,在我的工程裡有基于STM32宏定義修改,不過存在問題,如果今後要用,一定要修改好!!!

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

3、工程整體邏輯簡單梳理

main函數中不斷檢測序列槽是否發來有效資料(暫且把一行當為有效資料),一旦有效資料到來就調用ShowMessage顯示出來~

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

序列槽中斷是每收到一行置flag标志位為1,一旦point超過getByte大小就從0開始填充~

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)
如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

小結&接下來計劃:

  終于,我們把LCD1602的驅動封裝好了!并且修改了之前子產品化子產品的想法,引入新的設計方式——子產品化功能元件的方式(功能元件一般有單片機、通信子產品加傳感器、顯示器、按鍵或者機械裝置組成)。

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

子產品化子產品:之前目标是對每個子產品封裝,使子產品靈活适應各種組合(MCU+POWER+X1+X2+...)

子產品化功能塊:現在是分出基礎部分(MCU+POWER+radio)+一個變動部分=構成功能塊

  是以,接下來我們将會涉足"X-OS"比較重要的一塊——基礎部分中的無線通信基礎部分。而我們首先嘗試的将是最赤裸的24L01無線2.4G通信子產品驅動的封裝!請持續關注~

如何為程式設計愛好者設計一款好玩的智能硬體(九)——LCD1602點陣字元型液晶顯示子產品驅動封裝(下)

[三個關鍵檔案夾說明]

第一個是:LCD1602封裝上參考的幾個例程 

第二個是:(上)參考的datasheet 

第三個是:(下)中的工程

@beautifulzzzz

  2015-10-02 持續更新中~

本文轉自beautifulzzzz部落格園部落格,原文連結:<b>http://www.cnblogs.com/zjutlitao/p/4852401.html</b>,如需轉載請自行聯系原作者

繼續閱讀