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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? f449串口通信編程練習(xí)-06-11-12.s43

?? TI公司的MSP430F449芯片的IO口線聯(lián)系
?? S43
字號:
#include  "msp430x44x.h"
;********** 2006/11/13
;異步串行通信編程練習(xí)舉例:編一個發(fā)送程序采用9600波特率將0--9數(shù)字發(fā)送出去,   
;USART時鐘采用1.048576MHZ,8位字符,不校驗(yàn),串行異步方式通信,不檢錯,   
;分別采用查詢方式和中斷方式進(jìn)行發(fā)送   
;   
;                 
    ORG   0200H
TXD_BUF     DS  10          ;定義10個發(fā)送緩存區(qū)單元
TXDP        DW  0           ;定義發(fā)送數(shù)據(jù)指針
RXD_BUF     DS  10          ;定義10個接收緩存區(qū)單元
RXDP        DW  0           ;定義接收數(shù)據(jù)指針

TXD_ST      =   0BEH        ;定義發(fā)送數(shù)據(jù)起始符
TXD_END     =   0EDH        ;定義發(fā)送數(shù)據(jù)結(jié)束符

LED         =   04H             ;LED接P4.2
;------------------------------------------------------------------------------ 
            ORG     01100h      ;程序代碼起始地址 Program Start
;------------------------------------------------------------------------------ 
RESET       mov.w   #0A00h,         SP          ;建立堆棧指針 Initialize '449 stackpointer
            mov.w   #WDTPW+WDTHOLD, &WDTCTL     ;關(guān)閉看門狗 Stop WDT

 ;波特率為9600時使用1.048576MHZ晶振時的串口控制寄存器設(shè)置
            MOV.B   #SHAR+SWRST,    &UCTL0     ;字符長度8位,異步方式           
            mov.b   #SSEL1,         &UTCTL0    ; UCLK =SMCLK  使用子時鐘時的串口控制寄存器設(shè)置
            mov.b   #00h,           &UBR10     ;1048576Hz/9600=109.226 高8位為0
            mov.b   #6Dh,           &UBR00     ;1048576Hz/9600=109.226 (109=6DH)低字節(jié)為6DH             
            mov.b   #22H,           &UMCTL0    ;或采用教材P213表3.17中的03                                                                                       
                                                  
            MOV.B   #0,             R5          ;向發(fā)送數(shù)據(jù)區(qū)預(yù)置待發(fā)送的數(shù)據(jù)0--9
            MOV.B   #9,             R4          ;建立計(jì)數(shù)器 
            MOV     #TXD_BUF,       R6          ;建立發(fā)送數(shù)據(jù)指針           
SET_N       MOV.B   R5,             0(R6)
            INC     R6          ;調(diào)整發(fā)送數(shù)據(jù)緩沖區(qū)指針
            INC.B   R5          ;修改發(fā)送數(shù)據(jù)
            DEC.B   R4          ;計(jì)數(shù)器減1
            JNZ     SET_N 
            MOV.B   #TXD_END,       0(R6)       ;在發(fā)送數(shù)據(jù)區(qū)的最后一個單元中填如結(jié)束符TXD_END=EDH
;ttttttt發(fā)送、接收控制位和發(fā)送、接收中斷允許控制位見P401附錄2中的ME1和IE1中              
            bis.b   #UTXE0+URXE0,   &ME1        ;打開發(fā)送器和接收器 
            bis.b   #UTXIE0,        &IE1        ;允許發(fā)送器中斷
            bis.b   #URXIE0,        &IE1        ;允許接收器中斷            
            bis.b   #030h,          &P2SEL      ;將P2.4,P2.5設(shè)置為串口通信特殊功能
            bis.b   #010h,          &P2DIR      ;將P2.4設(shè)置為輸出
TTX         BIT.B   #UTXIFG0,       &IFG1       ;測試發(fā)送器是否準(zhǔn)備好
            JZ      TTX                         ;若未準(zhǔn)備好則等待
            MOV.B   #UART_ST,       &TXBUF0     ;在主程序中發(fā)送第1個數(shù)據(jù)(發(fā)起始代碼F0H)
            EINT        ;打開CPU中斷
                                                            
Mainloop    bis.b   #LPM0,SR                ; Enter LPM0  進(jìn)入低工耗狀態(tài)
            jmp     Mainloop                ; Do nothing

;------------------------------------------------------------------------------ 
;可采用查詢方式發(fā)送也可采用中斷方式發(fā)送
;------------------------------------------------------------------------------
            MOV     #TXD_BUF,       R6          ;建立發(fā)送數(shù)據(jù)指針 
TX0         BIT.B   #UTXIFG0,       &IFG1       ;測試發(fā)送器是否準(zhǔn)備好,發(fā)送器準(zhǔn)備好標(biāo)志在P401附錄2中的IFG1中 
            JZ      TX0                         ;若未準(zhǔn)備好則等待
            MOV.B   @R6+,           &TXBUF0     ;若已準(zhǔn)備好則將待發(fā)數(shù)據(jù)傳送到發(fā)送器緩沖器即可發(fā)送出去
            CMP.B   #TXD_END,       &TXBUF0     ;采用查詢方式發(fā)送時在這里判斷是否為發(fā)送結(jié)束碼EDH    
            JNZ     TX0                         ;若采用中斷方式發(fā)送時應(yīng)在中斷服務(wù)程序中判斷是否為發(fā)送完 
            END
;******采用中斷方式進(jìn)行發(fā)送
;TXD_ST     =   0BEH
;TXD_END    =   0EDH

TXD_INT     ;發(fā)送中斷服務(wù)子程序
            MOV.B   @R6+,       &TXBUF0     ;發(fā)送1個數(shù)據(jù)數(shù)據(jù)
            MOV     R4,         &TXDP
            CMP.B   #TXD_END,   &TXBUF0     ;判斷是否為結(jié)束碼FFH
            JNZ     TX_END
            MOV     #TXD_BUF,   R6          ;發(fā)送數(shù)據(jù)指針復(fù)位            
            BIC.B   #UTXIE0,    &IE1        ;關(guān)閉發(fā)送中斷
            BIC.B   #UTXE0,     &ME1        ;關(guān)閉發(fā)送器
            ;BIS.B   #URXE0,     &ME1       ;打開接收器
            ;BIS.B   #URXIE0,    &IE1       ;允許接收中斷
            ;MOV     #RXD_BUF,   &RXDP      ;建立接收數(shù)據(jù)指針
TX_END        
            RETI             

;------------------------------------------------------------------------------ 
;           Interrupt Vectors Used MSP430x44x       
;------------------------------------------------------------------------------ 
            ORG     0FFFEh          ;復(fù)位中斷向量 
            DW      RESET           ;
            ORG     0FFF0h          ;發(fā)送中斷向量 
            DW      TXD_INT         ;
            ORG     0FFF2h          ;接收中斷向量 
            DW      TXD_INT         ; 
            ORG     0FFEEh          ; ADC12 Interrupt Vector
            DW      AD12_INT        ;
            END
            
            
            
            
            
            
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
            
            
            
            
;SSSSSSSSSSSSSSSSS使用外接8MHZ晶振時的系統(tǒng)時鐘模塊初始化程序
SetupOSC    bic.b   #XT2OFF,        &FLL_CTL1     ; Enable XT2 OSC
SetupOsc    bic.b   #XT2OF,         &FLL_CTL0     ; Clear XT2 OSC fault flag 
            bit.b   #XT2OF,         &FLL_CTL0     ; XT2 OSC fault flag set? 
            jnz     SetupOsc                      ; OSC Fault, clear flag again 
            bic.b   #OFIFG,         &IFG1         ; Safe, clear OSC fault flag
            bis.b   #SELM_XT2+SELS, &FLL_CTL1     ; MCLK = XT2  #SELM1
