현재 위치 - 중국 분류 정보 발표 플랫폼 - 생활 서비스 정보 - 발광관 컨트롤러 점멸 및 교체가 시급합니다

발광관 컨트롤러 점멸 및 교체가 시급합니다

TICK EQU 10000

T100US EQU 156;

LEDBUF EQU 20H

C100US EQU 30H

DBUF EQU 40H

온도 EQU 50H

카운트 EQU 60H

BUFSTORE EQU 61H

DIN BIT P3.4

CLK BIT P3.5

//////////타이밍 상수////

ORG 0000H

LJMP MAIN

////메인 프로그램으로 전송///

ORG 000BH

////인터럽트 입력/////////

< p> LJMP T01NT

ORG 1000H

///다음 핵심 판단///

K00: ACALL DELAY

MOV A , P1

CJNE A,#0FFH,K01

LJMP 키

K01: CJNE A, #0FEH,K02

CPL 21H .0

LJMP 키

K02: CJNE A, #0FDH,K03

CPL 21H.1

LJMP 키

K03: CJNE A, #0FBH,KEY

CPL 21H.2

LJMP 키

T01NT:

PUSH PSW ///스택에 푸시

MOV A,C100US+1

JNZ GOON //A는 00H가 아니며 점프하여 GOON을 실행합니다.

DEC C100US

GOON:

DEC C100US+1

MOV A,C100US

ORL A,C100US+1

JNZ EXIT //카운터가 0이 아니면 반환

MOV C100US,#4EH

MOV C100US+1,#20H ///타이밍 2초

< p>KEY : MOV P1, #0FFH //P1 인터페이스 설정

MOV A, P1

CJNE A, #0FFH, K00 ///키 판단으로 이동

< p> CLR C

MOV C, 21H.2 //모드 판단

JNC MODE //판정 모드, CY가 0이면 사이클 교대로 전환

< p> MOV LEDBUF,BUFSTORE

MOV C, 21H.1 //속도 및 느린 판단

JNC OUTPHL //속도 판단, CY가 0이고 고속으로 절환

CLR C

MOV C, 21H.0 //방향 판단

JNC OUTPSR // 방향을 결정합니다. CY가 0이면 느린 오른쪽 이동으로 이동합니다.

OUTPSL: //느린 왼쪽 이동

SETB 21H.0

SETB 21H.1< /p>

MOV A,LEDBUF

RL A

MOV LEDBUF,A

MOV BUFSTORE,LEDBUF

START1: ///디지털 튜브 디스플레이를 왼쪽으로 천천히 이동

MOV DBUF+7,#07H

MOV DBUF+6,#06H

< p> MOV DBUF+5, #05H

MOV DBUF+4,#04H

MOV DBUF+3,#03H

MOV DBUF+2,# 02H

MOV DBUF+1,#01H

MOV DBUF,#00H

LJMP DISP

LJMP EXIT

< p>EXIT:

POP PSW //스택에서 팝

RETI //인터럽트 반환

MODE: LJMP OUTPUT

OUTPSR : ///느린 오른쪽 시프트< /p>

CLR 21H.0

SETB 21H.1

MOV A,LEDBUF

RR A< /p>

MOV LEDBUF ,A

MOV BUFSTORE,LEDBUF

START2: //디지털 튜브 디스플레이를 오른쪽으로 천천히 이동

MOV DBUF +7,#0FH

< p> MOV DBUF+6,#0EH

MOV DBUF+5,#0DH

MOV DBUF+4,#0CH

MOV DBUF+3,# 0BH

MOV DBUF+2,#0AH

MOV DBUF+1,#09H

MOV DBUF,# 08H

LJMP DISP

LJMP EXIT

OUTPHL: //왼쪽으로 빠르게 이동

MOV C100US,#27H

< p> MOV C100US+1,#10H / /타이머 1초

MOV C,21H.0

JNC OUTPHR

SETB 21H.0

CLR 21H.1

p>

MOV A,LEDBUF

RL

A

MOV LEDBUF,A

MOV BUFSTORE,LEDBUF

START3: //디지털 튜브 디스플레이를 왼쪽으로 빠르게 이동

MOV DBUF+ 7,#017H

MOV DBUF+6,#016H

MOV DBUF+5,#015H

MOV DBUF+4,#014H

p>

MOV DBUF+3,#013H

MOV DBUF+2,#012H

MOV DBUF+1,#011H

MOV DBUF, #010H

LJMP DISP

SJMP EXIT

OUTPHR: //빠른 오른쪽 시프트

CLR 21H.0

< p> CLR 21H.1

