历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2020年04月01日 | 2-MSP430按键输入检测

2020-04-01 来源:eefocus

为了写一篇文章做铺垫--提醒着自己,,,,,,


P1.0的电平,随着P1.1引脚输入的电平变化而变化


#include "io430.h"

void delay(void) 

{  unsigned char a,b,c;

    for(c=167;c>0;c--)

        for(b=171;b>0;b--)

            for(a=1;a>0;a--);

}

void main( void )

{

  WDTCTL = WDTPW + WDTHOLD;//看门狗默认是打开的,不使用就关了它

  P1DIR = 0x01;//P1.0为输出模式

  while(1)

  {

    P1OUT = 0x01;//P1.0输出高电平

    delay(); 

    P1OUT = 0x00;//P1.0输出低电平

    delay(); 

  }

}

在msp430的头文件中有这样的定义


/*-------------------------------------------------------------------------

 *   Standard Bits

 *-------------------------------------------------------------------------*/


#define BIT0                (0x0001)

#define BIT1                (0x0002)

#define BIT2                (0x0004)

#define BIT3                (0x0008)

#define BIT4                (0x0010)

#define BIT5                (0x0020)

#define BIT6                (0x0040)

#define BIT7                (0x0080)

#define BIT8                (0x0100)

#define BIT9                (0x0200)

#define BITA                (0x0400)

#define BITB                (0x0800)

#define BITC                (0x1000)

#define BITD                (0x2000)

#define BITE                (0x4000)

#define BITF                (0x8000)

所以在设置P1.0为输出模式的时候可以


P1DIR = BIT0;


假如说  我们再配置P1.1为输入模式


如果直接 P1DIR = 0x0001;


如果以后再配置P1.2为输出模式


P1DIR = 0x0005;


这样做会非常的麻烦,因为要考虑以前的引脚配置


 


所以在配置某个引脚为输出引脚的时候


P1DIR  = P1DIR | 0x0001;    P1.0为输出


P1DIR  = P1DIR | 0x0004;    P1.2为输出


即 


P1DIR  = P1DIR | BIT0;      P1.0为输出


P1DIR  = P1DIR | BIT2;     P1.2为输出



P1DIR  |= BIT0;            P1.0为输出


P1DIR  |= BIT2;             P1.2为输出


当配置为输入的时候P1.1


P1DIR &= 0xFFFD;    P1.1为输入



P1DIR &= ~BIT1;    P1.1为输入       P1DIR = P1DIR & (~BIT1);


看一下是不是互不影响


P1DIR  |= BIT0;            P1.0为输出       P1DIR = 0000 0000 0000 0000 0000 0000 0000 0001


P1DIR  |= BIT2;             P1.2为输出      P1DIR = 0000 0000 0000 0000 0000 0000 0000 0101


P1DIR &= ~BIT1;    P1.1为输入             P1DIR = 0000 0000 0000 0000 0000 0000 0000 0101


现在看来  不配置方向好像初始化为输入模式  


#include "io430.h"


void main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;


  P1DIR |= BIT0;//P1.0为输出

  

//  P1DIR &= BIT1;//P1.1为输入------屏蔽

  

//  P1DIR |= BIT6;//-----屏蔽

//  P1OUT &= ~BIT6;//------屏蔽

  

  P1DIR |= BIT7;//P1.7为输出-------测试不受影响

  P1OUT |= BIT7;//P1.7输出高电平-------测试不受影响


  

  while(1)

  {

    if(P1IN&BIT1)//#define BIT1  (0x0002)如果P1输入寄存器P1IN的第1位为1时

    {

      P1OUT |= BIT0;//P1.0输出高电平,,不影响其他引脚

    }

    if(!(P1IN&BIT1))//#define BIT1  (0x0002)如果P1输入寄存器P1IN的第1位为0时

    {

      P1OUT &= ~BIT0;//P1.0输出低电平,,不影响其他引脚

    }

  }

}

 

推荐阅读

史海拾趣

EHC(ELECTRONICHARDWARE)公司的发展小趣事

EHC公司自创立之初就专注于电子硬件的技术创新。在竞争激烈的电子市场中,EHC公司凭借其独特的设计理念和先进的生产工艺,成功推出了一系列高性能、高可靠性的电子产品。这些产品不仅满足了消费者对高品质电子产品的需求,也为EHC公司赢得了良好的市场口碑。随着技术的不断进步,EHC公司不断推出创新产品,逐步巩固了其在行业中的领先地位。

地博电子(DIBO)公司的发展小趣事

近年来,地博电子积极响应行业发展趋势,不断推进数字化转型和精益生产。在2022年,公司导入了精益生产系统,通过优化生产流程、降低库存和浪费等措施,进一步提高了生产效率和产品质量。同时,在2023年,地博电子还导入了OA/SAP信息化系统,开启了数字化转型之路。这些举措使得地博电子在电子材料行业中保持了领先地位,并为公司的未来发展奠定了坚实基础。

请注意,以上故事概要仅为地博电子(DIBO)公司发展历程中的部分关键事实,更多详细信息和数据可参考公司官方资料。

