C语言还是不怎么熟练
#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
//定义控制LED灯的端口
#define LED1 P1_0 //LED1为P1.0口控制
#define KEY1 P0_0 //KEY1为P0.0口控制
//函数声明
void Delay_ms(uint);
void initUART(void);
void UartSend_String(char *Data,int len);
void Delayms(uint); //延时函数
void InitLed(void); //初始化LED1
void KeyInit(); //按键初始化
void KeyScan();
void UseKey();
int L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12;
/****************************
延时函数
*****************************/
void Delayms(uint xms) //i=xms 即延时i毫秒
{
uint i,j;
for(i=xms;i>0;i--)
for(j=587;j>0;j--);
}
void Delay_ms(uint n)
{
uint i,j;
for(i=0;i<n;i++)
{
for(j=0;j<1774;j++);
}
}
/****************************
LED初始化函数
*****************************/
void InitLed(void)
{
P1DIR |= 0x01; //P1_0定义为输出
P1INP |= 0X01; //打开下拉
P0DIR |= 0xf3; //P0-0 0-1 0-4 0-5 0-6 0-7定义为输出
P0INP |= 0Xf3; //打开下拉
P0_0 = 1;P0_1 = 1;P0_4 = 1;P0_5 = 1;P0_6 = 1;P0_7 = 1;P1_0 = 1;//LED初始化
}
/****************************************************************
串口初始化函数
****************************************************************/
void InitUART(void)
{
PERCFG = 0x00; //位置1 P0口
P0SEL |= 0x0c; //P0_2,P0_3用作串口(外部设备功能)
P2DIR &= ~0XC0; //P0优先作为UART0
U0CSR |= 0x80; //设置为UART方式
U0GCR |= 8;
U0BAUD |= 59; //波特率设为9600
UTX0IF = 0; //UART0 TX中断标志初始置位0
}
/****************************************************************
串口发送字符串函数
****************************************************************/
void UartSend_String(char *Data,int len)
{
int j;
for(j=0;j<len;j++)
{
U0DBUF = *Data++;
while(UTX0IF == 0);
UTX0IF = 0;
}
}
/****************************
按键初始化函数
*****************************/
void InitKey()
{
P1DIR |= 0x3c; //P1_2 1-3 1-4 1-5定义为输出
P1INP |= 0X3c; //打开下拉
P1_2 = 0;P1_3 = 0;P1_4 = 0;P1_5 = 0;
P1SEL &= ~0Xc0; //设置P1-6 1-7 为普通IO口
P1DIR &= ~0Xc0; //设置为输入模式
P1INP &= ~0xc0; //打开P1-6 1-7上拉电阻
P2SEL &= ~0X01; //设置P2-0为普通IO口
P2DIR &= ~0X01; //设置为输入模式
P2INP &= ~0x01; //打开P2-0上拉电阻
}
void KeyScan()
{
P1DIR &= ~0x3c; //P1_2 1-3 1-4 1-5定义为输入
P1INP &= ~0X3c; //打开上拉
P1DIR |= 0Xc0; //设置为输出模式
P1INP |= 0xc0; //打开P1-6 1-7上拉电阻
P2DIR |= 0X01; //设置为输出模式
P2INP |= 0x01; //打开P2-0上拉电阻
P1_6 = 0;P1_7 = 0;P2_0 = 0;
}
/****************************
按键检测函数
*****************************/
void UseKey()
{
if(P1_6 ==0||P1_7 ==0||P2_0 ==0)
{
Delayms(30);
if(P1_6 ==0||P1_7 ==0||P2_0 ==0)
{
if(P1_6 ==0)//第一列
{
Delayms(30);
Ke