久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7462|回復: 7
打印 上一主題 下一主題
收起左側

串行輸入輸出共陰極顯示驅動器MAX7219應用(單片機代碼+仿真)

  [復制鏈接]
跳轉到指定樓層
樓主
MAX7219PROTEUS仿真

              MAX7219是美國MAXIM(美信)公司生產的串行輸入/輸出共陰極顯示驅動器。它采用了3線串行接口,傳送速率達10M數據,能驅動8位七段數字型LED或條形顯示器或64只獨立的LED。MAX7219內置BCD碼譯碼器、多路掃描電路、段和數字驅動器和存儲每一位的8*8靜態RAM。能方便的用模擬或數字方法控制段電流的大小,改變顯示器的數量;能進入低功耗的關斷模式(僅消耗150uA電流,數據保留);能方便地進行級聯?蓮V泛用于條形圖顯示、七段顯示、工業控制、儀器儀表面板等領域。而且其最重要的一點是,每個顯示位都能個別尋址和刷新,而不需要重寫其他的顯示位,這使得軟件編程十分簡單且靈活。MAX719后綴表示其封裝方式和工作溫度,如表所示:
后綴
封裝
工作溫度
CNG
窄24腳
0----70℃
CWG
SO24腳
0----70℃
ENG
窄24腳
-40---85℃
EWG
SO24腳
-40---85℃
. MAX7219的結構和功能



1.引腳說明
MAX7219的引腳排列如圖所示,各引腳功能敘述如下:
(1)腳:DIN,串行數據輸入。在CLK的上升沿到來時,數據被移入到內部的16位移位寄存器中。
(2)、(3)、(5)~(8)、(10)、(11)腳:DIG0—DIG7,輸入。8位數字位位選線,從共陰極顯示器吸收電流。
(4)、(9)腳:GND,地。兩個引腳必須連接在一起。
(12)腳:LOAD,數據裝載輸入端。在LOAD上升沿,移位寄存器接受的數據被鎖存。
(13)腳:CLK,時鐘輸入端,最高時鐘頻率10MHz。在CLK的上升沿,數據被移入到內部的16位移位寄存器中。在CLK的下降沿,數據從DOUT腳輸出。
(14)~(15)、(20)~(23)腳:輸出。七段驅動器和小數點驅動器。它供給顯示器電流。
(18)腳:ISET,電流調節端。通過一個電阻和VCC相連,來調節最大段電流。
(19)腳:VCC。電源輸入端。
(24)腳:DOUT。串行數據輸出。輸入到DIN的數據在16.5各時鐘周期后,在DOUT端有效。該腳常用于幾個MAX7219的級聯。



2.串行數據傳送的說明
MAX7219采用串行尋址方式,在傳送的串行數據中包含內部RAM的地址。加在DIN腳上的串行數據,必須在LOAD信號為高電平的前提下,以每個字節為一個數據包,在CLK信號上升沿移入16位的移位寄存器。然后在LOAD信號的上升沿鎖存進數字或控制寄存器中。LOAD信號必須在第16個CLK信號上升沿的同時,或在下一個CLK信號上升沿之前升高,否則,數據會丟失。DIN腳上的串行數據在16.5個CLK信號后出現在DOUT腳上,以便級聯應用時傳到下一個MAX7219上。
其數據串行傳送時序圖如下圖所示:

發送的16位串行數據格式為:
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
X
X
X
X
地址
高         數據               低
發送的16位串行數據格式如上表所示:D15在先,D15---D12位(4位)可為任意值。D11---D8位(4位)指定14個內部寄存器的地址。D7---D0位(8位)為送入的指定寄存器的數據(包括顯示數據和控制數據)。
3.寄存器功能及說明
MAX7219內部共有14個可尋址的數字、控制寄存器和空操作寄存器。數字寄存器由一個片內8×8靜態RAM組成?刂萍拇嫫靼ㄗg碼方式、亮度控制、掃描數量、停機模式、測試模式等寄存器組成,如下表所示:
寄存器名稱
十六進制數地址
寄存器名稱
十六進制數地址
空操作
00H
DIG6
07H
DIG0
01H
DIG7
08H
DIG1
02H
譯碼控制
09H
DIG2
03H
亮度控制
0AH
DIG3
04H
掃描控制
0BH
DIG4
05H
停機控制
0CH
DIG5
06H
顯示測試控制
0FH
下面從使用的角度,對MAX7219內部控制器的功能加以說明:
(1)譯碼控制寄存器(地址09H):譯碼方式寄存器可以對每個數進行設置,使其為BCD譯碼方式或不譯碼方式。寄存器的每一位和一個數位相對應。為“1”時,選擇BCD譯碼方式,為“0”選擇不譯碼方式。例如,0---7位不譯碼,則給譯碼寄存器09H送00H。第一位譯碼,其余位不譯碼,則給譯碼寄存器09H送01H。
譯碼方式控制寄存器舉例(地址09H):

