當前位置:編程學習大全網 - 遊戲軟體 - 閃爍變換的發光管控制器急求

閃爍變換的發光管控制器急求

TICK EQU 10000

T100US EQU 156 ;

LEDBUF EQU 20H

C100US EQU 30H

DBUF EQU 40H

TEMP EQU 50H

COUNT EQU 60H

BUFSTORE EQU 61H

DIN BIT P3.4

CLK BIT P3.5

//////////定時常數////

ORG 0000H

LJMP MAIN

////轉入主程序///

ORG 000BH

////中斷入口/////////

LJMP T01NT

ORG 1000H

///以下鍵位判斷///

K00: ACALL DELAY

MOV A, P1

CJNE A,#0FFH,K01

LJMP KEY

K01: CJNE A, #0FEH,K02

CPL 21H.0

LJMP KEY

K02: CJNE A, #0FDH,K03

CPL 21H.1

LJMP KEY

K03: CJNE A, #0FBH,KEY

CPL 21H.2

LJMP KEY

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 //如果計數器不為零,則返回

MOV C100US,#4EH

MOV C100US+1,#20H ///定時2秒

KEY: MOV P1, #0FFH //P1接口置數

MOV A, P1

CJNE A, #0FFH, K00 ///轉到鍵位判斷

CLR C

MOV C, 21H.2 //模式判斷

JNC MODE //判斷模式,CY為零轉入循環交替

MOV LEDBUF ,BUFSTORE

MOV C, 21H.1 //快慢判斷

JNC OUTPHL //判斷快慢,CY為零轉入高速

CLR C

MOV C, 21H.0 //方向判斷

JNC OUTPSR //判斷方向,CY為零轉入慢速右移

OUTPSL: //慢速左移

SETB 21H.0

SETB 21H.1

MOV A,LEDBUF

RL A

MOV LEDBUF,A

MOV BUFSTORE,LEDBUF

START1: ///慢速左移數碼管顯示

MOV DBUF+7,#07H

MOV DBUF+6,#06H

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

EXIT:

POP PSW //出棧

RETI //中斷返回

MODE: LJMP OUTPUT

OUTPSR: ///慢速右移

CLR 21H.0

SETB 21H.1

MOV A,LEDBUF

RR A

MOV LEDBUF,A

MOV BUFSTORE,LEDBUF

START2: //慢速右移數碼管顯示

MOV DBUF+7,#0FH

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

MOV C100US+1,#10H //定時1秒

MOV C,21H.0

JNC OUTPHR

SETB 21H.0

CLR 21H.1

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

MOV DBUF+3,#013H

MOV DBUF+2,#012H

MOV DBUF+1,#011H

MOV DBUF,#010H

LJMP DISP

SJMP EXIT

OUTPHR: //快速右移

CLR 21H.0

CLR 21H.1

MOV A,LEDBUF

RR A

MOV LEDBUF,A

MOV BUFSTORE,LEDBUF

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

OUTPUT:INC COUNT

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

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

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

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

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 //數碼管顯示

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

LJMP DISP

MAIN: //主程序

SETB 21H.0 //設初值

SETB 21H.1

SETB 21H.2

CLR COUNT

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

INC R0

DJNZ R1,DP12

LJMP EXIT

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

RETI

DELAY:MOV R4, #02H

AA1: MOV R5, #0F8H

AA: NOP

NOP

DJNZ R5, AA

DJNZ R4, AA1

RET

END

  • 上一篇:立春天氣晴,百事好收成的意思是什麽?
  • 下一篇:張遠的主要作品
  • copyright 2024編程學習大全網