⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sky1.asm

📁 PHILIP按键转换二合一的电视遥控器(HONGWAI)
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*******************************************************************************
; 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 + -