精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

MAX6951/MAX6950 LED顯示驅動器與MAXQ2000微控制器的通信

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-06-16 15:34 ? 次閱讀

MAX6950MAX6951分別為5位和8位共陰極LED顯示驅動器,通過高速SPI 接口控制。這兩款器件采用獨特的復用結構,大大減少了LED驅動器與LED面板的連線。MAXQ2000是一款高性能、16位RISC微控制器,集成了SPI模塊,簡化了LED驅動器與微控制器的連接。本應用筆記提供了MAXQ?匯編程序范例,說明MAXQ2000 SPI模塊與MAX6951/MAX6950的配合使用。

硬件和軟件需求

為了實現本應用筆記的接口試驗,需要MAX6951評估板(EV kit)、MAXQ2000評估板(包括MAX-IDE軟件)、科提供最小200mA電流的+5V電源和具備一個可用串口的PC機。

硬件設置

  1. MAX6951評估板跳線設置

    去掉JU2、JU3和JU4引腳1與引腳2之間的跳線,斷開/CS\\、DIN和SCLK信號與評估板上電平轉換器的連接。

  2. MAXQ2000評估板跳線和DIP開關設置

    開關SW3的1-8引腳置于off位置

    JU1:連接引腳1和引腳2

    JU2:連接引腳1和引腳2

    JU3:連接引腳1和引腳2

    JU4:開路

    JU10:開路

    JU11:接通(MAXQ2000評估板由一塊JTAG接口板供電,電源為+5V。)

  3. 圖1所示連接兩塊評估板。

圖1. MAX6951評估板與MAXQ2000評估板的連接圖

圖1. MAX6951評估板與MAXQ2000評估板的連接圖

固件說明

可從Maxim網站下載本項目的完整固件文件,通過Maxim提供的集成開發環境和調試環境,用于MAXQ系列微控制器的MAX-IDE,進行編譯。

下載:完整的固件(ZIP, 18.8k)

main.asm文件

該文件為本項目的主循環程序,它通過調用不同的子程序演示正確寫入MAX6951寄存器的數據。固件演示MAX6951的以下功能:

  1. MAX6951 SPI接口初始化。

  2. 在16進制譯碼方式下,對MAX6951所有數字的P0和P1級寫入并顯示0、1、2、...、A、B、C、D、E、F和8個小數位(如,點亮所有LED字段)。

  3. 在非譯碼方式下,寫入并顯示上述字母和其它用戶內建字符,如H、L、P、Q、Y等。

  4. LED亮度調節,該程序說明如何設置MAX6951亮度寄存器,測試數字亮度控制功能。

  5. 掃描限制循環程序。該程序用相同亮度循環顯示第1位到第8位數字。

    :監控進程,以確認掃描限制提高時,降低亮度。

  6. 閃爍控制,該程序將不同數值寫入每位數據的P0級和P1級。還可采用快速閃爍方式來演示段閃爍控制功能,可同步多個LED驅動器。

  7. 滾動循環,該程序從左到右、從右到左滾動顯示文本信息:HELLO。

  8. 跳動循環,該程序在LED兩個邊沿之間跳動顯示文本信息:HELLO。

  9. 計時循環,這個程序說明在16進制譯碼方式和非譯碼方式下,如何設計顯示毫秒級計時。

max2000ev_6951.asm文件

該文件包含所有用于MAX6951評估板與MAXQ2000微控制器之間通信的功能函數。其主要函數有:

  1. max6951_init :該函數正確地設置MAXQ2000的SPI模式,實現與MAX6951的連接。使能SPI,并初始化MAX6951,在顯示板上顯示八個0。列表1為該函數的詳細代碼。

列表1. MAX6951初始化例程

