:

 


:  

, , , , msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  > > > MSP430

 






:

12-



: 11x1_SIRC.s43.txt

;*****************************************************************************
;      " ".  TI     
;         
;     .
;     
;  TI      
;    .
;
;  TI       ,
;           
;    
;      .
;     
;      ,  
;  
;
;    , ,   
; Texas Instruments    "   ".
;        
;        
;         
;     .
;          .
;
;    ,   
;    ,       
;  TI         ,
;          ,    
;     .      TI 
;     , ,
;    
;   .  
;              
;   .  TI     ,
;     . 
; ,     ,   
;    .
;
;       ,     TI.
;
#include msp430x11x1.h
;*****************************************************************************
; MSPFET430X110 Demo SIRC ,           2400 
;
; :  12  SIRC        Timer_A.
; CCR1  Timer_A     ,        .
;         CCR0  Timer_A,    UART.
;     4 ACII ,   CR  LF.
;    "channel+",    P1.0   ,       .
;       .   -,    12  :
; D4D3D2D1D0C6C5C4C3C2C1C0Start
;
;            CR, LF  4 ASCII 
;
;                                MSP430F1121
;                          
;                     /|\  |                          XIN|
;                      |   |                                | 32 
;                      |RST               XOUT|
;                          |                                |
; IR Receiver > |P1.2/CCR1       P1.0|> LED0
;                          | P1.1                        |> 2400 8N1
;
;  
; Start = 2.4  ~ 79  ACLK = 32 
; 1 = 1.2  
; 2 = 0.6  
; sync = 0.6  
;
;                             sync       snyc             snyc     snyc
; +                  +       +             +     ++                 +
;    |          |       |      |       |            |       |     |    |                   |
;    +\\+       +       +      +   ++
;                                    ^     0      ^      1           ^     0   ^     Start     ^
;
;   
#define     RXTXData    R4
#define     BitCnt      R5
#define     IRData      R6
#define     IRBit       R7
#define     IRlength    R8
;
;  ,      UART  2400  ,  ACLK = 32768
Bitime_5    equ     06      ; . 5  +  .
Bitime      equ     014     ;    427   ~ 2341 
;
IR_Mid      equ     49      ; 1500   ACLK=32768 
IR_Start    equ     75      ; 2300   ACLK=32768 
IR_Start2   equ     82      ; 2500   ACLK=32768 
;
LED0        equ     001h    ; LED0   P1.0
TXD         equ     002h    ; TXD    P1.1
IRIN        equ     004h    ;    - P1.2
Ch_up       equ     16      ;
Ch_dwn      equ     17      ;
LF          equ     0ah     ;  LF ( )  ASCII 
CR          equ     0dh     ;  CR ( )  ASCII 
;
; : M. Buccini
;  Texas Instruments, Inc
;  2001
;*****************************************************************************
;
ORG 0F000h ;  
;
RESET
    mov.w   #0300h,SP     ;      x112x 
    call    #Init_Sys     ;    
;
Mainloop
    call    #IR_Ready     ;   
    bis.w   #LPM0,SR      ;    LPMx, ,  
    call    #TXIR_2_PC    ;   
    call    #LED_Disp     ;   "Channel +/"
    jmp     Mainloop      ;
;
;
Init_Sys;    
;
StopWDT
    mov.w   #WDTPW+WDTHOLD,&WDTCTL  ;   
SetupTA
    mov.w   #TASSEL0+MC1,&TACTL     ; ACLK, 
SetupC0
    mov.w   #OUT,&CCTL0             ; 
SetupP1
    bis.b   #IRIN+TXD,&P1SEL        ; P1.2 CCR1, P1.1 CCR0
    bis.b   #LED0+TXD,&P1DIR        ; P1.0, TXD 
    bic.b   #LED0,&P1OUT            ; P1.0, ,  
    eint                            ;
    ret                             ;   
;
;
IR_Ready;     12-  SIRC (  )   IRData 
;
    clr.w   IRData      ;
    clr.w   IRlength    ;
    mov.b   #14,IRBit   ;     12  
SetupC1
    mov.w   #CM1+SCS+CAP+CCIE,&CCTL1 ; CAP CCI1A,  , 
    ret                 ;   
;
;
TXIR_2_PC;      CR, LF   IRData    ASCII 
; R15     ,     
;
    mov     #CR,RXTXData    ;   CR   UART 
    call    #TX_Byte        ;  CR > /
    mov     #LF,RXTXData    ;   LF   UART 
    call    #TX_Byte        ;  > /
