毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计

这篇具有很好参考价值的文章主要介绍了毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0、毕业设计选题原则说明(重点)

  • 选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的!
  • 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。
  • 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业证而已!!!
  • 当你明白这一点后,作毕业设计的要求就是在满足老师的要求后,越简单越好,这样不但容易去做,而且你自己也容易去理解,掌握,同样也能花最少的钱!!!
  • 满足老师的要求,这个没办法,毕竟他是决定你是否能通过答辩的人。
  • 每年都有很多同学找到我的时候,后悔当初为什么要把功能写的那么复杂,后悔没有提前找我咨询一下!所以在这里提醒同学们,提交开题报告之前一定要多想想,咨询下以往的学长学姐,不要自己随便写一堆提交上去!!!
  • 大家找不到学长学姐的话,也可以找我咨询,我可以给大家一些建议
  • 点击此处即可咨询

1、项目简介

  • https://gitee.com/lighter-z/graduation-design

1.1 系统构成

本设计由STC89C52单片机电路+8位LED灯电路+蓝牙模块电路+电源电路组成。

1.2 系统功能

  • 1、通过手机APP可以控制8路LED灯的亮灭。
  • 2、通过手机APP可以控制8路LED灯的亮度。每个灯的亮度有3档。
  • 3、可以发送指令控制8个灯全灭和全亮。
    • 蓝牙发送数据内容:
      ON // 打开所有灯 大写字母’O’
      SN // 关闭所有灯
      Ax //一档打开 第x个灯 x为1-8中的一个数 如A2表示把led2灯打开的亮度为1挡
      Bx //二档打开 第x个灯 x为1-8中的一个数 如A2表示把led2灯打开的亮度为2挡
      Cx //三档打开 第x个灯 x为1-8中的一个数 如A2表示把led2灯打开的亮度为3挡

2、部分电路设计

2.1 STC89C52单片机核心系统电路设计

STC89C52单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计,毕业设计,单片机,51单片机,毕业设计,课程设计

2.2 LED电路设计

LED电路由8个LED构成,通过上拉电阻连接在51单片机的P0端口。

其具体电路原理图如下图所示:
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计,毕业设计,单片机,51单片机,毕业设计,课程设计

实物图如下图所示:
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计,毕业设计,单片机,51单片机,毕业设计,课程设计

2.3 蓝牙模块电路设计

本设计中使用JDY-30蓝牙模块,将蓝牙模块的RX引脚连接在51单片机的P31引脚,TX引脚连接在单片机的P30引脚。

蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯。本蓝牙模块就是为了只能无线数据传输而专门打造的,本模块支持串行接口,支持SP蓝牙串口协议,具有成本低、体积小、收发灵敏性高等特点,只需配备少许的外围元件就能实现大功能。

其具体电路原理图如下图所示:
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计,毕业设计,单片机,51单片机,毕业设计,课程设计

实物图如下:
毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计,毕业设计,单片机,51单片机,毕业设计,课程设计文章来源地址https://www.toymoban.com/news/detail-727669.html

3、部分代码展示

3.1 定时器初始化以及中断处理

void Init_Timer0(void)
{
	TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
	TH0=(65536-10000)/256;		  //重新赋值 20ms
	TL0=(65536-10000)%256;
	EA=1;            //总中断打开
	ET0=1;           //定时器中断打开
	TR0=1;           //定时器开关打开
}

void Timer0_isr(void) interrupt 1 
{
	TH0=(65536-5000)/256;		  //重新赋值 5ms
	TL0=(65536-5000)%256;
	times_5ms++;

}

3.2 串口初始化

void UART_Init(void)
{
    SCON  = 0x50;		        // SCON: 模式 1, 8-bit UART, 使能接收  
    TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装
    TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz
	TL1 = TH1;  
    TR1   = 1;                  // TR1:  timer 1 打开                         
    EA    = 1;                  //打开总中断
    ES    = 1;                  //打开串口中断
}

3.3 串口中断处理

