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

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

?? mspf413-tmp100 interface rev 0-01.s43

?? MSP430與TMP100 I2C溫度傳感器的接口匯編程序
?? S43
?? 第 1 頁 / 共 2 頁
字號:
;******************************************************************************
;   MSP430F413 & TMP100 Software Interface
; 
;   Description: I2C communication with a TMP100 in one-shot conversion mode 
;   is demonstrated. Temperature is read from the TMP100 and displayed to LCD.
;   Only upper 8-bits from TMP100 temperature register is read, representing 
;   7Fh = 128oC to 80h = -128oC in 1oC steps. 
;   MSP430 is I2C master with TMP100 as the slave. Ack error checking on WR
;   not implemented. DCO/FLL generated MCLK = 1MHz. LMP3 implemented with
;   wake-up every 2 seconds as defined by Basic Timer interrupt from
;   watch crystal.
;
;          /|\            /|\ /|\
;           |    TMP100   10k 10k  MSP430F413           
;           |    -------   |   |  ---------- 
;           +---|Vcc SDA|<-|---+>|P2.0      |    +----------------------+
;            +--|A0     |  |     |    S0-S23|--->| Varitronix 3.5 digit |
;            |--|A1     |  |     |      COM0|--->|  Static LCD Display  |
;            |--|Vss SCL|<-+-----|P2.1      |    +----------------------+                        
;           \|/  -------         |          |
;                                |       XIN|<---32.768KHz Watch Crystal     
;
;
;            CPU registers used
#define      DIGITS   R6                    
#define      RXTXI2C  R7                    
#define      ADDRI2C  R8                    
#define      DATAI2C  R9                    
#define      BITI2C   R10                   
;
;            Definitions for I2C bus
TMPADDR      equ   090h                     ; TMP100 HW Address (A0=A1=0+WR)
SDA          equ   001h                     ; P2.0 controls SDA line (pull-up)
SCL          equ   002h                     ; P2.1 controls SCL line (pull-up)

;
;   Revision 0-01 Updated 5/12/04 (A. Dannenberg/Z. Albus)
;   I2C functions have been modified to allow the slave to hold SCL low
;   for introducing a delay and also to fulfill Philips I2C timing specs
;   for standard mode transfers at 1.048576 MHz CPU frequency.
;
;   NOTE: I2C routine RX/TX execution times are slightly increased vs. the
;   original software version due to I2C timing compliance. Consequently, the
;   per-function instantaneous current consumption during I2C routine execution
;   is also slightly increased in comparison to the data given in the app note
;   for the original I2C software implementation. However, the time-average
;   current consumption is only increased by 0.04uA to a total average Icc
;   of 2.49uA.
;******************************************************************************

#include  "msp430x41x.h"
                                            ;
;------------------------------------------------------------------------------ 
; word & byte variables definition
            ORG     0200h
;------------------------------------------------------------------------------ 
Neg_Sign    DB      0                       ; Negative Temperature Flag
                                            ;
;------------------------------------------------------------------------------ 
            ORG     0F000h
;------------------------------------------------------------------------------ 
RESET       mov.w   #300h,SP                ; Initialize stack-pointer
            call    #Init_Sys               ; Initialize system
                                            ;
One_Shot_1  mov.b   #001h,ADDRI2C           ; ADDRI2C = TMP100 Pointer = Config    
            mov.b   #081h,DATAI2C           ; One-Shot Instruction Data
            call    #Write_I2C              ; Write to TMP100
                                            ;             
Mainloop    bis.w   #LPM3,SR                ; Enter LPM3
                                            ;
Read_Temp   mov.b   #000h,ADDRI2C           ; ADDRI2C = TMP100 Pointer = Data
            call    #Read_I2C               ; Get Upper 8-bit Conversion Result
            and.w   #000FFh,DATAI2C         ; Clear Upper Byte
                                            ;
            call    #Calc_Temp              ; Handle "-" Temperature Data
            call    #Disp_Signed_3_5        ; Update LCD with BCD Data
                                            ;
One_Shot    mov.b   #001h,ADDRI2C           ; ADDRI2C = TMP100 Pointer = Config
            mov.b   #081h,DATAI2C           ; One-Shot Instruction Data
            call    #Write_I2C              ; Write to TMP100
                                            ;
