历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2020年03月05日 | MSP430停车位感应装置设计

2020-03-05 来源:eefocus

硬件: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保持输出停止计数前的最后一个数

}


红外光电传感器如图: 

这里写图片描述

推荐阅读

史海拾趣

ETA Electric Industry Co Ltd公司的发展小趣事

随着技术实力的增强,ETA Electric Industry Co Ltd开始积极拓展国内外市场。他们参加了多个国际电子展会,与世界各地的潜在客户建立了联系。同时,公司还加强了与国内外大型电子企业的合作,为其提供定制化的解决方案。这些举措极大地提升了公司的知名度和市场份额,为公司的快速发展奠定了基础。

Electronic Transistors Corp公司的发展小趣事

作为一家领先的电子企业,ETC公司深知自身肩负的社会责任。公司积极履行社会责任,关注环境保护和资源节约。ETC通过引进先进的生产工艺和设备,减少生产过程中的能源消耗和废弃物排放。同时,公司还积极参与公益事业和社会活动,为社会做出了积极贡献。这些举措不仅提升了ETC的企业形象,也为公司的可持续发展奠定了坚实的基础。

C-MAC Automotive公司的发展小趣事

面对激烈的市场竞争,C-MAC Automotive公司不断创新营销手段。公司利用互联网和社交媒体平台开展线上宣传活动,通过发布技术文章、举办线上讲座等方式吸引潜在客户。同时,C-MAC还积极参加各类行业展会和论坛,与同行和客户面对面交流,拓展业务合作。这些创新的营销举措有效地提升了公司的市场影响力,为公司的快速发展提供了有力支持。

EnerSys公司的发展小趣事

EnerSys一直致力于技术创新和研发投入。公司拥有一支专业的研发团队,不断推出具有竞争力的新产品和解决方案。例如,EnerSys在锂电池领域取得了重要突破,成功开发出高能量密度、长寿命的锂电池产品。这些创新产品不仅满足了客户的多样化需求,还推动了公司在电子行业中的持续发展。

AEM [ American Electronic Materials]公司的发展小趣事

AEM深知人才是企业发展的核心竞争力。因此,公司一直注重人才培养和团队建设。AEM建立了完善的人才培养和激励机制,吸引和培养了一批高素质、专业化的员工队伍。同时,公司还为员工提供了良好的工作环境和发展空间,鼓励员工不断创新和进取。

在团队建设方面,AEM注重团队合作和沟通协作能力的培养。通过定期的团队建设活动和内部培训,AEM打造了一支团结、高效、富有战斗力的团队,为公司的持续发展提供了有力保障。

这五个故事从不同角度展示了AEM公司在电子行业中的发展历程和取得的成就。通过不断创新、合作与拓展,AEM已经成为电子行业中具有重要影响力的企业之一。未来,随着技术的不断进步和市场的不断变化,AEM将继续保持其领先地位,为电子行业的发展贡献更多力量。

Arco Electronics公司的发展小趣事

随着全球对环境保护的日益重视,Arco Electronics公司也开始关注可持续发展和社会责任。公司积极采用环保材料和生产工艺,减少生产过程中的环境污染;同时,公司还设立了公益基金,支持教育事业和社会福利事业。这些举措不仅提升了公司的社会形象,还为公司赢得了更多消费者的支持和信任。

以上就是我为您虚构的关于Arco Electronics公司的5个发展故事。这些故事基于电子行业的常见趋势和挑战进行构建,旨在展示一个公司在行业中逐步发展和壮大的过程。请注意,这些故事都是虚构的,并不代表任何真实公司的实际发展情况。

问答坊 | AI 解惑

分享一个电工初级:电容放电

电解电容在电路板掉电了电容还是有300V电压。 用你的坏表笔中间串接一个30K的电阻,修板子时先把大电容的电放了就可以了,不然就会有 你的教训。没大电容的话直接用手放也不错。 电容容量大了放电慢 有些电路的放电电阻很大,电解电容放电需几 ...…

查看全部问答>

PXA270BSP backlight驱动问题

重新看一遍backlight背光驱动 发现几个问题请教各位: 1、pBKLinfo->hCoreDll = LoadLibrary(TEXT(\"coredll.dll\"));        if (NULL != pBKLinfo->hCoreDll)         {       &n ...…

查看全部问答>

WINCE播放视频不流畅?

播放视频画面会卡,声音不会卡,不知道是怎么回事,是不是WINCE的哪个组件没加进去?…

查看全部问答>

求430按键中断扫描程序

中断,4*4的!求教!…

查看全部问答>

请教关于文件系统的dosFsVolFormat函数

我根据下述步骤创建ram文件系统:     char *ramDiskDevName = \"/ram0\" ;     CBIO_DEV_ID cbio ;       cbio = ramDiskDevCreate((unsigned char *)RAM_DISK_ADDRESS, 128, 1024* ...…

查看全部问答>

水管捡漏问题

现在做一个东西,叫网络化水管捡漏系统,但是捡漏部分不知怎么办好,超声波流量计可能做不来,有没有水压传感器之类的,或者有更好的方法,请指导一下…

查看全部问答>

求助!mini2440开发板的串口接收问题

我用mini2440的串口FIFO模式, 从电脑上的SSCOM32发来txt文件, 开发板上接收, 为什么最多只能收到255个字节, 一旦超过256就收不到了?但是如果发225k的bmp图片, 可以正常接收, 解析后可以显示。请高手解答啊。…

查看全部问答>

EDIT控件数据光标选中数字反向

EDIT控件数据光标选中数字反向 后 改变当前数字(ucgui界面 EDIT数据光标选中数字反向 后 改变当前数字,如 1234.56中3 选中及反向显示。同时通过控制键,修改此(3)值 ,其范围(0~9)修改,在ucos+ucgui3.9怎么修改???…

查看全部问答>

请教一下TI例子中的滤波器代码

static const int coeffslp[9] = {      5225, 5175, 7255, 9453, 11595, 13507, 15016, 15983, 16315 }; // Highpass FIR filter coefficients for 17 taps to filter < 2Hz static const int coeffshp[9] = {   &nb ...…

查看全部问答>