?? 15ludianqi.txt
字號:
;********************************
; 發送控制器程序
;********************************
;
;
;
KEYX0 EQU P1.0
KEYX1 EQU P1.1
KEYX2 EQU P1.2
KEYX3 EQU P1.3
KEYY EQU P0
;*********************
; 主程序和中斷程序入口
;*********************
ORG 0000G
AJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
;********************
; 初始化程序
;********************
CLEARMEMIO: CLR A
DEC A
MOV P0,A
MOV P1,A
MOV P2,A
MOV P3,A
CLR P3.5
CLEARMEN: MOV SP,#70H
MOV IE,#00H
MOV IP,#01H
MOV TMOD,#22H
MOV TH1,#0F3H
MOV TL1,#0F3H
SETB EA
RET
;*****************
; 主程序
;*****************
START: LCALL CLEARMEMIO
MAIN LCALL KEYWORK
LJMP MAIN
NOP
NOP
NOP
LJMP START
;************************
; T1中斷服務程序
;************************
INTT1: CPL P3.5
RETI
;************************
; 鍵盤工作子程序
;************************
KEYWORK: MOV KEYY,#0FFH
CLR KEYX0
CLR KEYX1
CLR KEYX2
CLR KEYX3
MOV A,KEYY
MOV B,A
CJNE A,#0FFH,KEYHIT
KEYOUT: RET
KEYHIT: LCALL DL10MS
MOV A,KEYY
CJNE A,B,KEYOUT
SETB KEYX1
SETB KEYX2
SETB KEYX3
MOV A,KEYY
CJNE A,#0FFH,KEYVAL0
SETB KEYX0
CLR KEYX1
MOV A,KEYY
CJNE A,#0FFH,KEYVAL1
SETB KEYX1
CLR KEYX2
MOV A,KEYY
CJNE A,#0FFH,KEYVAL2
SETB KEYX2
CLR KEYX3
MOV A,KEYY
CJNE A,#0FFH,KEYVAL3
LJMP KEYOUT
KEYVAL0: MOV R2,#00H
LAMP KEYVAL4
KEYVAL1: MOV R2,#08H
LJMP KEYVAL4
KEYVAL2: MOV R2,#10H
LJMP KEYVAL4
KEYVAL3: MOV R2,#18H
LJMP KEYVAL4
KEYVAL4: MOV DPTR,#KEYVALTAB
MOV B,A
CLR A
MOV R0,A
KEYVAL5: MOV A,R0
SUBB A,#08H
JNC KEYOUT
MOV A,R0
MOVC A,@A+DPTR
INC R0
CJNE A,B,KEYVAL5
DEC R0
MOV A,R0
ADD A,R2
MOV B,A
RL A
ADD A,B
MOV DPTR,#KEYFUNTAB
JMP @A+DPTR
KEYFUNTAB: LJMP KEYFUN00
LJMP KEYFUN01
LJMP KEYFUN02
LJMP KEYFUN03
LJMP KEYFUN04
LJMP KEYFUN05
LJMP KEYFUN06
LJMP KEYFUN07
LJMP KEYFUN08
LJMP KEYFUN09
LJMP KEYFUN10
LJMP KEYFUN11
LJMP KEYFUN12
LJMP KEYFUN13
LJMP KEYFUN14
LJMP KEYFUN15
LJMP KEYFUN16
LJMP KEYFUN17
LJMP KEYFUN18
LJMP KEYFUN19
LJMP KEYFUN20
LJMP KEYFUN21
LJMP KEYFUN22
LJMP KEYFUN23
LJMP KEYFUN24
LJMP KEYFUN25
LJMP KEYFUN26
LJMP KEYFUN27
LJMP KEYFUN28
LJMP KEYFUN29
LJMP KEYFUN30
LJMP KEYFUN31
RET
KEYVALTAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
RET
KEYFUN00: MOV A,#02H
LJMP REMOTE
RET
KEYFUN01: MOV A,#03H
LJMP REMOTE
RET
KEYFUN02: MOV A,#04H
LJMP REMOTE
RET
KEYFUN03: MOV A,#05H
LJMP REMOTE
RET
KEYFUN04: MOV A,#06H
LJMP REMOTE
RET
KEYFUN05: MOV A,#07H
LJMP REMOTE
RET
KEYFUN06: MOV A,#08H
LJMP REMOTE
RET
KEYFUN07: MOV A,#09H
LJMP REMOTE
RET
KEYFUN08: MOV A,#0AH
LJMP REMOTE
RET
KEYFUN09: MOV A,#0BH
LJMP REMOTE
RET
KEYFUN10: MOV A,#0CH
LJMP REMOTE
RET
KEYFUN11: MOV A,#0DH
LJMP REMOTE
RET
KEYFUN12: MOV A,#0EH
LJMP REMOTE
RET
KEYFUN13: MOV A,#0FH
LJMP REMOTE
RET
KEYFUN14: MOV A,#10H
LJMP REMOTE
RET
KEYFUN15: MOV A,#11H
LJMP REMOTE
RET
KEYFUN16: RET
KEYFUN17: RET
KEYFUN18: RET
KEYFUN19: RET
KEYFUN20: RET
KEYFUN21: RET
KEYFUN22: RET
KEYFUN23: RET
KEYFUN24: RET
KEYFUN25: RET
KEYFUN26: RET
KEYFUN27: RET
KEYFUN28: RET
KEYFUN29: RET
KEYFUN30: RET
KEYFUN31: RET
;***************************
; 編碼發射程序
;***************************
REMOTE: MOV R1,A
LJMP OUT3
OUT: MOV R0,#55H
OUT1: SETB ET1
SETB TR1
NOP
NOP
NOP
NOP
NOP
DJNZ R0,OUT1
MOV R0,#32H
OUT2: CLR TR1
CLR ET1
CLR P3.5
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R0,OUT2
DJNZ R1,OUT
LCALL DL500MS
RET
OUT3: MOV R0,#0FFH
LJMP OUT1
;*****************
; 延時531us
;*****************
DELAY: MOV R2,#0FFH
DELAY1: DJNZ R2,DELAY1
RET
;*********************
; 延時10MS
;*********************
DL10MS: MOV R3,#14H
DL10MS1: LCALL DELAY
DJNZ R3,DL10MS1
RET
DL500MS: MOV R4,#32H
DL500MS1: LCALL DL10MS
DJNZ R4,DL500MS1
RET
END
;*******************************
;15路遙控接收程序
;注:P3.0為100Hz交流電源過零相位參考輸入
;********************************
;主程序和中斷程序入口
;********************************
ORG 0000H
LJMP START
ORG 0003H
LJMP INTEX0
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 002BH
RTI
;********************
; 初始化程序
;********************
CLEARMEMIO: CLR A
DEC A
MOV P0,A
MOV P1,A
MOV P2,A
MOV P3,A
CLEARMEM: MOV IE,#00H
SETB EX0
SETB EA
RET
;******************
; 主程序
;******************
START: LCALL CLEARMEMIO
LCALL LOOP
MAIN: JB P3.0,MAIN
LCALL DLX
CLR P2.7
LCALL DELAY
SETB P2.7
LJMP MAIN
NOP
NOP
LJMP START
;***************************
; 遙控接收程序
;***************************
INTEX0: CLR EX0
JNB P3.1,READ1
READOUTT0: SETB EX0
RETI
READ1: CLR A
MOV DPH,A
MOV DPL,A
HARD1: JB P3.1,HARD11
INC DPTR
NOP
NOP
AJMP HARD1
HARD11: MOV A,DPH
JZ READOUTT0
CLR A
READ11: INC A
READ12: JNB P3.1,READ12
MOV R1,#06H
READ13: JNB P3.1,READ11
LCALL DELAY
DJNZ R1,READ13
DEC A
DEC A
JZ FUN0
DEC A
JZ FUN1
DEC A
JZ FUN2
DEC A
JZ FUN3
DEC A
JZ FUN4
DEC A
JZ FUN5
DEC A
JZ FUN6
DEC A
JZ FUN7
DEC A
JZ FUN8
DEC A
JZ FUN9
DEC A
JZ FUN10
DEC A
JZ FUN11
DEC A
JZ FUN12
DEC A
JZ FUN13
DEC A
JZ FUN14
DEC A
JZ FUN15
NOP
NOP
LJMP READOUTT0
FUN0: CPL P0.0
LJMP READOUTT0
FUN1: CPL P0.1
LJMP READOUTT0
FUN2: CPL P0.2
LJMP READOUTT0
FUN3: CPL P0.3
LJMP READOUTT0
FUN4: CPL P0.4
LJMP READOUTT0
FUN5: CPL P0.5
LJMP READOUTT0
FUN6: CPL P0.6
LJMP READOUTT0
FUN7: CPL P0.7
LJMP READOUTT0
FUN8: CPL P2.6
LJMP READOUTT0
FUN9: CPL P2.5
LJMP READOUTT0
FUN10: CPL P2.4
LJMP READOUTT0
FUN11: CPL P2.3
LJMP READOUTT0
FUN12: CPL P2.2
LJMP READOUTT0
FUN13: CPL P2.1
LJMP READOUTT0
FUN14: CPL P2.0
LJMP READOUTT0
FUN15: DEC P1
MOV A,P1
CJNE A,#0F7H,OUTT0
CLR A
DEC A
MOV P1,A
OUTT0: LCALL LOOP
LJMP READOUTT0
;*************************
; 延時513us
;*************************
DELAY: MOV R0,#0FFH
DELAY1: DJNZ R0,DELAY1
RET
;***********************
; 延時10MS
;***********************
DL10MS: MOV R1,#14H
DL10MS1: LCALL DELAY
DJNZ R1,DL10MS1
RET
;***********************
; 調光延時時間控制
;***********************
DLX: MOV R2,B
DLX1: LCALL DELAY
DJNZ R2,DLX1
RET
;***********************
; 調光控制程序
;***********************
LOOP: MOV A,P1
SUBB A,#0FFH
JZ LOOP7
MOV A,P1
SUBB A,#0FEH
JZ LOOP6
MOV A,P1
SUBB A,#0FDH
JZ LOOP5
MOV A,P1
SUBB A,#0FCH
JZ LOOP4
MOV A,P1
SUBB ,#0FBH
JZ LOOP3
MOV A,P1
SUBB A,#0FAH
JZ LOOP2
MOV A,P1
SUBB A,#0F9H
JZ LOOP1
MOV A,P1
SUBB A,#0F8H
JZ LOOP0
RET
LOOP7: MOV B,#01H
RET
LOOP6: MOV B,#02H
RET
LOOP5: MOV B,#04H
RET
LOOP4: MOV B,#06H
RET
LOOP3: MOV B,#08H
RET
LOOP2: MOV B,#0AH
RET
LOOP1: MOV B,#0CH
RET
LOOP0: MOV B,#0DH
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -