📄 sky1.asm
字号:
;*******************************************************************************
; Filename : CM8A21 Code.asm
; Author : CSC TW
; Purpose : Remote Device Code for CM8A21
; Revision : 04/10/2007 V1.0 First issue
;*******************************************************************************
;* (c) Copyright 2007, Sunny Group CO., LTD.
;*******************************************************************************
; General Features
; Remote Device's Format: PHILIPS+3010 SAT+TV二合一
;-------------------------------------------------------------------------------
; Code Option
; Fosc<2:0> : XT mode(455 KHz)
; WDT : Disable
; Protect : ON
; LVDT : Disable
; OSCD : Two oscillator periods
; PMOD : Non-power saving
; SUT<1:0> : 18ms(=1,1/Reset delay time)
; PAPH : Enable(Port A internal pull-high)
; PBPH : Enable(Port B internal pull-high)
;-------------------------------------------------------------------------------
; System Registers
;-------------------------------------------------------------------------------
INDF EQU 00H
TMR0 EQU 01H
PCL EQU 02H
STATUS EQU 03H
FSR EQU 04H
PORTA EQU 05H
PORTB EQU 06H
CMPCON EQU 07H
PCON EQU 0AH
AWUCON EQU 0BH
BWUCON EQU 0CH
IRCYCLE EQU 0DH
IRDUTY EQU 0EH
;-------------------------------------------------------------------------------
; Variables Definition
;-------------------------------------------------------------------------------
DEL_1 EQU 010H
DEL_2 EQU 011H
DATA1 EQU 012H
DATA2 EQU 013H
DATA3 EQU 014H
DATA4 EQU 015H
CLASS EQU 016H ;Bit0: 0-Send data/1-Repeat send HEAD
KEY_R EQU 017H
KEY_L EQU 018H
KEY_NUM EQU 019H
SEND_DATA EQU 01AH
SEND_BIT EQU 01BH
B_NUM EQU 01CH
FLAG EQU 01DH
FLAG_1 EQU 01EH
;-------------------------------------------------------------------------------
; Bit Flag Definition
;-------------------------------------------------------------------------------
R EQU 0
W EQU 1
;----------STATUS---------------------------------------------------------------
C EQU 0
Z EQU 2
;----------PORTA----------------------------------------------------------------
PA0 EQU 0
PA1 EQU 1
PA2 EQU 2
PA3 EQU 3
PA4 EQU 4
PA5 EQU 5
PA6 EQU 6
PA7 EQU 7
;----------PORTB----------------------------------------------------------------
PB0 EQU 0
PB1 EQU 1
PB2 EQU 2
PB3 EQU 3
PB4 EQU 4
PB5 EQU 5
PB6 EQU 6
PB7 EQU 7
;-------------------------------------------------------------------------------
; Code
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
ORG 00H
TABLE1: ADDAR PCL,W ;SAT
RETIA 00CH ;K1
RETIA 06DH ;K2
RETIA 06EH ;K3
RETIA 06FH ;K4
RETIA 070H ;K5
RETIA 066H ;K6
RETIA 0CBH ;K7
RETIA 04CH ;K8
RETIA 043H ;K9
RETIA 058H ;K10
RETIA 083H ;K11
RETIA 05AH ;K12
RETIA 05CH ;K13
RETIA 05BH ;K14
RETIA 010H ;K15
RETIA 059H ;K16
RETIA 020H ;K17
RETIA 011H ;K18
RETIA 0CCH ;K19
RETIA 0F5H ;K20
RETIA 021H ;K21
RETIA 001H ;K22
RETIA 002H ;K23
RETIA 003H ;K24
RETIA 004H ;K25
RETIA 005H ;K26
RETIA 006H ;K27
RETIA 007H ;K28
RETIA 008H ;K29
RETIA 009H ;K30
RETIA 00DH ;K31
RETIA 000H ;K32
RETIA 00AH ;K33
RETIA 044H ;K34
RETIA 04FH ;K35
;--------------------------------------------------------------------------------
ORG 030H
TABLE2: ADDAR PCL,W ;TV
RETIA 00CH ;K1
RETIA 0FFH ;K2
RETIA 0FFH ;K3
RETIA 0FFH ;K4
RETIA 0FFH ;K5
RETIA 0FFH ;K6
RETIA 0FFH ;K7
RETIA 0FFH ;K8
RETIA 0FFH ;K9
RETIA 0FFH ;K10
RETIA 0FFH ;K11
RETIA 0FFH ;K12
RETIA 0FFH ;K13
RETIA 0FFH ;K14
RETIA 010H ;K15
RETIA 0FFH ;K16
RETIA 020H ;K17
RETIA 011H ;K18
RETIA 0FFH ;K19
RETIA 0FFH ;K20
RETIA 021H ;K21
RETIA 001H ;K22
RETIA 002H ;K23
RETIA 003H ;K24
RETIA 004H ;K25
RETIA 005H ;K26
RETIA 006H ;K27
RETIA 007H ;K28
RETIA 008H ;K29
RETIA 009H ;K30
RETIA 00DH ;K31
RETIA 000H ;K32
RETIA 00AH ;K33
RETIA 044H ;K34
RETIA 04FH ;K35
;-------------------------------------------------------------------------------
TRANS_ONE_BIT_3010:
RLR SEND_DATA,W
BTRSC STATUS,C
GOTO TRANS_ZERO
MOVIA 025H
IOST PCON
LCALL DELAY_LOW
MOVIA 020H
IOST PCON
LCALL DELAY_HIGH
GOTO TRANS_JUDGE
TRANS_ZERO: MOVIA 020H
IOST PCON
LCALL DELAY_HIGH
MOVIA 025H
IOST PCON
LCALL DELAY_LOW
TRANS_JUDGE: DECRSZ SEND_BIT,W
GOTO TRANS_1
NOP
RETURN
TRANS_1:
GOTO TRANS_ONE_BIT_3010
;---------------------------------------------------------------------
TRANS_ONE_BIT_PHILIPS:
RLR SEND_DATA,W
BTRSS STATUS,C
GOTO TRANS_ZERO1
MOVIA 025H
IOST PCON
LCALL DELAY_LOW1
MOVIA 020H
IOST PCON
LCALL DELAY_HIGH1
GOTO TRANS_JUDGE1
TRANS_ZERO1: MOVIA 020H
IOST PCON
LCALL DELAY_HIGH1
MOVIA 025H
IOST PCON
LCALL DELAY_LOW1
TRANS_JUDGE1: DECRSZ SEND_BIT,W
GOTO TRANS_11
NOP
RETURN
TRANS_11: GOTO TRANS_ONE_BIT_PHILIPS
;----------------------------------------------------
DELAY_LOW: MOVIA 0C3H ;0D9H
MOVAR DEL_1
GOTO DELAY
DELAY_HIGH: MOVIA 0CBH ;0DEH
MOVAR DEL_1
GOTO DELAY
;---------------------------------------------------------------
DELAY_LOW1: MOVIA 0E2H
MOVAR DEL_1
GOTO DELAY
DELAY_HIGH1: MOVIA 0E6H
MOVAR DEL_1
GOTO DELAY
DELAY_LOW2: MOVIA 0BFH
MOVAR DEL_1
GOTO DELAY
DELAY_HIG2: MOVIA 0CAH
MOVAR DEL_1
DELAY: INCRSZ DEL_1,W
GOTO DELAY
NOP
NOP
NOP
NOP
NOP
NOP
RETURN
;-------------------------------------------------------------------------------
POWER_ON: MOVIA 020H
IOST PCON
MOVIA 000H
IOST BWUCON
OPTION
CLRWDT
CLRR FLAG
MOVIA 003H
IOST IRDUTY
MOVIA 0FEH
IOST BWUCON
IOST PORTB
MOVAR PORTB
MOVIA 00CH
IOST IRCYCLE
RESET_KEY: BCR CLASS,0
MOVIA 001H
XORAR FLAG_1,W
CHECK_KEY: MOVIA 000H
IOST PORTA
MOVAR PORTA
CLRR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
GOTO KEY43_49
WAIT_KEY: BCR PORTB,0
NOP
SLEEP
GOTO RESET_KEY
KEY43_49: MOVIA 0FFH
MOVAR PORTA
MOVIA 02AH
MOVAR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
GOTO KEY_1
KEY1_7: MOVIA 0FEH
MOVAR PORTA
CLRR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
GOTO KEY_1
KEY8_14: BCR PORTA,PA3
MOVIA 007H
MOVAR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
GOTO KEY_1
KEY15_21: BCR PORTA,PA1
MOVIA 0EH
MOVAR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
GOTO KEY_1
KEY22_28: BCR PORTA,PA2
MOVIA 015H
MOVAR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
GOTO KEY_1
KEY29_35: BCR PORTA,PA4
MOVIA 01CH
MOVAR KEY_NUM
MOVR PORTB,R
IORIA 001H
SUBIA 0FFH
BTRSS STATUS,Z
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -