找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5119|回复: 2
收起左侧

自制遥控电扇

[复制链接]
ID:292103 发表于 2018-6-5 11:21 | 显示全部楼层 |阅读模式
     以前买了个遥控模块放了很久,现在把它拿出来做个遥控电扇,嘻嘻!但是测了一下,这个模块在单片机上四个控制端始终显示高电平,单片机引脚无法在低电平时进行判断,无奈只能选择了循环显示的程序。本人觉得还行,按一下,低档,按一下,二档,再按一下,高档,最后按一下关掉!大侠勿喷哦!

制作出来实物图如下:
IMG_20180605_102733.jpg IMG_20180605_102817.jpg IMG_20180605_102855.jpg IMG_20180605_103232.jpg

单片机源程序如下:
  1. /********************************************************************
  2. *********************************************************************/
  3. #include<reg52.h>                 //库文件
  4. #define uchar unsigned char//宏定义无符号字符型
  5. #define uint unsigned int  //宏定义无符号整型
  6. /********************************************************************
  7.                             初始定义
  8. *********************************************************************/
  9. uchar count;   //按键计数,每按一下,count 加1
  10. uchar a,b;           //定义字符型变量
  11. uchar temp;    //定义字符型变量
  12. sbit BY1=P3^4; //定义按键的输入端(为单片机P2口的P2.1按键)
  13. //sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;sbit P15=P1^5;sbit P16=P1^6;
  14. /********************************************************************
  15.                             延时函数
  16. *********************************************************************/
  17. void delay10ms(void) //延时程序
  18. {
  19. uchar i,j;
  20. for(i=20;i>0;i--)
  21. for(j=248;j>0;j--);
  22. }
  23. /********************************************************************
  24.                            按键判断函数
  25. *********************************************************************/
  26. void key() //按键判断程序
  27. {
  28.         if(BY1==0) //判断是否按下键盘
  29.         {
  30.                 delay10ms(); //延时,软件去干扰
  31.                 if(BY1==0) //确认按键按下
  32.                 {
  33.                         count++; //按键计数加1
  34.                         if(count==4) //计8次重新计数
  35.                         {
  36.                                 count=0;//将count 清零
  37.                         }
  38.                 }
  39.         while(BY1==0);//按键锁定,每按一次count 只加1.
  40.         }
  41. }



  42. /********************************************************************
  43.                             主函数
  44. *********************************************************************/
  45. void main()
  46. {
  47.         temp=0xfe; //定义为11111110
  48.         while(1)
  49.         {
  50.                 key(); //调用按键判断函数
  51.        
  52.                 a=temp<<count;//左移count位
  53.                 b=temp>>(8-count);//右移8-count位
  54.                 P1=a|b;        //求值 P10=
  55. //        if(P14==0){P10=1;P11=1;P12=1;P13=1;}
  56.         }
  57. }
  58.        
  59. /********************************************************************
  60.                               结束
  61. *********************************************************************/
复制代码

所有资料51hei提供下载:
遥控电扇.zip (69.26 KB, 下载次数: 37)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:344633 发表于 2018-6-8 17:10 | 显示全部楼层
哎呀我去你直接买一个互锁的四路遥控器多好啊,直接都解决了。
不过你这个单片机玩的不错,有时候四路改变一下还是挺好的
回复

使用道具 举报

ID:269211 发表于 2018-7-1 14:56 | 显示全部楼层
这个貌似复杂了,不用单片机也可以的,弄个互锁的2272,然后接几个高电平触发的继电器就可以了。也是可以实现遥控电扇的,这是个人的意见,仅供参考。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表