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

📄 main.c

📁 学习用
💻 C
字号:
#include <LPC213x.H>    // Philips Peripheral Registers
#include <LPC213xDEF.H>	//ARM菜鸟HotPower创建定义文件
#include "main.h"
/*----------------------------------------------------
文   件   名:  LPC213XDEF.H
创   建   人:  ARM菜鸟  HotPower@126.com
创 建 日  期:  2005.7.23   0:38
最近修改日期:  2006.1.11   2:38
创 建 地 点 : 西安大雁塔村队部
说       明 : 已经过LPC2131开发板硬件调试
实 验 项 目 : 串口实验
------------------------------------------------------*/


//函数声明
void UART0_Init(void);
void UART0_SendByte(uint8 dat);
void DelayNS (uint32 dly);





void DelayNS (uint32 dly)
{
	uint32 i;
	
	for ( ; dly>0; dly--)
		for (i=0; i<50000; i++);
}


/*
*********************************************************************************************************
** 函数名称 :UART0_Init()
** 函数功能 :串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特率115200。
** 入口参数 :无
** 出口参数 :无
*********************************************************************************************************
*/
void UART0_Init(void)
{
uint16 Fdiv;
  PINSEL0 |= (P0_0_TXD0 << P0_0_PINSEL) | (P0_1_RXD0 << P0_1_PINSEL); //设置I/O连接到UART0
  U0LCR = 0x83;						// DLAB=1,允许设置波特率
  Fdiv  = (Fpclk / 16) / UART_BPS;	// 设置波特率
//  U0DLM = Fdiv / 256;
//  U0DLL = Fdiv % 256;
  U0DLM = 0;
  U0DLL = 94;//95;//96;//98;//97;
  U0LCR = 0x03;
}

/*
*********************************************************************************************************
** 函数名称 :UART0_SendByte()
** 函数功能 :向串口发送字节数据,并等待发送完毕,查询方式。
** 入口参数 :dat	要发送的数据
** 出口参数 :无
*********************************************************************************************************
*/
void UART0_SendByte (uint8 dat)
{
	U0THR = dat;
	while ((U0LSR & 0x40) == 0);		// 等待数据发送完毕
}


void KeyInit(void)
{
  IO0DIR &=~((1 << KEY1)		// 设置KEY1为输入	
	      |  (1 << KEY2)		// 设置KEY2为输入  
	      |  (1 << KEY3)		// 设置KEY3为输入  
	      |  (1 << KEY4)		// 设置KEY4为输入  
	      |  (1 << KEY5)		// 设置KEY5为输入  
	      |  (1 << KEY6));	    // 设置KEY6为输入  
}


 /*
*********************************************************************************************************
** 函数名称 :main()
** 函数功能 :用P0.7控制BEEP,让BEEP鸣叫。
** 调试说明 :需将跳线JP5和LED短接。
*********************************************************************************************************
*/
int main (void)
{
unsigned int i;
  PINSEL0 = 0x00000000;		// 设置管脚连接GPIO
  PINSEL1 = 0x00000000;		// 设置管脚连接GPIO
  IO0DIR  = 0x00000000;		// 设置P0口为输入
  IO1DIR  = 0x00000000;		// 设置P1口为输入
  UART0_Init();
  KeyInit();
  while (1)
  {
    if (!(IO0PIN & (1 << KEY1))) {//有KEY1键压下(P0.16=0 低电平)
      for(i = 0; i < 256; i ++) {
        UART0_SendByte(0x55);//发送256个0x55
        DelayNS(1);
      }
    }
	else if (!(IO0PIN & (1 << KEY2))) {//有KEY2键压下(P0.17=0 低电平)
      for(i = 0; i < 256; i ++) {
        UART0_SendByte(0xaa);//发送256个0xaa
        DelayNS(1);
      }
    }
	else if (!(IO0PIN & (1 << KEY3))) {//有KEY3键压下(P0.18=0 低电平)
      for(i = 0; i < 256; i ++) {
        UART0_SendByte(0x00);//发送256个0x00
        DelayNS(1);
      }
    }
	else if (!(IO0PIN & (1 << KEY4))) {//有KEY4键压下(P0.19=0 低电平)
      for(i = 0; i < 256; i ++) {
        UART0_SendByte(0x11);//发送256个0x11
        DelayNS(1);
      }
    }
	else if (!(IO0PIN & (1 << KEY5))) {//有KEY5键压下(P0.20=0 低电平)
      for(i = 0; i < 256; i ++) {
        UART0_SendByte(0x13);//发送256个0x13
        DelayNS(1);
      }
    }
	else if (!(IO0PIN & (1 << KEY6))) {//有KEY6键压下(P0.21=0 低电平)
      for(i = 0; i < 256; i ++) {
        UART0_SendByte(i);//发送256个数据0x00~0xff
        DelayNS(1);
      }
    }
  }			
  return 0;
}

⌨️ 快捷键说明

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