📄 ydjc.asm
字号:
$INCLUDE(C8051F020.INC)
DIN BIT P1.1
LOAD BIT P1.2
CLK BIT P1.3
DAT1 DATA 020H
DAT2 DATA 021H
C0 DATA 030H
ORG 0000H
AJMP START
ORG 0003H
LJMP EINT0
ORG 000BH
LJMP T0INT
ORG 0013H
LJMP EINT1
ORG 001BH
LJMP T1INT
ORG 0100H
START: MOV WDTCN,#0DEH //SHUT WATCH DOG
MOV WDTCN,#0ADH
SYSCLK: MOV OSCXCN,#067H //EXTERNAL OSCILLATE
CLR A //SYSTEM CLOCK 12M
DJNZ ACC,$
DJNZ ACC,$
LOKUP: MOV A,OSCXCN
JNB ACC.7,LOKUP
ORL OSCICN,#08H
SETUP: MOV XBR2,#040H //交叉开关使能
MOV XBR1,#014H
MOV XBR0,#004H
MOV P0MDOUT,#0FFH
MOV P1MDOUT,#0FFH
MOV P2MDOUT,#0FFH
MOV TMOD,#011H //T0,T1 RESET
EINT: SETB EX0 //EABLE INT
SETB IT0
SETB EX1
SETB IT1
MAIN:
RS7219: MOV DAT1,#09H //硬件译码
MOV DAT2,#0FFH
LCALL SEND
MOV DAT1,#0AH //强度5
MOV DAT2,#04H
LCALL SEND
MOV DAT1,#0BH //限扫
MOV DAT2,#03H
LCALL SEND
MOV DAT1,#0CH // 启动
MOV DAT2,#01H
LCALL SEND
RET
SEND: MOV R0,#08H //SEND
CLR LOAD
MOV 040H,A
PUSH 040H
SENDLOOP: CLR CLK
MOV C,DAT1.7
MOV DIN,C
SETB CLK
MOV A,DAT1
RL A
MOV DAT1,A
DJNZ R0,SENDLOOP
SEND1: MOV R3,#08H
SENDLOOP1:CLR CLK
MOV C,DAT2.7
MOV DIN,C
SETB CLK
MOV A,DAT2
RL A
MOV DAT2,A
DJNZ R3,SENDLOOP1
SETB LOAD
POP 040H
MOV A,040H
RET
INT0: CLR IE
CLR TR0
T0INT: MOV TH0,#0ECH //DELAY 5MS LOOP(T0 INT)
MOV TL0,#078H
SETB TR0
CLR C
INC C0
JNC JP
SETB F0
SJMP JP
JP: CLR F0
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -