⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msp430f149-

📁 MSP430F149实验板实验代码
💻
字号:

#include <MSP430X14X.h>
/*-------------------------------------*/
  #define   uchar   unsigned char
  #define   uint    unsigned int
  #define   ulong   unsigned long
  #define   ps2_clk   BIT4
  #define   ps2_dat   BIT5
 /*P1.4---ps2_clk*/
 /*P1.5---ps2_dat*/
 /*-------------------------------------*/ 
  uchar key_num; 
  void set_PS2_int();
  uchar receive_ps2() ;
  void search_key();
  void set_sysclk();
  /*-------------------------------------*/
void main( void )
{ 
  set_sysclk();
  WDTCTL = WDTPW + WDTHOLD; 
  set_PS2_int();
  P2DIR=0xff;
  P2OUT=0x00;
judge: while(P1IN&ps2_clk);   //判断clk线是否给拉低
   search_key();
   goto judge;  
}
/*-------设置系统时钟-------------*/
void set_sysclk()
{ uchar i;
  //DCOCTL=0XE0;
  BCSCTL1=0X17;   //asck 2分频为wdt提供时钟
  for(i=10;i>0;i--);
}
/*-------------ps2中断设置------------------------*/
void set_PS2_int()
{P1SEL &=~(BIT4+BIT5);//选择I/O功能
 P1DIR |=(BIT4+BIT5);
 P1OUT |=(BIT4+BIT5);//置1
 P1DIR &=~(BIT4+BIT5);//设为输入
}
 /*-----------ps2读数据子程序-----------------------*/
uchar receive_ps2() 
 {uchar i;uchar key8=0;
      while(P1IN&ps2_clk);//等待clk变低     |越过
      while(!(P1IN&ps2_clk));//等待clk变高  |起始位
       for(i=0;i<8;i++)
          {key8>>=1;
           while(P1IN&ps2_clk);//等待clk变低
           if(P1IN&ps2_dat)key8=key8|0x80;
           while(!(P1IN&ps2_clk));//等待clk变高
          }
       for(i=0;i<2;i++)
          { while(P1IN&ps2_clk);//等待clk变低    |
            while(!(P1IN&ps2_clk));//等待clk变高 |
          }
      return(key8);
 }
 /*----------ps2中断处理子程序-------------------*/
 void search_key()
 {
  if(P1IN&ps2_dat)goto back;   //判断DAT数据线是否给拉低(起始位)
  key_num=receive_ps2();
  P2OUT=key_num;
 back:;
 }
/******************************************************************/
/* switch ( temp2 )  
     {     
      case 0x45: k="0";  break; //0
      case 0x16: k="1";  break; //1
      case 0x1e: k="2";  break; //2
      case 0x26: k="3";  break; //3
      case 0x25: k="4";  break; //4
      case 0x2e: k="5";  break; //5                           
      case 0x36: k="6";  break; //6
      case 0x3d: k="7";  break; //7
      case 0x3e: k="8";  break; //8
      case 0x46: k="9";  break; //9 
      case 0x1c: k="10"; break; //a
      case 0x32: k="11"; break; //b
      case 0x21: k="12"; break; //c
      case 0x23: k="13"; break; //d
      case 0x24: k="14"; break; //e
      case 0x2b: k="15"; break; //f
      case 0x34: k="16"; break; //g
      case 0x33: k="17"; break; //h
      case 0x43: k="18"; break; //i
      case 0x3b: k="19"; break; //j
      case 0x42: k="20"; break; //k
      case 0x4b: k="21"; break; //l
      case 0x3a: k="22"; break; //m
      case 0x31: k="23"; break; //n
      case 0x44: k="24"; break; //o
      case 0x4d: k="25"; break; //p 
      case 0x15: k="26"; break; //q
      case 0x2d: k="27"; break; //r
      case 0x1b: k="28"; break; //s
      case 0x2c: k="29"; break; //t
      case 0x3c: k="30"; break; //u
      case 0x2a: k="31"; break; //v
      case 0x1d: k="32"; break; //w
      case 0x22: k="33"; break; //x
      case 0x35: k="34"; break; //y
      case 0x1a: k="35"; break; //z      
      case 0x0e: k="36"; break; //~
      case 0x4e: k="37"; break; //-
      case 0x55: k="38"; break; //=      
      case 0x29: k="46"; break; //SPACE 
      case 0x66: k="47";break; //del
      case 0x5b: k="39";break; //]  
      case 0x4c: k="40";break;//;
      case 0x52: k="41";break;// '
      case 0x41: k="42"; break; //,
      case 0x49: k="43";break;//. 
      case 0x4a: k="44";break; // /  
            case 0x54: k="45"; break; //[ 
   case 0x58: k="49"; break; //cap
   case 0x5a: k="48"; break; //回车键
   case 112 : k="0" ; break; //小键盘部分
   case 105 : k="1" ; break;
   case 114 : k="2" ; break;
   case 122 : k="3" ; break;
   case 107 : k="4" ; break; 
   case 115 : k="5" ; break;
   case 116 : k="6" ; break;
   case 108 : k="7" ; break;
   case 117 : k="8" ; break;
   case 125 : k="9" ; break;
   case 113 : k="43" ; break;;

      default : k="255";
    }
*/
/*******************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -