色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Arduino篇—點陣屏動態顯示

冬至子 ? 來源:X的創客課堂 ? 作者:MRXY ? 2023-11-01 15:25 ? 次閱讀

學習目標

  • 字庫的創建與應用
  • 位移操作
  • 動態顯示的應用

電路搭建

所需材料

ArduinoUNO * 1
8 * 8點陣屏 * 1
杜邦線若干

電路連接

圖片

程序編寫:

練習:點陣屏動態顯示數字

通過編寫程序,實現點陣屏動態顯示數字0~9。本節課內容主要通過代碼的方式來進行講解,圖形化由于在后續使用點陣屏模塊的時候會非常容易,所以不在這里贅述。

代碼方式:

/* 項目名稱:動態顯示數字
 * 項目時間:2022.03.04
 * 項目作者:MRX
 */
int leds[8] = {9, 14, 8, 12, 1, 7, 2, 5}; //點陣屏正極引腳
int gnds[8] = {13, 3, 4, 10, 6, 11, 15, 16}; //點陣屏負極引腳
char nums[] = {
  0x00, 0x7C, 0x8A, 0x92, 0xA2, 0x7C, 0x00, 0x00, // -0-
  0x00, 0x00, 0x42, 0xFE, 0x02, 0x00, 0x00, 0x00, // -1-
  0x00, 0x46, 0x8A, 0x92, 0x92, 0x62, 0x00, 0x00, // -2-
  0x00, 0x84, 0x82, 0x92, 0xB2, 0xCC, 0x00, 0x00, // -3-
  0x00, 0x18, 0x28, 0x48, 0xFE, 0x08, 0x00, 0x00, // -4-
  0x00, 0xE4, 0xA2, 0xA2, 0xA2, 0x9C, 0x00, 0x00, // -5-
  0x00, 0x3C, 0x52, 0x92, 0x92, 0x8C, 0x00, 0x00, // -6-
  0x00, 0x80, 0x8E, 0x90, 0xA0, 0xC0, 0x00, 0x00, // -7-
  0x00, 0x6C, 0x92, 0x92, 0x92, 0x6C, 0x00, 0x00, // -8-
  0x00, 0x62, 0x92, 0x92, 0x94, 0x78, 0x00, 0x00, // -9-
  0x00, 0x3E, 0x48, 0x88, 0x48, 0x3E, 0x00, 0x00, // -A-
  0x00, 0xFE, 0x92, 0x92, 0x92, 0x6C, 0x00, 0x00, // -B-
  0x00, 0x7C, 0x82, 0x82, 0x82, 0x44, 0x00, 0x00, // -C-
  0x00, 0xFE, 0x82, 0x82, 0x82, 0x7C, 0x00, 0x00, // -D-
  0x00, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00, 0x00, // -E-
  0x00, 0xFE, 0x90, 0x90, 0x90, 0x80, 0x00, 0x00, // -F-
};
void ledclean()
{
  for (int i = 0; i < 8; i++)//將點陣屏正極拉低,負極拉高,關斷顯示
  {
    digitalWrite(leds[i], LOW); 
    digitalWrite(gnds[i], HIGH);
  }
}
//字符顯示
void ledShow(char num, char dat)
{
  digitalWrite(gnds[num], LOW);
  for (int i = 0; i < 8; i++)
  {
    digitalWrite(leds[i], dat & 0x80); // 1 0 0 0 0 0 0 0
    dat < <= 1;
  }
  delayMicroseconds(100);
  digitalWrite(gnds[num], HIGH);
  ledclean();
}
void setup() {
  for (int i = 0; i < 8; i++)
  {
    pinMode(leds[i], OUTPUT);
    pinMode(gnds[i], OUTPUT);
    digitalWrite(gnds[i], HIGH); //負極引腳拉高,熄滅所有LED
  }
}
void loop() {
  for (int a = 0; a < 10; a++) //控制流動顯示內容
  {
    for (int i = 0 ; i < 200 ; i++)//循環顯示達到延時效果
    {
      for (int c = 0; c < 8; c++) //8列循環掃描,達到點陣屏驅動效果
      {
        ledShow(c, nums[c + a*8]);
      }
    }
  }
  }

程序分析:

上面這段程序實現了在點陣屏上翻頁顯示數字09,雖然我們字庫按照十六進制進行了定義,但是這里根據要求,只需要09就可以了。

定義一個數組用于存儲需要顯示的字庫,每8個表示一個字符。

