#include "MSP430F5529.h" //MSP头文件
#include "key.h" //包含按键检测功能文件
#include "IIC.h" //包含IIC通信功能与显示函数文件
void IOInit();
void IOInit(){ //初始化端口函数
/*******
独立按键部分IO口定义填空
********/
//设置P1.1和P2.1为输入模式
P1SEL &= 0xFD;
P1DIR &= 0xFD;
P2SEL &= 0xFD;
P2DIR &= 0xFD;
//设置P1.1和P2.1使能上拉/下拉模式
P1REN |= 0x2;
P2REN |= 0x2;
//设置P1.1和P2.1为上拉模式
P1OUT |= 0x2;
P2OUT |= 0x2;
/*********
LED灯部分IO口定义填空
*******/
//设置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)处显示数字2019长度为5
while(1)
{
key = KeyScan();
if( key != NOKEY )
{
switch(key)
{
case KEYLEFT : pre_num--;
break;
/*******
判断右键按下填空
*******/
//如果是右键按下 则数字加1
case KEYRIGHT : pre_num++;
break;
}
}
/*******
显示部分填空
********/
if(old_num!=pre_num)
{
//指定位置显示数字
LCD_ShowNum(0,0,pre_num,5,16);
}
old_num=pre_num;
/*******
如果为偶数设置LED亮灭状态填空
*******/
if (pre_num%2 == 0)
{
P1OUT &= 0xFE;
P4OUT |= 0x80;
// P1.0灭且P4.7亮
}
/******
如果为奇数设置LED灯亮灭状态填空
******/
else
{
P1OUT |= 1;
P4OUT &= 0x7F;
//P1.0亮且P4.7灭
}
}
}
|