欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

51单片机 Proteus仿真 智能台灯 调色光 倒计时 光强感应 光敏电阻

程序员文章站 2022-03-07 20:05:13
自动模式下,根据环境光强来调节PWM占空比,让小灯亮度改变。手动模式下,可以自己设置红灯暖光灯的PWM占空比,使得暖色调改变。手动模式下,可以自己设置黄灯冷光灯的PWM占空比,使得冷色调改变。任意模式下,都可以修改为倒计时模式,倒计时结束后,两小灯都关闭。设置倒计时后,倒计时结束那么PWM占空比为0,小灯都关闭。自动模式:倒计时结束:程序逻辑:读取ADC0832光敏电阻:/************端口定义********************/sbitCS= P1 ^ 0;...

自动模式下,根据环境光强来调节PWM占空比,让小灯亮度改变。
手动模式下,可以自己设置红灯暖光灯的PWM占空比,使得暖色调改变。
手动模式下,可以自己设置黄灯冷光灯的PWM占空比,使得冷色调改变。
任意模式下,都可以修改为倒计时模式,倒计时结束后,两小灯都关闭。
设置倒计时后,倒计时结束那么PWM占空比为0,小灯都关闭。

自动模式:
51单片机 Proteus仿真 智能台灯 调色光 倒计时 光强感应 光敏电阻
倒计时结束:
51单片机 Proteus仿真 智能台灯 调色光 倒计时 光强感应 光敏电阻
程序逻辑:
51单片机 Proteus仿真 智能台灯 调色光 倒计时 光强感应 光敏电阻
读取ADC0832光敏电阻:
51单片机 Proteus仿真 智能台灯 调色光 倒计时 光强感应 光敏电阻

/************端口定义********************/
sbit	CS	= P1 ^ 0;       /* ADC0832片选 */
sbit	CLK	= P1 ^ 1;       /* ADC0832时钟 */
sbit	DIO	= P1 ^ 2;       /* ADC0832输入输出 */

/*****************************************/
/********ADC0832的A/D转换程序************************/
unsigned char Get_AD_Result( unsigned char ch )
{
	unsigned char i, dat1 = 0, dat2 = 0;

	CS	= 0; _nop_(); _nop_();          /* 片选使能,低电平有效 */
	CLK	= 0; _nop_(); _nop_();          /* 芯片时钟输入 */
	DIO	= 1; _nop_(); _nop_();
	CLK	= 1; _nop_(); _nop_();
	/*
	 * 第1个下降沿之前,设DI=1/0
	 * 择单端/差分(SGL/DIF)模式中的单端输入模式
	 */
	CLK	= 0; DIO = 1; _nop_(); _nop_();
	CLK	= 1;         _nop_(); _nop_();
	/* 第2个下降沿之前,设置DI=0/1,选择CHO/CH1 */

	CLK = 0;

	if ( ch == 0 )
		DIO = 0;        /* 通道0 内部电压测试 */
	else DIO = 1;           /* 通道1 */

	_nop_(); _nop_();

	CLK = 1;   _nop_(); _nop_();
	/* 第3个下降沿之前,设置DI=1 */
	CLK = 0; DIO = 1; _nop_(); _nop_();
	/* 第4-11个下降沿读数据(MSB->LSB) */
	for ( i = 0; i < 8; i++ )
	{
		CLK	= 1; _nop_(); _nop_();
		CLK	= 0; _nop_(); _nop_();
		dat1	= dat1 << 1 | DIO;
	}
	/* 第11-18个下降沿读数据(LSB->MSB) */
	for ( i = 0; i < 8; i++ )
	{
		CLK	= 1; _nop_(); _nop_();
		CLK	= 0; _nop_(); _nop_();
		dat2	= dat2 << ( (unsigned char) (DIO) << i);
	}
	CS = 1; /* 取消片选一个周期结束 */
	/* 如果MSB->LSB和LSB->MSB读取的结果相同,则返回读取的结果,否则返回0 */
	return(dat1);
/*	return (dat1 == dat2) ? dat1:0;//取消校验 */
}

本文地址:https://blog.csdn.net/x1131230123/article/details/107266367