MOV A,LEDBUF

RR A

MOV LEDBUF,A

MOV BUFSTORE,LEDBUF

p>

START4: //디지털 튜브 디스플레이를 오른쪽으로 빠르게 이동

MOV DBUF+7,#01FH

MOV DBUF+6,#01EH

MOV DBUF +5,#01DH

MOV DBUF+4,#01CH

MOV DBUF+3,#01BH

MOV DBUF+2, #01AH

MOV DBUF+1,#019H

MOV DBUF,#018H

LJMP DISP

출력:INC 개수

p>

MOV A,COUNT

CJNE A,#01H,PART2

MOV P2,#7EH

MOV LEDBUF,P2

LJMP START5

PART2:CJNE A,#02H,PART3

MOV P2,#0BDH

MOV LEDBUF,P2

LJMP START5

PART3:CJNE A,#03H,PART4

MOV P2,#0DBH

MOV LEDBUF,P2

LJMP START5

PART4:CJNE A,#04H,PART5

MOV P2,#0E7H

MOV LEDBUF,P2

LJMP START5< /p>

PART5:CJNE A,#05H,PART6

MOV P2,#0DBH

MOV LEDBUF,P2

LJMP START5

PART6 :CJNE A,#06H,PART7

MOV P2,#0BDH

MOV LEDBUF,P2

LJMP START5

PART7:CJNE A,#07,PART8

MOV P2,#07EH

MOV LEDBUF,P2

LJMP START5

p>

p>

PART8:CJNE A,#07,PART9

MOV P2,#0FFH

MOV LEDBUF,P2

LJMP START5

PART9:CJNE A,#08H,PART10

MOV P2,#55H

MOV LEDBUF,P2

LJMP START5< /p>

PART10:CJNE A,#09H,PART11

MOV P2,#0AAH

MOV LEDBUF,P2

LJMP START5

PART11 :CJNE A,#0AH,PART12

MOV P2,#0C3H

MOV LEDBUF,P2

LJMP START5

< p> PART12:CJNE A,#0BH,PART13

MOV P2,#77H

MOV LEDBUF,P2

LJMP START5

PART13:CJNE A, #0CH,PART14

MOV P2,#0BBH

MOV LEDBUF,P2

LJMP START5

PART14: CJNE A,#0DH ,PART15

MOV P2,#0DDH

MOV LEDBUF,P2

LJMP START5

PART15:CJNE A ,#0DH,PART16

MOV P2,#0EEH

MOV LEDBUF,P2

LJMP START5

PART16:MOV COUNT,# 01H

LJMP START5

/////패턴 끝/////////

START5:MOV DBUF+7,#027H //니지터 튜브 디스플레이< /p>

MOV DBUF+6,#026H

MOV DBUF+5,#025H

MOV DBUF+4,#024H

MOV DBUF +3,#023H

MOV DBUF+2,#022H

MOV DBUF+1,#021H

MOV DBUF,# 020H

< p> LJMP DISP

MAIN: //메인 프로그램

SETB 21H.0 //초기값 설정

SETB 21H.1

SETB 21H.2

CLR 카운트

MOV TMOD,#02H //모드 2, 타이머

MOV TH0,#T100US

MOV TL0,#T100US

MOV IE,#10000010B

SETB TR0 //시작 타이밍

MOV A,#0FEH

MOV LEDBUF,A

MOV BUFSTORE, A

MOV P2,A

MOV C100US, #27H

MOV C100US+1, # 10H

LOOP:

MOV B,20H

MOV P2,B

LJMP LOOP

DISP: //정적 디지털 튜브 디스플레이

MOV R0,#DBUF

MOV R1,#TEMP

MOV R2,#8

DP10 :

MOV DPTR,#SEGTAB

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1, A

INC R0

INC R1

DJNZ R2,DP10

MOV R0,#TEMP

MOV R1,#8

DP12:

MOV R2,#8

MOV A,@R0

DP13:

RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R2,DP13

< p> INC R0

DJNZ R1,DP12

LJMP 종료

SEGTAB:

DB 6DH,80H,40H,40H,38H ,79H,38H,31H

DB 6DH,80H,40H,40H,77H,30H,6FH,74H

DB 76H,80H,40H,40H,38H,79H,38H ,31H

DB 76H,80H,40H,40H,77H,30H,6FH,74H

DB 40H,40H,6FH,3FH,3FH,5EH,40H,40H

p> p>

RETI

DELAY:MOV R4, #02H

AA1: MOV R5, #0F8H

AA: NOP

NOP

DJNZ R5, AA

DJNZ R4, AA1

RET

END