;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS            
            MOV.B   #SHAR+SWRST,    &UCTL0      ;字符長度8位,異步方式
            MOV.B   #SSEL1,         &UTCTL0     ;選擇SMCLK作為時鐘源
            MOV     #833,           &RAM1       ; 8MHZ/9600=833.333
            MOV.B   &RAM1,          &UBR00        ;將833轉(zhuǎn)換成16進(jìn)制數(shù)送波特率分頻系數(shù)寄存器
            MOV.B   &RAM1+1,        &UBR10
            MOV.B   #49H,           &UMCTL0     ;01001001=49H波特率分頻微調(diào)系數(shù)(即0.333X8=2.664取近似值3)
                                                ;即每個字節(jié)(8位)的分頻系數(shù)中有3個分頻系數(shù)要加1,這里取49H即為
                                                ;在發(fā)送每個字節(jié)的D6、D3、D0位時(應(yīng)盡可能均勻分布)其波特率分
                                                ;頻系數(shù)為834而其余5個系數(shù)用833,這樣可減少波特率的累計(jì)誤差
                                                
            
            
;EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEND            

ADC_WD      ;MOV      &ADC10MEM,    R12         ;讀出溫度值送R12       
            CALL      #Trans2TempC              ;調(diào)用將溫度轉(zhuǎn)換為攝氏溫度子程序
            CALL      #BIN2BCD5                 ;調(diào)用將溫度轉(zhuǎn)換為BCD碼子程序
            MOV       R13,          &TEMP       ;轉(zhuǎn)存到溫度存放單元 
            MOV.B     &TEMP,        &TX_DAT+1   ;       &VOLT
            BIS.B     #0B0h,        &P3SEL      ;設(shè)置P3.4,P3.5為TXD和RXD,P3.7為ADC通道7
            BIC       #ENC,  &ADC10CTL0         ;A/D模塊設(shè)置前應(yīng)先將ADC10CTL0中的轉(zhuǎn)換使能位ENC置0!!
            BIS.B     #80H,         &ADC10AE    ;允許扭矩模擬信號從P3.7輸入(ADC10AE_7)
            MOV       #INCH_7+ADC10DIV_4+ADC10SSEL_2+CONSEQ_0,  &ADC10CTL1    ;扭矩輸入為A7、ADC10CLK/8    
            MOV       #SREF_5+ADC10SHT_3+ADC10SR+REFON+ADC10ON+ADC10IE,   &ADC10CTL0 ; 
                      ;1.5V參考電壓(+REF2_5V),允許中斷,單通道單次轉(zhuǎn)換時ADC10CTL0中的MSC應(yīng)為0   
ADC_END     BIS       #ENC+ADC10SC, &ADC10CTL0  ;重新啟動采樣與轉(zhuǎn)換            
            POP       R14
            POP       R5        
            RETI            
            
;TTTTTTTTTTT溫度變換子程序:  Trans2TempC
;Subroutine coverts R12 = ADC10MEM/1024*423-274
;oC =((x/1024)*1500mV)-986mV)*1/3.55mV = x*423/1024 - 274 (應(yīng)為277.75)
;   =(1500X-1009664)/3635.2=1500X/3635.2-277.75=0.4126X-277.75
;Input:  ADC10MEM  0000 - 0FFFh, R11, R12, R14, R15 working register   
;Output: R12  0000 - 091h, 1500mV為A/D的參考電壓    
;------------------------------------------------------------------- 
Trans2TempC mov.w   &ADC10MEM,  R12     ;
            mov.w   #423,       R11     ; C          
            call    #MPYU1              ;
            bic.w   #00FFh,     R14     ; /1024
            add.w   R15,        R14     ;
            swpb    R14                 ;
            rra.w   R14                 ;
            rra.w   R14                 ;
            ;mov.w   R14,        R12     ;
            sub.w   #278,       R14     ; #274,     R12    
            ret                         ;            
;--------------------------------------------------------------------
;++++++雙字節(jié)(16位)二進(jìn)制數(shù)轉(zhuǎn)換成5位BCD碼子程序(該算法使用十進(jìn)制運(yùn)算指令)
;入口參數(shù):R14,出口參數(shù):R14和R13,其中BCD碼的最高位在R14的低4位       
BIN2BCD5    ;MOV     #0FFFFH,    R14        ;測試指令               R12
            MOV      #16,        R15         ;建立計(jì)數(shù)器
            CLR      R13                     ;BCD碼單元清0          R12
