0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機的LED類編程技巧分享

GReq_mcu168 ? 來源:未知 ? 作者:steve ? 2018-04-21 14:39 ? 次閱讀
8X8點陣

個人感覺點陣需要注意的地方有:

第一個就是驅(qū)動點陣的方式

我認為8X8點陣的驅(qū)動程序分為行掃描和列掃描兩種。

比如行掃描就是用一層for循環(huán):

先選中第一行,然后送入這一行的數(shù)據(jù),再選擇第二行,然后送入第二行數(shù)據(jù),如此循環(huán)下去,直至顯示完一個屏幕(即8行),同時記得要消隱和微延時(后面會說消隱和微延時),列掃描同理。如圖是代碼示例:

基于51單片機的LED類編程技巧分享

8X8點陣,無滾動效果

第二個就是滾動效果的實現(xiàn)。

思路是:

一:掃描函數(shù)不變,每掃描一個屏幕,所有數(shù)據(jù)移動一位;(代碼實現(xiàn)簡單)

二:數(shù)據(jù)不變,每次讀取數(shù)據(jù)的起始位置移動一位。(代碼實現(xiàn)有點難,反正我不會╮(╯▽╰)╭)

以第一種為例:

代碼實現(xiàn):實現(xiàn)滾動效果的基礎是一個掃描函數(shù)和一個數(shù)據(jù)處理函數(shù),掃描函數(shù)有兩層for循環(huán)組成:第一層for循環(huán)控制圖像每移動一次的時間間隔,然后第二層for循環(huán)顯示整個屏幕。

如圖掃描函數(shù):

基于51單片機的LED類編程技巧分享

掃描函數(shù)

滾動的重點是數(shù)據(jù)循環(huán)函數(shù)的寫法,我覺得數(shù)據(jù)處理分兩種:(僅個人愚見,新手)

第一種:

如果顯示的內(nèi)容整個點陣足以顯示(這樣的情況一般沒有),那么就不用另外寫數(shù)據(jù)處理函數(shù),直接用 intrins.h里面的 _cror_(*,*) 函數(shù)或者 _crol_(*,*)函數(shù)對數(shù)據(jù)進行循環(huán)處理就可以了.不用 <<和 >>是因為后面兩個的左右移無法循環(huán),會丟失數(shù)據(jù)。

第二種:

自然就是指顯示的數(shù)據(jù)在一張屏幕上顯示不了,從而導致需要滾動顯示。

此時就要另外寫一個數(shù)據(jù)處理函數(shù),原理很簡單,比如StreamData[80]這個數(shù)組里面存著數(shù)據(jù),那么只需將數(shù)據(jù)中的每一個數(shù)據(jù)往前(或者往后)移一位就可以了,最后將StreamData[0]移至StreamData[79]的位置就大功告成了。

注:以上兩種的掃描還是只掃描一個屏幕(當然最大就只能掃描一個屏幕嘛),每當掃描完一個屏幕,接著進行數(shù)據(jù)處理就行了。

如圖為第二種的數(shù)據(jù)處理函數(shù):

基于51單片機的LED類編程技巧分享

注:但是我這種方法比較麻煩,但是我也沒有想到其他比較好的方法,所以如果讀者有比較好的方法的話,希望可以分享一下。

對于LED燈的顯示,點亮LED的原理我就不說了,大家都懂,我說幾個小細節(jié)吧:(補上上面挖的坑)

1、微延時。

當對動態(tài)數(shù)碼管進行操作時,每點亮一位數(shù)碼管,在點亮下一個數(shù)碼管之前要進行微延時,這樣可以提高亮度,延時太久的話整體效果會大打折扣(俗稱:晃眼),但是不延時的話,亮度會很低,所以到底延時多久就取決于處理速度啦,其實到頭來還是取決于你的眼睛啦。

(不晃眼的延時就是好延時!)

2、消隱。(就是消除隱約的光,也就是重影)

消隱就是說在所有的燈寫完一次數(shù)據(jù)進行下一次數(shù)據(jù)刷新的之前要先把所有的燈滅掉,不然的話就會出現(xiàn)重影。記得我剛學的時候就總是出現(xiàn)重影,然后就改延時時間(當時不會嘛,不知道消隱這回事),怎么改都不對,直到最后找回原來的視頻、例程又看了一遍才知道要消隱。

下面是我剛開始學單片機時自己做的:

我自己做的心形燈,當時更新手,更菜,大家不要笑哈

(做那個燈的時候剛剛開始學,電阻接小了,導致太亮,眼都快瞎了....)

