在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

16X16點陣編寫技巧的思路

GReq_mcu168 ? 來源:玩轉單片機 ? 作者:玩轉單片機 ? 2020-10-26 11:16 ? 次閱讀

來說一下16X16點陣的編寫技巧,主要講一下思路,因為在寫16X16點陣驅動時,很多人一上來大腦一片空白啊,根本無從下手,我這里舉一個例子講下思路,以后大家可以按照我下面的思路來寫程序。

首先要看一下16X16點陣的驅動電路,以這個電路為例我寫一下自己編寫16X16點陣驅動時的小經驗,勿噴勿噴哈,O(∩_∩)O,上電路圖:

16X16點陣原理圖

(注:圖中我加了一些注釋,可能有的人不喜歡,所以想看原圖的人可以去找我在單片機貼吧發的帖子里找,有PDF文件,很清晰!)

從圖片中我們可以看出74HC138芯片控制列,74HC595芯片控制行,我們都知道在同一時間內74HC138芯片只能有一個引腳輸出有效(不知道74HC138和后面要提到的74HC595的人也不要著急,文章后面也會講74HC138和74HC595),也就是說同一時間內只能選中一行,而74HC595是“串入并出”,八個引腳可以同時有效,這樣就會導致16X16點陣驅動編寫時的第一個易錯點:掃描方式。

注意點一:掃描方式

這個16X16點陣的驅動掃描方式是由電路圖決定的(我僅僅指這個16X16點陣),不像8X8點陣,8X8點陣的掃描方式是任意的。

上面說了,74HC138只能一個引腳有效,且74HC138控制行,所以此次驅動編寫只能用行掃描,列送入數據。行掃描的原理上一篇已經說了,這里就不重復了,免得大家嫌我啰嗦......~(≧▽≦)/~喵

還有這里我要糾正一個自己犯的錯誤哈,剛剛才發現,不要打我!【o(>﹏<)o不要啊】

上一篇里我說,呃......直接上圖吧:

上一篇文章里的8X8點陣代碼編寫思路

上次我說思路一代碼實現簡單,思路二不好實現,當時寫學習筆記的我還僅僅只是編過一些小程序,數據量不大,但是今天寫16X16點陣驅動的時候,用了比較多的數據,發現思路一在數據很多的時候根本實現不了(我僅僅指容量很小的51系列里面),51單片機的容量太小,根本無法同時處理這么多數據,所以這里糾正一下哈。

注意點二:滾動效果的實現

剛才說了,數據比較多時,我們就不能用改變數據的方式實現滾動效果了,只能通過修改掃描函數讀取數據的起始位置來實現滾動效果。(如果您有更好的思路,請務必告訴小弟一下,先謝謝啦^_^)下面我說一下我的代碼編寫思路:

用一個for循環就可以實現修改每次的數據讀取位置,for循環里面不是有一個變量嘛(一般都叫 i),將這個變量 i 加到讀取數據時的數據數組下標里就行了。我只寫文字的話你們一般不明白什么意思,所以就....上圖:

滾動效果的代碼實現:思路一

for循環里我之所以寫兩個 i++ 的原因是:16X16點陣嘛,一次要傳輸兩個字節,所以每移動一個LED位,掃描的起始位置就要移動兩個字節,所以要寫兩個;另外不用 i = i + 2是因為 i++ 的運行速度快;還有就是 i 之所以取385,是因為我用了386個字節的數據,0開頭嘛,所以就寫385啦!扯遠了哈,讓我們再回歸正題。

從圖中可以看出,我把 i 加在了83、88、93等行的數組StreamData的下標里面,這樣每次掃描時讀取數據的位置就會后移兩個字節,這樣就不用再寫數據處理函數了。

再來就該說一下16X16點陣的數據了:8X8點陣好說,就算自己算也不難啊,但是16X16點陣呢?難道還要自己一行一行得算嗎?

注意點三:數據的獲取

獲取數據也就是獲取字模,現在有很多獲取字模的軟件,所以這里我就介紹我用的一款軟件:

先上圖:

漢字取模軟件

下面是這款軟件的界面:

漢字取模軟件的界面

軟件使用方法:(我就不敲字了,敲字不直觀,直接上圖)

第一步:(此用法僅僅針對于16X16點陣的漢字取模,其實這個軟件還有其他很多功能,這個以后用到的時候再說)

第一步

第二步:

第二步

第三步:

第三步

這樣,我們就可以很快獲取想要顯示的漢字的字模了。對于這個軟件在使用前還要進行適當的設置,在:參數設置—> 其他選項 里面,軟件自身也有相當詳細的說明,自己看就行了。

講整體思路之前先講一下上面提到的兩個芯片,最后將前面講的全部串起來。

注意點四:74HC138芯片

下面是我自己用Altium Designer畫的一個74HC138元件圖(Altium Designer我剛學完,才過了一個周,不怎么會用),一共有16個引腳。

1. 整體功能:138(后面都簡稱138)主要功能是用一個三位的二進制數控制八位輸出引腳中的一個引腳,經常用于動態顯示。

2. A0、A1、A2就組成了那個三位的二進制數。

3. Y0~Y7就是那八位輸出引腳。

4. E1、E2、E3用于控制當前的138是否工作,當要控制多個138的時候就要用到這三個引腳了。

再詳細的包括真值表啊、具體電路接法啊什么的我就不說了,我這里只是講技巧的嘛,最基本的基礎知識還是靠自己學才能記得最扎實!

我自己畫的74HC138原理圖,網上沒找到好的

注意點五:74HC595芯片

下面我自己用“畫圖”畫了一張74HC595的工作原理圖:(畫一張這么簡單的圖花了我近一個小時,不想活了....╯﹏╰)

74HC595原理圖

74HC595芯片具體的編程還要涉及到時序,不是一句兩句就能說完的,所以這些基本知識我就不說了,我說一下我對4HC595的理解:

74HC595的組成:74HC595呢就好像是一個水庫,有一個進水口(圖中的DS引腳,就是第一列)、一個存水箱(圖中的數據保存區,就是第二列)、一個放水閘門(圖中的OE引腳,第三列),八個出水口(也是第三列)。

