/*********************
头文件*************************************************/ #include
#include
/********************* 宏定义*************************************************/ #define uint unsigned int
#define uchar unsigned char
// --------------- LED 控制端口------------------------------- //
#define GLED P1_0〃绿色LED定义
#define RLED P1_1〃红色LED定义
// --------------- 按键输入端口------------------------------- //
#define KEY1 P0_0
/********************* 全局变量**********************************************/ unsigned char Uart0_Rx;
unsigned char Text_Data[]=" 海舟物联网教育!\r\n";
/********************* 函数声明***********************************************/ void Delay(uint);
void Init_LED(void);
void Init_Uart0(void);
void Init_Sysclk(void);
void Uart0_TX_Data(unsigned char *Data,int len);
/******************************************************************************
* 函数名称: void Delay(uint n)
* 函数功能: 软件延时函数
* 入口参数:
* 出口参数:
* 备注:
******************************************************************************/ void
Delay(uint n)
{
uint i;
for(i=0;i for(i=0;i for(i=0;i for(i=0;i for(i=0;i '**************************************************************************** * 函数名称 : void Init_Uart0(void) *函数功能 : Uart0 初始化设置 * 入口参数 : *出口参数 **************************************************************************** // 位置 1 P0 口 // P0_2,P0_3 用作串口 // P0 优先作为 UART0 // UART 方式 // 波特率设为 9600bps // UART0 TX 中断标志初始置位 0 // 允许接收 // 开总中断,接收中断 /****************************************************************************** * 函数名称 : void Uart0_TX_Data(unsigned char *Data,int len) *函数功能 : 串口 0 发送一组数据 * 入口参数 : * 出口参数 : * 备 注: ******************************************************************************/ void Uart0_TX_Data(unsigned char *Data,int len) { int j; for(j=0;j { U0DBUF = *Data++; while(UTX0IF == 0); UTX0IF = 0; } } /****************************************************************************** * 函数名称 : void Init_Sysclk() * 函数功能 : 设置系统时钟 * 入口参数 : * 出口参数 : * 备 注: void Init_Uart0(void) { PERCFG = 0x00; P0SEL = 0x3c; P2DIR &= ~0XC0; U0CSR |= 0x80; U0GCR |= 8; U0BAUD |= 59; UTX0IF = 0; U0CSR |= 0X40; IEN0 |= 0x84; **************************************************************************** } void Init_Sysclk(void) { CLKCONCMD &= ~0x40; while(CLKCONSTA & 0x40); CLKCONCMD &= ~0x47; } /****************************************************************************** *函数名称 : void Init_LED(void) * 函数功能 : 初始化 LED * 入口参数 : * 出口参数 : * 备 注: ******************************************************************************/ void Init_LED(void) { P1DIR = 0x03; // P1.0 P1.1 设置为输出 RLED = 1; //初始化LED 状态 GLED = 1; } /****************************************************************************** * 函数名称 : void main(void) * 函数功能 : 主函数 * 入口参数 : * 出口参数 : * 备 注: ******************************************************************************/ void main(void) { Init_Sysclk(); // 初始化系统时钟 Init_Uart0(); // 串口 0 设置 Init_LED(); // 初始化 LED while(1) { Uart0_TX_Data(Text_Data,17); Delay(50000); Delay(50000); Delay(50000); // 设置系统时钟源为 32MHZ 晶振 // 等待晶振稳定 // 设置系统主时 32MHZ '**************************************************************************** *函数名称: void UART0_ISR(void) *函数功能: Uart0 中断服务子程序 * 入口参数: * 出口参数: * 备注: **************************************************************************** #pragma vector = URX0_VECTOR __interrupt void UART0_ISR(void) { URX0IF = 0; // 清中断标志 Uart0_Rx = U0DBUF; } ******************* 结束***********************************************