16X16點陣一般會用74HC595驅(qū)動,所以要涉及到其他的知識,所以這里就先不說了,下次再說。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    240

    文章

    23062

    瀏覽量

    657060
  • 單片機
    +關注

    關注

    6030

    文章

    44489

    瀏覽量

    631989
  • 編程
    +關注

    關注

    88

    文章

    3565

    瀏覽量

    93536

原文標題:51單片機--LED類編程技巧(1)

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單片機編程語言有哪些選擇

    單片機(Microcontroller Unit,MCU)編程是指為單片機編寫程序的過程,這些程序控制單片機的行為和功能。單片機廣泛應用于嵌
    的頭像 發(fā)表于 11-01 14:13 ?258次閱讀

    基于51單片機的手動數(shù)字時鐘

    按鍵,可實現(xiàn)秒復位。仿真演示視頻:基于51單片機的手動數(shù)字時鐘-仿真視頻設計介紹51單片機簡介51單片
    的頭像 發(fā)表于 10-22 14:12 ?126次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的手動數(shù)字時鐘

    基于51單片機的遙控開關仿真(雙機通信)

    具體實現(xiàn)功能由51單片機+獨立按鍵+繼電器+LED燈等構(gòu)成。實現(xiàn)功能:(1)本仿真設計的是一款遙控開關,采用51單片機進行遙控器與主機的設計
    的頭像 發(fā)表于 10-22 14:12 ?127次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的遙控開關仿真(雙機通信)

    基于51單片機LED點陣滾動顯示系統(tǒng)

    花樣;(4)可以利用“點陣LED字模生成工具”生成自己想要顯示的字符。仿真演示視頻:基于51單片機LED點陣滾動顯示系統(tǒng)-仿真視頻設計介紹51
    的頭像 發(fā)表于 10-22 14:12 ?107次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>LED</b>點陣滾動顯示系統(tǒng)

    51單片機驅(qū)動

    電子發(fā)燒友網(wǎng)站提供《51單片機驅(qū)動.exe》資料免費下載
    發(fā)表于 09-20 11:46 ?2次下載

    51、STM32單片機編程方式一樣嗎?

    STM32和51單片機是兩種常見的單片機系列,它們在硬件架構(gòu)、性能特點和編程方式等方面有所不同。但是從c語言編程的角度來說,我認為是大同小異
    的頭像 發(fā)表于 05-18 08:04 ?1819次閱讀
    <b class='flag-5'>51</b>、STM32<b class='flag-5'>單片機</b>的<b class='flag-5'>編程</b>方式一樣嗎?

    fpga編程單片機編程的區(qū)別

    FPGA編程單片機編程的主要區(qū)別體現(xiàn)在以下幾個方面。
    的頭像 發(fā)表于 03-14 17:16 ?900次閱讀

    單片機編程實例介紹

    是指使用特定的編程語言編寫控制單片機工作的程序。 在本文中,將為您提供一些常見的單片機編程實例,包括基礎應用、傳感器應用、通信應用等方面的案例。 一、基礎應用
    的頭像 發(fā)表于 01-16 09:37 ?2535次閱讀

    單片機編程實例總結(jié)

    單片機編程實例總結(jié)
    的頭像 發(fā)表于 01-16 09:17 ?962次閱讀

    基于51單片機的電機控制設計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機的電機控制設計.rar》資料免費下載
    發(fā)表于 01-03 11:19 ?4次下載

    基于51單片機的光控小夜燈設計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機的光控小夜燈設計.rar》資料免費下載
    發(fā)表于 01-03 11:13 ?0次下載

    stc51單片機怎么燒錄

    步驟 常見問題與解決方法 STC51單片機是一種常見的8位單片機,廣泛應用于各種嵌入式系統(tǒng)。它具有高性能、低成本、易于學習和使用等優(yōu)點。STC51
    的頭像 發(fā)表于 01-02 17:41 ?2932次閱讀

    基于51單片機的電子鬧鐘設計

    基于51單片機的電子鬧鐘設計(實物)
    發(fā)表于 01-02 09:58 ?7次下載

    pic單片機編程序?qū)嵗?/a>

    以下是一個簡單的PIC單片機編程序示例,這個程序?qū)崿F(xiàn)一個LED閃爍的功能。 首先,我們需要了解PIC單片機的結(jié)構(gòu)和指令集。PIC單片機
    的頭像 發(fā)表于 12-14 11:01 ?1716次閱讀

    51單片機C語言編程入門學習資料

    電子發(fā)燒友網(wǎng)站提供《51單片機C語言編程入門學習資料.pdf》資料免費下載
    發(fā)表于 11-18 11:04 ?14次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>C語言<b class='flag-5'>編程</b>入門學習資料