B1          RLA      R14                     ;二進(jìn)制數(shù)左移1位,將移出位通過進(jìn)位位
            DADD     R13,        R13         ;加到十進(jìn)制單元并進(jìn)行十進(jìn)制乘2計(jì)算
            JNC      B2
            INC      R14                     ;BCD碼高位(萬位)加1    R14
B2          DEC      R15                     ;計(jì)數(shù)器減1
            JNZ      B1                      ;若不為0則繼續(xù)
            RET                              ;
;-----部分積右移方式計(jì)算16位乘法,入口參數(shù):被乘數(shù)為R11,乘數(shù)為R12,積的高16位為R15,低16位為R14
MPYU1       ;MOV     #1234,    R11        ;這兩條指令調(diào)試時使用
            ;MOV     R9,      R12        ;
            
            CLR     R15                 ;積清0
            CLR     R14
            MOV.B   #16,      R10       ;建立計(jì)數(shù)器            
            CLRC
            ;MOV     #05H,    R12 
M1          RRC     R12                 ;乘數(shù)右移1位
            JNC     RR1
            ADD     R11,      R15
RR1         RRC     R15
            RRC     R14
            DEC.B   R10
            JNZ     M1
            RET            

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合在线观看| 国产精品一区专区| 日韩精品一区二区三区四区视频| 久久电影国产免费久久电影| 久久色.com| 成人av网站在线观看免费| 亚洲日本韩国一区| 欧美日韩色一区| 久久国产生活片100| 中文字幕欧美激情| 91国偷自产一区二区开放时间| 手机精品视频在线观看| 精品久久久久久久人人人人传媒 | 欧美性一级生活| 美女视频网站黄色亚洲| 国产亚洲精品久| 色综合久久中文字幕| 国产日韩欧美不卡| www.66久久| 亚洲va天堂va国产va久| 26uuu国产在线精品一区二区| 国产91丝袜在线18| 亚洲一区二区美女| 欧美成人一级视频| 91视视频在线观看入口直接观看www | 狠狠色丁香婷婷综合| 国产精品日韩精品欧美在线| 日本乱码高清不卡字幕| 麻豆精品国产91久久久久久| 中国色在线观看另类| 欧美视频精品在线| 国产一区二区三区国产| 伊人婷婷欧美激情| 欧美v日韩v国产v| 91丨九色丨蝌蚪富婆spa| 日韩精品成人一区二区三区| 国产午夜精品久久| 欧美精品色综合| 成人高清视频在线观看| 免费成人美女在线观看.| 亚洲天堂网中文字| 精品欧美一区二区在线观看| 色诱亚洲精品久久久久久| 精品一区二区三区的国产在线播放| 亚洲免费观看高清完整版在线| 日韩欧美美女一区二区三区| 91丨porny丨首页| 国内不卡的二区三区中文字幕 | 中文字幕五月欧美| 日韩一区二区麻豆国产| 一本久久综合亚洲鲁鲁五月天| 久久成人免费网| 亚洲成人在线网站| 亚洲欧美在线视频| 久久婷婷久久一区二区三区| 欧美人与性动xxxx| 色拍拍在线精品视频8848| 国产乱码精品一区二区三区av | 欧美国产精品劲爆| 日韩欧美亚洲一区二区| 欧美主播一区二区三区美女| 丁香六月久久综合狠狠色| 日产国产高清一区二区三区| 亚洲人123区| 国产欧美日韩视频在线观看| 日韩一区二区三免费高清| 色妞www精品视频| 粉嫩av一区二区三区| 久久成人免费网站| 日产国产高清一区二区三区 | 亚洲一线二线三线视频| 国产精品丝袜久久久久久app| 日韩免费看的电影| 在线电影院国产精品| 日本高清成人免费播放| av亚洲精华国产精华| 国产精品亚洲一区二区三区妖精| 琪琪一区二区三区| 丝瓜av网站精品一区二区| 亚洲网友自拍偷拍| 亚洲欧美一区二区三区久本道91| 国产精品色哟哟网站| 日本一区二区三区视频视频| 欧美大片在线观看一区| 日韩三级电影网址| 欧美一区二区三区视频在线| 欧美乱熟臀69xxxxxx| 欧美日韩一区二区在线观看视频| 色综合久久中文综合久久牛| 99久久精品国产导航| 99视频一区二区| 成人黄色一级视频| 9人人澡人人爽人人精品| 成人午夜免费av| 成人免费视频播放| 成人一区二区三区在线观看| 国产成人亚洲精品青草天美| 国产福利一区二区三区视频在线 | 成人性色生活片免费看爆迷你毛片| 国产尤物一区二区| 国产精品18久久久久久久久久久久| 激情综合网最新| 麻豆视频观看网址久久| 精品午夜一区二区三区在线观看| 激情综合色播五月| 国产精品一区二区久久精品爱涩| 国产一区福利在线| 国产福利一区二区三区在线视频| 国产成人精品综合在线观看| 成人黄动漫网站免费app| av电影天堂一区二区在线| proumb性欧美在线观看| 97国产精品videossex| 日本高清成人免费播放| 欧美日韩美女一区二区| 7777精品久久久大香线蕉| 日韩一区二区不卡| 日韩精品一区二区三区swag| 久久婷婷色综合| 国产精品日韩成人| 一区二区视频在线看| 亚洲国产人成综合网站| 日韩av电影天堂| 国产精品一区在线| 94-欧美-setu| 欧美亚洲一区三区| 欧美一区二区三区在线视频| 精品久久久久久亚洲综合网| 国产欧美一区二区精品仙草咪| 国产精品久久久久久亚洲伦| 一区二区三区精品视频在线| 日本午夜精品视频在线观看| 狠狠色丁香久久婷婷综| 99国产精品国产精品久久| 欧美在线一二三| 精品剧情在线观看| 中文字幕一区二区三区在线不卡| 亚洲精品国产a| 麻豆精品一二三| 成人av中文字幕| 欧美日韩在线综合| 精品日韩一区二区三区| 亚洲欧洲日韩一区二区三区| 五月婷婷色综合| 国产福利一区二区三区视频 | 日韩一级视频免费观看在线| 久久久久久综合| 亚洲精品你懂的| 日本中文一区二区三区| 国产成人一区在线| 欧美三级韩国三级日本三斤| 精品国产三级电影在线观看| 综合亚洲深深色噜噜狠狠网站| 午夜欧美在线一二页| 粉嫩aⅴ一区二区三区四区 | 精品国产伦一区二区三区观看体验| 国产精品丝袜久久久久久app| 午夜精品一区二区三区三上悠亚| 国产剧情在线观看一区二区| 色婷婷av一区二区| 26uuu精品一区二区在线观看| 亚洲另类春色国产| 极品少妇xxxx偷拍精品少妇| 在线亚洲欧美专区二区| 26uuu久久天堂性欧美| 亚洲图片欧美综合| 丁香天五香天堂综合| 欧美精品99久久久**| 中文字幕精品一区| 日韩经典中文字幕一区| 91香蕉视频污| 精品粉嫩超白一线天av| 一区二区在线看| 国产一区二区三区四区五区入口| 欧美一a一片一级一片| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美日韩国产片| 亚洲国产精品99久久久久久久久 | 国产精品国产三级国产| 青青草国产精品亚洲专区无| 色综合久久久久| 久久久久久久电影| 日韩高清不卡一区| 91污在线观看| 久久久久久99精品| 青青草原综合久久大伊人精品| 91美女在线观看| 久久精品一区二区三区不卡| 婷婷开心激情综合| 91老师片黄在线观看| 久久精品这里都是精品| 视频一区欧美精品| 色欧美日韩亚洲| 国产精品乱子久久久久| 国内精品国产成人| 在线播放日韩导航| 一片黄亚洲嫩模| 91网站在线播放| 日本一区二区免费在线观看视频 | 欧美一区二区三区影视|