C 51单片机串口控制LED

/**************************************************************************************
实验名称:串口控制LED和蜂鸣器
接线说明:	
实验现象:下载程序后,由串口助手以HEX格式发送如下命令控制LED和蜂鸣器
			D1指示灯亮发送:11 0D 0A
			D1指示灯灭发送:10 0D 0A
			蜂鸣器响发送:	21 0D 0A
			蜂鸣器停发送:	20 0D 0A
注意事项:	串口助手要以HEX格式发送,并且波特率为9600																			  
***************************************************************************************/
#include "public.h"
#include "beep.h"
#include "uart.h"

//控制管脚定义
sbit LED1=P2^0;

//宏定义
#define LED1_ON_CMD		0X11
#define LED1_OFF_CMD	0X10

#define BEEP_ON_CMD		0X21
#define BEEP_OFF_CMD	0X20

/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{	
	u8 beep_flag=0;
	
	UART_Init();

	while(1)
	{
		if(UART_RX_STA&0x8000)//判断串口是否接收完数据
		{
			UART_RX_STA=0;//清除标记,等待下次接收
			switch(UART_RX_BUF[0])//判断第一个数据
			{
				case LED1_ON_CMD: LED1=0;break;
			   	case LED1_OFF_CMD: LED1=1;break;
				case BEEP_ON_CMD: beep_flag=1;break;
				case BEEP_OFF_CMD: beep_flag=0;break;
			}	
		}
		if(beep_flag)
			beep_alarm(100,10);			
	}
}

版权声明:本文为CSDN博主「崇文殿大学士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34677276/article/details/120942438

生成海报
点赞 0

崇文殿大学士

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32Cube学习笔记-SPI通讯

引言  使用STM32Cube开发东西最怕的就是写的代码太多,为什么呢?因为不会写,我深有体会。SPI通讯是一种常用的常用的通讯方式,同步、串行。同步代表着实时性好,串行代表

STM32 RTC时钟掉电日期不更新

RTC(Real-Time Clock)实时时钟,是一个独立的定时器。拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时