Global Connector Technology公司的发展小趣事
长时间运行可能导致继电器内部元件老化或损坏,需要定期检查和维护。
AMERICASEMI [America Semiconductor, LLC]公司的发展小趣事

AMERICASEMI深知产品质量对于企业发展的重要性。因此,公司建立了严格的质量管理体系,从原材料采购到生产制造的每一个环节都进行严格把控。同时,AMERICASEMI还注重品牌建设,通过参加国际电子展会、发布技术论文等方式提升品牌知名度和影响力。这些努力使得AMERICASEMI在半导体行业中树立了良好的口碑和形象。

BCD Semi(Diodes)公司的发展小趣事

BCD Semi(Diodes)公司自成立以来,一直致力于模拟半导体产品的设计和制造。在某一时期,公司研发团队成功突破了某项关键技术,开发出了具有更高性能、更低功耗的新型模拟器件。这一技术突破使得BCD Semi的产品在市场上更具竞争力,赢得了众多客户的青睐。随着产品升级的不断推进,公司逐渐在模拟半导体领域树立了良好的口碑。

Chip Supply Micro Devices公司的发展小趣事

在追求经济效益的同时,Chip Supply Micro Devices也积极践行环保理念。公司注重节能减排和资源循环利用,通过采用环保材料和工艺,降低了生产过程中的环境影响。此外,公司还积极参与社会公益活动,推动电子行业的可持续发展。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

以上五个故事都是基于电子行业的一般情况和趋势虚构的,旨在展示一家微电子器件供应公司可能经历的发展历程。请注意,这些故事并非基于真实事件或公司。

问答坊 | AI 解惑

一种实用的PIC编程嚣的设计方法

摘要 介绍一种简便实用的PIC编程器实现方案。设计思想是:以单片机作为主控机,欲写入的PIC程序代码存放在主控机中,由主控机提供PIC芯片编程所需信号,并监测整个编程流程。在时钟脉冲信号作用下,把代码写入PIC的Flash中以达到对芯片编程的目的。 ...…

查看全部问答>

共享一份论文的评分规则

本帖最后由 paulhyde 于 2014-9-15 09:34 编辑 一份整理出来的论文评分规则!与大家分享!大赛即将来临,大家一起加油!  …

查看全部问答>

三路同步循环怎么做

三路流水循环,123123123式的,两盏各自的灯能同时亮灭。 我用CD4024从电网中分频提取同步信号,再用CD4017做三路输出,能实现。 觉的实现这么简单的原理要用两个IC有点麻烦,而且空脚很多, 请问大吓们,有没有更好的方法。…

查看全部问答>

项目前期分析可行性报告

大家好。小弟做数字也有2年多了。前面都是做的底层实现既从详细方案开始一直到最后的FPGA上板都经历过,对于细节比较清楚。但缺少项目整体的经验,特别是功耗,面积,规模,电压电流这种前期分析阶段。  目前公司给了小弟一个任务,做某 ...…

查看全部问答>

当由外部输入时钟信号给单片机时,为什么TXAL2脚没有输出

各位老师:      我用一个单片机的12M晶振XTAL2输出作为另一个单片机AT89C2051-24PU输入信号,由端XTAL1端输入,幅值约3.8V,XTAL2脚输出信号非常弱,只能看到微弱杂波,正常应该有输出的,不知是什么原因?请指教!   & ...…

查看全部问答>

基于DIRECTSHOW技术,调节CAMERA的AP显示,老只是能显示在半屏的范围内,不知道怎样把它放大到全屏显示。

基于DIRECTSHOW技术,调节CAMERA的AP显示,老只是能显示在半屏的范围内,不知道怎样把它放大到全屏显示。 //--------------- 显示的图象是正常的,但我想把它整成全屏显示的,怎么整啊!调节那个地方?CAMERA驱动的SFR设置?那个SFR呢?我的图 ...…

查看全部问答>

杂牌的PCI GPIB 卡可以用NI或者agilent的DLL吗?

刚接到 一个任务,是实现PC与一个信号源进行通信。 信号源的接口是IEEE488接口。 公司给我买了一个杂牌的PCI GPIB卡, 现在我将卡装在电脑上,随卡的驱动也装好了, 可是没有大家所说的任何编程开发界面和配置界面, 只是在设备管理器里的树状 ...…

查看全部问答>

主轴自己摆动,震荡?

我司有台车削中心,带C轴,现在一开机主轴就自己正反反复不停摆动(没有进行任何操作),无任何报警,是哪里的问题呀?主轴是电主轴,只有一个海德汉编码器,系统是西门子840D的。另本以为是个别案例,不料另一台也是一样的问题,两台机器08年生产 ...…

查看全部问答>

stm32 8字节对齐

想向大家请教个问题,stm32 8字节对齐那个《stm32权位指南》上说是为了满足AAPCS,但是在查阅AAPCS后还是不太明白为什么要8字节对齐,堆栈的8字节对齐是不是 比如在执行PUSH寄存器R0时,这个压入R0就使用了8个字节啊,哪位前辈了解8字节对齐原理, ...…

查看全部问答>