char nums[] = {
  0x00, 0x7C, 0x8A, 0x92, 0xA2, 0x7C, 0x00, 0x00, // -0-
  0x00, 0x00, 0x42, 0xFE, 0x02, 0x00, 0x00, 0x00, // -1-
  0x00, 0x46, 0x8A, 0x92, 0x92, 0x62, 0x00, 0x00, // -2-
  0x00, 0x84, 0x82, 0x92, 0xB2, 0xCC, 0x00, 0x00, // -3-
  0x00, 0x18, 0x28, 0x48, 0xFE, 0x08, 0x00, 0x00, // -4-
  0x00, 0xE4, 0xA2, 0xA2, 0xA2, 0x9C, 0x00, 0x00, // -5-
  0x00, 0x3C, 0x52, 0x92, 0x92, 0x8C, 0x00, 0x00, // -6-
  0x00, 0x80, 0x8E, 0x90, 0xA0, 0xC0, 0x00, 0x00, // -7-
  0x00, 0x6C, 0x92, 0x92, 0x92, 0x6C, 0x00, 0x00, // -8-
  0x00, 0x62, 0x92, 0x92, 0x94, 0x78, 0x00, 0x00, // -9-
  0x00, 0x3E, 0x48, 0x88, 0x48, 0x3E, 0x00, 0x00, // -A-
  0x00, 0xFE, 0x92, 0x92, 0x92, 0x6C, 0x00, 0x00, // -B-
  0x00, 0x7C, 0x82, 0x82, 0x82, 0x44, 0x00, 0x00, // -C-
  0x00, 0xFE, 0x82, 0x82, 0x82, 0x7C, 0x00, 0x00, // -D-
  0x00, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00, 0x00, // -E-
  0x00, 0xFE, 0x90, 0x90, 0x90, 0x80, 0x00, 0x00, // -F-
};

這個數組,表示的是數字的字模。以數字3對應的數據nums[0]{ 0x00, 0x7C, 0x8A, 0x92, 0xA2, 0x7C, 0x00, 0x00, },//0為例,包括有8個十六進制的數,每行一個十六進制數,并且換成二進制的表示,會是什么樣的呢?

00000000 //0x00
01111100 //0x7C
10001010 //0x8A
10010010 //0x92
10100010 //0xA2
01111100 //0x7C
00000000 //0x00
00000000 //0x00

請看1出現的地方,可以借著鼠標按1出現的軌跡跟著劃一劃,不就是一個橫著的數字0字型的輪廓么。

loop()中的三重for循環: 最里面控制8列掃描顯示,中間for循環用于控制顯示時間,最外層for循環用于控制流動位置。

流動效果: 依次移動需要顯示的字符數據,就達到了流動顯示效果。可以控制每次移動的間距,當每次移動8列就會實現整屏覆蓋的效果。

字符指針數據類型char: 指向了一個char類型的內存單元,指針是編程語言中的一個對象,利用地址,它的值直接指向存在電腦存儲器中另一個地方的值。

dat<<=1: 即dat=dat<<1;,將dat變量左移1位后的值賦給dat,結果會改變dat變量的值。

dat & 0x80: 就是dat和10000000位相與,即把dat最高位置1,其它位不變。(這里的“&”是位邏輯運算(一位一位的運算)。)

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

    關注

    22

    文章

    1592

    瀏覽量

    108142
  • 十六進制
    +關注

    關注

    2

    文章

    32

    瀏覽量

    37776
  • Arduino
    +關注

    關注

    188

    文章

    6472

    瀏覽量

    187348
  • 點陣屏
    +關注

    關注

    4

    文章

    71

    瀏覽量

    31964
  • for循環
    +關注

    關注

    0

    文章

    61

    瀏覽量

    2514
