MSP430停车位感应装置设计

发布者:睿智之光最新更新时间:2020-03-05 来源: eefocus关键字:MSP430  停车位  感应装置 手机看文章 扫描二维码
随时随地手机看文章

硬件:MSP430f5529,光电传感器,数码管(共阴极)


#include

/***********************************************************************

红外光电传感器输入信号到P2.0,模拟车的信号,当用手遮挡时输入高电平

系统检测到上升沿,进入寄存器中断,P1.0灯亮,接着在寄存器中断中使能定时器的

捕获/比较寄存器(TA0CCTL0),定时器开始计时,数码管开始滚动数字,当把手挪开后,

传感器输入低电平,系统检测到下降沿,再次进入寄存器中断,P1.0取反,灯灭,接着

禁止定时器的捕获/比较寄存器(TA0CCTL0),定时器停止计时,数码管停止滚动,直到

下次上升沿到来

************************************************************************/

unsigned char i=0,j=0,k=0,key=0;

const unsigned char num[10]={0xfc,0x90,0x7a,0xda,0x96,0xce,0xee,0x9c,0xfe,0xde};

//数码管管脚:DP,g,f,a,b,e,d,c 分别对应 P3.0,P3.1,P3.2,P3.3,...,P3.7

void delay(int ms)

{

    while(ms--)

        for(i=0;i<120;i++);

}

void main( void )

{

    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗

    P1DIR |= BIT0;                  //定义P1.0为输出,默认为输出高电平

    P1OUT ^= BIT0;                  //初始化的时让P1.0输出低电平

    P2IE  |= BIT0;                  //中断使能P2.0

    P2IES |= BIT0;                  //选择中断标志为P2.0

    _BIS_SR(LPM0_bits+GIE);         //开启中断,并让CPU休眠

}

#pragma vector = TIMER0_A0_VECTOR   //CCR0中断程序

__interrupt void Timer0_A(void)

{

        j++;

        if(j>9)

          j=0;

        P3OUT = num[j];         //数码管开始计数输出

}

#pragma vector = PORT2_VECTOR       //寄存器中断程序

__interrupt void PORT2_ISR(void)

{

    key = P2IFG&BIT0;               //按键防抖

    delay(10);                      //自定义的延时函数

    if((P2IFG&BIT0)==key)

       P1OUT ^= 0x01;           //上升沿输出高电平,下降沿输出低电平

    P2IFG=0;                    //退出中断前必须手动清除IO口中断标志

    k = j;                    

    j = 0;                      //让数码管每次都从0开始计数

    TA0CTL |= TASSEL_1+MC_1+TAIE+ID_0+TACLR;

    //选择ACLK时钟信号,增计数模式,中断使能,一分频,自动复位

    TA0CCTL0 ^= CCIE;   //捕获/比较寄存器使能与禁止

    TA0CCR0 = 32768;    //ACLK计数32768次为一秒

    P3DIR = 0XFF;       //定义P3为输出,默认为输出高电平,整个P3都接的是数码管

    P3OUT = num[k];     //初始化时让P3保持输出停止计数前的最后一个数

}


红外光电传感器如图: 

这里写图片描述

关键字:MSP430  停车位  感应装置 引用地址:MSP430停车位感应装置设计

上一篇:MSP430共阳数码管实验
下一篇:uCOS-II在MSP430上的移植1——准备工作

推荐阅读最新更新时间:2024-11-11 08:12

