姑苏区网站建设西湖区商城网站建设
2026/6/9 7:14:02 网站建设 项目流程
姑苏区网站建设,西湖区商城网站建设,做网站要用多少钱,黄石建设信息网站基于51单片机的蓝牙智能台灯设计 #xff08;程序#xff0b;原理图#xff0b;设计报告#xff09; 功能介绍 具体功能#xff1a; 1、当人靠近时#xff0c;灯亮起#xff0c;如果人靠得太近#xff0c;蜂鸣器会发出警报#xff0c;一段时间后如果没有人#xff…基于51单片机的蓝牙智能台灯设计程序原理图设计报告功能介绍具体功能1、当人靠近时灯亮起如果人靠得太近蜂鸣器会发出警报一段时间后如果没有人灯会自动熄灭2、当人离开时灯会熄灭3、通过手机蓝牙可以控制灯的开关和亮度。发送“1”、“2”命令可以使灯在“较亮”、“很亮”之间切换发送“C”命令可以让灯灭掉。​演示视频基于51单片机的蓝牙智能台灯设计#include sysdefine.h //#include string.h #define LOW 1 #define HIGH 3 #define PWM_XZ HIGH unsigned long times_20ms0; unsigned char pwm_valHIGH; unsigned long times_pwm0; unsigned int HotW_numC0; unsigned int HotW_numO0; unsigned char Led_crlFALSE; unsigned int Juli_num0; unsigned char JuLi1_crlFALSE; extern bit ack; void main (void) { unsigned char num0; Init_Timer0(); //定时器0初始化 UART_Init(); DelayMs(50); //延时有助于稳定 SendStr_U(system start!\r\n,15); Deng_led1; while(1) //主循环 { if(HotW_key1) { DelayMs(20); if(HotW_key1) { HotW_numC0; HotW_numO; if(HotW_numO80)//2S时间 有人 { numReadADC(0); //读取AD检测到的 光敏地值 if(num210) {} else { Led_crlFALSE; } HotW_numO0; } } } else if(HotW_key0) { HotW_numO0; HotW_numC; DelayMs(2); if(HotW_numC800)//2S { HotW_numC0; Led_crlFALSE; } } if(JuLi1_key0) { DelayMs(20); if(JuLi1_key0) { Juli_num; if(Juli_num50) //1s { buzzer0; if(Juli_num450) //10S { JuLi1_crlTRUE; } } } } else { JuLi1_crlFALSE; buzzer1; Juli_num0; } } } void Init_Timer0(void) { TMOD | 0x01; //使用模式116位定时器使用|符号可以在使用多个定时器时不受影响 TH0(65536-10000)/256; //重新赋值 20ms TL0(65536-10000)%256; EA1; //总中断打开 ET01; //定时器中断打开 TR01; //定时器开关打开 } 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; //打开串口中断 } void SendByte_U(unsigned char dat) { unsigned char time_out; time_out0x00; SBUF dat; while((!TI)(time_out10)) {time_out;DelayMs(1);} TI 0; } void SendStr_U(unsigned char *s,unsigned char length) { unsigned char NUM; NUM0x00; while(NUMlength) { SendByte_U(*s); s; NUM; } } void Timer0_isr(void) interrupt 1 { TH0(65536-5000)/256; //重新赋值 10ms TL0(65536-5000)%256; times_20ms; if(times_20ms0xfffffffe) { times_20ms0; } times_pwm; if((Led_crlTRUE)(JuLi1_crlFALSE)) { if(times_pwmpwm_val) { Deng_led0; if(times_pwmPWM_XZ) { times_pwm0; } } else if((times_pwmpwm_val)(times_pwmPWM_XZ)) { Deng_led1; if(times_pwmPWM_XZ) { times_pwm0; } } else { Deng_led1; times_pwm0; } } else { Deng_led1; times_pwm0; } } void UART_SER (void) interrupt 4 //串行中断服务程序 { unsigned char R_buf; if(RI) //判断是接收中断产生 { RI0; //标志位清零 R_bufSBUF; if(SBUF1) { pwm_valLOW; } else if(SBUF2) { pwm_valHIGH; } else if(SBUFC) { pwm_val0; } } if(TI) //如果是发送标志位清零 TI0; } /*------------------------------------------------ 读AD转值程序 输入参数 Chl 表示需要转换的通道范围从0-3 返回值范围0-255 ------------------------------------------------*/ unsigned char ReadADC(unsigned char Chl) { unsigned char Val; Start_I2c(); //启动总线 SendByte(AddWr); //发送器件地址 if(ack0)return(0); SendByte(0x40|Chl); //发送器件子地址 if(ack0)return(0); Start_I2c(); SendByte(AddWr1); if(ack0)return(0); ValRcvByte(); NoAck_I2c(); //发送非应位 Stop_I2c(); //结束总线 return(Val); }硬件设计使用元器件单片机STC89C52注意单片机是通用的无论51还是52、无论stc还是at都一样引脚功能都一样。程序也是一样的。硬件设计模块1、传感器及信号处理部分它用于检测人体辐射红外信号和光强信号然后将它们处理成数字信号以便后续处理。2、51单片机组成的中央处理单元它可以处理传感器传来的数字信号并根据这些信号发出控制命令。3、输出提醒电路及电源控制电路它可以发出提醒信号并根据89C51发出的命令来控制灯光等设备的开关。工作过程系统使用光敏电阻检测光强度并将其转换为数字信号通过单片机89C51处理信号并发出控制命令。当环境光强度较强时光敏电阻阻值较小信号处理电路检测到低电平信号禁止热释电红外传感器工作。当光强度较弱时光敏电阻阻值变大信号处理电路接收到高电平启动热释电红外传感器工作。传感器1可以探测到较远的距离当人体进入传感器1的控测范围内且光强度较弱时信号检测电路处理信号并向单片机发送中断信号触发灯光控制电路使灯慢慢变亮。当人体过于靠近桌面且在热释电红外传感器2的控测范围内时热释电红外传感器2检测到信号同时在传感器1的控测范围内信号处理电路向89C51发送信号触发警报以使人离开若在设定的时间内未离开桌面则灯光逐渐熄灭。当人体离开热释电红外传感器2的控测范围且在热释电红外传感器1的控测范围内时灯光又慢慢变亮。结构图设计资料01 原理图本系统原理图采用Altium Designer19设计具体如图02 程序本设计使用软件keil5版本编程设计资料中有软件安装教程无需担心具体如图03 设计报告七千字设计报告具体如下04 设计资料资料获取请关注同名公众号全部资料包括程序含注释、AD原理图、开题报告、参考论文、结构图、任务书等。具体内容如下全网最全! 资料获取请观看前面演示视频点赞分享一起学习成长。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询