void UART_SER (void) interrupt 4 	//串行中断服务程序
{
	unsigned char R_buf;
	if(RI)                        //判断是接收中断产生
	{
		RI=0;                      //标志位清零
		R_buf=SBUF;
		if((R_buf=='O')||(R_buf=='o'))
		{
			Commd_Flag=OPEN;	//接收到打开灯标志
		}
		else if((R_buf=='S')||(R_buf=='s'))
		{
			Commd_Flag=CLOSE;	//接收到 关闭灯标志
		}
		else if((R_buf=='A')||(R_buf=='a'))
		{				  
			Commd_Flag=DAGN01;	//接收到 关闭灯标志
		}
		else if((R_buf=='B')||(R_buf=='b'))
		{
			Commd_Flag=DAGN02;	//接收到 关闭灯标志
		}
		else if((R_buf=='C')||(R_buf=='c'))
		{
			Commd_Flag=DAGN03;	//接收到 关闭灯标志
		}
		else if((R_buf!='1')&&(R_buf!='2')&&(R_buf!='3')&&(R_buf!='4')&&(R_buf!='5')&&(R_buf!='6')&&(R_buf!='7')&&(R_buf!='8')&&(R_buf!='N'))
		{
			Commd_Flag=INIT;	 //否则 初始化接受标志
		}

		if((Commd_Flag==OPEN)||(Commd_Flag==DAGN01))			//根据命令值进行打开相应的灯
		{
			switch(R_buf)
			{
				case '1':pwmLed01=3;Commd_Flag=INIT;break;	//打开相应的灯 并恢复命令标志
				case '2':pwmLed02=3;Commd_Flag=INIT;break;			
				case '3':pwmLed03=3;Commd_Flag=INIT;break;			
				case '4':pwmLed04=3;Commd_Flag=INIT;break;			
				case '5':pwmLed05=3;Commd_Flag=INIT;break;	
				case '6':pwmLed06=3;Commd_Flag=INIT;break;			
				case '7':pwmLed07=3;Commd_Flag=INIT;break;			
				case '8':pwmLed08=3;Commd_Flag=INIT;break;
				case 'N':pwmLed01=3;pwmLed02=3;pwmLed03=3;pwmLed04=3;pwmLed05=3;pwmLed06=3;pwmLed07=3;pwmLed08=3;Commd_Flag=INIT;break;
				default:break;						 //此处错误判断 不可恢复命令标准
			}
		}
else if(Commd_Flag==CLOSE)//根据命令值进行关闭相应的灯
		{
			switch(R_buf)
			{
				case '1':pwmLed01=1;Commd_Flag=INIT;break;	//打开相应的灯 并恢复命令标志
				case '2':pwmLed02=1;Commd_Flag=INIT;break;			
				case '3':pwmLed03=1;Commd_Flag=INIT;break;			
				case '4':pwmLed04=1;Commd_Flag=INIT;break;			
				case '5':pwmLed05=1;Commd_Flag=INIT;break;	
				case '6':pwmLed06=1;Commd_Flag=INIT;break;			
				case '7':pwmLed07=1;Commd_Flag=INIT;break;			
				case '8':pwmLed08=1;Commd_Flag=INIT;break;
				case 'N':pwmLed01=1;pwmLed02=1;pwmLed03=1;pwmLed04=1;pwmLed05=1;pwmLed06=1;pwmLed07=1;pwmLed08=1;Commd_Flag=INIT;break;
				default:break;						 //此处错误判断 不可恢复命令标准
			}
		}
		else if(Commd_Flag==DAGN02)//根据命令值进行关闭相应的灯
		{
			switch(R_buf)
			{
				case '1':pwmLed01=6;Commd_Flag=INIT;break;	//打开相应的灯 并恢复命令标志
				case '2':pwmLed02=6;Commd_Flag=INIT;break;			
				case '3':pwmLed03=6;Commd_Flag=INIT;break;			
				case '4':pwmLed04=6;Commd_Flag=INIT;break;			
				case '5':pwmLed05=6;Commd_Flag=INIT;break;	
				case '6':pwmLed06=6;Commd_Flag=INIT;break;			
				case '7':pwmLed07=6;Commd_Flag=INIT;break;			
				case '8':pwmLed08=6;Commd_Flag=INIT;break;				
				default:break;						 //此处错误判断 不可恢复命令标准
			}
		}
		else if(Commd_Flag==DAGN03)//根据命令值进行关闭相应的灯
		{
			switch(R_buf)
			{
				case '1':pwmLed01=9;Commd_Flag=INIT;break;	//打开相应的灯 并恢复命令标志
				case '2':pwmLed02=9;Commd_Flag=INIT;break;			
				case '3':pwmLed03=9;Commd_Flag=INIT;break;			
				case '4':pwmLed04=9;Commd_Flag=INIT;break;			
				case '5':pwmLed05=9;Commd_Flag=INIT;break;	
				case '6':pwmLed06=9;Commd_Flag=INIT;break;			
				case '7':pwmLed07=9;Commd_Flag=INIT;break;			
				case '8':pwmLed08=9;Commd_Flag=INIT;break;				
				default:break;						 //此处错误判断 不可恢复命令标准
			}
		}

		SBUF=R_buf;				   //返回接收到的数据
	}
	if(TI)  //如果是发送标志位,清零
	TI=0;
} 

