//==========================================================//
// //
// 文件: MAIN.C //
// 说明: MSP430F5438开发板单片机基本IO实验程序 //
// 由键盘端口KPC0~3输出低电平,KPR0~3设置为输入并内部上拉 //
// 当按键被按下时,单片机检测到KPR0~3的一路或多路被拉低, //
// 则按被按下按键的行位置点亮相应的发光二极管, 如按下第一 //
// 行按键则D7/D8亮起,以此类推。 //
// //
// MSP430F5438 //
// ----------------- //
// | P6.0|--> |------ | //
// | P6.1|--> | | //
// - |RST P6.2|--> | | //
// | P6.3|--> | 4×4 | //
// | P6.4|<-- | 键盘| //
// | P6.5|<-- | | //
// |RST P6.6|<-- | | //
// | P6.7|<-- |------ | //
// ----------------- //
// //
// 编译: CCS5.2 //
// 日期: 2013.05.19 //
// //
//=========================================================//
#include "msp430x54x.h"
#include <stdlib.h>
#include <stdio.h>
#include "PIN_DEF.H"
//***************************************************************************//
// //
// void Init_Port(void): 设置IO端口 //
// //
//***************************************************************************//
void Init_Port(void)
{
P5DIR |= POWER ; // 主电源
MAIN_POWER_ON ;
P7DIR |= LED_PWR ; // 发光二极管电源
P7OUT &=~LED_PWR ;
INTERNAL_PULL_UP ; // 使能键盘端口内部上拉电阻
ROW_IN_COL_OUT ; // 设置行输入,列输出0
P1OUT = 0xF0 ; // 设置LED控制端IO属性
P1DIR = 0xF0 ;
P9OUT = 0x0F ;
P9DIR = 0x0F ;
}
//***************************************************************************//
// //
// void main(void): 主函数 //
// 功能—— 主程序循环,检测按键并按被按下按键的行位置点亮相应的发光二极管 //
// //
//***************************************************************************//
void main( void )
{
WDTCTL = WDTPW + WDTHOLD ; // 关闭看门狗
Init_Port() ;
while(1)
{
if(!(P6IN&KPR3)) // 检测输入端口是否有低电平
P9OUT &=~(BIT0 + BIT1) ; // 按键被按下,点亮发光二极管
else
P9OUT |= BIT0 + BIT1 ;
if(!(P6IN&KPR2))
P9OUT &=~(BIT2 + BIT3) ;
else
P9OUT |= BIT2 + BIT3 ;
if(!(P6IN&KPR1))
P1OUT &=~(BIT4 + BIT5) ;
else
P1OUT |= BIT4 + BIT5 ;
if(!(P6IN&KPR0))
P1OUT &=~(BIT6 + BIT7) ;
else
P1OUT |= BIT6 + BIT7 ;
}
}
// end of file
//2013-08-15
//23:31
//深圳
文章评论(0条评论)
登录后参与讨论