跪求用光敏电阻和单片机根据亮度控制灯的开关程序

2024-11-17 01:56:35
推荐回答(1个)
回答(1):

  哦?偶试试
  传感器使用一个LM358运放和光敏电阻组成。运放接两个电位器。可以调节感应程度的。两个运放的输出端接到单片机除P0口的任意口线。在程序中检测运放的输出状态。有光的时候,两个运放都是输出为高电平。这时候,单片机继续等待。光线强度下降的时候,其中一个运放就会输出低电平了。这时,单片机检测到后就会打开其中一个灯。当光线强度继续下降,这时,两个运放就会都输出低电平。这时,单片机检测到都为低电平的时候,打开两个灯就可以啦。到了快天亮的时候,光线强度上升。这时候,其中一个运放又会输出高电平,单片机就会关闭其中一个灯了。天完全亮后,关闭所有的灯。
  硬件连接:P1.0口接第一个运放的输出端。P1.1口接第二个运放的输出端。P2.0口接第一个控制继电器的三极管,P2.1口接第二个控制继电器的三极管。输出为低电平有效。
  实现功能:白天的时候,继电器都释放。光线下降后,其中一个继电器吸合。光线很弱的时候,两个继电器都吸合。循环。
  偶使用了最笨的法子,蹲点守候!嘿嘿嘿 程序中引入延时判断,防止误触发。
  org 0
  ajmp start
  org 30h
  start:mov a,p1
  cjne a,#0feh,next
  lcall dely
  mov a,p1
  cjne a,#0feh,next
  clr p2.0
  ajmp start
  next: cjne a,#0fch,next1
  lcall dely
  mov a,p1
  cjne a,#0fch,next1
  clr p2.0
  clr p2.1
  ajmp start
  next1:cjne a,#0ffh,start
  lcall dely
  mov a,p1
  cjne a,#0ffh,start
  setb p2.0
  setb p2.1
  ajmp start
  dely: mov r7,#100
  dl1: mov r6,#100
  dl2: mov r5,#50
  djnz r5,$
  djnz r6,dl2
  djnz r7,dl1
  ret
  end
  程序不好用就找偶!