寄存器數據
16進制代碼(HEX)
D7
D6
D5
D4
D3
D2
D1
D0
第1-8位LED不譯碼
0
0
0
0
0
0
0
0
00
第1位譯碼,其余不
0
0
0
0
0
0
0
1
01
低四位譯碼,高不
0
0
0
0
1
1
1
1
0F
第1-8位LED譯碼
1
1
1
1
1
1
1
1
FF
* 當采用BCD譯碼方式時,譯碼器僅對寄存器中數據的低四位(D3-D0)有效,高四位(D7-D4)位無效。BCD碼的字形為:當數據為00-09H時,顯示為0-9;當數據為0AH-0EH時,顯示為-,E,H,L,P。當數據為0FH時,數據被消隱,處于不顯示狀態。
代碼BCD字形表:
顯示字符
寄存器數據
段碼點亮=1
D7
D6
D5
D4
D3
D2
D1
D0
DP
A
B
C
D
E
F
G
0

×
×
×
0
0
0
0

1
1
1
1
1
1
0
1

×
×
×
0
0
0
1

0
1
1
0
0
0
0
2

×
×
×
0
0
1
0

1
1
0
1
1
0
1
3

×
×
×
0
0
1
1

1
1
1
1
0
0
1
4

×
×
×
0
1
0
0

0
1
1
0
0
1
1
5

×
×
×
0
1
0
1

1
0
1
1
0
1
1
6

×
×
×
0
1
1
0

1
0
1
1
1
1
1
7

×
×
×
0
1
1
1

1
1
1
0
0
0
0
8

×
×
×
1
0
0
0

1
1
1
1
1
1
1
9

×
×
×
1
0
0
1

1
1
1
1
0
1
1
-

×
×
×
1
0
1
0

0
0
0
0
0
0
1
E

×
×
×
1
0
1
1

1
0
0
1
1
1
1
H

×
×
×
1
1
0
0

0
1
1
0
1
1
1
L

×
×
×
1
1
0
1

0
0
0
1
1
1
0
P

×
×
×
1
1
1
0

1
1
0
0
1
1
1

×
×
×
1
1
1
1

0
0
0
0
0
0
0
小數點由D7設置,D7=1亮,D7=0不亮。
* 當采用不譯碼方式時,數據位D7-D0和字段的對應關系如圖3所示:



需要說明的是:不管對MAX7219設置的是譯碼方式還是非譯碼方式,D7位始終和數碼位的小數點DP相連,當D7=1時,小數點亮,當D7=0時,小數點滅。
(2)亮度控制寄存器(地址0AH):MAX7219的亮度控制有兩種方式:即模擬法和數字法。
* 模擬法:在引腳ISET和VCC之間接電阻RSET,各段驅動峰電流約為RSET中電流(Iset)的100倍,RSET的最小阻值為9.53KΩ,這時數碼顯示處于最亮狀態。RSET可用電位器代替,放到面板上用來調節數碼顯示的亮度。
* 數字法:將數據寫入到亮度控制寄存器中,即可按16各等級控制亮度。數值為00H,對應電流1/32Iset(最暗);數值為0FH,對應電流31/32Iset(最亮)。此數值加1,電流增大1/16。
亮度寄存器格式(地址0AH)
占空比
寄存器數據
16進制代碼(HEX)
D7
D6
D5
D4
D3
D2
D1
D0
1/32
×
×
×
×
0
0
0
0
×0
3/32
×
×
×
×
0
0
0
1
×1
5/32
×
×
×
×
0
0
1
0
×2
7/32
×
×
×
×
0
0
1
1
×3
9/32
×
×
×
×
0
1
0
0
×4
11/32
×
×
×
×
0
1
0
1
×5
13/32
×
×
×
×
0
1
1
0
×6
15/32
×
×
×
×
0
1
1
1
×7
17/32
×
×
×
×
1
0
0
0
×8
19/32
×
×
×
×
1
0
0
1
×9
21/32
×
×
×
×
1
0
1
0
×A
23/32
×
×
×
×
1
0
1
1
×B
25/32
×
×
×
×
1
1
0
0
×C
27/32
×
×
×
×
1
1
0
1
×D
29/32
×
×
×
×
1
1
1
0
×E
31/32
×
×
×
×
1
1
1
1
×F
(3)掃描位數(界限)寄存器(地址0BH):掃描(界限)寄存器用來設定多少個數位處于顯示態,范圍為1到8。MAX7219的各個數位按1300Hz的掃描頻率分路驅動,輪流點亮8各顯示器。若需要顯示的數位少,可降低掃描數量,以提高掃速和亮度。該寄存器的低3位指定要掃描的數位,即00-07H分別對應1-8個數位。但此值最好不要小于4,否則需要改變RSET的值。
掃描位數寄存器(地址0BH)的格式:

寄存器數據
16進制代碼(HEX)
D7
D6
D5
D4
D3
D2
D1
D0
顯示位1
×
×
×
×
×
0
0
0
×0
顯示位1,2
×
×
×
×
×
0
0
1
×1
顯示位1,2,3
×
×
×
×
×
0
1
0
×2
顯示位1,2,3,4
×
×
×
×
×
0
1
1
×3
顯示位1,2,3,4,5
×
×
×
×
×
1
0
0
×4
顯示位1,2,3,4,5,6
×
×
×
×
×
1
0
1
×5
顯示位1,2,3,4,5,6,7
×
×
×
×
×
1
1
0
×6
顯示位1,2,3,4,5,6,7,8
×
×
×
×
×
1
1
1
×7
(4)停機控制寄存器(地址0CH):關斷寄存器的D0位控制MAX7219處于怎樣的顯示狀態。當D0=0時,MAX7219處于關斷狀態,當D0=1時,MAX7219處于正常顯示狀態。當處于關斷狀態時,掃描振蕩器暫停,顯示器熄滅,各寄存器中的數據不變,這時總電流小于150uA,,但仍可以編程。進入此狀態后,至少250uS才能退出。當將D0位置1后(即0CH寫01H),即可回到正常顯示狀態。
(5)顯示測試寄存器(地址0FH):顯示測試寄存器有兩種工作方式:當送01H時,MAX7219便進入測試工作狀態,所有數碼管顯示8及小數點,電流占空比為31/32,內部的所有數據及控制寄存器的值都不改變。當送00H時,MAX7219進入正常工作方式。
(6)空操作寄存器(地址00H):即寫入0000H,可允許數據通過而不對當前的MAX7219產生影響,可用于兩個或多個MAX7219進行級連。這樣只要三根信號線就可以驅動,在控制時只要把待編程的MAX7219之前的那些MAX7219設置為空操作即可。
4.典型應用電路



典型應用



級聯應用連線
MAX7219PROTUES仿真電路
   
