基于51单片机的楼道照明灯光自动控制程序
#include <reg51.h>
sbit led = P2^0; // 定义led引脚
void main() { unsigned int adc;
while (1)
{
ADC_conver(&adc); // 读取光线传感器的电压值
if (adc > 1024) // 如果光线强度较强
{
led = 0; // 灯光暗
Delay(10); // 延时10ms
}
else // 如果光线强度较弱
{
led = 1; // 灯光亮
Delay(10); // 延时10ms
}
}
}
void ADC_conver(unsigned int *adc) // 光线传感器电压转换函数 { unsigned char i;
ADC_CONTR = 0x80; // ADC启动
for (i=0; i<10; i++) ; // 延时
while (!(ADC_CONTR & 0x10)) ; // ADC转换结束
ADC_CONTR &= 0xEF; // 清除ADC转换结束标志
*adc = ADC_RES; // 获取ADC转换结果
}
void Delay(unsigned int t) // 延时函数 { unsigned int i,j; for (i=0; i<t; i++) for (j=0; j<120; j++) ; }
原文地址: https://www.cveoy.top/t/topic/mXMr 著作权归作者所有。请勿转载和采集!