历史上的今天
今天是:2025年02月14日(星期五)
2020年02月14日 | MSP430之点灯入门
2020-02-14 来源:eefocus
/*************************************************** 《经过测试适用于f149系列》
程序功能:控制8个LED闪烁,控制灯的流向以及流速
---------------------------------------------------
***************************************************/
#include
/*下面关闭所有的IO口*/
#define close_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;
typedef unsigned int uint;
uint i = 0,j = 0,dir = 0;
uint flag = 0,speed = 0; //flag--灯光流动方式,speed--灯光流动速度
/****************主函数****************/
void main(void)
{
void P_setting();
close_IO;
P_setting();
_EINT(); //使能全局中断
LPM0; //CPU进入LPM0模式
}
/*将设置进行封装*/
void P_setting(void){
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;
}
/*******************************************
函数名称: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)
{
i = 0;
j = 0;
flag++;
if(flag == 4) flag = 0;
switch(speed)
{
case 0:
TACTL &=~ (ID0 + ID1); //增计数模式
TACTL |= ID_3; //8分频
break;
case 1:
TACTL &=~ (ID0 + ID1);
TACTL |= ID_2; //4分频
break;
case 2:
TACTL &=~ (ID0 + ID1);
TACTL |= ID_1; //2分频
break;
case 3:
TACTL &=~ (ID0 + ID1);
TACTL |= ID_0; //1分频
break;
default:
break;
}
if(flag != 3) speed++;
if(speed == 4) speed = 0;
}
}
史海拾趣
|
将RVDS中的工程移植到RealView MDK说明文档 请点击链接:http://arm.embedinfo.com/BBS/dispbbs.asp?boardid=3&Id=219… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:51 编辑 这是《大学生智能汽车设计》整本书的课件,内容很全面,希望对大家有所帮助~~~以下是目录 第1章 智能汽车设计导论 1.1 智能汽车 1.1.1 智能汽车设计的意义及研究内容 1.1.2 智能汽车设计的技术关 ...… 查看全部问答> |
|
Crossing clock domains - Signal A signal to another clock domain Let\'s say a signal from clkA domain is needed in clkB domain. It needs to be \"synchronized\" to clkB domain, so we want to build a \"synchronizer\" design, which takes a signal from clkA domain, ...… 查看全部问答> |
|
基于DS18B20和四位LED的温度自动控制系统 1:采用DS18B20采集温度,精度在0.1度。 2:采用89S52芯片。 3:采用四位共阳LED数码显示,亮度高。 4:可以设定控制温度,达到设定值继电器A工作,低于设定值继电器A断开。 5:超温报警,超过设定温 ...… 查看全部问答> |
|
用ATMEGA16控制NRF905进行简单的收发,调了一周了,希望哪位大侠能帮俺播开云雾!! 发送段代码: #include <iom16v.h>#include <macros.h>#define uint unsigned int#define uchar unsigned char#define Low_TX_EN PORTD&=~(1 << PD7)#define High ...… 查看全部问答> |
|
有10年没有怎么摸这个东西了,最近公司突然有了一个产品需要用到这个东西,硬件CPU是AT89C52,我手里有个10年前买的Insignt ME-52,但找不到运行环境的软件了.恳求专家指点,那里能够下载到这个软件?… 查看全部问答> |