;
TX_Word_ASCII               ;     IRData    ASCII 
    swpb    IRData          ; IRData = 3412
    call    #TX_Byte_ASCII  ;
    swpb    IRData          ; IRData = 1234
;
TX_Byte_ASCII               ;     IRData    ASCII 
    mov.b   IRData,R15      ;   ..x.
    call    #NUM_ASCIR      ;
    mov.b   IRData,R15      ;   ...x
    jmp     NUM_ASCIA       ;
;
NUM_ASCIR
    rrc.b   R15             ;  1.  3. 
    rrc.b   R15             ;
    rrc.b   R15             ;
    rrc.b   R15             ;
;
NUM_ASCIA
    and.b   #0fh,R15        ;  2.  4. 
    add.b   #030h,R15       ;
    cmp.b   #03ah,R15       ;
    jlo     NUM_End         ;
    add.b   #039,R15        ;
NUM_End
    mov.b   R15,RXTXData    ;   
;
;
TX_Byte;      RXTXData   CCR0 UART
;
    mov.w   &TAR,&CCR0      ;    TA 
    add.w   #Bitime,&CCR0   ;     
    bis.w   #0100h, RXTXData ;       RXTXData
    rla.w   RXTXData        ;    
    mov.w   #10,BitCnt      ;   , 8   + SP
    mov.w   #OUTMOD0+CCIE,&CCTL0    ; TXD = 1 = idle
TX_Wait
    tst.w   BitCnt          ;   
    jnz     TX_Wait         ;
    ret                     ;
;
;
TA0_ISR ;  RXTXData   UART 
;
    add.w   #Bitime,&CCR0   ;    
UART_TX
    bic.w   #OUTMOD2,&CCTL0 ;  
    rra.w   RXTXData        ; LSB    
    jc      TX_Test         ;  >  = 1
TX_Space
    bis.w   #OUTMOD2,&CCTL0 ;  
TX_Test
    dec.w   BitCnt          ;    ()?
    jnz     TX_Next         ;  ?
    bic.w   #CCIE,&CCTL0    ;   /,  .
TX_Next
    reti 			;
;
;
TAX_ISR;     CCR14   
;
    add.w   &TAIV,PC        ;     Timer_A  
    reti                    ; CCR0   
    jmp     TA1_ISR         ; CCR1
    jmp     TA2_ISR         ; CCR2
;   reti                    ; CCR3  
;   reti                    ; CCR4  
;TA_over
    reti                    ;  TA   
;
TA1_ISR
    mov.w 	#CM0+SCS+CAP+CCIE,&CCTL1     ; CAP CCI1A,  , 
IR_ST_Test
    push.w  &CCR1           ;      CCR1 
    sub.w   IRlength,0(SP)  ;    
    cmp.b   #14,IRBit       ;   ?
    jeq     IR_Next         ;  >   
    cmp.b   #13,IRBit       ;  ?
    jne     IR_Bit          ;  >   
;   cmp.w   #IR_Start2,0(SP) ;   > 2.5 
;   jge     IR_error        ;  > IRlength > 2.5 
    cmp.w   #IR_Start,0(SP) ;    ~ 2.3 
    jge     IR_Next         ;  > IRlength > 2.3 
IR_error    incd.w 	SP      ;   
    call    #IR_Ready       ;     
    reti                    ;   
;
IR_Bit
    cmp.w   #IR_Mid,0(SP)   ; C=1      = 1
IR_Shift
    rrc.w   IRData          ;   >  IRData
IR_Next
    mov.w   &CCR1,IRlength  ;   
    incd.w  SP              ;   
    dec.b   IRBit           ;
    jnz     IR_Cont         ;  >   
IR_Comp
    clr.w   &CCTL1          ;  CCR1
    rrc.w   IRData          ; 12  IRData    
    rrc.w   IRData          ;
    rrc.w   IRData          ;
    rrc.w   IRData          ;
    and.w   #0FFFh,IRData   ;  12  
    mov.w   #GIE,0(SP)      ;   =    
IR_Cont
    reti                    ;
;
;
LED_Disp;   (P1.0)        "Channel+" (16)
;
    and.w   #07Fh,IRData    ;  7   
LED_off
    bic.b   #01h,&P1OUT     ;  
LED0_tst
    cmp.w   #Ch_up,IRData   ;      "Channel+" (32)
    jne     LED_exit        ;
    bis.b   #01h,&P1OUT     ;  
LED_exit
    ret                     ;   
;
;
;
;   
;
ORG         0FFFEh          ;   MSP430 
DW          RESET           ;
ORG         0FFF2h          ;     Timer_A0 
DW          TA0_ISR         ;
ORG         0FFF0h          ;     Timer_AX
DW          TAX_ISR         ;
END

: 11x1_RC5.s43.txt

;*****************************************************************************
;      " ".  TI     
;         
;     .
;     
;  TI      
;    .
;
;  TI       ,
;           
;    
;      .
;     
;      ,  
;  
;
;    , ,   
; Texas Instruments    "   ".
;        
;        
;         
;     .
;          .
;
;    ,   
;    ,       
;  TI         ,
;          ,    
;     .      TI 
;     , ,
;    
;   .  
;              
;   .  TI     ,
;     . 
; ,     ,   
;    .
;
;       ,     TI.
;
#include msp430x14x.h
;*****************************************************************************
; MSPFET430X110 Demo       RC5,       2400 
;
; :  12-      RC5     Timer_A.
; CCR1   Timer_A      ,       ,
;        . CCR2   
; .        CCR0  Timer_A, 
;  UART.      ACII ,   CR  LF.
;.   "Chanel+",    P1.0   ,       .
;        .    2-   ,  C  11  :
; S1S2CA4A3A2A1A0C5C4C3C2C1C0
;
;      ,      CR, LF  4 ASCII 
;
;                            MSP430F1121
;                        
;                   /|\  |                       XIN|
;                    |   |                             | 32 
;                    |RST            XOUT|
;                        |                             |
; IR Receiver>|P1.2/CCR1    P1.0|> 
;                        |                      P1.1|> 2400 8N1
;
;  
;
;      1.78 
;+       +      +                  +         +
;        |       |      |      |      |            |      |     |       |          |     |
;         +      +     ++      ++     ++    +
; ^   ^  ^     1     ^     0     ^    0     ^
;
;    
#define     RXTXData    R4
#define     BitCnt      R5
#define     IRData      R6
#define     IRBit       R7
;
;  ,      UART  2400  ,  ACLK = 32768 
Bitime_5    equ     06      ; . 5  +  
Bitime      equ     014     ;   427  ~ 2341 
;
LED0        equ     001h    ;      P1.0
TXD         equ     002h    ;   UART    P1.1
IRIN        equ     004h    ;      P1.2
Bit_50      equ     29      ; 890   ACLK = 32768 
Bit_75      equ     44      ; 1348   ACLK = 32768 
Ch_up       equ     32      ;
Ch_dwn      equ     33      ;
LF          equ     0ah     ; ASCII     (LF)
CR          equ     0dh     ; ASCII     (CR)
;
; : M. Buccini
;  Texas Instruments, Inc
;  2001
;*****************************************************************************
;
ORG         0F000h      ;  
;
RESET
    mov.w   #0300h,SP   ;     x112x 
    call    #Init_Sys   ;    
;
Mainloop
    call    #IR_Ready   ;   
    bis.w   #LPM3,SR    ;    LPMx, ,  
    call    #TXIR_2_PC  ;   
    call    #LED_Disp   ; ,      "Channel +"  
    jmp     Mainloop    ;
;
;
Init_Sys                ;    
;
StopWDT
    mov.w   #WDTPW+WDTHOLD,&WDTCTL  ;   
SetupTA
    mov.w   #TASSEL0+MC1,&TACTL     ; ACLK 
SetupC0
    mov.w   #OUT,&CCTL0             ;     
SetupP1
    bis.b   #IRIN+TXD,&P1SEL        ; P1.2 - CCR1, P1.1 - CCR0
    bis.b   #LED0+TXD,&P1DIR        ; P1.0   
    bic.b   #LED0,&P1OUT            ;  P1.0     
    eint                            ;
    ret                             ;   
;
;
IR_Ready;     12-     RC5   IRData
;
    clr.w   IRData 	;
    mov.w   #014,IRBit  ; 12   + 1   + 1 
SetupC1
    mov.w   #CM1+SCS+CAP+CCIE,&CCTL1     ; CAP CCI1A,  , 
    ret                 ;
;
;
TXIR_2_PC;    CR, LF    IRData    ASCII   
; R15          
;
    mov     #CR,RXTXData    ;  CR    UART 
    call    #TX_Byte        ; CR > /
    mov     #LF,RXTXData    ;  LF    UART 
    call    #TX_Byte        ; LF > /