Main_End    jmp     Mainloop                ; Loop Again
                                            ;
;------------------------------------------------------------------------------ 
Init_Sys;   Subroutine sets up  Modules and Control Registers
;------------------------------------------------------------------------------ 
            mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
SetupFLL2   bis.b   #XCAP18PF,&FLL_CTL0     ; Set load capacitance for xtal
SetupLCD    mov.b   #0C5h,&LCDCTL           ; Static LCD, segments = 0 - 23
SetupBT     mov.b   #BTFRFQ1+BTFRFQ0+BTDIV+BTIP2+BTIP1+BTIP0,&BTCTL;
                                            ; 2s BT Int, Set LCD freq
            bis.b   #BTIE,&IE2              ; Enable Basic Timer interrupt      
SetupPorts  mov.b   #0FFh,&P1DIR            ; Set port to outputs
            clr.b   &P1OUT                  ; P1OUTs = 0
            mov.b   #0FFh,&P2DIR            ; Set port to outputs
            clr.b   &P2OUT                  ; P2OUTs = 0
            mov.b   #0FFh,&P3DIR            ; Set port to outputs
            clr.b   &P3OUT                  ; P3OUTs = 0
            mov.b   #0FFh,&P4DIR            ; Set port to outputs
            clr.b   &P4OUT                  ; P4OUTs = 0
            mov.b   #0FFh,&P5DIR            ; Set port to outputs
            clr.b   &P5OUT                  ; P5OUTs = 0
            mov.b   #0FFh,&P6DIR            ; Set port to outputs
            clr.b   &P6OUT                  ; P6OUTs = 0
                                            ;
            eint                            ; Enable Interrupts
                                            ;
            ret                             ; Return to Main
                                            ;            
;///////////I2C Subroutines start////////////////////////////////////////////// 
;------------------------------------------------------------------------------ 
Read_I2C   ; Reads two bytes of data transmitted from slave
;            enter ADDRI2C=00 - FF I2C device address to read
;                  RXTXI2C=x
;                  DATAI2C=x
;            exit  ADDRI2C=x
;                  RXTXI2C=x
;                  DATAI2C=0000 - FFFF I2C device data
;------------------------------------------------------------------------------ 
            mov.b   #TMPADDR,RXTXI2C         ; Load HW Address
            call    #I2C_Start               ; Send Start, Address and Ack
            mov.b   ADDRI2C,RXTXI2C          ; Load Pointer Address
            call    #I2C_TX                  ; Send Pointer and Ack
            mov.b   #TMPADDR,RXTXI2C         ; Load HW Address
            bis.b   #01h,RXTXI2C             ; Set LSB for "READ"
            call    #I2C_Start               ; Send Start, Address+RD and Ack
            call    #I2C_RX                  ; Read Data and Ack
                                             ;
;***** Used for 2-Byte transfer only *****   ;
;            call    #I2C_ACKn                ; Acknowledge Byte Rcv'd
;            call    #I2C_RX                  ; Read Data and Ack
                                             ;
            call    #I2C_NACKn               ; NOT Acknowledge Byte Rcv'd
            call    #I2C_Stop                ; Send Stop
            ret                              ; Return from subroutine
                                             ;
;------------------------------------------------------------------------------ 
Write_I2C;  enter ADDRI2C=00 - FF I2C device address to write to
;                 RXTXI2C=x
;                 DATAI2C=00 - FF I2C device data to write
;           exit  ADDRI2C=x
;                 RXTXI2C=x
;                 DATAI2C=x
;------------------------------------------------------------------------------ 
            mov.b   #TMPADDR,RXTXI2C         ; Load HW Address
            call    #I2C_Start               ; Send Start, Address and Ack
            mov.b   ADDRI2C,RXTXI2C          ; Load Pointer Address
            call    #I2C_TX                  ; Send Pointer and Ack
            mov.b   DATAI2C,RXTXI2C          ; Load Out-Going Data
            call    #I2C_TX                  ; Send Data and Ack
            call    #I2C_Stop                ; Send Stop
            ret                              ; Return from subroutine
                                             ;
;------------------------------------------------------------------------------ 
I2C_Start;  enter SDA=1, SCL=x
;           exit  SDA=0, SCL=0
;------------------------------------------------------------------------------ 
            bic.b   #SCL+SDA,&P2DIR          ; SCL and SDA to input direction

            bic.b   #SCL,&P2OUT              ; SCL=1
I2C_Start2  bit.b   #SCL,&P2IN               ; SCL==1?
            jz      I2C_Start2               ; wait for SCL==1

            bic.b   #SDA,&P2OUT              ; SDA=1
            nop                              ; delay
            nop                              ; (START condition needs
            nop                              ; set-up time >4.7us)
            nop
            bis.b   #SDA,&P2DIR              ; SDA=0
            nop                              ; delay
            nop                              ; (START condition needs
            nop                              ; hold time >4.0us)
            nop
            bis.b   #SCL,&P2DIR              ; SCL=0
                                             ;
;------------------------------------------------------------------------------ 
I2C_TX;     enter SDA=x, SCL=0
;           exit  SDA=1, SCL=0
;------------------------------------------------------------------------------ 
            mov     #08,BITI2C               ; number of bits to xfer
I2C_TX_Bit  rla.b   RXTXI2C                  ; data bit -> carry
            jc      I2C_TX1                  ; test carry for 1 or 0
