天天看點

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

  已經有好一陣子沒寫了,一方面是因為最近閑雜的事特多,另一方面(主要方面)是因為我卡在了LCD1602驅動的權衡上面——總共3個控制線和一個8位并行的資料線,放在51這種引腳直接使用的8位單片機上驅動代碼非常簡潔;放在CC2541這種引腳需要提前聲明屬性,并且引腳屬性分輸入和輸出兩種,其驅動代碼就稍微複雜;等到将其移植到STM32F103上的時候,整個代碼已經不能看了!我先基于51平台寫其驅動,然後擴充寫CC2541,最後準備攻克STM,結果代碼亂到不想看~由此,我想如果強行地去适應各種硬體平台,不如根據不同得組合場景寫不同的代碼,強扭的瓜不甜,是以接下來計劃有變→_→!

  遂思忖良久,終醍醐灌頂——maybe 51和LCD1602更配哦~following:

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

用MCU+LCD+無線構成一個無線顯示子產品

而不拘泥于之前得用一個子產品強硬地去适應各種平台的做法

本節嘗試做一個最簡單的無線顯示屏,然後在接下來幾節不斷完善做出讓你大吃一驚的無線顯示屏

1、本節的無線顯示屏的樣子 

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

  由于LCD1602屏分為上下兩行,每行可顯示16個字元(ASCII),為了達到較好的顯示效果(我從老式新聞聯播下面的消息滾動得來靈感),決定嘗試做一個滾動的顯示屏~

2、先做個滾動顯示屏

第一種滾屏方式:雙行雙資訊

<a></a>

  該種方式中6-20行先将要顯示的兩行内容分别存儲到LCD1602非顯示區的記憶體處,然後在22-26行通過左移指令将未顯示區資料拉到顯示區顯示,進而達到滾動效果!該種顯示效果是同時利用兩行向左滾動資訊的方式,但是兩行必須同時滾動,不太理想~

第二種滾屏方式:雙行滾一資訊,滿屏清屏

  

  此種顯示方式是将下面的一個名人名言滾動顯示出來——

uchar code table [] = "I want to bring ";

uchar code table1[] = "out the secret ";

uchar code table2[] = "of nature and ";

uchar code table3[] = "apply them for ";

uchar code table4[] = "the happiness of";

uchar code table5[] = "man.I don't know";

uchar code table6[] = "of any better s-";

uchar code table7[] = "-ervice to offer";

uchar code table8[] = "for the short t-";

uchar code table9[] = "-ime we are in ";

uchar code table10[] = "the world. ";

uchar code table11[] = "---Thomas Edison";

  每次寫另一行資料時會調用write_com(0x80)或write_com(0xC0)指令重新調整字元顯示位置指針,當執行寫0x80之後,再寫資料就會依次寫入0x80,0x81....中(即第一行的從左往右的資料),當寫0xC0之後,再寫資料将會依次寫入0xC0,0xC1....(即第二行的從左往右的資料),每次兩行資料都寫過之後寫入0x01清屏,進入下次資料寫入環節~該滾動效果符合正常閱讀習慣——從上到下,從左到右

3、開工做無線滾動屏     

  經常讀我文章的朋友可能知道我寫這個無線滾動顯示屏的制作肯定會以藍牙序列槽透傳子產品作為切入點——因為藍牙序列槽透傳子產品隻要簡單連線就能像操作序列槽一樣來實作藍牙無線傳輸資料了,我在這方面也花了比較多的筆墨介紹它——

 下面是以前寫的藍牙序列槽透傳的各種應用:

最終效果預覽  

綜上,我們實作序列槽發送也就很友善利用藍牙透傳實作無線屏

是以,我們隻要實作在上位機序列槽助手上發送一個字元串,能夠在LCD1602顯示屏上顯示出來就算完成了制作一個最簡單的無線顯示屏的任務了!

由于,今天有點晚,是以先來個效果預覽,具體工程明天再細講!

@beautifulzzzz

  2015-10-1 持續更新中~

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

繼續閱讀