标题: msp430f5529简易计数器 [打印本页]

作者: sfbuyfsui    时间: 2020-4-29 19:34
标题: msp430f5529简易计数器


#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灭
      }
      
    }
  }

作者: admin    时间: 2020-4-30 14:02
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
作者: 呼哈呼哈hi    时间: 2021-4-11 19:25
兄弟,能不能看看你的IIc.h和key.c文件




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1