找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2284|回复: 5
收起左侧

基于51单片机的红外遥控调光灯

[复制链接]
ID:952172 发表于 2021-7-12 16:01 | 显示全部楼层 |阅读模式
做的单片机设计,分享给大家
代码参考了一下网上的资料加以改进。
原理图是用proteus画的,
实物图也在下面。
实现功能有
显示屏显示小灯泡亮度的数据;

实物图1

实物图1

实物图2

实物图2

仿真图

仿真图


单片机源程序如下:
  1. #include<reg51.h>
  2. #define TH0_TL0 (65536-1000)  
  3. unsigned char count0=100;       //低电平的占空比
  4. unsigned char count1=0;         //高电平的占空比
  5. unsigned char IrValue[2];
  6. sbit PWM=P1^0;               //PWM输出


  7. unsigned char Time_delay;

  8. /************函数声明**************/
  9. void Delay (unsigned char x);     //延时程序
  10. void Motor_LED(void);             //亮度
  11. void Timer0_init (void);          //定时器T0中断 ;若与红外程序建立,避免冲突,改为定时器中断T1

  12. /****************延时处理**********************/
  13. void Delay (unsigned char x)
  14. {
  15.   Time_delay=x;
  16.    while (Time_delay!=0);           //等待中断,PWM输出时间间隔
  17. }

  18. /*******按键处理加pwm占空比**********/
  19. void Motor_LED (void)
  20. {
  21.         if (IrValue[2]==0x16)    //按下"0"
  22. {
  23.         count0=20;
  24. }
  25. if(IrValue[2]==0x0c)     //按下"1"
  26. {
  27.         count0=50;
  28. }
  29. if(IrValue[2]==0x18)     //按下"2"
  30. {
  31.         count0=80;
  32. }
  33. }

  34. /***********定时器0初始化***********/
  35. void Timer0_init(void)
  36. {
  37.         TMOD=0x01;//定时器0工作于方式1
  38.         //TH0=TH0_TL0/256;
  39.         //TL0=TH0_TL0%256;
  40.         TR0=1;
  41.         ET0=1;
  42.         EA=1;
  43. }

  44. /*********主函数********************/
  45. void main(void)
  46. {
  47.         Timer0_init();
  48.         while(1)
  49. {
  50.          Motor_LED();
  51. }
  52. }
  53. /**************定时0中断处理******************/
  54. void Timer0_int(void) interrupt 1 using 1
  55. {
  56.         TR0=0;    //设置定时器初值期间,关闭定时器
  57.         //TL0=TH0_TL0%256;
  58.         //TH0=TH0_TL0/256;
  59.                 if(Time_delay!=0)  //延时函数用
  60. {
  61.          Time_delay--;
  62.          PWM=0;
  63.          if(++count1<count0)
  64.          {
  65.                  PWM=1;
  66.     }
  67.   else PWM=0;
  68.          if(count1>=100)
  69.   {
  70.     count1=0;
  71.    }
  72.   }
  73. }
复制代码

评分

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

查看全部评分

回复

使用道具 举报

ID:952172 发表于 2021-7-12 16:02 | 显示全部楼层
后续会上传原理图文件, 方便大家进行仿真。
回复

使用道具 举报

ID:229641 发表于 2021-7-13 07:55 来自手机 | 显示全部楼层
是缓慢变亮的启动方式吗?没有电路图啊
回复

使用道具 举报

ID:952172 发表于 2021-7-13 09:33 | 显示全部楼层
触景情伤 发表于 2021-7-13 07:55
是缓慢变亮的启动方式吗?没有电路图啊

对的 电路图后期上传
回复

使用道具 举报

ID:954807 发表于 2021-7-20 08:54 | 显示全部楼层
请问什么时候上传原理图文件  
回复

使用道具 举报

ID:607312 发表于 2021-9-7 09:22 | 显示全部楼层
解码部分方便上传一下吗,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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