到了这里,关于毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2024年02月07日
    浏览(52)
  • 毕业设计 基于51单片机的汽车倒车防撞报警系统 (源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月09日
    浏览(54)
  • 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机

    功能介绍: 1.输出 正弦波、矩形波、三角波、锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波、矩形波、三角波、锯齿波 ;波形也可以修改频率,频率范围为50Hz~0.1Hz。并且可

    2024年02月09日
    浏览(48)
  • 【毕业设计】基于超声波智能跟随小车 - 单片机 物联网 stm32 c51

    自动跟随小车系统由两部分组成:跟随小车和移动目标携带装置。 工作原理:跟随小车系统通过无线通信模块发送寻找信号,同时超声波接收器开始计时,如果移动目标接收到无线寻找信号,则立即发送超声波信号。这样小车的三角超声波接收器陆续收到超声波信号,CPU通过

    2023年04月08日
    浏览(54)
  • 【毕业设计】6-基于51单片机的电子称重装置/电子测温/压力测试控制系统设计(原理图+源码+仿真工程+论文+PPT)

    包含此题目毕业设计全套资料: 原理图工程文件 工程源代码工程文件 仿真工程文件 论文(低重复率), 21533字 原理图截图 仿真截图 主要研究内容: 设计一个基于51单片机的电子称重装置,该装置主要由51单片机、传感器、A/D转换器、电源、键盘、LCD、LED显示器等实验器材

    2024年02月03日
    浏览(55)
  • 毕业设计 基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2023年04月08日
    浏览(51)
  • 【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)

    主要研究内容: 掌握电子密码锁的原理、构造、以及运用51单片机设计出一款简易密码锁,实现相应的一些要求;掌握并且实际运用所学知识,将书中知识转化为实际能力;对密码锁的应用和未来的发展进行分析。 研究方法: 通过相关的书籍和网上资料,查阅相关资料,收集有

    2024年02月05日
    浏览(55)
  • 毕业设计 单片机推箱子游戏(AT89C51)

    一、电路设计 此电路由AT89C51最小系统、LCD12864显示模块、74LS08芯片和四个独立按键组成。 LCD12864显示模块 带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置

    2024年02月21日
    浏览(53)
  • 基于单片机的毕业设计推荐

    ** ** 1、基于51单片机的多功能门禁系统(低端、功能限制较大)。 2、基于单片机的多功能实时时钟。 3、基于单片机的音乐播放器。 4、基于STM32单片机的多功能门禁系统(高端、没有限制)。 5、基于单片机的智能窗帘系统。 6、基于单片机的智能灯光系统。 7、基于单片机

    2024年02月06日
    浏览(52)
  • 【单片机毕业设计】【mcuclub-jj-011】基于单片机的加湿器的设计

    项目名:加湿器 项目编号:mcuclub-jj-011 单片机类型:STC89C52 具体功能: 1、通过DHT11获取湿度值,当湿度值低于设置最小值,则启动加湿器加湿,大于设置最大值,则停止加湿 2、通过液位检测模块检测加湿器中是否还有水,如果没有,则自动停止加湿、声光提醒 3、通过按键

    2023年04月17日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包