;
TX_Word_ASCII               ;    IRData    ASCII 
    swpb    IRData          ; IRData = 3412
    call    #TX_Byte_ASCII  ;
    swpb    IRData          ; IRData = 1234
;
TX_Byte_ASCII               ;    IRData    ASCII 
    mov.b   IRData,R15      ;   ..x
    call    #NUM_ASCIR      ;
    mov.b   IRData,R15      ;   ..x
    jmp     NUM_ASCIA       ;
;
NUM_ASCIR
    rrc.b   R15             ; 1.  3. 
    rrc.b   R15             ;
    rrc.b   R15             ;
    rrc.b   R15             ;
;
NUM_ASCIA
    and.b   #0fh,R15        ; 2.  4. 
    add.b   #030h,R15       ;
    cmp.b   #03ah,R15       ;
    jlo     NUM_End         ;
    add.b   #039,R15        ;
NUM_End
    mov.b   R15,RXTXData    ;   
;
;
TX_Byte;      RXTXData   CCR0 UART
;
    mov.w   &TAR,&CCR0      ;    TA 
    add.w   #Bitime,&CCR0   ;     
    bis.w   #0100h, RXTXData ;      RXTXData
    rla.w   RXTXData        ;    
    mov.w   #10,BitCnt      ;   , 8   + SP
    mov.w   #OUTMOD0+CCIE,&CCTL0   ; TXD = 1 = idle
TX_Wait
    tst.w   BitCnt          ;   
    jnz     TX_Wait         ;
    ret                     ;
;
;
TA0_ISR ;  RXTXData    UART.
;
    add.w   #Bitime,&CCR0   ;    
UART_TX
    bic.w   #OUTMOD2,&CCTL0 ;  
    rra.w   RXTXData        ;  (LSB)    
    jc      TX_Test         ;  >  = 1
TX_Space
    bis.w   #OUTMOD2,&CCTL0 ;  
TX_Test
    dec.w   BitCnt          ;    ( )?
    jnz     TX_Next         ;  ?
    bic.w   #CCIE,&CCTL0    ;   /,  
TX_Next
    reti                    ;
;
;
TAX_ISR;     CCR14  
;
    add.w   &TAIV,PC        ;       Timer_A
    reti                    ; CCR0    
    jmp     TA1_ISR         ; CCR1
    jmp     TA2_ISR         ; CCR2
;   reti                    ; CCR3
;   reti                    ; CCR4
;TA_over
    reti                    ;   
;
TA1_ISR
    bit.w   #CAP,&CCTL1	;
    jc      RX_edge         ;  >  
;
RX_Bit
    dec.w   IRBit           ;
    jz      RX_Comp         ;   
RX_Cont
    bit.w   #SCCI,&CCTL1    ;   =    SCCI
    rlc.w   IRData          ;   > IRData
    mov.w   #CM1+CM0+CAP+CCIE+SCS,&CCTL1   ; CAP CCI1A,  , 
    push.w  &CCR1           ;     
    add.w   #Bit_50,0(SP)   ;
    pop.w   &CCR2           ;
    mov.w   #CCIE,&CCTL2    ;    
    reti                    ;
;
RX_Comp
    clr.w   &CCTL1          ;  CCR1
    and.w   #0FFFh,IRData   ;  12-  
    mov.w   #GIE,0(SP)      ; 
    reti                    ;
;
RX_edge
    clr.w   &CCTL2          ;   CCR2 
    mov.w   #CCIE,&CCTL1    ;  
    add.w   #Bit_75,&CCR1   ;     
    reti                    ;
;
TA2_ISR
    clr.w   &CCTL2          ;   CCR2 
    call    #IR_Ready       ;    
    reti                    ;   
;
;
LED_Disp;   ( P1.0)    "Channel+" ( 32)
;
    and.w   #03Fh,IRData    ;  6-   
LED_off
    bic.b   #01h,&P1OUT     ;  
LED0_tst
    cmp.w   #Ch_up,IRData   ;   "Channel+" ( 32)
    jne     LED_exit   ;
    bis.b   #01h,&P1OUT     ;  
LED_exit
    ret                     ;   
;
;
;   
;
ORG          0FFFEh         ;   MSP430 
DW           RESET          ;
ORG          0FFF2h         ;   Timer_A0 
DW           TA0_ISR        ;
ORG          0FFF0h         ;   Timer_AX 
DW           TAX_ISR        ;
END
     Texas Instruments ,





- - DOC - - - - - - -



 
? | | |
. : +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016