?? 74hc595.asm
字號:
;*******************************************************************
;* *
;* ME500單片機開發系統演示程序 - 74HC595 串轉并演示 *
;* *
;* 16×16LED點陣顯示 *
;* *
;* 版本: V1.0 (2007/01/05) *
;* 作者: gguoqing (Email: gguoqing@willar.com) *
;* 網站: www.willar.com(偉納電子) www.mcusj.com(偉納單片機世界) *
;* 郵箱: support@willar.com *
;* *
;*【版權】Copyright(C)偉納電子 www.willar.com All Rights Reserved *
;*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息! *
;* *
;*******************************************************************
;* *
;* 描述: *
;* *
;* 74HC595具有一個8位串行輸入并行輸出的移位寄存器和一個8位輸出 *
;* 鎖存器。此程序利用595芯片進行串行輸入并行輸出演示。 *
;* *
;*******************************************************************
ORG 0000H
LJMP MAIN
ORG 0030H
;**********************************************************
SDATA_595 EQU P0.0 ;串行數據輸入
SCLK_595 EQU P2.7 ;移位時鐘脈沖
RCK_595 EQU P0.2 ;輸出鎖存器控制脈沖
G_74138 EQU P2.4 ;顯示允許控制信號端口
;**********************************************************
MAIN:
MOV SP,#70H
MOV P2,#0F0H
MOV P0,#0FFH
CLR RCK_595
SETB G_74138 ;關閉顯示
MAIN1:
MOV R0,#00H ;取碼指針存入R0
MAIN2:
MOV DPTR,#TAB_TEST1
CALL WR_LED
INC R0
INC R0
CALL DELAY
CJNE R0,#34,MAIN2 ;顯示完34個字符?
MOV R0,#00H
MAIN3:
MOV DPTR,#TAB_TEST2
CALL WR_LED
INC R0
INC R0
CALL DELAY
CJNE R0,#34,MAIN3 ;顯示完34個字符?
JMP MAIN1
;**********************************************************
; 點陣顯示子程序
;**********************************************************
WR_LED:
SETB G_74138 ;關行顯示,準備刷新
CLR RCK_595
INC R0 ;取行右邊字節偏址
MOV A,R0 ;取碼指針載入A
MOVC A,@A+DPTR
LCALL WR_595
CLR RCK_595
DEC R0 ;取行左邊字節偏址
MOV A,R0 ;取碼指針載入A
MOVC A,@A+DPTR
LCALL WR_595
NOP
NOP
NOP
SETB RCK_595 ;上升沿將數據送到輸出鎖存器
NOP
NOP
NOP
NOP
NOP
NOP
CLR RCK_595 ;恢復低電平
NOP
NOP
CLR G_74138 ;開顯示
RET
;**********************************************************
;移位寄存器接收數據子程序
;**********************************************************
WR_595:
MOV R7,#08H
WR_LOOP:
RLC A
MOV SDATA_595,C
SETB SCLK_595 ;上升沿發生移位
NOP
NOP
NOP
NOP
CLR SCLK_595
DJNZ R7,WR_LOOP
RET
;**********************************************************
DELAY:
MOV R5,#02H
DEL1:
MOV R6,#0FFH
DEL2:
MOV R7,#0FFH
DEL3:
DJNZ R7,DEL3
DJNZ R6,DEL2
DJNZ R5,DEL1
RET
;**********************************************************
TAB_TEST1:
DB 0FFH,0FFH,07FH,0FFH,0BFH,0FFH,0DFH,0FFH,0EFH,0FFH
DB 0F7H,0FFH,0FBH,0FFH,0FDH,0FFH,0FEH,0FFH
DB 0FFH,07FH,0FFH,0BFH,0FFH,0DFH,0FFH,0EFH
DB 0FFH,0F7H,0FFH,0FBH,0FFH,0FDH,0FFH,0FEH
TAB_TEST2:
DB 0FFH,0FFH,0FFH,0FEH,0FFH,0FDH,0FFH,0FBH,0FFH,0F7H
DB 0FFH,0EFH,0FFH,0DFH,0FFH,0BFH,0FFH,07FH
DB 0FEH,0FFH,0FDH,0FFH,0FBH,0FFH,0F7H,0FFH
DB 0EFH,0FFH,0DFH,0FFH,0BFH,0FFH,07FH,0FFH
;**********************************************************
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -