msp430单片机(一)控制LED灯的亮灭

发布者:EtherealJourney最新更新时间:2022-10-09 来源: csdn关键字:msp430  单片机  控制LED灯 手机看文章 扫描二维码
随时随地手机看文章

硬件描述

两个LED灯:

P1.0接LED1(红),P4.7接LED2(绿).

IO口输出高电平时,LED亮

IO口输出低电平时,LED灭


点亮红灯

(ccs中的c语言代码,用430进行调试)

P1口八个引脚

.7 .6 .5 .4 .3 .2 .1 .0


P1.0 红色LED1

控制:P1.7 6 5 4 3 2 1 0

二进制 : 0 0 0 0 0 0 0 1

八进制 : 0x01

输出:P1DIR = 0x01;

输出寄存器:P1OUT = 0x01;


#include

int main(void)

{

//关闭看门狗

WDTCTL=WDTPW | WDTHOLED;

//设置P1.0为输出

P1DIR = 0x01;

//设置P1.0为高电平,点亮LED灯

P1OUT = 0x01;

//设置P1.0为低电平,熄灭LED灯

P1OUT = 0x00;

//设置P1.0为高电平,点亮LED灯

P1OUT = 0x01;

}


点亮绿灯

P4口八个引脚

.7 .6 .5 .4 .3 .2 .1 .0


P4.7 绿色LED2

控制:P4.7 6 5 4 3 2 1 0

二进制 : 1 0 0 0 0 0 0 0

八进制 : 0x80

输出:P4DIR = 0x80;

输出寄存器:P4OUT = 0x80;


#include

int main(void)

{

//关闭看门狗

WDTCTL=WDTPW | WDTHOLED;

//设置P4.7为输出 

P4DIR = 0x80;

//设置P4.7为高电平,点亮LED灯

P4OUT = 0x80;

//设置P4.7为低电平,熄灭LED灯

P4OUT = 0x00;

//设置P4.7为高电平,点亮LED灯

P4OUT = 0x80;

}


红色LED灯的闪烁

亮→灭→亮 (每个中间需要有时间延时)


#include

int main(void)

{

unsigned int T_deley;

//关闭看门狗

WDTCTL = WDTPW | WDTHOLED;

//设置P1.0的方向为输出 

P1DITR = 0x01;

while(1)

{

P1OUT = 0x01;

//时间延时

for(T_deley=0;T_deley<50000;T_deley++);

P1OUT = 0x00;

for(T_deley=0;T_deley<50000;T_deley++);

}

}


绿色LED灯的闪烁

#include

int main(void)

{

unsigned int T_deley;

//关闭看门狗

WDTCTL = WDTPW | WDTHOLED;

//设置P4.7的方向为输出 

P4DIR = 0x80;

while(1)

{

P4OUT = 0x80;

//时间延时

for(T_deley=0;T_deley<50000;T_deley++);

P4OUT = 0x00;

for(T_deley=0;T_deley<50000;T_deley++);

}

}


红绿灯交替闪烁

#include

int main(void)

{

unsigned int T_deley;

//关闭看门狗

WDTCTL = WDTPW | WDTHOLED;

//设置P1.0的方向为输出 

P1DIR = 0x01;

//设置P4.7的方向为输出 

P4DIR = 0x80;

while(1)

{

P1OUT = 0x01;

P4OUT = 0x00;

for(T_deley=0;T_deley<50000;T_deley++);

P1OUT = 0x00;

P4OUT = 0x80;

for(T_deley=0;T_deley<50000;T_deley++);

}

}


呼吸灯

亮灯频率超前,灭的频率降低就行,具体原理还未深刻理解,只会照猫画虎

注:以下代码仓促写完,未调试,可能会有小问题


#include

int main(void)

{

WDTCTL = WDTPW | WDTHOLD;

unsigned int de1,de2,deley,i;

i=0;

de1=0;

de2=500-de1;

P1DIR=0x01;

while(1)

{

if(i==0)

{

P1OUT=0x01;

for(deley=0;deley {

if(de1!=500)

de1++;

if(de1==500)

i=1;

}

P1OUT=0x00;

for(deley=0;deley }

if(i==1)

{

P1OUT=0x01;

for(deley=0;deley {

if(de1!=0)

de1--;

if(de1==0)

i=0;

}

P1OUT=0x00;

for(deley=0;deley }

}

}


关键字:msp430  单片机  控制LED灯 引用地址:msp430单片机(一)控制LED灯的亮灭

上一篇:单片机双字节数乘法运算实验_MSP430单片机基本特点
下一篇:低功耗的c语言编程,关于低功耗msp430PID控制电机转速的C程序

推荐阅读最新更新时间:2024-11-10 00:43

MSP430F5529 DriverLib 库函数学习笔记(十二)I2C实战
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 上机实战 I2C给 DAC 芯片 DAC7571 写入数字量 DAC7571 介绍 DAC7571 是低功耗,单通道 12 位 DA 转换器.DAC7571 兼容 I2C 接口,通过这两条数据线和外部通信,时钟的最高速度为 3.4Mbps. DAC7571 的外观图和引脚定义 如上图所示: 1 脚:模拟电压输出脚. 2 脚:接地. 3 脚:电源输入脚. 4 脚:串行数据输入引脚. 5 脚:串行时钟输入引脚. 6 脚:地址选择脚. DAC
[单片机]
<font color='red'>MSP430</font>F5529 DriverLib 库函数学习笔记(十二)I2C实战
单片机/ARM死机的常见原因及解决方案
前几天在写ARM时经常死机,莫名其妙,在这搜集了一些比较好的解答和方案,给大家参考。 可能原因: 一 振荡器停止振荡 又可以分为电源电压不稳,或者强干扰引起的振荡器停振。 二 PC指针跑飞 电源电压不稳或强干扰引起PC跑飞,如果看门狗不好,也会引起死机。 三 设计上对长引出线的IO没有保护,静电打在IO口上引起单片机死锁,破坏了硬件逻辑功能,导致死机。 四. 复位收到干扰,引起反复复位,在反复复位当中有可能会导致死机。 五.电源电压 的地 不稳 ,造成电源电压 瞬间负电压 导致单片机故障 程序不发运行 综上所述: 设计电路时,应该注意: 1.电源稳定 2.IO保护 3.振荡器PCB布线要注意
[单片机]
一种新型光电定向系统的设计与实现
1 基本原理 光电定向是指用光电系统测定目标的方向,这是光学雷达和光学制导的重要组成部分 ,利用光电系统可以直接、间接测定目标的方向,该系统主要由发射部分、光电探测器,信号处理电路,A/D转换器和单片机、计算机显示器组成,结构框图如图1所示。 2 具体实现 2.1 发射部分 光发射电路主要由光源驱动器、光源(主要是半导体光源,包括LED(发光二极管),LD(激光二极管)等)、光功率自动控制电路等部分组成,我们用NE555组成的脉冲发射电路来驱动650nm的激光器,为了使半导体激光器克服供电电源波动、器件老化等因素的影响,确保激光器输出功率稳定,还必须有自动功率控制电路。 2.2 接收部分
[单片机]
一种新型光电定向系统的设计与实现
单片机设计经验技巧精华集锦(一)
一、机器人常用的单片机使用经验   一 学习单片机的捷径是什么?   所谓捷径就是少走弯路。我刚开始学单片机时走了不少弯路,很多朋友和我都有相似的经历,刚开始接触单片机,面对琳琅满目的图书教材,不知选择哪本;想实践时不知到哪买单片机;不知如何编程下载程序……   A 对于初学者仔细看本文就是学习单片机的捷径之一。   B 到图书馆或者书店在数十本单片机书中选一本你能看懂,而且觉得案例有趣的“实在、生动、活泼”的单片机书做为你的入门读物。   C 建议先从51单片机学起。掌握51后再学AVR,然后学ARM、DSP等。   D 在学习过程中实践非常必要。你需要一台电脑。如果是台式电脑,你可以花十几元购买25针并口下载线,如果是
[模拟电子]
<font color='red'>单片机</font>设计经验技巧精华集锦(一)
XMC1400微控制器助力实现成本敏感的实时电源控制
2016年2月29日,XMC1400微控制器将助力英飞凌科技股份公司(FSE: IFX / OTCQX: IFNNY)在工业自动化、数字电源转换和电子控制领域开辟诸多全新应用。相比早先推出的XMC1000产品而言,全新XMC1400系列能实现更出色的控制性能和更好的连接性。XMC1400采用ARM Cortex -M0处理器,具备针对目标应用精心定制的全面外设功能。目标应用包括:工业自动化领域的执行器、用于控制LED灯和多相电机的数字电源转换,以及对割草机、锯齿机或发电机等配备的小型内燃机进行电子控制。 较之早期XMC1000微控制器,XMC1400产品拥有更好的连接性,并具备强大的处理能力,因此可实现更精确的控制。其时钟周
[电源管理]
XMC1400<font color='red'>微控制</font>器助力实现成本敏感的实时电源<font color='red'>控制</font>
采用C8051F单片机实现半导体激光器驱动电源的设计
半导体激光器(LD)体积小,重量轻,转换效率高,省电,并且可以直接调制。基于他的多种优点,现已在科研、工业、军事、医疗等领域得到了日益广泛的应用,同时其驱动电源的问题也更加受到人们的重视。使用单片机对激光器驱动电源的程序化控制,不仅能够有效地实现上述功能,而且可提高整机的自动化程度。同时为激光器驱动电源性能的提高和扩展提供了有利条件。 1总体结构框图 本系统原理如图1所示,主要实现电流源驱动及保护、光功率反馈控制、恒温控制、错误报警及键盘显示等功能,整个系统由单片机控制。本系统中选用了C8051F单片机。C8051F单片机是完全集成的混合信号系统级芯片(SOC),他在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎
[单片机]
采用C8051F<font color='red'>单片机</font>实现半导体激光器驱动电源的设计
简单DIY Atmel单片机并口下载线
简单DIY Atmel单片机并口下载线 更新于:2012-06-25 19:10:22 文章出处: 互联网 关键字: Atmel 下载线 DIY 很多单片机初学者都是选择STC单片机来学习51单片机,原因是STC单片机的程序下载是通过串口下载的,下载电路简单,只需一根DB9针串口线、一片MAX232芯片和四个1uf的电容即可。但是高等院校的教材几乎都是以AT89C51/52单片机(已经停产)或者AT89S51/52单片机(AT89C51/52的替代品)和其DATASHEET作为教学内容。以前,笔者为了学习AT89S8253单片机曾购买了一个昂贵的通用编程器,回想起来很不划算。为了让您理论联系实际学习单片机,降低学习成本,笔者在此
[单片机]
简单DIY Atmel<font color='red'>单片机</font>并口下载线
GigaDevice发布多款基于ARM Cortex-M3内核的32位通用MCU
         领先的半导体供应商 GigaDevice ( 兆易创新 ) 日前在中国发布 14 款基于 ARM® Cortex TM -M3 内核的 GD32F103 系列 32 位通用 MCU 产品。目前,该系列产品已经开始提供样片。   GD32 系列 MCU 力争为用户带来优异的系统性能与灵活的应用体验,并在性价比上做得更为出众。为了给用户在研发时有更大的自由选择范围,全新的 GD32F103 产品线提供从 16KB 到 128KB 的 Flash 容量,并有 QFN36 , TQFP48 , LQFP64 和 LQFP100 多种封装选择。系列产品在软件和引脚封装方面全兼容。   GD
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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