;*******************************************************************************
;* Function:  max6951_init
;*
;* Sets the correct SPI modes for talking to the MAX6951, enables SPI, and
;* 
;* initializes the MAX6951 to display 8 0s.
;*
;* Input:     None.
;*
;* Output:    None.
;*
;* Destroys:  ACC, A[0] -- A[10], PSF
;*
;*******************************************************************************
MAX6951_INIT:
    ; SET SPI BAUD RATE 
    MOVE    A[0], #2400H			; SYSTEM CLOCK IS 16,000,000 HZ
    MOVE    A[1], #00F4H
    MOVE    A[2], #4240H			; DESIRED BAUD RATE IS 1,000,000 HZ 
    MOVE    A[3], #000FH
    CALL    SPI_SETBAUDRATE

    ; SET THE APPROPRIATE MODES FOR THE 6951
    MOVE    C, #SPI_IDLE_LOW		; IDLE = LOW
    CALL    SPI_SETCLOCKPOLARITY
    MOVE    C, #SPI_ACTIVE_EDGE		; ACTIVE = RISING EDGE
    CALL    SPI_SETCLOCKPHASE
    MOVE    C, #SPI_LENGTH_16		; ALWAYS TRANSFER 16 BITS
    CALL    SPI_SETCHARACTERLENGTH
    MOVE    C, #SPI_MASTER_MODE	; MAXQ2000 IS THE MASTER, MAX6951 IS THE SLAVE
    CALL    SPI_SETMODE

    ; ENABLE SPI
    MOVE    C, #1
    CALL    SPI_ENABLE

    ; SHUTDOWN MAX6951 DISPLAY FIRST
    CALL    MAX6951_SHUTDOWN

    ; SET MAX6951 IN HEXADECIMAL DECODE MODE
    MOVE    ACC, #MAX6951REG_DECODE
    SLA4
    SLA4
    OR      #0FFH				; HEXADECIMAL DECODE
    CALL    MAX6951_TRANSMIT

    ; SET DISPLAY INTENSITY = 16/16
    MOVE    ACC, #MAX6951REG_INTENSITY
    SLA4
    SLA4
    OR      #0FH				; INTENSITY = 16/16
    CALL    MAX6951_TRANSMIT

    ; SCAN LIMIT = 7
    MOVE    ACC, #MAX6951REG_SCANLIMIT
    SLA4
    SLA4
    OR      #07H				; SCAN LIMIT = 7 
    CALL    MAX6951_TRANSMIT
    RET
  1. max6951_transmit :該函數向Max6951發送一個寄存器地址和數據字節(16位)。
  2. max6951_set_all_n :這些函數將一位數字寄存器的P0級和P1級設置為數字“n”。所有函數具備16進制譯碼和非譯碼模式。
  3. max6951_e_d_s_d :該函數先使能MAX6951顯示,然后延遲半秒,關斷顯示,再延遲100ms。
  4. max6951_screenshot :這些函數在8位數字LED面板的八個不同位置處顯示HELLO。
  5. max6951_scroll_R_to_L :以不同順序顯示,該函數以非譯碼方式從右至左滾動顯示HELLO。
  6. max6951_scroll_L_to_R :以不同順序顯示,該函數以非譯碼方式從左至右滾動顯示HELLO。
  7. max6951_bouncing :該函數在LED的兩個邊沿之間跳動顯示HELLO。
  8. font_lookup :給定一個16進制數,該函數查詢在標準7段LED上以非譯碼方式顯示的相同字符。
  9. max6951_counting :該函數用于顯示毫秒計時,精確度為10毫秒。** 列表2**為詳細代碼。

列表2. MAX6951計時例程

;*******************************************************************************
;* Function:  max6951_counting
;*
;* This routine counts how many 10-milliseconds have elapsed and displays
;*
;* the value from 0000 to 9999 on LED digits 3-0(no way to blank leading digits).
;*
;  The routine displays the same value on LED digits 7-4(by using no decode
;*
;* mode, individual leading digits can be blanked).
;*
;* Input:     None
;*
;* Output:    None
;*
;* Destroys:  ACC, A[1] - A[4], A[9]
;*
;*******************************************************************************
MAX6951_COUNTING:
	CALL 	MAX6951_SHUTDOWN
	CALL	MAX6951_SET_ALL_0	; SET ALL BITS OF DATA REGISTERS TO 0
	MOVE   ACC, #010FH	; HEXDECIMAL DECODE DIGITS 3-0, NO DEOCDE DIGITS 7-4
	CALL	MAX6951_TRANSMIT
	; INITIALIZE THE COUNT TO 0
	MOVE	A[1], #0			; A[1] = > DIGIT 0
	MOVE	A[2], #0			; A[2] = > DIGIT 1
	MOVE	A[3], #0			; A[3] = > DIGIT 2
	MOVE	A[4], #0			; A[4] = > DIGIT 3

