亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? msp430x24x_uscia0_irda_03.s43

?? 步進電機驅動程序msp430f247單片機
?? S43
字號:
;*******************************************************************************
;   MSP430x24x Demo - USCI_A0 IrDA Physical Layer Comm, 8MHz SMCLK
;
;   Description: This example receives bytes through the USCI module
;   configured for IrDA mode, and sends them out using the Timer_A UART
;   to a PC running a terminal software. Likewise, data received from the PC
;   through the Timer_A UART link is transmitted via IrDA.
;
;   ACLK = n/a, MCLK = SMCLK = BRCLK = CALxxx_8MHZ = 8MHz
;
;                                      MSP430F249
;                                -----------------------
;                               |                       |
;                            /|\|                    XIN|-
;                             | |                       |
;                             --|RST                XOUT|-
;                               |                       |
;     GP2W0116YPS   /|\         |                       |
;       -------      |          |                       |
;      |    Vcc|-----+  IrDA    |               P2.4/TA2|--> 115,200 8N1
;      #    LED|-----+ 9600 8N1 |               P2.3/TA1|<-- Terminal SW
;      #    TxD|<---------------|P3.4/UCA0TXD           |
;      #    RxD|--------------->|P3.5/UCA0RXD           |
;      #     SD|-----+          |                       |
;      |    GND|-----+          |                       |
;       -------      |           -----------------------
;                   ---
;    
;   B. Nisarga
;   Texas Instruments Inc.
;   September 2007
;   Built with IAR Embedded Workbench Version: 3.42A
;*******************************************************************************
#include "msp430x24x.h"
;-------------------------------------------------------------------------------
BITTIME     EQU     69                      ; UART bit time = 8MHz / 115,200
BITTIME_5   EQU     35                      ; UART half bit time
;-------------------------------------------------------------------------------
            RSEG    CSTACK                  ; Define stack segment
;-------------------------------------------------------------------------------
            RSEG    DATA16_N                ; RAM
TXData      DS      2                       ; Timer_A UART TX data
TxBitCnt    DS      1                       ; Timer_A UART TX bit counter
RXData      DS      1                       ; Timer_A UART RX data
RxBitCnt    DS      1                       ; Timer_A UART RX bit counter
Flags       DS      1                       ; Flag register
RXDataIR    DS      1                       ; Received IrDA data
;-------------------------------------------------------------------------------
FLAG_USCI   EQU     001h                    ; USCI data received
FLAG_UART   EQU     002h                    ; Timer_A UART data received
;-------------------------------------------------------------------------------
            RSEG    CODE                    ; Assemble to Flash memory
;-------------------------------------------------------------------------------
RESET       mov.w   #SFE(CSTACK),SP         ; Initialize stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
CheckCal    cmp.b   #0FFh,&CALBC1_8MHZ      ; Calibration constants erased?
            jeq     Trap
            cmp.b   #0FFh,&CALDCO_8MHZ
            jne     Load  
Trap        jmp     $                       ; Trap CPU!!
Load        mov.b   &CALBC1_8MHZ,&BCSCTL1   ; Set DCO to 8MHz
            mov.b   &CALDCO_8MHZ,&DCOCTL    ;
SetupP2     bis.b   #018h,&P2SEL            ; Use P2.3/P2.4 for Timer_A
            bis.b   #010h,&P2DIR            ; P2.4 output
SetupP3     bis.b   #030h,&P3SEL            ; Use P3.4/P3.5 for USCI_A0
SetupUSCI0  bis.b   #UCSWRST,&UCA0CTL1      ; Set SW Reset
            mov.b   #UCSSEL_2+UCSWRST,&UCA0CTL1
                                            ; Use SMCLK, keep SW reset
            mov.b   #52,&UCA0BR0            ; 8MHz/52=153.8KHz
            mov.b   #0,&UCA0BR1             ;
            mov.b   #UCBRF_1+UCOS16,&UCA0MCTL
                                            ; Set 1st stage modulator to 1
                                            ; 16-times oversampling mode
            mov.b   #UCIRTXPL2+UCIRTXPL0+UCIRTXCLK+UCIREN,&UCA0IRTCTL
                                            ; Pulse length = 6 half clock cyc
                                            ; Enable BITCLK16, IrDA enc/dec
            mov.b   #UCIRRXPL,&UCA0IRRCTL   ; Light = low pulse
            bic.b   #UCSWRST,&UCA0CTL1      ; Resume operation
            bis.b   #UCA0RXIE,&IE2          ; Enable RX int
