|
#include "MSP430F5529.h" //MSP頭文件
#include "key.h" //包含按鍵檢測功能文件
#include "IIC.h" //包含IIC通信功能與顯示函數(shù)文件
void IOInit();
void IOInit(){ //初始化端口函數(shù)
/*******
獨(dú)立按鍵部分IO口定義填空
********/
//設(shè)置P1.1和P2.1為輸入模式
P1SEL &= 0xFD;
P1DIR &= 0xFD;
P2SEL &= 0xFD;
P2DIR &= 0xFD;
//設(shè)置P1.1和P2.1使能上拉/下拉模式
P1REN |= 0x2;
P2REN |= 0x2;
//設(shè)置P1.1和P2.1為上拉模式
P1OUT |= 0x2;
P2OUT |= 0x2;
/*********
LED燈部分IO口定義填空
*******/
//設(shè)置P1.0和P4.7為輸出模式
P1SEL &= 0xFE;
P1DIR |= 1;
P4SEL &= 0x7F;
P4DIR |= 0x80;
}
int main( void )
{
enum key_type key;
unsigned long old_num=1;
unsigned long pre_num=1;
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
LCD_Init(); //顯示屏初始化
IOInit(); //初始化各種端口
LCD_ShowNum(0,0,2020,5,16); //初始化在(0,0)處顯示數(shù)字2019長度為5
while(1)
{
key = KeyScan();
if( key != NOKEY )
{
switch(key)
{
case KEYLEFT : pre_num--;
break;
/*******
判斷右鍵按下填空
*******/
//如果是右鍵按下 則數(shù)字加1
case KEYRIGHT : pre_num++;
break;
}
}
/*******
顯示部分填空
********/
if(old_num!=pre_num)
{
//指定位置顯示數(shù)字
LCD_ShowNum(0,0,pre_num,5,16);
}
old_num=pre_num;
/*******
如果為偶數(shù)設(shè)置LED亮滅狀態(tài)填空
*******/
if (pre_num%2 == 0)
{
P1OUT &= 0xFE;
P4OUT |= 0x80;
// P1.0滅且P4.7亮
}
/******
如果為奇數(shù)設(shè)置LED燈亮滅狀態(tài)填空
******/
else
{
P1OUT |= 1;
P4OUT &= 0x7F;
//P1.0亮且P4.7滅
}
}
}
|
|