I2C_TX0     bis.b   #SDA,&P2DIR              ; SDA=0
            jmp     I2C_TXx                  ; Toggle SCL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久免费| 日韩精品一区二区在线观看| 国产精品一区二区三区99| 亚洲mv大片欧洲mv大片精品| 亚洲精品国产品国语在线app| 国产精品久线观看视频| 国产精品久久久久久久蜜臀| 国产精品女上位| 国产欧美一区二区精品仙草咪| 久久久综合激的五月天| 国产亚洲短视频| 中文在线免费一区三区高中清不卡| 久久久99精品免费观看不卡| 国产无遮挡一区二区三区毛片日本| 精品久久久久久无| 久久精品亚洲精品国产欧美| 亚洲国产精品高清| 中文字幕一区二区三区四区 | 极品瑜伽女神91| 久久国产日韩欧美精品| 一二三四社区欧美黄| 日日夜夜免费精品| 久久精品国产99| 成人一区二区视频| 在线观看日韩国产| 日韩美女视频在线| 国产欧美一区二区精品性色 | 精品视频全国免费看| 欧美情侣在线播放| 欧美精品一区二区久久婷婷| 国产日韩成人精品| 亚洲精品高清在线观看| 免费xxxx性欧美18vr| 国产91色综合久久免费分享| 91网页版在线| 538prom精品视频线放| 国产亚洲成年网址在线观看| 亚洲精品伦理在线| 毛片av一区二区三区| 成人免费av资源| 欧美丝袜丝交足nylons| 久久久一区二区| 一区二区三区四区在线播放 | 色综合久久中文字幕| 日韩欧美成人一区二区| 日韩毛片一二三区| 麻豆91在线观看| 色噜噜久久综合| 久久久av毛片精品| 天堂va蜜桃一区二区三区漫画版| 风间由美一区二区三区在线观看| 欧美午夜一区二区三区免费大片| 国产日韩三级在线| 蜜桃av一区二区三区电影| 成人免费视频caoporn| 日韩欧美一二区| 一区二区三区国产精品| 国产二区国产一区在线观看| 欧美剧情片在线观看| 亚洲欧洲色图综合| 国产aⅴ综合色| 国产精品污污网站在线观看| 亚洲成人资源在线| 91视频国产资源| 欧美激情一区二区三区在线| 美女视频免费一区| 91精品国产色综合久久不卡蜜臀| 亚洲乱码国产乱码精品精的特点| 丰满岳乱妇一区二区三区| 久久久久久一二三区| 久久99久久精品| 欧美一级在线免费| 日韩avvvv在线播放| 欧美日韩一区国产| 一区二区三区欧美日韩| 91麻豆精品秘密| 国产精品天干天干在线综合| 国产美女精品一区二区三区| 日韩欧美在线1卡| 婷婷六月综合网| 91麻豆精品国产91| 日韩国产欧美三级| 日韩欧美中文字幕一区| 激情综合五月天| 精品日韩99亚洲| 国产在线国偷精品产拍免费yy| 26uuu另类欧美亚洲曰本| 激情综合色综合久久综合| 精品精品欲导航| 国产乱淫av一区二区三区| 久久久久久久久伊人| 高清不卡在线观看av| 久久九九全国免费| 成人午夜在线播放| 亚洲免费色视频| 欧美日韩久久不卡| 紧缚捆绑精品一区二区| 国产精品欧美一级免费| 99久免费精品视频在线观看| 亚洲日本在线视频观看| 欧美羞羞免费网站| 麻豆精品精品国产自在97香蕉| 欧美精品一区二区不卡| 粉嫩aⅴ一区二区三区四区五区| 中文字幕免费不卡| 欧美三级电影在线观看| 另类专区欧美蜜桃臀第一页| 国产欧美日韩在线| 欧美综合亚洲图片综合区| 日本在线不卡一区| 欧美高清在线精品一区| 欧美性受xxxx| 狠狠色丁香婷婷综合久久片| 亚洲女同ⅹxx女同tv| 制服丝袜激情欧洲亚洲| 国产一区二区三区四区五区入口| 亚洲视频一二三区| 日韩视频免费观看高清完整版在线观看 | 久久久久高清精品| 在线观看日韩毛片| 国产成人精品影视| 亚洲国产日韩av| 国产日韩亚洲欧美综合| 欧美夫妻性生活| 成人黄色电影在线 | 亚洲人成网站影音先锋播放| 日韩欧美在线影院| 欧美伊人久久大香线蕉综合69| 国产美女视频91| 午夜精品久久久久久久久久| 国产精品丝袜一区| 日韩精品一区二区三区在线观看| 欧洲一区在线观看| 福利一区二区在线观看| 日韩成人一级大片| 亚洲一区二区三区四区五区中文 | 亚洲日本丝袜连裤袜办公室| 日韩午夜精品视频| 欧美视频第二页| 色综合久久天天| 成人午夜av影视| 国产一区二区三区黄视频 | 韩国v欧美v亚洲v日本v| 午夜精品123| 亚洲国产aⅴ天堂久久| 亚洲欧美一区二区三区极速播放| 国产欧美日韩中文久久| 久久综合久色欧美综合狠狠| 日韩三级高清在线| 欧美一区二区三区视频免费播放| 欧美午夜电影一区| 欧美午夜在线观看| 欧美吻胸吃奶大尺度电影 | www.欧美日韩| 粉嫩高潮美女一区二区三区| 国产伦精品一区二区三区视频青涩| 麻豆精品久久久| 久久精品国产一区二区三区免费看 | 2024国产精品| 久久尤物电影视频在线观看| 日韩视频免费观看高清完整版 | 欧美日韩在线三区| 在线国产亚洲欧美| 欧美久久免费观看| 欧美高清性hdvideosex| 欧美一级精品大片| 日韩一区二区中文字幕| 欧美成人艳星乳罩| 久久精品亚洲一区二区三区浴池| 国产欧美一区二区精品仙草咪| 中文字幕成人在线观看| 亚洲精品免费在线播放| 亚洲不卡一区二区三区| 日本午夜精品一区二区三区电影| 另类小说综合欧美亚洲| 国产不卡在线视频| 一本一道久久a久久精品| 欧美日韩国产美女| 99国产精品国产精品久久| 91丝袜美女网| 91麻豆精品国产综合久久久久久| 9191成人精品久久| 久久精品一区二区三区不卡牛牛| 综合久久国产九一剧情麻豆| 午夜精品久久久久久久久| 国产一区二区三区免费| 欧洲亚洲国产日韩| 精品国产1区二区| 日韩毛片视频在线看| 美女视频黄 久久| 成人高清免费观看| 欧美日本一道本| 国产精品天美传媒沈樵| 日本不卡一区二区三区| 成人av影院在线| 欧美日韩精品免费| 国产精品国产三级国产aⅴ原创| 婷婷成人激情在线网| 成人av电影免费在线播放| 欧美一区二区在线播放|