接收PC端的信息控制LED灯(中断法)

简介: 接收PC端的信息控制LED灯(中断法)宏定义初始化中断主函数


宏定义


#include<iocc2530.h>
#define LED1 P1_5
#define LED2 P1_0
#define LED3 P1_4
#define LED4 P1_3
#define uchar unsigned char
#define uint unsigned int
uchar c;


初始化


/********************************
*函数名称:Initial_Light
*函数功能:初始化LED端口
*入口函数:无
*出口函数:无
*返回值: 无
********************************/
void Initial_Light(void)
{
  P1SEL &= ~0X39;
  P1DIR |= 0X39;
  LED1= LED2= LED3= LED4=0;
}
/********************************
*函数名称:Init_UART
*函数功能:初始化串口
*入口函数:无
*出口函数:无
*返回值: 无
********************************/
void Init_UART(void)
{
  CLKCONCMD &= 0X80;//频率为32MHZ
  U0CSR |= 0X80;//设置为UART模式
  P0SEL |= 0X0C;
  U0GCR |= 10;
  U0BAUD |= 216;
  URX0IF = 0;//中断标志,打开接收器
  U0CSR |= 0X40;
  URX0IE = 1;//使能URX0中断
  EA = 1;
  //IEN0|=0X84;
}


中断



/*********中断服务子程序***********/
#pragma vector = URX0_VECTOR
__interrupt void URX0_INT(void)
{
  URX0IF = 0;//使URX0中断标志赋值0,因为已经进入中断函数,故赋值0
  c = U0DBUF;
  switch( c )
  {
  case '1': LED1 = 1;
   LED2 =LED3 =LED4 =0;
   break;
  case '2': LED2 = 1;
   LED1 =LED3 =LED4 =0;
   break;
  case '3': LED3 = 1;
   LED2 =LED1 =LED4 =0;
   break;
  case '4': LED4 = 1;
   LED2 =LED3 =LED1 =0;
   break;
   case '0': 
   LED4 = LED2 =LED3 =LED1 =0;
   break;
  //default:LED1 =LED2 =LED3 =LED4 = 0;
  }
}
/**********************下面这种方法也可以****************************/
  /*if(c == '0')
  {
    LED1 =LED2 =LED3 =LED4 = 0;
  }
  if(c == '1')
  {
   LED1 = 1;
   LED2 =LED3 =LED4 =0;
  }
   if(c == '2')
  {
   LED2 = 1;
   LED1 =LED3 =LED4 =0;
  }
   if(c == '3')
  {
   LED3 = 1;
   LED2 =LED1 =LED4 =0;
  }
   if(c == '4')
  {
   LED4 = 1;
   LED2 =LED3 =LED1 =0;
  }
}*/


主函数


/********************************
*函数名称:main
*函数功能:调用自定义函数
*入口函数:main
*出口函数:无
*返回值: 无
********************************/
main()
{
 Initial_Light();
 Init_UART();
 while(1)
 {
 }
}
相关文章
|
7月前
Rockchip系列之LED状态灯 串口收发数据流程以及控制状态显示(3)
Rockchip系列之LED状态灯 串口收发数据流程以及控制状态显示(3)
162 0
|
算法 芯片 异构计算
通过FPGA实现基于RS232串口的指令发送并控制显示器中目标位置
通过FPGA实现基于RS232串口的指令发送并控制显示器中目标位置
|
7月前
Rockchip系列之LED状态灯 CAN收发数据流程以及控制状态显示(4)
Rockchip系列之LED状态灯 CAN收发数据流程以及控制状态显示(4)
174 3
|
7月前
|
Linux
Rockchip系列之LED状态灯 以太网收发数据包流程以及控制状态显示(2)
Rockchip系列之LED状态灯 以太网收发数据包流程以及控制状态显示(2)
128 1
|
7月前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
4G、Wifi、蓝牙所谓的AT指令模式和数据透传模式到底是什么意思?
4G、Wifi、蓝牙所谓的AT指令模式和数据透传模式到底是什么意思?
580 0
独立按键控制LED亮灭及状态
独立按键控制LED亮灭及状态
244 0
接收PC端的信息控制LED灯(查询法)
接收PC端的信息控制LED灯(查询法) 宏定义 初始化 主函数
124 0
中断方式控制LED灯
中断方式控制LED灯 宏定义 初始化 中断函数 主函数
154 0
向PC端发送数据(中断方式)
向PC端发送数据(中断方式) 宏定义 初始化 延迟 数据 中断 主函数
150 0