COUNT_LOOP:
INCREASE_DIGIT3:
	MOVE	ACC, A[4]			; PROCESS DIGIT 3
	SUB	#9
	JUMP	Z, INCREASE_DIGIT2		; DIGIT 3 = 9, THERE IS CARRY OVER
	MOVE	ACC, A[4]			; DIGIT 3 < 9, CONTINUE
	ADD	#1
	MOVE	A[4], ACC
	CALL	FONT_LOOKUP			; LOOK UP THE VALUE FOR THIS FONT
						; STORE IT IN A[9], KEEP ACC UNCHANGED
	OR	#6300H
	CALL	MAX6951_TRANSMIT 		; NO CARRY OVER, WRITE DIGIT 3 NEW VALUE
	MOVE	ACC, A[9]			; WRITE THE NO DECODE VALUE TO DIGIT 7
	OR     #6700H
	CALL	MAX6951_TRANSMIT
	JUMP	DISPLAY_NUMBER

INCREASE_DIGIT2:
	OR	#6300H
	CALL	MAX6951_TRANSMIT		; WRITE 0 TO DIGIT 3 REGISTER FIRST
	MOVE	A[4], #0			; SET DIGIT 3 BACK TO 0
	MOVE	ACC, #677EH			; NO DECODE VALUE FOR FONT '0' IS "7EH"
	CALL 	MAX6951_TRANSMIT 		; WRITE 7EH TO DIGIT 7 REGISTER

	MOVE	ACC, A[3]			; PROCESS DIGIT 2
	SUB	#9
	JUMP	Z, INCREASE_DIGIT1		; DIGIT 2 = 9, THERE IS CARRY OVER
	MOVE	ACC, A[3]			; DIGIT 2 < 9, CONTINUE
	ADD	#1
	MOVE	A[3], ACC
	CALL	FONT_LOOKUP			; LOOK UP THE VALUE FOR THIS FONT
						; STORE IT IN A[9], KEEP ACC UNCHANGED
	OR	#6200H
	CALL	MAX6951_TRANSMIT		; NO CARRY OVER, WRITE DIGIT 2 NEW VALUE
	MOVE	ACC, A[9]			; WRITE THE NO DECODE VALUE TO DIGIT 6
	OR     #6600H
	CALL	MAX6951_TRANSMIT
	JUMP	DISPLAY_NUMBER

INCREASE_DIGIT1:
	OR	#6200H
	CALL	MAX6951_TRANSMIT		; WRITE 0 TO DIGIT 2 REGISTER FIRST
	MOVE	A[3], #0			; SET DIGIT 2 BACK TO 0
	MOVE	ACC, #667EH			; NO DECODE VALUE FOR FONT '0' IS "7EH"
	CALL 	MAX6951_TRANSMIT 		; WRITE 7EH TO DIGIT 6 REGISTER

	MOVE	ACC, A[2]			; PROCESS DIGIT 1
	SUB	#9
	JUMP	Z, INCREASE_DIGIT0		; DIGIT 1 = 9, THERE IS CARRY OVER
	MOVE	ACC, A[2]			; DIGIT 1 < 9, CONTINUE
	ADD	#1
	MOVE	A[2], ACC
	CALL	FONT_LOOKUP			; LOOK UP THE VALUE FOR THIS FONT
						; STORE IT IN A[9], KEEP ACC UNCHANGED
	OR	#6100H
	CALL	MAX6951_TRANSMIT		; NO CARRY OVER, WRITE DIGIT 1 NEW VALUE
	MOVE	ACC, A[9]			; WRITE THE NO DECODE VALUE TO DIGIT 5
	OR     #6500H
	CALL	MAX6951_TRANSMIT
	JUMP	DISPLAY_NUMBER