74HC595的工作原理:當接到進水命令時(SH_CP引腳),開始進水,水進多了就會漏出來(下面的 Q7' 引腳),接到存水命令時(ST_CP引腳),進來的水就會進入存水箱,最后當接到放水命令時(OE引腳)就會放水,8個出水口同時放水。

這樣74HC595就講完了(再說一下哈,基礎知識這里不講,哎呀,不要怪我嘛,我主要是分享經驗和技巧,基礎知識可以百度百科嘛,那上面講的更好更詳細!)

這樣知識準備就差不多了,現在我們再來看這張原理圖:

16X16點陣原理圖

這下我們編寫代碼的整體思路就有了:

掃描方式:行掃描

滾動實現:數據讀取位置變更(上文已講)

用一個for循環控制移動的時間間隔,for里面用兩個74HC138依次選中每一行,再用兩個74HC595送入每一行的數據,這樣直至掃描完一個屏幕(不是8行了,這次是16行);之后外面再嵌套一個for循環用來變更數據讀取的位置(后移兩個字節),這樣就實現了16X16點陣的驅動編寫。

注意細節不要忽略,這也是LED類的,要進行微延時和消隱操作,當然作為一個有理想的開發者,規范的代碼格式也是必須滴!

在上一篇文章的評論里面大家在討論我用的編程軟件,我這里說一下,我用的是TKStudio,挺好用的,我最喜歡的是它的代碼提示功能,這個很厲害,Keil C51是沒有代碼提示的,但是Keil MDK for ARM是有代碼提示功能的,但是初學者最開始都是在寫C51的,所以寫C51代碼時TKStudio還是不錯的,新手的福音啊。本來想說一下這個軟件的,可是好晚了,該睡覺了,明天還要上課呢,那么就在下一篇文章的時候我再說一下TKStudio這個軟件吧 ,到時候會主要說說怎么改字體和語法高亮,我也會把我的編輯風格文件分享出來,大家直接引用就可以了,不喜歡我的那個風格就自己再改一下就行。

責任編輯:xj

原文標題:玩轉單片機 16X16點陣

文章出處:【微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

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

    關注

    6064

    文章

    44932

    瀏覽量

    647542
  • 16X16點陣
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5590

原文標題:玩轉單片機 16X16點陣

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    16×16點陣(滾動顯示)PROTEUS仿真資料

    發表于 06-03 16:19

    CW32模塊使用 MAX7219四合一點陣模塊

    四合一點陣顯示模塊采用MAX7219作為控制,它是一種集成化的串行輸入/輸出共陰極顯示驅動器,它連接微處理器與8位數字的7段數字LED顯示,也可以連接條線圖顯示器或者64個獨立的LED。其上包括一個
    的頭像 發表于 05-12 16:04 ?194次閱讀
    CW32模塊使用 MAX7219四合一<b class='flag-5'>點陣</b>模塊

    關于嘗試基于dll方式自定義16*16點陣遇到的問題

    我想在proteus上通過基于動態鏈接的方式自定義一個元件(16*16點陣),我將代碼寫好后編譯成了.dll文件 并且在deepseek的建議下寫了.IDX文件(放在了LIBRARY目錄下),內容為
    發表于 04-06 10:47

    高亮數顯驅動LED驅動控制器芯片VK16K33

    10位 按鍵:10x2 封裝SOP28 VK1629 --- 通訊接口:STB/CLK/DIN/DOUT 電源電壓:5V(4.5~5.5V) 驅動點陣:128共陰驅動:16段8位 共陽驅動:8段
    發表于 03-13 10:39

    JTWVM16-X 如何讓語音控制更個性化?

    JTWVM16-X語音控制模塊JTWVM16-X模塊采用高性能神經網絡智能語音芯片,系統主頻可達210MHz。JTWVM16模塊可實現高性能語音識別、語音降噪等功能,具備強勁的環境噪聲抑制能力。支持
    的頭像 發表于 03-12 15:39 ?280次閱讀
    JTWVM<b class='flag-5'>16-X</b> 如何讓語音控制更個性化?

    2.0寸顯示屏,輕薄低功耗12864點陣COG顯示屏

    2.0寸單色LCD液晶顯示屏12864圖形點陣,輕薄低功耗128*64點陣COG顯示屏
    的頭像 發表于 02-19 12:02 ?446次閱讀
    2.0寸顯示屏,輕薄低功耗12864<b class='flag-5'>點陣</b>COG顯示屏

    24CW16X/24CW32X/24CW64X/24CW128X系列數據手冊

    電子發燒友網站提供《24CW16X/24CW32X/24CW64X/24CW128X系列數據手冊.pdf》資料免費下載
    發表于 01-22 16:08 ?0次下載
    24CW<b class='flag-5'>16X</b>/24CW32<b class='flag-5'>X</b>/24CW64<b class='flag-5'>X</b>/24CW128<b class='flag-5'>X</b>系列數據手冊

    24AA16/24LC16B/24FC16數據手冊

    電子發燒友網站提供《24AA16/24LC16B/24FC16數據手冊.pdf》資料免費下載
    發表于 01-22 15:44 ?0次下載
    24AA<b class='flag-5'>16</b>/24LC<b class='flag-5'>16</b>B/24FC<b class='flag-5'>16</b>數據手冊

    大電流數碼管驅動/LED顯示驅動芯片VK16K33AA SSOP28,灰度可調16級/可支持16×8的點陣

    產品品牌:永嘉微VINKA 產品型號:VK16K33AA 封裝形式:SSOP28 概述 VK16K33AA是一種帶按鍵掃描接口的數碼管或點陣LED驅動控制專用芯片,內部集成有數據 鎖存器、鍵盤掃描
    的頭像 發表于 11-26 16:30 ?451次閱讀
    大電流數碼管驅動/LED顯示驅動芯片VK<b class='flag-5'>16</b>K33AA SSOP28,灰度可調<b class='flag-5'>16</b>級/可支持<b class='flag-5'>16</b>×8的<b class='flag-5'>點陣</b>

    DS160PT801X16EVM轉接卡評估模塊

    電子發燒友網站提供《DS160PT801X16EVM轉接卡評估模塊.pdf》資料免費下載
    發表于 11-21 15:57 ?0次下載
    DS160PT801<b class='flag-5'>X16</b>EVM轉接卡評估模塊

    VK1651 SOP16/DIP16點陣LED數碼管驅動/數顯驅動控制器/8級整體亮度可調

    、鍵盤掃描等電路。SEG腳接LED陰極,GRID腳接LED陽極,可支持 7SEGx4GRID的點陣LED顯示。最大支持7x1按鍵。本芯片性能優良,適用于電磁爐、微波 爐及小家電產品的顯示屏驅動。采用
    的頭像 發表于 10-23 15:47 ?568次閱讀
    VK1651 SOP<b class='flag-5'>16</b>/DIP<b class='flag-5'>16</b><b class='flag-5'>點陣</b>LED數碼管驅動/數顯驅動控制器/8級整體亮度可調

    卡萊特X16E處理器電腦端快速場景和信號源切換軟件網絡通訊方式

    ?針對卡萊特X16E處理器編寫的電腦端控制軟件,具備16個場景的調用和6個窗口的視頻信號源切換,配置軟件中可以設定每個場景下的窗口數量
    發表于 08-16 10:30 ?2次下載

    VK2C21點陣式存儲映射的LCD驅動器中文手冊

    VK2C21是一個點陣式存儲映射的LCD驅動器,可支持最大80(20SEGx4COM)或者最大12816SEGx8COM)的LCD屏。單片機可通過I2C接口配置顯示參數和讀寫顯示
    發表于 08-05 11:50 ?0次下載

    TCA8424低壓8x16鍵盤掃描器數據表

    電子發燒友網站提供《TCA8424低壓8x16鍵盤掃描器數據表.pdf》資料免費下載
    發表于 07-11 11:46 ?0次下載
    TCA8424低壓8<b class='flag-5'>x16</b>鍵盤掃描器數據表

    基于51單片機16x16點陣顯示電路圖及程序元件清單

    本資源內容概要:? ? ? ?這是基于51單片機16x16點陣顯示電路圖及程序設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發表于 06-21 14:34 ?4次下載
    主站蜘蛛池模板: 久久综合久色欧美婷婷 | 国产亚洲综合视频 | 午夜伦y4480影院中文字幕 | 福利99| 一级欧美在线的视频 | 开心激情小说 | 色综合久久九月婷婷色综合 | 变态重口极致另类在线 | 在线观看日本亚洲一区 | 亚洲精品老司机综合影院 | 日韩第五页 | 夜夜摸视频网 | 日本一区二区三区在线观看视频 | 国产精品久久久久久久久久影院 | 精品国产一区二区三区成人 | 欧美日韩一区二区三区视频 | 欧美人与zoxxxx | 免费大秀视频在线播放 | 亚洲一区二区福利视频 | 永久网站色视频在线观看免费 | 四虎影院最新 | 三级黄色录像 | 日本亚洲高清乱码中文在线观看 | 欧美两性网| 精品理论片| 特级黄aaaaaaaaa毛片 | 啪啪免费观看 | 国产色婷婷精品免费视频 | 国产yw855.c免费观看网站 | 免费能看的黄色网址 | 天天摸天天看天天做天天爽 | a级毛片网| 热re99久久精品国99热 | 69国产成人精品午夜福中文 | 天天搞天天搞 | 欧美瑟瑟 | 亚洲精品一卡2卡3卡三卡四卡 | 国产精品欧美一区二区三区不卡 | 黄 色 成 年人在线 黄a大片 | 国产一级特黄生活片 | 日韩一级精品视频在线观看 |