Tool KVM DVI(AUTO)

 ;************************************Tool KVM DVI****************************************************
;    DATE   2007/07/23
;    作者   william.李
;    公司   东莞市佑霖电子科技有限公司
    TITLE   "Tool-KVM-DVI"
    PROCESSOR  16F73
;****************************************************************************************************
;    BANK  SPECIAL REGISTERS
;****************************************************************************************************
INDEX    EQU   00H
RTCC    EQU   01H
PCL    EQU   02H
;*****************************************************************************************************
PSW    EQU   03H
CF    EQU   0
DCF    EQU   1
ZF    EQU   2
PDF    EQU   3
TOF    EQU   4
PA0    EQU   5
PA1    EQU   6
IRP    EQU   7
;*****************************************************************************************************
FSR    EQU   04H
BK0    EQU   5
BK1    EQU   6
;*****************************************************************************************************
RA    EQU   05H
SP    EQU   0
BOTTON_SELECT  EQU   1
LED_TEST_SW   EQU   2
RA_3    EQU   3
RA_4    EQU   4
RA_5    EQU   5
_RAVAL   EQU   b'00000110'
;*****************************************************************************************************
RB    EQU   06H
RB_0    EQU   0
RB_1    EQU   1
RB_2    EQU   2 
SEG_DAT   EQU   3
SEG_CLK   EQU   4
SEG_CLR   EQU   5
RB_6    EQU   6
C1    EQU   7
_RBVAL   EQU   b'00000000'
;*****************************************************************************************************
RC    EQU   07H
MLD1    EQU   0
MLD2    EQU   1
MLD3    EQU   2
MLD4    EQU   3
RC_4    EQU   4
RC_5    EQU   5
RX    EQU   6
TX    EQU   7
_RCVAL   EQU   B'10000000'
;*****************************************************************************************************
PCLATH   EQU   0AH
SUB_0    EQU   0
SUB_1    EQU   1
SUB_2    EQU   2
PG0    EQU   3
PG1    EQU   4
;*****************************************************************************************************
INTCON   EQU   0BH
PEIE    EQU   6
GIE    EQU   7
;*****************************************************************************************************
K21REG   EQU   21H
K22REG   EQU   22H
K23REG   EQU   23H
K24REG   EQU   24H
K25REG   EQU   25H
K26REG   EQU   26H
K27REG   EQU   27H
K28REG   EQU   28H
K29REG   EQU   29H
;*****************************************************************************************************
K2AREG   EQU   2AH
K2BREG   EQU   2BH
K2CREG   EQU   2CH
K2DREG   EQU   2DH
K2EREG   EQU   2EH
K2FREG   EQU   2FH
K30REG   EQU   30H
K31REG   EQU   31H
PSW_TEMP   EQU   32H
RECEIVE_TEMP  EQU   33H
;*****************************************************************************************************
K70REG   EQU   70H
REG_0    EQU   0
REG_1    EQU   1
REG_2    EQU   2
REG_3    EQU   3
REG_4    EQU   4
REG_5    EQU   5
REG_6    EQU   6
REG_7    EQU   7
;*****************************************************************************************************
TEMP0    EQU   71H
TEMP1    EQU   72H
TEMP2    EQU   73H
TEMP3    EQU   74H
PORT_NUMBER   EQU   75H
TEMP5    EQU   76H
;*****************************************************************************************************
TIMER0   EQU   77H
TIMER1   EQU   78H
TIMER2   EQU   79H
TIMER3   EQU   7AH
TIMER4   EQU   7BH
;*****************************************************************************************************
TEMP6    EQU   7CH
TEMP7    EQU   7DH
;*****************************************************************************************************
TEMP8    EQU   7EH
TEMP9    EQU   7FH
;*****************************************************************************************************
OPT_R    EQU   81H
PS0    EQU   0
PS1    EQU   1
PS2    EQU   2
PSA    EQU   3
TOSE    EQU   4
TOCS    EQU   5
INTEDG   EQU   6
RBPU    EQU   7
;*****************************************************************************************************
TRISA    EQU   85H
TRISB    EQU   86H
TRISC    EQU   87H
;*****************************************************************************************************
TXSTA    EQU   98H
TX9D    EQU   0
TRMT    EQU   1
BRGH    EQU   2
Unimplemented  EQU   3
SYNC    EQU   4
TXEN    EQU   5
TX9    EQU   6
CSRC    EQU   7
;*****************************************************************************************************
PIE1    EQU   8CH
TXIE    EQU   4
RCIE    EQU   5
;*****************************************************************************************************
PIR1    EQU   0CH
TXIF    EQU   4
RCIF    EQU   5
;*****************************************************************************************************
RCSTA    EQU   18H
RX9D    EQU   0
OERR    EQU   1
RERR    EQU   2
ADDEN    EQU   3
CREN    EQU   4
SREN    EQU   5
RX9    EQU   6
SPEN    EQU   7
;*****************************************************************************************************
TXREG    EQU   19H
SPBRG    EQU   99H
RCREG    EQU   1AH
;*****************************************************************************************************
ADCON1   EQU   9FH
BIT_0    EQU   0
BIT_1    EQU   1
BIT_2    EQU   2
BIT_3    EQU   3
BIT_4    EQU   4
BIT_5    EQU   5
BIT_6    EQU   6
BIT_7    EQU   7
;*****************************************************************************************************
RF0    EQU   0
RF1    EQU   1
RF2    EQU   2
RF3    EQU   3
RF4    EQU   4
RF5    EQU   5
RF6    EQU   6
RF7    EQU   7
;*****************************************************************************************************
PAGE0    EQU   0005H
PAGE1    EQU   0800H
;*****************************************************************************************************
PORT_MAIN   EQU   2
;*****************************************************************************************************
    ORG   0000H
    GOTO   MAIN_INIT
    ORG   0004H
    GOTO   INT_SER
;*****************************************************************************************************
SCODE   
    CLRF   PCLATH
    ADDWF   PCL
    RETLW   06H
    RETLW   06H
    RETLW   0CBH
    RETLW   0FFH
    RETLW   99H
    RETLW   92H
    RETLW   82H
    RETLW   0F8H
    RETLW   80H
    RETLW   90H
    RETLW   88H
    RETLW   83H
    RETLW   0C6H
    RETLW   0A1H
    RETLW   86H
    RETLW   8EH
SHOWDISPLAY 
    BSF   RB,SEG_DAT
    BCF   RB,SEG_CLR
    BSF   RB,SEG_CLR
    
    MOVF   PORT_NUMBER,W
    ANDLW   0FH
    CALL   SCODE
    MOVWF   TEMP6
    MOVLW   08H
    MOVWF   TEMP7
SHOWDISPLAY1
    BSF   RB,SEG_DAT
    BTFSC   TEMP6,7
    BCF   RB,SEG_DAT
    BCF   RB,SEG_CLK
    BSF   RB,SEG_CLK
    RLF   TEMP6
    DECFSZ  TEMP7,1
    GOTO   SHOWDISPLAY1
    RETLW   0
;*****************************************************************************************************
BEEP    
    BSF   RA,SP
BEP0    
    CLRF   RTCC
BEP1    
    BTFSS   RTCC,RF7
    GOTO   BEP1
    BCF   RA,SP
    RETLW   0
;*****************************************************************************************************
ONE_SECOND 
    MOVLW   02H
    MOVWF   TIMER1
   ; BTFSC   TEMP5,3
   ; GOTO   LOOP1
   ; MOVLW   0EH
   ; MOVWF   TIMER1

LOOP1    MOVLW   0FFH
    MOVWF   TIMER2
LOOP2    MOVLW   0FFH
    MOVWF   TIMER3
LOOP3    DECFSZ  TIMER3
    GOTO   LOOP3
    DECFSZ  TIMER2
    GOTO   LOOP2
    DECFSZ  TIMER1
    GOTO   LOOP1
    RETLW   0
;*****************************************************************************************************
MAIN_INIT
    CLRF   PSW
    CLRF   FSR
    CLRF   PCLATH

    BSF   PSW,PA0
    MOVLW   07H
    MOVWF   OPT_R
    MOVLW   07H
    MOVWF   ADCON1
    MOVLW   _RAVAL
    MOVWF   TRISA
    MOVLW   _RBVAL
    MOVWF   TRISB
    MOVLW   _RCVAL
    MOVWF   TRISC
    BCF   PSW,PA0
