您当前的位置:五五电子网电子知识单片机-工控设备MSP430单片机MSP430超声波测距 正文
MSP430超声波测距

MSP430超声波测距

点击数:7426 次   录入时间:03-04 11:57:49   整理:http://www.55dianzi.com   MSP430单片机
TimerCLR     bis.w   #TACLR,&TACTL
             MOV .w   #36,&CCR1               ; Delay for transducer to settle                                     
             MOV .w   #CCIE,&CCTL1            ; 比较模式中断
             bis.w   #LPM0,SR                ; 等待CCR1中断                          
             bis.b   #CAON,&CACTL1           ; 比较器A 开
             bic.b   #CAIFG,&CACTL1          ; 使能比较器A中断标志
             MOV .w   #CM0+CCIS0+SCS+CAP+CCIE,&CCTL1
                                             ; 正边沿, CCIB,Cap,中断
             push    &TAR                    ; TOS = TAR 在测量的开始
             bis.w   #LPM0,SR                ; 等待CCR1中断(Echo)
             clr.w   &CCTL1                  ; 不使用CCTL1
             bic.b   #BIT0,&P1OUT            ; LED关闭
             bit.b   #CAIFG,&CACTL1          ; 检查回声波不接收
             jz      Next                    ; '超出范围'条件
             MOV .w   &CCR1,Result            ; Result = TAR (CCR1) at EOC
             sub.w   @SP+,Result             ; Result = time taken
             add.w   #48,Result              ; 补偿爆发12个时钟
                                             ; 传递时间 + 36个时钟延时
                                                                              
;****************** 测量完成 **************************************************             

             call    #Math_calc              ; 调用数学子程序
             swpb    DIGITS                  ; Shift left by two digits for /100        
             jmp     Mainloop                ; 下一次测量周期          
Next         MOV .w   #0beh,DIGITS            ; 不回声接收显示'E' 表示错误
             jmp     Mainloop
            
;******************************************************************************
Init_Device                                  ; 初始化MSP430x41x             
;******************************************************************************
             MOV .w   #WDTPW+WDTHOLD,&WDTCTL  ; 停止WDT
             bis.b   #030h,&FLL_CTL0         ; 开启负载电容器对于XTAL振荡器开始振荡
                                             ;  
             call    #Delay                  ; 延时对于振荡器到稳定为止
             MOV .b   #03fh,&SCFQCTL          ; MCLK = 40KhzX64 = 2.56Mhz  
             call    #Delay                  ; 延时对于FLL到稳定为止
SetupP1      MOV .b   #000h,&P1OUT            ; 清除P1 输出寄存器
             bis.b   #0bfh,&P1DIR            ; 不用的PIN设置为输出          
             bis.b   #040h,&P1SEL            ; 比较器A输入功能                         
SetupP2      MOV .b   #000h,&P2OUT            ; 清除P2输出寄存器
             bis.b   #0ffh,&P2DIR            ; 不用的Pin设置为输出                                                 
SetupP6      MOV .b   #000h,&P6OUT            ; 清除P6输出寄存器
             bis.b   #0ffh,&P6DIR            ; 不用的Pin设置为输出
SetupBT      MOV .b   #BTFRFQ0+BTFRFQ1+BTIP2+BTDIV,&BTCTL
                                             ; Enable BT with 150Hz LCD freq.
                                             ; and 205 milli-second interrupt
SetupCA      MOV .b   #CAPD6,&CAPD            ; o/p buffer dISAble for comp i/p          

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页


本文关键字:超声波  MSP430单片机单片机-工控设备 - MSP430单片机