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

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

?? mspf413-tmp100 interface.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)
;
;   Z. Albus
;   Texas Instruments, Inc
;   August 2002
;******************************************************************************

#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=1, SCL=0
;------------------------------------------------------------------------------ 
            bic.b   #SCL+SDA,&P2DIR         ; SCL and SDA to input direction
            bic.b   #SCL+SDA,&P2OUT         ; SCL=1, SDA=1
            bis.b   #SDA,&P2DIR             ; SDA=0
            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
I2C_TX1     bic.b   #SDA,&P2DIR             ; SDA=1
I2C_TXx     bic.b   #SCL,&P2DIR             ; SCL=1
            nop                             ; delay to meet I2C spec
            nop                             ;
            bis.b   #SCL,&P2DIR             ; SCL=0
            dec     BITI2C                  ; all bits read?

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合av一区二区国产馆| 自拍av一区二区三区| 精品视频一区三区九区| 色综合久久中文字幕综合网| 成人av网站在线观看免费| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲一级二级三级在线免费观看| 中文字幕一区在线| 中文字幕中文字幕在线一区| 国产精品欧美一级免费| 国产精品免费aⅴ片在线观看| 国产精品久久综合| 亚洲欧美电影一区二区| 亚洲一区二区视频在线观看| 亚洲国产sm捆绑调教视频| 首页欧美精品中文字幕| 奇米色777欧美一区二区| 久久电影网电视剧免费观看| 国产精品自拍三区| 色综合久久综合网| 欧美大片日本大片免费观看| wwwwxxxxx欧美| 国产精品夫妻自拍| 日韩精品三区四区| 福利电影一区二区三区| 一本久久a久久精品亚洲| 91精品国产丝袜白色高跟鞋| 精品久久国产97色综合| 亚洲丝袜制服诱惑| 老司机免费视频一区二区| 不卡的电影网站| 欧美日韩精品专区| 久久精品视频在线免费观看 | 欧洲精品一区二区三区在线观看| 欧美精品在线视频| 欧美国产一区二区在线观看| 亚洲大片在线观看| 懂色av一区二区夜夜嗨| 欧美另类一区二区三区| 国产午夜精品福利| 日韩二区在线观看| 91蝌蚪porny成人天涯| 7777精品伊人久久久大香线蕉| 久久久久亚洲蜜桃| 天堂蜜桃91精品| 97久久超碰精品国产| 精品久久久久久久久久久久久久久久久 | 久久国产夜色精品鲁鲁99| 99精品桃花视频在线观看| 欧美大片在线观看一区二区| 亚洲狠狠爱一区二区三区| 成人高清视频在线观看| 欧美一级精品大片| 亚洲国产美女搞黄色| 不卡视频免费播放| 国产欧美精品国产国产专区| 蜜桃精品视频在线| 欧美人妖巨大在线| 亚洲午夜久久久久久久久久久| 国产99精品视频| 久久久久久久久久久久电影| 日日摸夜夜添夜夜添精品视频 | 国产女人水真多18毛片18精品视频 | www.视频一区| 久久精品视频免费| 激情综合网激情| 日韩一级二级三级| 日本视频中文字幕一区二区三区| 97久久精品人人做人人爽| 中文字幕中文字幕一区二区| 成人高清在线视频| 国产精品二区一区二区aⅴ污介绍| 懂色av一区二区三区免费观看| 久久午夜羞羞影院免费观看| 久久成人羞羞网站| 欧美精品一区二区三| 韩国成人精品a∨在线观看| 精品sm捆绑视频| 国产精品中文有码| 国产色一区二区| av网站免费线看精品| 中文字幕第一区第二区| 美女一区二区三区在线观看| 91免费版在线| 精品综合免费视频观看| 亚洲第四色夜色| 视频一区二区中文字幕| 午夜一区二区三区在线观看| 国产精品理伦片| 亚洲成人激情社区| 国产一区二区三区在线看麻豆| 日韩美女天天操| 色综合久久综合网欧美综合网| 中文字幕第一区综合| 91小视频在线免费看| 亚洲综合男人的天堂| 欧美美女直播网站| 国产精品一级片在线观看| 国产欧美一区二区三区沐欲| 99久久国产综合精品色伊| 亚洲第一成人在线| 国产午夜精品一区二区三区嫩草| 99久久久久久| 久久精品国产秦先生| 欧美国产激情二区三区| 欧美另类z0zxhd电影| 国产精品中文字幕日韩精品 | av中文字幕在线不卡| 亚洲国产中文字幕| 久久午夜羞羞影院免费观看| 91免费观看在线| 狠狠色伊人亚洲综合成人| 亚洲色图欧美在线| 精品国产乱码久久久久久1区2区| aaa亚洲精品| 久久99精品久久久| 中文字幕一区av| 2014亚洲片线观看视频免费| 色综合天天视频在线观看| 国产一区二区在线视频| 一区二区三区高清| 国产嫩草影院久久久久| 91精品国产欧美日韩| av在线一区二区三区| 麻豆中文一区二区| 午夜精品免费在线| 亚洲欧洲中文日韩久久av乱码| 亚洲精品一区二区三区香蕉| 欧美三级资源在线| 波多野结衣视频一区| 黄色日韩网站视频| 日本成人在线网站| 亚洲一区二区在线视频| 日韩一区在线免费观看| 久久精品在这里| 欧美变态tickling挠脚心| 欧美撒尿777hd撒尿| 99国产精品99久久久久久| 国产福利精品导航| 狠狠色丁香婷婷综合| 美脚の诱脚舐め脚责91| 日本最新不卡在线| 三级久久三级久久久| 日韩激情av在线| 偷拍与自拍一区| 亚洲成人你懂的| 丝袜美腿亚洲综合| 亚洲高清免费一级二级三级| 亚洲午夜免费电影| 午夜私人影院久久久久| 亚洲国产cao| 日韩高清在线一区| 久久狠狠亚洲综合| 国产精品夜夜嗨| 国产精华液一区二区三区| 国产成人亚洲综合色影视| 国产成人精品三级| 成人app网站| 一本久久精品一区二区| 欧美影视一区在线| 欧美三级电影网站| 日韩精品一区二区三区视频在线观看 | 亚洲三级免费观看| 亚洲欧美一区二区三区极速播放 | 久久久久国产免费免费| 久久精品视频一区二区| 国产精品久久久久影视| 亚洲激情五月婷婷| 图片区小说区区亚洲影院| 蜜桃久久久久久久| 成人毛片在线观看| 欧美色国产精品| 久久综合色8888| 亚洲男帅同性gay1069| 亚洲国产一二三| 日本中文在线一区| 国产精品99久久不卡二区| 99精品欧美一区| 欧美一区二区三区四区久久| 欧美不卡在线视频| 亚洲另类色综合网站| 日韩国产欧美在线视频| 国产精品一区二区三区四区| 在线观看亚洲成人| 欧美成人福利视频| 自拍偷拍亚洲综合| 日韩av不卡一区二区| 成人av在线电影| 日韩一二在线观看| 最新国产精品久久精品| 美脚の诱脚舐め脚责91| 色综合久久九月婷婷色综合| 91麻豆精品国产无毒不卡在线观看| 久久精品亚洲精品国产欧美| 亚洲高清不卡在线| 高清不卡在线观看| 欧美mv日韩mv国产网站app| 自拍偷拍亚洲激情| 国产凹凸在线观看一区二区| 欧美日韩aaa|