#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++) ; }

基于51单片机的楼道照明灯光自动控制程序

原文地址: https://www.cveoy.top/t/topic/mXMr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录