收藏 人收藏

    評論

    相關推薦

    LED顯示屏動態顯示和遠程監控的實現

    由于普通LED點陣顯示屏動態顯示通常采用硬件掃描驅動,這在一些需要特殊顯示的場合顯得不夠靈活。文中提出了一種利用PC機和單片機的通訊來實現顯示屏
    發表于 03-07 14:35

    protues 仿真***點陣 動態顯示

    protues 仿真***點陣 動態顯示
    發表于 03-19 16:09

    關于單片機點陣動態顯示仿真

    我在proteus仿真,我把點陣的陰極全部接地,采用列選通的方式,也就是如果16列都同時給高電平時,整個都亮。現在想要用74hc154實現動態顯示,即每個時刻只有一列亮。我把延時調大,可以看到
    發表于 07-02 13:02

    如何去實現LED顯示屏動態顯示和控制?

    本文介紹一種實現LED點陣顯示屏動態顯示和控制的解決方案。
    發表于 05-31 06:58

    LED顯示屏動態顯示及程序

    實現動態顯示效果的方法和以上幾種基本類
    發表于 07-11 10:28 ?181次下載

    LED點陣顯示牌的設計與動態顯示控制

    LED點陣顯示牌的設計與動態顯示控制
    發表于 10-27 16:29 ?75次下載
    LED<b class='flag-5'>點陣</b><b class='flag-5'>顯示</b>牌的設計與<b class='flag-5'>動態顯示</b>控制

    MIN數碼管動態顯示

    數碼管動態顯示,MIN數碼管動態顯示,MIN。
    發表于 05-03 10:48 ?9次下載

    LED點陣電路及其動態顯示系統的設計

    LED 電子顯示屏具有投影儀器、液晶顯示屏無法比擬的優點:高亮度、功耗小、工作電壓低、壽命長、穩定和耐沖擊等優點。 本文所提出的即為一種基于 AT89C51 系列單片機的88 LED 點陣動態
    發表于 11-30 11:23 ?18次下載
    LED<b class='flag-5'>點陣</b>電路及其<b class='flag-5'>動態顯示</b>系統的設計

    如何實現LED點陣顯示屏動態顯示和控制

    LED 點陣電子顯示屏是集微電子技術、計算機技術、信息處理技術于一體的大型顯示屏系統。它以其色彩鮮艷,動態范圍廣,亮度高,壽命長,工作穩定可靠等優點而成為眾多
    的頭像 發表于 12-19 09:51 ?2.9w次閱讀
    如何實現LED<b class='flag-5'>點陣</b><b class='flag-5'>顯示屏</b>的<b class='flag-5'>動態顯示</b>和控制

    如何實現LED顯示屏動態顯示和遠程監控的詳細資料說明

    由于普通LED 點陣顯示屏動態顯示通常采用硬件掃描驅動,這在一些需要特殊顯示的場合顯得不夠靈活。文中提出了一種利用PC 機和單片機的通訊來實現顯示屏
    發表于 03-14 15:22 ?11次下載
    如何實現LED<b class='flag-5'>顯示屏</b><b class='flag-5'>動態顯示</b>和遠程監控的詳細資料說明

    數碼管的靜態與動態顯示和74HC138及點陣動態顯示詳細資料說明

    本文檔的主要內容詳細介紹的是數碼管的靜態與動態顯示和74HC138及點陣動態顯示詳細資料說明。
    發表于 04-12 18:27 ?5次下載
    數碼管的靜態與<b class='flag-5'>動態顯示</b>和74HC138及<b class='flag-5'>點陣</b>的<b class='flag-5'>動態顯示</b>詳細資料說明

    LED顯示屏動態顯示和遠程監控的實現資料

    由于普通LED點陣顯示屏動態顯示通常采用硬件掃描驅動,這在一些需要特殊顯示的場合顯得不夠靈活。文中提出了一種利用PC機和單片機的通訊來實現顯示屏
    發表于 08-30 08:00 ?6次下載
    LED<b class='flag-5'>顯示屏</b><b class='flag-5'>動態顯示</b>和遠程監控的實現資料

    如何使用單片機實現LED顯示屏動態顯示和遠程監控詳細方法說明

    由于普通LED點陣顯示屏動態顯示通常采用硬件掃描驅動,這在一些需要特殊顯示的場合顯得不夠靈活。文中提出了一種利用PC機和單片機的通訊來實現顯示屏
    發表于 11-20 16:56 ?13次下載
    如何使用單片機實現LED<b class='flag-5'>顯示屏</b><b class='flag-5'>動態顯示</b>和遠程監控詳細方法說明

    Micro LED AR顯示屏是全球最小最密集的動態顯示屏

    2019年6月,美國初創公司Mojo Vision推出具備14000 PPI的Micro LED顯示屏,并聲稱是全球最小最密集的動態顯示屏
    發表于 02-04 10:24 ?1747次閱讀

    基于Proteus與匯編語言的漢字點陣動態顯示

    電子發燒友網站提供《基于Proteus與匯編語言的漢字點陣動態顯示.pdf》資料免費下載
    發表于 10-30 11:31 ?1次下載
    基于Proteus與匯編語言的漢字<b class='flag-5'>點陣</b><b class='flag-5'>動態顯示</b>
    主站蜘蛛池模板: 久久久黄色片| 香蕉99久久久久成人麻豆| 影音先锋色av男人资源网| 久99视频精品免费观看福利| 1000部做羞羞事禁片免费视频网站| 刘梓晨啪啪啪| jzz大全18| 小s现场抛胸挤奶| 久久久精品久久久久特色影视| 20岁中国男同志china1069| 欧美手机在线| 国产毛A片啊久久久久久A| 中文中幕无码亚洲在线| 人人在线碰碰视频免费| 国精产品一区一区三区有限在线| 中文字幕在线观看亚洲日韩| 日本邪恶全彩工囗囗番海贼王| 国产在线精品亚洲另类| 99久久国产露脸精品麻豆| 午夜国产高清精品一区免费| 久久是热频国产在线| 成人性生交片无码免费看| 亚洲永久免费视频| 色吧电影院| 久久亚洲高清观看| 国产成+人+综合+亚洲不卡| 正在播放黑人杂交派对卧槽| 十八禁肉动漫无修在线播放| 久久这里只有精品国产99| 国产精品VIDEOSSEX久久发布| 最近中文字幕MV免费高清视频8| 乳交高H糙汉宠文| 麻豆精品一区二正一三区 | 外国xxxx| 看全色黄大色大片免费久黄久| 国产 有码 无码 电影| 2021国产在线视频| 亚洲爆乳少妇精品无码专区| 人妻激情综合久久久久蜜桃| 巨黄的肉辣文np| 回复术士勇者免费观看全集|