完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
#include "msp430x42x.h"/*430单片机寄存器头文件*/
void main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;//停止看门狗 FLL_CTL0|=XCAP18PF;//设置晶振匹配电容18pf左右 P1DIR|=BIT4+BIT3+BIT1; P1OUT&=~(BIT4+BIT3+BIT1); P1IES|=BIT5+BIT6+BIT7;//三个端口为下降沿中断 P1IE|=BIT5+BIT6+BIT7;//三个端口中断允许 _EINT();//中断允许 while(1); } #pragma vector=PORT1_VECTOR __interrupt void PORT1_ISR(void) { unsigned int i; unsigned char PushKey; P1OUT&=~(BIT4+BIT3+BIT1); PushKey=P1IFG&(BIT5+BIT6+BIT7);//读取P1IFG的5.6.7位(那个键被按下) for(i=0;i<1000;i++) {};//略延迟后再做判断 if((P1IN&PushKey)==PushKey) { P1IFG=0;return;//认为按键无效,不做处理直接退出 } if(PushKey&BIT5) { P1OUT|=BIT3; } if(PushKey&BIT6) { P1OUT|=BIT1; } if(PushKey&BIT7) { P1OUT|=BIT4; } P1IFG=0; return; } 该程序实现的功能是按下不同的键点亮不同的灯。p1.5~p1.7对应按键,p1的1、3、4口对应发光二级管 我在调试中遇到的问题是:只有按下p1.7对应的键才会点亮灯,按其他键,没有任何灯亮,请高手帮忙解决一下,为啥不响应其他按键的中断呢? |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
3327个成员聚集在这个小组
加入小组9555 浏览 1 评论
10355 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10677 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2657 浏览 1 评论
5114 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10677浏览 2评论
10355浏览 1评论
9556浏览 1评论
8214浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:23 , Processed in 0.713607 second(s), Total 59, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1439