據說PROTEUS里的MAX7219模型在級連時仿真有問題,時序和實際電路的不同。
MAX7219PROTUES仿真源程序
/* 顯示12345678*/

  1. #include <reg52.h>
  2. #include <stdio.h>
  3. #define uchar unsigned char

  4. sbit DIN=P3^1;
  5. sbit CLK=P3^3;
  6. sbit LOAD=P3^2;
  7. void send(uchar add,uchar dat)
  8. {
  9.                  uchar ADS,i,j;
  10.                  CLK=0;
  11.               LOAD=0;
  12.               DIN=0;
  13.                  i=4;
  14.                  while(i<16)
  15.                  {
  16.                    if(i<8)
  17.                               {
  18.                                             ADS=add;
  19.                             }
  20.                 else
  21.                               {
  22.                                           ADS=dat;
  23.                             }
  24.                 for(j=8;j>=1;j--)
  25.                               {

  26.                                           if((ADS&0x80)==0)
  27.                                           {              DIN=0 ;}
  28.                                           else
  29.                                           {              DIN=1;}
  30.                                               ADS=ADS<<1;
  31.                            
  32.                             CLK=1;
  33.                             CLK=0;            
  34.                             }
  35.                 i=i+8;
  36.    }
  37.    LOAD=1;
  38. }

  39. void main(void)
  40. {
  41.    send(0x0c,0x01);//正常狀態
  42.    send(0x0b,0x07);//設置掃描范圍DIG0-7
  43.               send(0x0a,0x05);//設置亮度11/32
  44.    send(0x09,0xff);//采用譯碼方式

  45.    while(1)
  46.    {
  47.    send(0x01,0x81);
  48.    send(0x02,0x82);
  49.    send(0x03,0x83);
  50.    send(0x04,0x84);
  51.    send(0x05,0x85);
  52.    send(0x06,0x86);
  53.    send(0x07,0x87);
  54.    send(0x08,0x88);

  55.    }
  56. }
復制代碼

全部資料51hei下載地址:
串行輸入輸出共陰極顯示驅動器MAX7219應用.zip (311.06 KB, 下載次數: 112)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:98880 發表于 2019-6-19 11:05 | 只看該作者
有讓他DP顯示的功能嗎?
回復

使用道具 舉報

板凳
ID:524764 發表于 2019-8-30 10:31 | 只看該作者
謝謝分享
回復

使用道具 舉報

地板
ID:60263 發表于 2020-6-4 10:53 | 只看該作者
仿真測試可用,謝謝分享
回復

使用道具 舉報

5#
ID:748788 發表于 2020-7-27 14:49 | 只看該作者
劃重點了:當采用BCD譯碼方式時,譯碼器僅對寄存器中數據的低四位(D3-D0)有效,高四位(D7-D4)位無效。
回復

使用道具 舉報

6#
ID:476623 發表于 2020-8-7 22:22 | 只看該作者
有一片icm7218 驅動8位led的板子,不會寫代碼 ,下載樓主資料學習一下看看能不能把icm7218使用起來。
回復

使用道具 舉報

7#
ID:921493 發表于 2021-6-24 23:21 | 只看該作者
while(1)
   {
   send(0x01,0x81);
   send(0x02,0x82);
   send(0x03,0x83);
   send(0x04,0x84);
   send(0x05,0x85);
   send(0x06,0x86);
   send(0x07,0x87);
   send(0x08,0x88);

   }
逗號后面的是不是字形碼啊
怎末感覺跟前面介紹的不一樣啊
回復

使用道具 舉報

8#
ID:337808 發表于 2021-8-2 07:21 | 只看該作者
必須說明這片文章質量非常高。感謝樓主的分享。對我這個一知半解的工程師來說真的是太好了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 啪啪毛片 | av一区二区三区 | 亚洲天堂中文字幕 | 一级黄色在线 | 瑞克和莫蒂第五季在线观看 | www.亚洲国产精品 | 日韩中文字幕一区二区 | 久久久久久久久久久久亚洲 | 97伦理电影网 | 免费看黄色小视频 | 欧美综合国产精品久久丁香 | 亚洲成人国产精品 | 亚洲国产一区二区视频 | 在线免费观看黄a | 精品视频在线观看 | 成人综合视频在线观看 | 亚洲国产欧美在线 | 久久r免费视频 | 成人视屏在线观看 | 精品国产一区二区三区久久 | 91视频在线观看 | 国产一区二区视频免费在线观看 | 国产高清视频 | 国产农村妇女毛片精品久久麻豆 | av网站观看| 日韩资源 | 欧美性受xxxx| 9999久久 | 久久精品小视频 | 国产精品一区二区欧美黑人喷潮水 | 日韩一级免费电影 | 日韩成人在线电影 | 中文字幕国产 | 亚洲一区在线播放 | 中文字幕av网 | 亚洲欧美精品久久 | 日韩视频一区 | 中文字幕在线免费观看 | 亚洲精品在线免费看 | 国产精品夜夜春夜夜爽久久电影 | 亚洲综合色视频在线观看 |