找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3631|回復: 6
收起左側

基于51單片機的紅外遙控調光燈

[復制鏈接]
ID:952172 發(fā)表于 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:1126743 發(fā)表于 2024-6-24 14:00 | 顯示全部樓層
仿真太模糊了,看不清
回復

使用道具 舉報

ID:607312 發(fā)表于 2021-9-7 09:22 | 顯示全部樓層
解碼部分方便上傳一下嗎,謝謝
回復

使用道具 舉報

ID:954807 發(fā)表于 2021-7-20 08:54 | 顯示全部樓層
請問什么時候上傳原理圖文件  
回復

使用道具 舉報

ID:952172 發(fā)表于 2021-7-13 09:33 | 顯示全部樓層
觸景情傷 發(fā)表于 2021-7-13 07:55
是緩慢變亮的啟動方式嗎?沒有電路圖啊

對的 電路圖后期上傳
回復

使用道具 舉報

ID:229641 發(fā)表于 2021-7-13 07:55 來自觸屏版 | 顯示全部樓層
是緩慢變亮的啟動方式嗎?沒有電路圖啊
回復

使用道具 舉報

ID:952172 發(fā)表于 2021-7-12 16:02 | 顯示全部樓層
后續(xù)會上傳原理圖文件, 方便大家進行仿真。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表