标题:
想要实现随外界环境改变台灯亮度,单片机代码该如何改?
[打印本页]
作者:
过过过儿
时间:
2019-1-4 23:24
标题:
想要实现随外界环境改变台灯亮度,单片机代码该如何改?
主控芯片STC89C51,然后用ADC0832进行信息采集,但后面不知道该怎么做?想要根据外界光的强度把灯分成亮 一般亮 灭,这是代码,不知道该怎么弄
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define delay4us() {_nop_();_nop_();_nop_();_nop_();}
sbit CS = P1^0;
sbit CLK = P1^1;
sbit DIO = P1^2;
sbit PWM = P1^4;
void DelayMS(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
uchar Get_AD_Result()
{
uchar i,dat1=0,dat2=0;
CS = 0;
CLK = 0;
DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1;DIO = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
for(i=0;i<8;i++)
{
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
dat1 = dat1 << 1 | DIO;
}
for(i=0;i<8;i++)
{
dat2 = dat2 << ((uchar)(DIO)<<i);
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
}
CS = 1;
return (dat1 == dat2) ? dat1:0;
}
void main()
{
while(1)
{
PWM = Get_AD_Result()*/255;
}
}
作者:
yousunny
时间:
2019-1-5 20:44
给你思路:
当检测到环境变暗,就增到输出的占空比。从而实现亮度的增加
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1