>是因?yàn)楹竺鎯蓚€的左右移無法循環(huán),會丟失數(shù)據(jù)。" />

一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

基于51單片機(jī)LED類編程技巧

h1654155971.7688 ? 來源:未知 ? 作者:李倩 ? 2018-04-26 08:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

首先點(diǎn)陣:(以最簡單的8X8為例,16X16的以后再說)

8X8點(diǎn)陣

個人感覺點(diǎn)陣需要注意的地方有:

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

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

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

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

8X8點(diǎn)陣,無滾動效果

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

思路是:

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

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

以第一種為例:

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

如圖掃描函數(shù):

掃描函數(shù)

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

第一種:

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

第二種:

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

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

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

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

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

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

1、微延時。

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

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

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

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

下面是我剛開始學(xué)單片機(jī)時自己做的:

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

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

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

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

    關(guān)注

    242

    文章

    23847

    瀏覽量

    674225
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    277

    文章

    5711

    瀏覽量

    127413

原文標(biāo)題:51單片機(jī)--LED類編程技巧

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    MCS-51單片機(jī)編程應(yīng)用范例

    [學(xué)習(xí)要求] 掌握MCS-51單片機(jī)的基本應(yīng)用。[重點(diǎn)與難點(diǎn)]重點(diǎn):動態(tài)掃描LED顯示電路編程范例;定時/計(jì)數(shù)器軟件編程范例;A/D接口電路
    發(fā)表于 03-08 10:44 ?72次下載
    MCS-<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>編程</b>應(yīng)用范例

    51單片機(jī)動態(tài)LED顯示電路編程實(shí)例

    51單片機(jī)動態(tài)LED顯示電路編程實(shí)例:上一節(jié)我們講述了單只LED單片機(jī)的接口電路及
    發(fā)表于 08-12 16:39 ?151次下載

    51單片機(jī)C語言的編程技巧

    51單片機(jī)C語言的編程技巧
    發(fā)表于 07-16 11:17 ?164次下載

    單片機(jī)C51編程規(guī)范

    單片機(jī)C51編程規(guī)范 1單片機(jī)C51編程規(guī)范- 前言   為了提高源程序的質(zhì)量和可維護(hù)性,從而
    發(fā)表于 01-14 21:03 ?2710次閱讀

    51單片機(jī)C編程

    51單片機(jī)C編程
    發(fā)表于 11-06 11:29 ?0次下載

    51單片機(jī)匯編語言教程:單片機(jī)數(shù)據(jù)傳遞指令

    51單片機(jī)匯編語言教程:9課單片機(jī)數(shù)據(jù)傳遞指令
    發(fā)表于 01-19 15:25 ?0次下載

    mcs-51系列單片機(jī)實(shí)用編程88例

    mcs-51系列單片機(jī)實(shí)用編程88例
    發(fā)表于 09-11 09:17 ?0次下載

    51單片機(jī)--LED編程技巧續(xù)

    上一篇說了一點(diǎn)點(diǎn)關(guān)于 8X8點(diǎn)陣的驅(qū)動編寫技巧 以及寫 LED燈 時應(yīng)注意的一些小細(xì)節(jié),那么這次我就繼續(xù)補(bǔ)上上次挖的坑吧,說一下16X16點(diǎn)陣的編寫技巧,主要講一下思路,因?yàn)樵趯?6X16點(diǎn)陣驅(qū)動
    發(fā)表于 11-24 01:36 ?648次閱讀

    基于51單片機(jī)LED編程技巧分享

    我認(rèn)為8X8點(diǎn)陣的驅(qū)動程序分為行掃描和列掃描兩種。 比如行掃描就是用一層for循環(huán): 先選中第一行,然后送入這一行的數(shù)據(jù),再選擇第二行,然后送入第二行數(shù)據(jù),如此循環(huán)下去,直至顯示完一個屏幕(即8行),同時記得要消隱和微延時(后面會說消隱和微延時),列掃描同理。
    的頭像 發(fā)表于 04-21 14:39 ?4555次閱讀

    51單片機(jī)LED編程技巧詳細(xì)資料說明

    說一下16X16點(diǎn)陣的編寫技巧,主要講一下思路,因?yàn)樵趯?6X16點(diǎn)陣驅(qū)動時,很多人一上來大腦一片空白啊,根本無從下手,我這里舉一個例子講下思路,以后大家可以按照我下面的思路來寫程序。
    發(fā)表于 04-12 18:26 ?0次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>LED</b><b class='flag-5'>類</b><b class='flag-5'>編程</b>技巧詳細(xì)資料說明

    使用51單片機(jī)點(diǎn)亮全部LED的匯編程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)點(diǎn)亮全部LED的匯編程序免費(fèi)下載。
    發(fā)表于 07-04 17:41 ?2次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>點(diǎn)亮全部<b class='flag-5'>LED</b>的匯<b class='flag-5'>編程</b>序免費(fèi)下載

    51單片機(jī)如何跳出wile循環(huán)_51單片機(jī)閃爍LED

    閃爍LED51單片機(jī)是較為簡單的8位單片機(jī),意思是一次能處理8位2進(jìn)制數(shù)據(jù)。這一次閃爍LED燈就是讓
    發(fā)表于 11-23 10:06 ?21次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>如何跳出wile循環(huán)_<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>閃爍<b class='flag-5'>LED</b>燈

    51單片機(jī) LED系列

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī) LED系列.pdf》資料免費(fèi)下載
    發(fā)表于 11-23 16:51 ?8次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b> <b class='flag-5'>LED</b>系列

    51單片機(jī) 點(diǎn)亮一個LED LED閃爍

    ) //循環(huán) { }}使用51單片機(jī)點(diǎn)亮一個LED#include <reg52.h> //51單片機(jī)
    發(fā)表于 11-23 17:06 ?5次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b> 點(diǎn)亮一個<b class='flag-5'>LED</b> <b class='flag-5'>LED</b>閃爍

    51單片機(jī)C語言編程入門.pdf

    51單片機(jī)C語言編程入門.pdf
    發(fā)表于 12-07 18:07 ?0次下載