;*****************************************************************************************************
    BSF   RA,BOTTON_SELECT
    BSF   RA,LED_TEST_SW
    BCF   RA,SP
    BCF   RB,C1
    BSF   RC,MLD1
    BSF   RC,MLD2
    BSF   RC,MLD3
    BSF   RC,MLD4
    
    CLRF   TEMP6
    CLRF   TEMP7
    BSF   RB,SEG_DAT
    BCF   RB,SEG_CLK
    BSF   RB,SEG_CLK
    CLRF   PORT_NUMBER
    CALL   SHOWDISPLAY
;*****************************************************************************************************
    CALL   BEEP
    GOTO   PROGRAM_MAIN
;*****************************************************************************************************
RS232_INITIAL
    CLRF   RCSTA
    BSF   RCSTA,CREN
    BSF   RCSTA,SPEN
    CLRF   PIR1

    BSF   PSW,PA0
    MOVLW   34H
    MOVWF   SPBRG
    CLRF   TXSTA
    BSF   TXSTA,BRGH
    BSF   TXSTA,TXEN
    
    CLRF   PIE1
    BSF   PIE1,RCIE
    
    BCF   PSW,PA0
    RETURN
;*****************************************************************************************************
OPEN_INTERRUPT
    CLRF   INTCON
    BSF   INTCON,PEIE
    BSF   INTCON,GIE
    RETURN
;*****************************************************************************************************
INT_SER
    CALL   BEEP
    SWAPF   PSW,0
    MOVWF   PSW_TEMP
    BTFSC   PIR1,RCIF
    GOTO   RCIF_INT
    GOTO   INT_SER_END
RCIF_INT
    MOVF   RCREG,0
    MOVWF   RECEIVE_TEMP
    BTFSC   RECEIVE_TEMP,0
    CALL   BOTTON_0
    BTFSC   RECEIVE_TEMP,1
    CALL   BOTTON_1
    CLRF   RECEIVE_TEMP
INT_SER_END
    SWAPF   PSW_TEMP,0
    MOVWF   PSW  
    RETFIE
;*****************************************************************************************************
PROGRAM_MAIN
    CALL   RS232_INITIAL
    CALL   OPEN_INTERRUPT
    GOTO   $
;*****************************************************************************************************
BOTTON_0  
    CLRF   TEMP3
    MOVF   RB,0
    MOVWF   TEMP3
    BTFSC   TEMP3,7
    GOTO   SET_LOW 
    BSF   RB,C1
    MOVLW   02H
    MOVWF   PORT_NUMBER
    GOTO   SET_SW
SET_LOW   BCF   RB,C1
    MOVLW   01H
    MOVWF   PORT_NUMBER
SET_SW
    CALL   SHOWDISPLAY
    CALL   BEEP
    RETLW   0
;*****************************************************************************************************
BOTTON_1
    MOVLW   03H
    MOVWF   TEMP2
BOTTON_1_0    
    BSF   RC,MLD1 
    CALL   ONE_SECOND 
    BCF   RC,MLD1
    CALL   ONE_SECOND  
    DECFSZ  TEMP2,1
    GOTO   BOTTON_1_0
    BSF   RC,MLD1 
    
    MOVLW   03H
    MOVWF   TEMP2
BOTTON_1_1
    BSF   RC,MLD2 
    CALL   ONE_SECOND 
    BCF   RC,MLD2
    CALL   ONE_SECOND  
    DECFSZ  TEMP2,1
    GOTO   BOTTON_1_1
    BSF   RC,MLD2    
    
    MOVLW   03H
    MOVWF   TEMP2
BOTTON_1_2
    BSF   RC,MLD3 
    CALL   ONE_SECOND 
    BCF   RC,MLD3
    CALL   ONE_SECOND  
    DECFSZ  TEMP2,1
    GOTO   BOTTON_1_2
    BSF   RC,MLD3

    MOVLW   03H
    MOVWF   TEMP2
BOTTON_1_3
    BSF   RC,MLD4 
    CALL   ONE_SECOND 
    BCF   RC,MLD4
    CALL   ONE_SECOND  
    DECFSZ  TEMP2,1
    GOTO   BOTTON_1_3
    BSF   RC,MLD4

    CALL   BEEP
    RETLW   0
;*****************************************************************************************************
    END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值