|
//附件為IIC通信函數,需要添加至iarew430workplace,main.c如下
#include "msp430f5529.h"
#include "IIC.h"
long int a=2019; //定義全局變量a并賦值為2019
int main()
{
WDTCTL = WDTPW+WDTHOLD; //關閉看門狗
LCD_Init(); //oled初始化
P1DIR|=BIT0; //P1.0設置為輸出模式
P4DIR|=BIT7; //P4.7設置為輸出模式
P2DIR&=~BIT1; //P2.1設置為輸入模式
P2IFG&=~BIT1; //清除P2.1中斷標志
P2IE|=BIT1; //P2.1開啟中斷
P2IES=0xff; //P2下降沿觸發(fā)
P2OUT=0xff;
P2REN=0xff; //配置上拉電阻
P1OUT=0x01; //初始化左邊LED點亮
LCD_ShowNum(1,1,a,5,16); //初始化顯示2019
__enable_interrupt();
while(1)
{
LCD_ShowNum(1,1,a,5,16);
}
}
#pragma vector=PORT2_VECTOR //固定格式,聲明中斷向量地址
__interrupt void PORT2_ISR(void)
{ //中斷子程序
unsigned int temp;
int i;
for(i=0;i<12000;i++); //延時消抖
if((P2IN&0xff)!=0xff) //如有按鍵按下
{
temp=P2IFG; //讀取中斷標志
P2IFG=0x00; //標志位清零
if(temp==0x02) //如果P2.1產生中斷
{
a++; //led狀態(tài)取反,試的時候按第一下燈不亮,按第二下開始才亮滅正常,我的想法是如果這里能使a的值增加1,就實現(xiàn)了按鍵控制加減
if(a%2==1)
{
P1OUT=0x01;
P4OUT=0x00; //a為奇數,P1.0點亮,P4.7熄滅
}
else if(a%2==0)
{
P1OUT=0x00;
P4OUT=0x80; //a為偶數,P4.7點亮,P1.0熄滅
}
}
}
}
|
-
-
IIC函數.rar
2019-10-11 21:06 上傳
點擊文件名下載附件
5.35 KB, 下載次數: 115
|