INCREASE_DIGIT0:
	OR	#6100H
	CALL	MAX6951_TRANSMIT		; WRITE 0 TO DIGIT 1 REGISTER FIRST
	MOVE	A[2], #0			; SET DIGIT 1 BACK TO 0
	MOVE	ACC, #657EH			; NO DECODE VALUE FOR FONT '0' IS "7EH"
	CALL 	MAX6951_TRANSMIT 		; WIRTE 7EH TO DIGIT 5 REGISTER

	MOVE	ACC, A[1]			; PROCESS DIGIT 0
	SUB	#9
	JUMP	Z, COUNT_COMPLETE		; DIGIT 0 = 9, COUNTING IS OVER
	MOVE	ACC, A[1]			; DIGIT 0 < 9, CONTINUE
	ADD	#1
	MOVE	A[1], ACC
	CALL	FONT_LOOKUP			; LOOK UP THE VALUE FOR THIS FONT
						; STORE IT IN A[9], KEEP ACC UNCHANGED
	OR	#6000H
	CALL	MAX6951_TRANSMIT		; NO CARRY OVER, WRITE DIGIT 0 NEW VALUE
	MOVE	ACC, A[9]			; WRITE THE NO DECODE VALUE TO DIGIT 4
	OR     #6400H
	CALL	MAX6951_TRANSMIT

DISPLAY_NUMBER:		; DISPLAY DIGIT 3-0 IN HEXADECIMAL DECODE MODE
				; DIEPLAY DIGIT 7-4 IN NO DECODE MODE
	CALL	MAX6951_ENABLE
	CALL	MAX6951_10MS_DELAY
	JUMP 	COUNT_LOOP

COUNT_COMPLETE:
	RET

maxq2000_spi.asm文件 :該文件用于配置、使用MAXQ2000 SPI模塊。集成在MAX-IDE,用戶無需修改即可使用。

divide32.asm文件 :這是MAX-IDE軟件提供的32位除法程序。

maxq2000.inc、maxq2000_spi.inc和max2000ev_6951.inc文件 :這些是MAXQ2000引腳定義和MAX6951寄存器定義的嵌套文件。

結論

MAX6951/MAX6950 SPI LED驅動器簡單易用的共陰極顯示器驅動器,通過SPI串行接口連接微控制器。MAXQ系列微控制器集成了SPI模塊,可通過SPI接口與LED驅動器通信。這里介紹的例程有助于用戶理解MAX6951的LED驅動功能。也可將該例程應用到類似的MAXQ2000系統開發中。

審核編輯:郭婷

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

    關注

    52

    文章

    8155

    瀏覽量

    145999
  • led驅動器
    +關注

    關注

    12

    文章

    1110

    瀏覽量

    72748
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1700

    瀏覽量

    91317
