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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7687|回復(fù): 7
收起左側(cè)

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

  [復(fù)制鏈接]
ID:57821 發(fā)表于 2018-12-29 18:05 | 顯示全部樓層 |閱讀模式
MAX7219PROTEUS仿真

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



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



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

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

寄存器數(shù)據(jù)
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
* 當(dāng)采用BCD譯碼方式時,譯碼器僅對寄存器中數(shù)據(jù)的低四位(D3-D0)有效,高四位(D7-D4)位無效。BCD碼的字形為:當(dāng)數(shù)據(jù)為00-09H時,顯示為0-9;當(dāng)數(shù)據(jù)為0AH-0EH時,顯示為-,E,H,L,P。當(dāng)數(shù)據(jù)為0FH時,數(shù)據(jù)被消隱,處于不顯示狀態(tài)。
代碼BCD字形表:
顯示字符
寄存器數(shù)據(jù)
段碼點亮=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
小數(shù)點由D7設(shè)置,D7=1亮,D7=0不亮。
* 當(dāng)采用不譯碼方式時,數(shù)據(jù)位D7-D0和字段的對應(yīng)關(guān)系如圖3所示:



需要說明的是:不管對MAX7219設(shè)置的是譯碼方式還是非譯碼方式,D7位始終和數(shù)碼位的小數(shù)點DP相連,當(dāng)D7=1時,小數(shù)點亮,當(dāng)D7=0時,小數(shù)點滅。
(2)亮度控制寄存器(地址0AH):MAX7219的亮度控制有兩種方式:即模擬法和數(shù)字法。
* 模擬法:在引腳ISET和VCC之間接電阻RSET,各段驅(qū)動峰電流約為RSET中電流(Iset)的100倍,RSET的最小阻值為9.53KΩ,這時數(shù)碼顯示處于最亮狀態(tài)。RSET可用電位器代替,放到面板上用來調(diào)節(jié)數(shù)碼顯示的亮度。
* 數(shù)字法:將數(shù)據(jù)寫入到亮度控制寄存器中,即可按16各等級控制亮度。數(shù)值為00H,對應(yīng)電流1/32Iset(最暗);數(shù)值為0FH,對應(yīng)電流31/32Iset(最亮)。此數(shù)值加1,電流增大1/16。
亮度寄存器格式(地址0AH)
占空比
寄存器數(shù)據(jù)
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)掃描位數(shù)(界限)寄存器(地址0BH):掃描(界限)寄存器用來設(shè)定多少個數(shù)位處于顯示態(tài),范圍為1到8。MAX7219的各個數(shù)位按1300Hz的掃描頻率分路驅(qū)動,輪流點亮8各顯示器。若需要顯示的數(shù)位少,可降低掃描數(shù)量,以提高掃速和亮度。該寄存器的低3位指定要掃描的數(shù)位,即00-07H分別對應(yīng)1-8個數(shù)位。但此值最好不要小于4,否則需要改變RSET的值。
掃描位數(shù)寄存器(地址0BH)的格式:

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



典型應(yīng)用



級聯(lián)應(yīng)用連線
MAX7219PROTUES仿真電路
   
據(jù)說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);//正常狀態(tài)
  42.    send(0x0b,0x07);//設(shè)置掃描范圍DIG0-7
  43.               send(0x0a,0x05);//設(shè)置亮度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. }
復(fù)制代碼
0.png

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

評分

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

查看全部評分

回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
ID:98880 發(fā)表于 2019-6-19 11:05 | 顯示全部樓層
有讓他DP顯示的功能嗎?
回復(fù)

使用道具 舉報

ID:524764 發(fā)表于 2019-8-30 10:31 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

ID:60263 發(fā)表于 2020-6-4 10:53 | 顯示全部樓層
仿真測試可用,謝謝分享
回復(fù)

使用道具 舉報

ID:748788 發(fā)表于 2020-7-27 14:49 | 顯示全部樓層
劃重點了:當(dāng)采用BCD譯碼方式時,譯碼器僅對寄存器中數(shù)據(jù)的低四位(D3-D0)有效,高四位(D7-D4)位無效。
回復(fù)

使用道具 舉報

ID:476623 發(fā)表于 2020-8-7 22:22 | 顯示全部樓層
有一片icm7218 驅(qū)動8位led的板子,不會寫代碼 ,下載樓主資料學(xué)習(xí)一下看看能不能把icm7218使用起來。
回復(fù)

使用道具 舉報

8#
無效樓層,該帖已經(jīng)被刪除
ID:921493 發(fā)表于 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);

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

使用道具 舉報

ID:337808 發(fā)表于 2021-8-2 07:21 | 顯示全部樓層
必須說明這片文章質(zhì)量非常高。感謝樓主的分享。對我這個一知半解的工程師來說真的是太好了。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99pao成人国产永久免费视频 | 久久er精品| 伊人在线 | 在线免费观看欧美 | 免费一看一级毛片 | 日韩在线资源 | 色在线免费视频 | 国产 欧美 日韩 一区 | 韩日一区二区 | 国产一区二区久久 | 一本一道久久a久久精品蜜桃 | 久久久999免费视频 999久久久久久久久6666 | a看片| 中文字幕一区二区三区精彩视频 | 极品的亚洲 | 国产精品久久久久无码av | 日本三级全黄三级a | 黄色片a级| 91影院在线观看 | 久久久久久中文字幕 | 亚洲成人免费 | 日韩美av| 午夜在线观看免费 | 日韩欧美国产一区二区三区 | 日本精品一区二区三区视频 | 精品在线一区 | 97久久精品午夜一区二区 | 午夜免费福利电影 | 国家一级黄色片 | 日本一区二区三区在线观看 | 成在线人视频免费视频 | 国产精品欧美一区二区三区不卡 | 99精品久久99久久久久 | 亚洲女优在线播放 | 一区二区三区精品视频 | 久久久久亚洲精品 | 日韩欧美成人一区二区三区 | 久久久久久亚洲精品 | 最新免费黄色网址 | 黑人精品xxx一区一二区 | 久久高清精品 |