SetupTA     mov.w   #OUT,&TACCTL2           ; TXD Idle as Mark
            mov.w   #TASSEL_2+MC_2,&TACTL   ; SMCLK, continuous mode
SetupMisc   call    #RX_Ready               ; Ready Timer_A UART for RX
            clr.b   &Flags                  ; Reset flag register
                                            ;
Mainloop    dint                            ; Disable interrupts
            tst.b   &Flags                  ; Any events pending?
            jnz     Proc                    ; Process events if any
            bis.w   #CPUOFF+GIE,SR          ; Enter LPM0, interrupts enabled
                                            ;
Proc        eint                            ; Enable interrupts
            bit.b   #FLAG_USCI,&Flags       ; USCI_A0 character received?
            jnc     Check_UART              ; No, check Timer_A UART
Check_USCI  bit.w   #CCIE,&TACCTL2          ; Yes, ensure Timer_A UART is ready
            jc      Check_USCI              ;
            mov.b   &RXDataIR,R15           ; Get RX'd data
            call    #TX_Byte                ; And transmit using Timer_A UART
            bic.b   #FLAG_USCI,&Flags       ; Clear flag
            bis.b   #UCA0RXIE,&IE2          ; Re-enable RX int
                                            ;
Check_UART  bit.b   #FLAG_UART,&Flags       ; Timer_A UART character received?
            jnc     Mainloop                ; No
Check_UART1 bit.b   #UCA0TXIFG,&IFG2        ; Ensure TX buffer is ready
            jnc     Check_UART1             ;
            mov.b   &RXData,&UCA0TXBUF      ; Move RX'd character to USCI_A0
            bic.b   #FLAG_UART,&Flags       ; Clear flag
            call    #RX_Ready               ; Ready Timer_A UART for RX
            jmp     Mainloop                ;
;-------------------------------------------------------------------------------
USCIRX_ISR; Read RXed character from USCI_A0, return from LPM0
;-------------------------------------------------------------------------------
            mov.b   &UCA0RXBUF,&RXDataIR    ; Get RXed character
            bic.b   #UCA0RXIE,&IE2          ; Disable RX int
            bis.b   #FLAG_USCI,&Flags       ; Indicate received character
            bic.w   #CPUOFF,0(SP)           ; Return active after receiption
            reti                            ; Return from ISR
;-------------------------------------------------------------------------------
RX_Ready;   Readies the Timer_A UART to receive on byte
;-------------------------------------------------------------------------------
            mov.b   #8,&RxBitCnt            ; Load Bit counter
            mov.w   #SCS+CCIS0+CM1+CAP+CCIE,&TACCTL1
                                            ; Sync, Neg Edge, Capture
            ret                             ;
;-------------------------------------------------------------------------------
TX_Byte;    TX the byte stored in R15 using Timer_A UART
;-------------------------------------------------------------------------------
            mov.b   #10,&TxBitCnt           ; Load Bit counter, 8 data + ST/SP
            mov.w   &TAR,&TACCR2            ; Current state of TA counter
            add.w   #BITTIME,&TACCR2        ; Some time till first bit
            bis.w   #0100h,R15              ; Add mark stop bit
            rla.w   R15                     ; Add space start bit
            mov.w   R15,&TXData             ; Load global variable
            mov.w   #OUTMOD0+CCIE,&TACCTL2  ; TXD = mark = idle
            ret                             ;
;-------------------------------------------------------------------------------
TAX_ISR;    Common ISR for TACCR1-2 and overflow
;-------------------------------------------------------------------------------
            add.w   &TAIV,PC                ; Add Timer_A offset vector
            reti                            ; No interrupt
            jmp     TACCR1_ISR              ; TACCR1
            jmp     TACCR2_ISR              ; TACCR2
            reti                            ; Reserved
            reti                            ; Reserved
            reti                            ; Overflow - not used
;-------------------------------------------------------------------------------
TACCR1_ISR; Timer_A UART RX
;-------------------------------------------------------------------------------
            add.w   #BITTIME,&TACCR1        ; Add Offset to TACCR1
            bit.w   #CAP,&TACCTL1           ; Capture mode = start bit edge
            jz      RX_Cont                 ; No
            bic.w   #CAP,&TACCTL1           ; Switch to compare mode
            add.w   #BITTIME_5,&TACCR1      ; Add Offset to TACCR1
            reti                            ;
RX_Cont     bit.w   #SCCI,&TACCTL1          ; Get bit waiting in receive latch
            rrc.b   &RXData                 ;
            dec.b   &RxBitCnt               ;
            jnz     RX_Cont2                ; All bits RXed? Jump if not
            bic.w   #CCIE,&TACCTL1          ; All bits RXed, disable interrupt
            bis.b   #FLAG_UART,&Flags       ; Indicate received character
            bic.w   #CPUOFF,0(SP)           ; Clear LPM0 bits from 0(SR)
RX_Cont2    reti                            ;
;-------------------------------------------------------------------------------
TACCR2_ISR; Timer_A UART TX
;-------------------------------------------------------------------------------
            add.w   #BITTIME,&TACCR2        ; Add Offset to TACCR2
            tst.b   &TxBitCnt               ; All bits TXed?
            jnz     TX_Cont                 ; Jump if not
            bic.w   #CCIE,&TACCTL2          ; All bits TXed, disable interrupt
            bic.w   #CPUOFF,0(SP)           ; Clear LPM0 bits from 0(SP)
            reti                            ;
TX_Cont     bit.w   #01h,&TXData            ;
            jz      TX_Zero                 ;
            bic.w   #OUTMOD2,&TACCTL2       ; TX Mark
            jmp     TX_Cont2                ;
TX_Zero     bis.w   #OUTMOD2,&TACCTL2       ; TX Space
TX_Cont2    rra.w   &TXData                 ;
            dec.b   &TxBitCnt               ;
            reti                            ;
;-------------------------------------------------------------------------------
            COMMON  INTVEC                  ; Interrupt Vectors
;-------------------------------------------------------------------------------
            ORG     USCIAB0RX_VECTOR        ; USCI A0/B0 Receive
            DW      USCIRX_ISR              ;
            ORG     TIMERA1_VECTOR          ; Timer A CC1-2, TA
            DW      TAX_ISR                 ;
            ORG     RESET_VECTOR            ; POR, ext. Reset
            DW      RESET                   ;
            END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re这里都是精品| 精品一区二区国语对白| **网站欧美大片在线观看| 亚洲女与黑人做爰| 亚洲国产日韩在线一区模特| 亚洲第一福利一区| 日日噜噜夜夜狠狠视频欧美人| 久久精品国产**网站演员| 成人av免费观看| 欧美人动与zoxxxx乱| 国产情人综合久久777777| 一区二区三区高清| 国产一区在线观看视频| 国产精品久久三| 日韩不卡在线观看日韩不卡视频| 成人国产精品免费| 欧美国产日本韩| 精品在线观看视频| 日韩欧美国产三级电影视频| 婷婷中文字幕综合| 欧美制服丝袜第一页| 1区2区3区国产精品| 成人免费高清在线观看| 国产丝袜美腿一区二区三区| 狠狠色2019综合网| 精品久久久久av影院| 日韩精品电影在线观看| 在线不卡一区二区| 性感美女久久精品| 3d动漫精品啪啪1区2区免费| 日韩成人av影视| 日韩欧美一区二区久久婷婷| 久久精品国产99久久6| 日韩精品一区在线| 国产精品资源在线| 国产精品天天看| 91一区二区三区在线观看| 亚洲男同1069视频| 国产一区二区主播在线| 日韩欧美国产成人一区二区| 夜夜精品视频一区二区| 欧美亚洲一区三区| 亚洲444eee在线观看| 欧美肥胖老妇做爰| 日本少妇一区二区| 99久久婷婷国产综合精品电影| 欧美日韩一区久久| 中文字幕一区二区三区四区不卡| 午夜精品视频在线观看| 欧美亚洲图片小说| 国产一区亚洲一区| 国产亚洲欧美中文| 精品国产乱码久久久久久闺蜜| 中文字幕va一区二区三区| 高清beeg欧美| 91精品国产黑色紧身裤美女| 一区二区三区 在线观看视频| 色综合久久久久久久久| 麻豆成人av在线| 喷白浆一区二区| 亚洲精品欧美激情| 国产精品久久久久天堂| 国产午夜亚洲精品理论片色戒| 免费观看成人av| 国产日韩欧美激情| 久久这里只精品最新地址| 欧美午夜电影在线播放| www.日韩av| 国产成人高清视频| 国产91在线观看| 久久不见久久见中文字幕免费| 自拍偷拍亚洲欧美日韩| 7777精品伊人久久久大香线蕉完整版| 国产精品国产自产拍在线| 91蝌蚪国产九色| 亚洲欧美日韩成人高清在线一区| 色一情一乱一乱一91av| 狠狠v欧美v日韩v亚洲ⅴ| 日韩午夜中文字幕| 国产最新精品免费| 久久女同性恋中文字幕| 亚洲精品一区二区三区精华液| 一区二区三区四区中文字幕| 日韩女优电影在线观看| 欧美性xxxxx极品少妇| 精品一区二区三区在线观看| 国产精品综合久久| 亚洲欧美另类久久久精品| 亚洲视频精选在线| 亚洲欧美一区二区三区久本道91| 欧美吻胸吃奶大尺度电影| 国产亚洲自拍一区| 亚洲美女屁股眼交| 国产精品自在欧美一区| 激情六月婷婷久久| 久久精品人人做人人综合| 国产精品综合视频| 亚洲视频在线观看一区| 欧美日本乱大交xxxxx| 久久精品国产秦先生| 欧美激情一区在线| 欧美色欧美亚洲另类二区| 久久精品噜噜噜成人88aⅴ | 中文字幕一区日韩精品欧美| 不卡视频在线观看| 天天操天天色综合| 国产色产综合色产在线视频| 色哟哟一区二区三区| 男人的天堂亚洲一区| 久久久99免费| 91久久香蕉国产日韩欧美9色| 美国毛片一区二区三区| 国产欧美日韩激情| 欧美日韩精品一区二区天天拍小说 | 色呦呦一区二区三区| 免费成人av在线播放| 国产精品久久久久久久久动漫 | 精品久久久久久综合日本欧美| 成人性色生活片| 奇米在线7777在线精品| 亚洲欧洲av在线| 日韩精品一区二区三区三区免费| 99精品视频一区| 另类小说欧美激情| 亚洲乱码中文字幕| 日本一区二区视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 成人黄色小视频在线观看| 美女网站视频久久| 亚洲第一福利一区| 亚洲激情自拍偷拍| 中文字幕中文字幕在线一区| 欧美精品一区视频| 5566中文字幕一区二区电影| 色偷偷一区二区三区| 国产91色综合久久免费分享| 久久激情综合网| 无码av免费一区二区三区试看| 136国产福利精品导航| 中文字幕va一区二区三区| 久久只精品国产| 久久先锋影音av鲁色资源网| 日韩手机在线导航| 日韩女优制服丝袜电影| 51精品秘密在线观看| 欧美精品18+| 欧美高清视频一二三区| 在线中文字幕一区二区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲精品老司机| 国产精品乱码一区二区三区软件| 精品日产卡一卡二卡麻豆| 91精品免费在线观看| 欧美一卡二卡在线观看| 91精品一区二区三区在线观看| 69久久夜色精品国产69蝌蚪网| 欧美性猛交xxxx乱大交退制版 | 欧美精品第1页| 制服丝袜一区二区三区| 欧美一三区三区四区免费在线看| 欧美日韩国产一级| 欧美成人女星排名| 久久精品亚洲麻豆av一区二区 | 国产精品无码永久免费888| 欧美国产激情一区二区三区蜜月| 国产女人18毛片水真多成人如厕| 欧美韩日一区二区三区四区| 亚洲欧洲另类国产综合| 亚洲国产精品久久久久秋霞影院| 日韩精品一二三| 黄色日韩网站视频| 91一区二区三区在线观看| 欧美日韩日本视频| 欧美精品一区二区三区很污很色的| 2023国产精品自拍| 国产精品第13页| 日韩电影在线看| 国产iv一区二区三区| 欧美日韩一区不卡| 久久久久久麻豆| 一区二区三区欧美| 激情久久五月天| 91蜜桃免费观看视频| 91精品国产综合久久国产大片| 日韩女优制服丝袜电影| 国产精品美女久久福利网站| 亚洲综合一区二区三区| 久久成人综合网| 日本韩国精品一区二区在线观看| 91精品一区二区三区久久久久久| 欧美激情在线一区二区| 亚洲国产一区二区视频| 国产精品夜夜爽| 欧美日韩亚洲综合一区二区三区| 久久精品这里都是精品| 婷婷久久综合九色综合绿巨人 | 欧美一区二区三区日韩| 亚洲视频一区二区在线| 国产呦精品一区二区三区网站| 欧美特级限制片免费在线观看|