收藏 人收藏

    評論

    相關推薦

    MAXQ2000 SPI模塊與MAX6951/MAX6950怎么配合使用?

    本應用筆記提供了MAXQ?匯編程序范例,說明MAXQ2000 SPI模塊與MAX6951/MAX6950的配合使用。
    發表于 05-31 06:08

    MAXQ2000微控制器MAX4397是如何連接的?

    MAX4397是什么?MAXQ2000微控制器MAX4397是如何連接的?
    發表于 06-04 06:15

    MAX6950-MAX6951中文資料pdf

    MAX6950/MAX6951是緊湊的共陰極顯示驅動器,通過SPITM、QSPITM、MICROWIRETM兼容的串行接口,連接微處理和獨
    發表于 05-06 17:14 ?150次下載

    MAX6951型串行接口LED驅動器及其應用

       MAX6950/6951是Maxim公司推出的串行接口LED顯示驅動器,內部集成16進制譯碼
    發表于 12-03 16:32 ?47次下載

    MAX6951/MAX6950 LED顯示驅動器MAXQ2

    摘要:本應用筆記說明MAX6951/MAX6950 LED驅動器MAXQ2000的SPI外設通信
    發表于 04-23 16:42 ?591次閱讀
    <b class='flag-5'>MAX6951</b>/<b class='flag-5'>MAX6950</b> <b class='flag-5'>LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>與<b class='flag-5'>MAXQ</b>2

    MAX6951/MAX6950 LED顯示驅動器MAXQ2

    摘要:本應用筆記說明MAX6951/MAX6950 LED驅動器MAXQ2000的SPI外設通信
    發表于 04-26 16:28 ?665次閱讀
    <b class='flag-5'>MAX6951</b>/<b class='flag-5'>MAX6950</b> <b class='flag-5'>LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>與<b class='flag-5'>MAXQ</b>2

    MAX6951/MAX6950LED顯示驅動器MAXQ20

    摘要:本應用筆記說明MAX6951/MAX6950 LED驅動器MAXQ2000的SPI外設通信
    發表于 04-26 17:17 ?669次閱讀
    <b class='flag-5'>MAX6951</b>/<b class='flag-5'>MAX6950LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>與<b class='flag-5'>MAXQ</b>20

    使用MAX6950MAX6951LED顯示驅動器的多重雙數

    Abstract: This application note discusses how to connect the MAX6950 (5 digit) and MAX6951 (8 digit
    發表于 04-27 09:34 ?1095次閱讀
    使用<b class='flag-5'>MAX6950</b>和<b class='flag-5'>MAX6951LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>的多重雙數

    從PC中試驗MAX6950MAX6951 LED顯示驅動器

    , evaluation, font design with MAX6950 and MAX6951 7-segment LED display drivers. The MAX6950
    發表于 04-27 09:44 ?946次閱讀
    從PC中試驗<b class='flag-5'>MAX6950</b>和<b class='flag-5'>MAX6951</b> <b class='flag-5'>LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>

    采用MAXQ2000微控制器MAX6970 LED驅動器

    采用MAXQ2000微控制器MAX6970 LED驅動器顯示不同的
    發表于 07-25 21:07 ?857次閱讀

    在PC上試驗MAX6950MAX6951 SPI LED顯示驅動器

    MAX6950MAX6951為5位和8位共陰極LED顯示驅動器,通過高速SPI串行接口控制。本
    的頭像 發表于 01-12 13:59 ?1012次閱讀
    在PC上試驗<b class='flag-5'>MAX6950</b>和<b class='flag-5'>MAX6951</b> SPI <b class='flag-5'>LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>

    使用MAX6951/MAX6950 LED顯示驅動器MAXQ2000微控制器通信

    MAXQ2000為高性能6951位RISC微控制器,集成SPI模塊,提供LED驅動器微控制器
    的頭像 發表于 02-20 10:16 ?1186次閱讀
    使用<b class='flag-5'>MAX6951</b>/<b class='flag-5'>MAX6950</b> <b class='flag-5'>LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>與<b class='flag-5'>MAXQ2000</b><b class='flag-5'>微控制器</b><b class='flag-5'>通信</b>

    MAX7219和MAX7221遷移到MAX6950MAX6951 LED驅動器

    本應用筆記討論了較舊的MAX7219和MAX7221 LED顯示驅動器與較新的MAX6950
    的頭像 發表于 06-08 16:14 ?1321次閱讀

    使用MAX6950MAX6951 LED顯示驅動器,帶多路復用雙位數顯示器

    MAX6950MAX6951為5位和8位共陰極LED顯示驅動器,采用不尋常的多路復用方案。這種多路復用方案最大限度地減少了
    的頭像 發表于 06-08 16:20 ?1150次閱讀
    使用<b class='flag-5'>MAX6950</b>和<b class='flag-5'>MAX6951</b> <b class='flag-5'>LED</b><b class='flag-5'>顯示</b><b class='flag-5'>驅動器</b>,帶多路復用雙位數<b class='flag-5'>顯示器</b>

    采用MAXQ2000微控制器MAX6970 LED驅動器顯示不同的LED排序

    MAX6970為8端口、36V恒流LED驅動器,采用4線串口。利用本應用筆記提供的信息,MAX6970配合MAXQ2000 16位RISC
    的頭像 發表于 06-12 16:10 ?519次閱讀
    采用<b class='flag-5'>MAXQ2000</b><b class='flag-5'>微控制器</b>和<b class='flag-5'>MAX</b>6970 <b class='flag-5'>LED</b><b class='flag-5'>驅動器</b><b class='flag-5'>顯示</b>不同的<b class='flag-5'>LED</b>排序