历史上的今天
今天是:2025年03月04日(星期二)
2020年03月04日 | 独立按键使流水灯逐个亮,学习使用
2020-03-04 来源:eefocus
#include "msp430x54x.h"
#include
#include
//***************************************************************************//
// //
// Init_Port(void): 设置IO端口 //
// //
//***************************************************************************//
unsigned int button = 0X01;
unsigned int button_cup = 0X01;
void Init_Port(void)//定义端口初始化函数
{
P1DIR &= ~(BIT3+BIT7); //设置p1.3和p1.7为输入
P8DIR = 0XFF; //设置p8为输出
P1DIR |= BIT6; //设置P1.6为输出
P1OUT |= BIT6; //设置p1.6为高电平
P8OUT = 0XFF;
}
void delay(unsigned int num) //延时函数,非精准延时,定义一个num变量
{
unsigned int i,j; //定义两个无符号整型变量
for(i = 0; i < 200; i++) //给I赋值为零,让I自加(每自加一次执行一次{}内的代码),当I到200,跳出循环
{
for(j = 0; j < num; j++) //给j赋值为零,让j自加,当j到定义的num值时候,跳出循环
{
}
}
}
void Scan_Button (void) //按键扫描函数
{
if(!(P1IN & BIT3)) //判断独立按键p1.3是否被按下
{
button_cup = button >> 1; //流水灯右移的值给一个容器
P8OUT = ~(button_cup);//把容器内的值按位取反给P8
button = button_cup;//把容器内的值,替换掉按钮的值
delay(300);
}
if(!(P1IN & BIT7))//同上,只是按钮不同
{
button_cup = button << 1;
P8OUT = ~(button_cup);
button = button_cup;
delay(300);
}
}
//***************************************************************************//
// 主程序 //
//***************************************************************************//
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
Init_Port();//初始化端口
while(1)//无限循环,外接的LED是低电平有效
{
Scan_Button ();//扫描按键
}
}
史海拾趣
|
MP3充电器是最易损坏的配件之一。笔者维修多款充电器后发现,它们基本上都是采用开关电源电路,电路结构大同小异。本文以市面上最常见的昕潮TJ-01型充电器为例,简述其工作原理与常见故障检修,电路见图1。工作原理 (1)开关振荡电路市电经D1~D4整 ...… 查看全部问答> |
|
MSP430优势不用多说,用来做手持设备是不二选择。 介绍一本关于MSP430的书吧,难得国内务实的一本教材:《MSP430系列单片机系统工程设计与实践》,对大家设计低功耗设备很有帮助。 书内先讲解编程风格,大概描述下关键外设使用。最重要的是后面 ...… 查看全部问答> |
|
我们最近在用液晶显示特定的波形,但这需要回读,从液晶(ST7920控制器)资料上看到可以读取DDRAM和GDRAM中的数据,但是没有成功, 由于我们用的是绘图方式,所以需要读取GDRAM中的数据,小弟这里有个网上下的程序,但不太清楚具体的含义,并且回 ...… 查看全部问答> |
|
我用matlab生成的希尔伯特变换器系数,用在DSPLIB的hilb16()函数中,输出的波形都不正确,请问TI有针对该DSPLIB库专门的工具可以生成滤波器系数吗? … 查看全部问答> |