MSP430单片机低功耗结构原理
当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且L
[单片机]
msp430f5529时钟源
***************************************************************还有一个模块时钟源:MODOSC,产生MODCLK时钟源信号,一般只为闪存控制模块和ADC12模块提供服务。 该模块不被使用时自动关闭,任何模块对该时钟源提出使用要求时,MODOSC无需被使能即可响应该请求。430F5529中MODCLK为5MHZ。 *************************************************************** MSP430F5529有多个时钟源,而且很多模块其时钟源都是可以自由选择的。此外,由于一般情况下,系统功耗是和工作频率成正比的,因此
[单片机]
<font color='red'>msp430</font>f5529时钟源
采用MSP430单片机及USB总线ch375设计便携式血压计
本文使用低功耗MSP430单片机对人体血压信号进行采集,通过USB控制芯片CH375将这些数据存储到U盘中,可以通过PC机的软件分析一天中血压的变化。 电子血压计在国外已经大量普及,而我国才开始应用。水银血压计每次测量必须由医生戴上听诊器进行测量,测量过程复杂,而且不同的医生,测量结果可能不同。而电子血压计弥补了水银血压计的不足。     1 硬件设计   1.1芯片介绍   MSP430是近几年流行的16位单片机,由于它具有超低功耗(在5V电压下运行于12MHz的80C51工作电流达到十几mA;而MSP430在3V时的工作电流为340μA,在2.2V的工作电流为220μA)、众多的片内外设、强大的数据处理能力、系统
[单片机]
采用<font color='red'>MSP430</font>单片机及USB总线ch375设计便携式血压计
MSP430单片机为核心的智能无功补偿控制器设计
1 引言 随着经济的发展和人们生活水平的提高,各行各业对供电可靠性和供电质量提出了更高的要求。由于配电网处于电网的末端,用户多为低压用户,许多用电器的功率因数很低,且不带补偿装置,这给电网带来很大的功率负担和额外线损,为了维护电力系统稳定、保证电能质量和安全运行,对电网末端变压器进行就地无功补偿很有必要。本文利用TI公司的MSP430F149单片机为核心构成的控制器,实时监测电网的电压、电流,并计算出有功、无功、功率因数,根据用电负荷情况,通过复合开关控制电容器组的自动投、切,实现无功功率的动态补偿,且具有报警功能。该装置安装在电力配电变压器低压侧,用于补偿配电变压器无功功率改善配电变压器的无功潮流,同时该装置也具有辅助调压的作用
[单片机]
以<font color='red'>MSP430</font>单片机为核心的智能无功补偿控制器设计
MSP430无线充电器电路原理图
电源切换直流输入采用单刀双闸继电器,交流上电常开闭合,常闭打开实现交流优先,交流断电继电器断电,常闭闭合,实现自动切换。在切换时,时间很短,C1 可提供一定时间的电量,可以实现不断电切换,不影响充电。 电源切换 直流输入采用单刀双闸继电器,交流上电常开闭合,常闭打开实现交流优先,交流断电继电器断电,常闭闭合,实现自动切换。在切换时,时间很短,C1 可提供一定时间的电量,可以实现不断电切换,不影响充电。见图2 所示。 发射及接收电路 发射电路由振荡信号发生器和谐振功率放大器两部分组成, 见图3 所示。采用NE555($0.0700) 构成振荡频率约为510KHZ 信号发生器,为功放电路提供激励信号;谐振功率放大器由Lc 并
[单片机]
<font color='red'>MSP430</font>无线充电器电路原理图
Msp430Flash型单片机内部Flash存储器介绍
MSP430的Flash存储器是可位、字节、字寻址和编程的存储器。该模块由一个集成控制器来控制编程和擦除的操作。控制器包括三个寄存器,一个时序发生器及一个提供编程、擦除电压的电压发生器。 Msp430的Flash存储器的特点有: 1) 产生内部编程电压 2) 可位、字节、字编程,可以单个操作,也可以连续多个操作 3) 超低功耗操作 4) 支持段擦除和多段模块擦除 2 Flash存储器的分割 Msp430 Flash存储器分成多个段。可对其进行单个字节、字的写入,也可以进行连续多个字、字节的写入操作,但是最小的擦除单位是段。 Flash 存储器被分割成两部分:主存储器和信息存储器,
[单片机]
怎样只用一个XT2晶振得到精确的高频----msp430f5529单片机
最近在用msp430f5529,终于在上周弄清了时钟方面的原理,在此记录下,唔,这也是俺第一篇博客······ 首先呢,我先插入它的原理框图 从图中可以看出ACLK、SMCLK、MCLK都可以由XT1CLK/VLOCLK/REFOCLK/DCOCLK/DCOCLKDIV/XT2CLK得到,而TI例程里面给的大多是由FLLREFCLK倍频得到DCOCLK或DCOCLK,从而得到SMCLK和MCLK,而ACLK都是由XT1CLK或REFOCLK直接获得。例程里面的FLLREFCLK来源于XT1CLK或REFOCLK。所以例程里面得到的高频都是经过大的倍频得到,这里面有个弊端,就是如果你需要很精确的频率的话由大的倍频得到的频道误
[单片机]
MSP430中用位段定义自己的标志
在编写程序中,经常需要自己定义标志(位)。如果每个标志占用一个字节,会占用很大空间,可以用位段来实现,把若干个标志集中在一个存储单元中。 1.位段的定义 关于位段的定义,就不多说了,去查阅任何一本C语言的书都可以查到 2.微处理器中标志位的定义 对于MSP430,是16位处理器,可以一次读取16位的数据,标志位也可定义为16位的。 下面的定义将位段和共用体结合在一起用,因为共用体的长度取决于最长成员的长度,因此,可以在共用体中声明一个int成员,对它清0则可以清除整个标志字(覆盖)。 union FLAG { unsigned int BYTE; struct { unsigned b0:1; u
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved