历史上的今天
今天是:2025年01月15日(星期三)
2021年01月15日 | msp430g2553流水灯
2021-01-15 来源:eefocus
点亮LED
理解代码需要知道msp430的寄存器和几个基本的逻辑运算。
寄存器说明:
① 方向寄存器(Direction Register, PxDIR) :方向寄存器的每一位控制着对应引脚的数据传输方向 。控制位数值的含义是,0 表示设置为输入方向; 1 表 示设置为输出方向,默认是输入方向。
② 输出寄存器(Output Register, PxOUT) : 当端口被配置为 IO 功能、且为输出方向时,在内部上 拉/下拉电阻被禁用的情况下,写入该寄存器中的值将 自动输出到相应的引脚上。 在使用内部上拉/下拉电阻的情况下,PxOUT 中的值指 示响应引脚使用的是上拉电阻还是下拉电阻。其中,0 表示使用的是下拉电阻; 1 表示使用的是上拉电阻。
③ 要把IO口方向先写入方向寄存器,再向输入寄存器写入管脚的电平高低情况。
运算说明:
①按位或操作符(|):|=是位操作运算符的一种,其形式为:a|=b
代表的含义为a=a|b;即把a和b做按位或(|)操作,度结果赋值给a。
②按位与运算符(&):参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
③取反运算符(~):参加运算的一个数据,按二进制位进行“取反”运算。
运算规则:~1=0; ~0=1;
#include "io430.h"
void main(void)
{
P2DIR|=BIT6; // 方向输出
P2OUT&=~BIT6; // 输出低电平
P2DIR|=BIT5; // 方向输出
P2OUT&=~BIT5; // 输出低电平
}
其仿真如下:

流水灯
①异或运算符(^):参加运算的两个数据,按二进制位进行“异或”运算。
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0; 即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
②P1OUT ^= BIT5;//进行异或运算,引脚电平翻转
#include "io430.h"
void delay_ms();//函数声明
void main(void)
{
P1DIR|=BIT5; // 方向输出
while(1)
{
P1OUT ^= BIT5;
delay_ms(100);
}
}
void delay_ms(int ms)
{
int i;
while(ms--)
{
for(i=0;i<80;i++);
}
}
上一篇:MSP430通用IO寄存器
史海拾趣
|
大家好啊,在这转悠了好几天,发现大家都是高手!我是一名专升本的学生,专科没有学过单片机本科学校因为大部分人都学过所以也就没开这门课,现在要做有关单片机的毕业设计,想请大家帮帮忙,谢谢了! 昨天问了一下老师那个设计一共 ...… 查看全部问答> |
|
我的CC2430能用SmartRF Studio7监测数据,而不能用Packet Sniffer? 我的CC2430能用SmartRF Studio7监测到数据,而不能用Packet Sniffer监控数据。… 查看全部问答> |
|
一直用VC++6做编译器,虽然有人让我换了,我嫌麻烦一直没换。用它写程序调试程序一切都很正常,唯独有个问题。把写好的程序封装成exe文件。具体的操作其实挺简单(当然没有命令行下简单)首先写代码,编译看有没有错误,没错误以后封装。封装方法是 ...… 查看全部问答> |
|
小光棍节的礼物!让QVGA屏普及吧!2.4寸 QVGA TFT屏带触摸屏15元一个! 让QVGA屏普及吧!2.4寸 QVGA TFT屏带触摸屏15元一个(5个起),全新37脚ILI9320驱动,提供程序! 单个20元一个,数量不多欢迎抢购! [ 本帖最后由 shanyan 于 2011-11-1 23:04 编辑 ]… 查看全部问答> |




