#include<msp430X14X.h>
#define uint unsigned int
#define uchar unsigned char
uint time=0; //超声波测量的时间存储
uchar strat = 1; //测超声波开始停止标志
uchar led7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint time);
void led(uchar duan,uchar wei,uchar dian);
void csbini(); //超声波初始化
void csbqd(); //测超声波
void main(void)
{
WDTCTL = WDTPW+WDTHOLD;
DCOCTL |= DCO0+DCO1;
BCSCTL1 |= RSEL0+RSEL1+RSEL2; //设置DCO时钟为1MH
csbini();
while(1)
{
csbqd();
led(time/1000,4,0);
led(time%1000/100,3,0);
led(time%100/10,2,1);
led(time%10,1,0);
}
}
void delay(uint time)
{
while(time--);
}
/***************************************
函数名:led
功能 :数码管显示函数
参数 :1-duan 要显示的数据
2-wei 要在那位数码管上显示(从1开始)
3-dian 为1显示小数点,为零不显示小数点
***************************************/
void led(uchar duan,uchar wei,uchar dian)
{
P5DIR = 0XFF;
P4DIR = 0XFF;
if(dian)
P5OUT = led7[duan]-0x80;
else
P5OUT = led7[duan];
P4OUT = ~(1<<wei-1);
delay(100);
P4OUT = 0XFF;
}
void csbini()
{
DCOCTL |= DCO0+DCO1;
BCSCTL1 |= RSEL0+RSEL1+RSEL2; //设置DCO时钟为1MH
P1DIR |= BIT0; //P1.0设置为超声波T输出
P1DIR &= ~BIT1; //P1.1设置为超声波E输入
P1SEL |= BIT1; //启动P1.1的第二功能
TACTL |= TASSEL_2+TACLR+TAIE; //TA SMCLK为时钟源,清零
TACCTL0 |= CM_3 +SCS+CAP+CCIE; //TACCR0 为上升下降延同步捕获模式,开中断
_EINT(); //开总中断
}
void csbqd()
{
if(strat) //启动信号判断
{
strat = 0; //清零
P1OUT |= BIT0; //从P1.0输出10us以上的高电平
delay(30);
P1OUT &= ~BIT0;
TACTL |= TACLR; //定时器A清零
TACTL |= MC_2; //启动定时器为连续计数模式
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void timera0()
{
if(!(TACCTL0&CCI)) //判断下降延是否到来
{
P2OUT = 0Xff;
time = TACCR0; //读取高电平值
time=(uint)(time *0.504); //计算出距离(单位mm)
TACTL &= ~(MC0+MC1); //关定时器TA
strat = 1; //在次启动超声波测距
}
TAR = 0; //清计数器TAR
TACCR0 =0; //清TACCR0
}
#pragma vector=TIMERA1_VECTOR
__interrupt void timera1()
{
if(TAIV==0X0A)
{
TACTL &= ~(MC0+MC1); //关定时器TA
time = 0;
}
}
chaoshengbo.rar_超声波 430
版权申诉
16 浏览量
2022-09-22
22:27:00
上传
评论
收藏 1KB RAR 举报
四散
- 粉丝: 54
- 资源: 1万+
最新资源
- Kepware.KEPServerEX.v4.264.401.Incl.Keygen-SSG
- 行人重识别-通过顺序决策实现跨域行人重识别算法-附项目源码-优质项目实战.zip
- HTML、CSS制作家乡介绍网页.zip
- 361050291.apk
- 华硕B250 PLUS支持6789代BIOS
- 基于javaScript开发的图书管理系统+数据库+源码+项目展示+开发文档(毕业设计&课程设计&项目开发)
- HTML+CSS制作的个人博客网页 2.zip
- 华硕B250M-PIXIU支持6789代BIOS
- c# winfrom 音量控制 静音
- 【OpenHarmony】 ArkTS 语法基础 ② ( ArkTS 自定义组件 )
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