历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2019年10月14日 | MSP430--数字IO 流水灯程序

2019-10-14 来源:eefocus

1.数字IO共有6组,其中P1,P2可以设置外部中断。


2.通用寄存器:


PxIN,PxOUT,PxDIR,PxSEL


上电默认PxDIR为0,即默认为输入。PxSEL若为1,则表示数字IO用作外设功能,这时候P1或P2的中断功能丢失。


3.P1的寄存器:每个地址对应8位寄存器,对应IO的8个PIN.


 026h P1SEL

 025h P1IE: 中断使能

 024h P1IES:中断响应上升沿变化(0),响应下降沿变化(1)

 023h P1IFG:中断发生就置位为1,中断执行后要手动清除

 022h P1DIR

 021h P1OUT

 020h P1IN read only


4.流水灯电路:P2端口输出低电平时二极管发光。P2DIR=0XF8,对应表示P27-P23均为输出,若这时P2OUT=0XFF,则L1-L5都会亮。


5.流水灯程序:实现流水灯以三种流动方式和四种流动速度的不同组合而进行点亮"流动"


#include 


typedef unsigned int  uint;

 

uint i = 0,j = 0,dir = 0;

uint flag = 0,speed = 0;  //flag--灯光流动方式,speed--灯光流动速度

 

 

/****************主函数****************/

void main(void)

{

  

    /*给IO一个初始的状态*/

    P1DIR = 0XFF;P1OUT = 0XFF;

    P2DIR = 0XFF;P2OUT = 0XFF;

    P3DIR = 0XFF;P3OUT = 0XFF;

    P4DIR = 0XFF;P4OUT = 0XFF;

    P5DIR = 0XFF;P5OUT = 0XFF;

    P6DIR = 0XFF;P6OUT = 0XFF;

  

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

    P6DIR |= BIT2;P6OUT |= BIT2;    //关闭电平转换

    P5OUT &= ~BIT7;

    

    CCTL0 = CCIE;                   //使能CCR0中断

    CCR0 = 50000;

    TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式

    P2DIR = 0xff;                   //设置P2口方向为输出

    P2OUT = 0xff;

 

    _EINT();                        //使能全局中断

    LPM0;                           //CPU进入LPM0模式

}

 

 

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

函数名称:Timer_A 

功    能:定时器A的中断服务函数,在这里通过标志

          控制流水灯的流动方向和流动速度

参    数:无

返回值  :无

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

#pragma vector = TIMERA0_VECTOR

__interrupt void Timer_A (void)

{  

    if(flag == 0)

    {

        P2OUT = ~(0x80>>(i++));    //灯的点亮顺序D8 -> D1

    }

    else if(flag == 1)

    {

        P2OUT = ~(0x01<<(i++));    //灯的点亮顺序D1 -> D8

    }

    else 

    {

        if(dir)                  //灯的点亮顺序D8->D1,D1->D8,循环绕圈                        

        {

            P2OUT = ~(0x80>>(i++));

        }

        else

        {

            P2OUT = ~(0x01<<(i++));

        }

    }

  

    if(i == 8) 

    {

        i = 0;

        dir = ~dir;

    }

  

    j++;

    if(j == 40) //循环5次就改变flag改变流动方向

    {

        i = 0;

        j = 0;

        flag++;

        if(flag == 4) flag = 0;

        switch(speed)

        {

        case 0:

            TACTL &=~ (ID0 + ID1);

            TACTL |= ID_3;

            break;

        case 1:

            TACTL &=~ (ID0 + ID1);

            TACTL |= ID_2;

            break;

        case 2:

            TACTL &=~ (ID0 + ID1);

            TACTL |= ID_1;

            break;

        case 3:

            TACTL &=~ (ID0 + ID1);

            TACTL |= ID_0;

            break;

        default:

            break;

        }

        if(flag != 3)   speed++;

        if(speed == 4) speed = 0;

    } 

}


推荐阅读

史海拾趣

康奈特(CNNT)公司的发展小趣事

面对数字化浪潮的冲击,康奈特积极响应并开始了数字化转型之路。公司引进了先进的智能制造设备和技术手段,实现了生产线的自动化和智能化升级。同时,公司还建立了数字化管理平台,实现了对生产、销售、库存等各个环节的实时监控和管理。这种数字化转型不仅提高了生产效率和质量稳定性,也为公司未来的发展奠定了坚实的基础。

灿科盟(Ckmtw)公司的发展小趣事

作为一家专注于连接器产品的企业,灿科盟始终注重技术创新和产品升级。近年来,公司在LED连接器部件生产领域取得了重要突破,成功打破了国外技术垄断。这一技术突破不仅提升了公司的市场竞争力,也为客户提供了更加优质的产品和服务。同时,公司还加大了对新能源、智能家居等新兴领域的研究和开发力度,以应对市场变化和挑战。

Dawning Precision Co Ltd公司的发展小趣事

为了进一步提升产品的品质和可靠性,Dawning加强了品质管理体系的建设。公司引进了先进的生产设备和检测仪器,制定了严格的品质检测流程。同时,Dawning还定期对员工进行品质管理培训,提高员工的品质意识和操作技能。这些措施的实施,使得Dawning的产品在品质上得到了极大的提升,赢得了客户的信赖和好评。

Corning Cable Systems公司的发展小趣事

在追求经济效益的同时,Corning Cable Systems公司也积极履行社会责任,致力于推动绿色环保理念的实践。公司注重环保材料的选择和使用,并在生产过程中采取多项环保措施,以降低对环境的影响。此外,公司还积极推广绿色通信解决方案,为全球通信行业的可持续发展做出了积极贡献。

通过以上五个故事,我们可以看到Corning Cable Systems公司在电子行业中的发展历程和取得的成就。作为光纤通信领域的领军企业,公司凭借其创新技术、扩大生产规模、技术合作和绿色环保理念等方面的努力,不断推动着整个行业的进步和发展。

台湾远翔(Feeling Technology)公司的发展小趣事

乔光电子在全球拥有广泛的销售网络,不仅在国内的上海和深圳设有销售公司,还在韩国、印度、新加坡、巴西、意大利等国家设立了销售据点。随着市场的不断拓展和技术的不断创新,乔光电子的销售额从2015年的2200万元增长到2022年的27000万元,实现了跨越式发展。未来,乔光电子计划进一步扩展导热导电胶生产线业务,并可能涉足传感器和安规电容领域。同时,公司还将继续加大研发投入,提升产品性能和质量,为全球客户提供更加优质、可靠的电子产品和服务。

Galaxy ( Bel )公司的发展小趣事

乔光电子在技术创新方面始终走在行业前列。面对压敏电阻产品技术方面的挑战,如产品失效引发的起火问题,公司在苏州设立了专门的实验室,由7名成员组成研发团队,专注于材料研发。经过不懈努力,乔光电子成功解决了这一难题,并在全球范围内率先大批量使用刷铜技术,进一步提升了产品的性能和质量。此外,公司还不断引入新技术、新设备,提高产品的生产效率和品质,确保在全球市场中保持领先地位。

问答坊 | AI 解惑

急!! 更便宜的51单片机介绍我们

目前使用STC的90C51在帮客户开发 http://stcmcu.com/stc-mcu-select-1.htm 直接找深圳拿货$ 2.9 这颗IC 比一般传统89C51多了4个IO 复位脚还能当特殊扩展口用 , 开发起来也方便另外有些特殊案子需要较大内部 EEPROM 纪录系统字据客户代码也杂 -- 绝 ...…

查看全部问答>

按键处理与按键防抖动例子

本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 /***************************************************** 本程序的目标是这样的: 1:不使用INTn中断功能,按键接在普通IO上 2:由定时器T/C2每隔一段时间检测按键一次, 并具有防抖动功能 3:每点击按 ...…

查看全部问答>

电工测量与电测仪表--很基础很实用的好书

电工测量与电测仪表--很基础很实用的好书 序言 前言 第一章 电测技术基础 第一节 测量的定义和分类 第二节 测量误差 第三节 电测仪表的分类 第三节 电测仪表的主要技术指标 第二章 电气测量指示仪表 第一节 电气测量指示仪表的概念和分 ...…

查看全部问答>

电容耦合效应会产生什么影响?如何减小这一影响

电容耦合效应会产生什么影响?如何减小这一影响…

查看全部问答>

为什么说PowerPC用的是RISC指令集?

资料说, PowerPC用的是RISC指令集. 我有点疑惑: 硬件上跑的是二进制, 我汇编是RISC还是CISC有关系吗? 只要编译器能正确地编译成PowerPC可以执行的机器码不就可以了吗?…

查看全部问答>

关于LCD显示问题的求助

我的平台是PXA270+Wince5.0 现在LCD的显示比较奇怪,刚进入系统的时候,主画面的显示还算正常,但是一切换画面,屏幕就会局部或者部分发白。 比方说,打开IE,屏幕就会整个发白,字体看不太清楚。 打开控制面板,屏幕会变成一条一条的,什么字都 ...…

查看全部问答>

我的应急灯终于发出了极其微弱的光

今天我终于焊接完成了我的应急灯.它也终于发出了极其微弱的光.非但起不到应急照明的目的.你不仔细看都不知道它是否在发光.从4个月前,开始申请美信的样片,我反复申请了2次.等了2个月才拿到这样的劣质样片.至此我算是了解了美信公司的服务质量和产品 ...…

查看全部问答>

关于FPGA设计资源整和积累问题

各位FPGA论坛的大虾:        为了方便大虾和后来者使用,学习和共享. 我呼吁大家把已经经过验证的FPGA 模块 整理成册, 分享到论坛给使用!             &n ...…

查看全部问答>

模拟串口!

各位大哥有谁有430模拟串口的C程序啊?能给我参考一下啊!先谢谢了…

查看全部问答>

针对DDR2-800和DDR3的PCB信号完整性设计

针对DDR2-800和DDR3的PCB信号完整性设计…

查看全部问答>