设计分享 | 您所在的位置:网站首页 › 51单片机控制直流电机实验报告 › 设计分享 |
vx【嵌入式工程师成长日记】
https://mp.weixin.qq.com/s?__biz=Mzg4Mzc3NDUxOQ==&mid=2247484124&idx=1&sn=9fcf9eb8581b2190cc84bfeeb6ef32e3&chksm=cf430784f8348e926c10f95cbb0a4b211f5d45f5c5aac3ff5069849e7cf6c5e5e122c3e61efa&token=736795465&lang=zh_CN#rd
具体功能实现 初始时,数码管上显示0,此时电机不转动;当按下红外遥控上的“1”时,数码管显示1,电机的转速加快;一共分为三个挡位,每升高一个挡位,数码管都会显示对应的挡位数字同时提高电机的转速。 器件:AT89C52,8位数码管,红外遥控器,步进电机,扇叶,74HC138译码器,HS0038红外接收探头 HS0038是一款红外接收探头,接收红外信号频率为38kHz,周期约26μs 红外遥控红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标准 红外基本发送与接收空闲状态:红外LED不亮,接收头输出高电平 发送低电平:红外LED以38KHz频率闪烁发光,接收头输出低电平 发送高电平:红外LED不亮,接收头输出高电平 红外NEC协议编码说明空闲状态(state=0)代码: if(IR_State==0) //状态0,空闲状态 { Timer0_SetCounter(0); //定时计数器清0 Timer0_Run(1); //定时器启动 IR_State=1; //置状态为1 } 开始状态(state=1)代码: if(IR_Time>12442-500 && IR_Time IR_RepeatFlag=1; //置收到连发帧标志位为1 Timer0_Run(0); //定时器停止 IR_State=0; //置状态为0 } 接收存储数据代码: //如果计时为1120us,则接收到了数据0 if(IR_Time>1032-500 && IR_Time IR_Data[IR_pData/8]|=(0x01 IR_Address=IR_Data[0]; //转存数据 IR_Command=IR_Data[2]; IR_DataFlag=1; //置收到连发帧标志位为1 } Timer0_Run(0); //定时器停止 IR_State=0; //置状态为0 } |
CopyRight 2018-2019 实验室设备网 版权所有 |