加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機的臺燈【亮度,手自動,人體檢測,定時】(仿真)

12/11 08:47
1192
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
  • 相關文件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

智能臺燈:

1、系統(tǒng)具有自動模式和手動模式。

2、自動模式:傳感器檢測到有人時,根據環(huán)境亮度控制臺燈的亮度(PWM控制)。

3、手動模式:可手動控制啟停。

4、具有定時關閉功能,定時時間可調。

sbit smg3=P2^2;

//--定義使用的IO口--// P1數據口
sbit adc0808_start=P2^6;
sbit adc0808_eoc  =P2^5;
sbit adc0808_oe	  =P2^4;

sbit led=P3^6;//led
sbit ir_in=P3^7;

sbit k1=P3^0;//按鈕
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit k5=P3^4;
sbit k6=P3^5;

sbit beep=P2^3;//蜂鳴器
sbit out=P2^7;//臺燈

//數碼管編碼
uchar code smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar time=0,mode=0;//系統(tǒng)變量
uchar miao=0,fen=1,set=1;//時間
uchar light=0;//光照
uchar start=0;//啟停
uchar pwm=0;//亮度
uchar beep_time=0;//蜂鳴器計時
//延時
void delay(uint i)
{
	while(i--);
}

uchar adc0808_read()//讀取
{
	uchar i;
		_nop_();
		adc0808_start=1;//啟動轉換
		_nop_();
		adc0808_start=0;
		while(!adc0808_eoc)//等待轉換結束
		{
		}
		adc0808_oe=1;//讀取
		_nop_();
		i=P1;
		adc0808_oe=0;
		return i;
}

//主函數
void main()
{
	uchar k=0,i=0;
	uint j=0;
	adc0808_start=0;
	adc0808_oe=0;

	TMOD|=0X01;//初始化定時器
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打開定時器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時器
	while(1)
	{
		//顯示時間
		if(start==1)//啟動模式
		{
		P0=0XFF;
		smg3=0;smg2=0;smg1=0;
		P0=smgduan[fen/10];
		delay(100);

		P0=0XFF;
		smg3=0;smg2=0;smg1=1;
		P0=smgduan[fen%10]+0x80;
		delay(100);
		
		P0=0XFF;
		smg3=0;smg2=1;smg1=0;
		P0=smgduan[miao/10];
		delay(100);
		
		P0=0XFF;
		smg3=0;smg2=1;smg1=1;
		P0=smgduan[miao%10];
		delay(100);
		}
		else //停止模式
		{
		P0=0XFF;
		smg3=0;smg2=0;smg1=0;
		P0=smgduan[set/10];
		delay(100);

		P0=0XFF;
		smg3=0;smg2=0;smg1=1;
		P0=smgduan[set%10]+0x80;
		delay(100);
		
		P0=0XFF;
		smg3=0;smg2=1;smg1=0;
		P0=smgduan[0];
		delay(100);
		
		P0=0XFF;
		smg3=0;smg2=1;smg1=1;
		P0=smgduan[0];
		delay(100);
		}		

		//顯示光照
		P0=0XFF;
		smg3=1;smg2=0;smg1=0;
		P0=smgduan[light/10];
		delay(100);

		P0=0XFF;
		smg3=1;smg2=0;smg1=1;
		P0=smgduan[light%10];
		delay(100);
		//啟停指示
		if(start)
		{
		P0=0XFF;
		smg3=1;smg2=1;smg1=0;
		P0=0xbf;
		delay(100);
		}
		//顯示亮度
		P0=0XFF;
		smg3=1;smg2=1;smg1=1;
		P0=smgduan[pwm];
		delay(100);

		if(!k1 &&(k!=1) &&(start==0))//啟動
		{
			k=1;
			start=1;
			fen=set;
			miao=0;
		}
		if(!k2 &&(k!=2))//停止
		{
			k=2;
			start=0;
		}
		if(!k3 &&(k!=3))//手動,自動
		{
			k=3;
			mode=!mode;
		}
		if(start==0)
		{
		if(!k4 &&(k!=4))//時間加
		{
			k=4;
			if(set<99)
				set++;
		}
		if(!k5 &&(k!=5))//時間減
		{
			k=5;
			if(set>1)
				set--;
		}
		}
		if(mode==1)
		{
		if(!k6 &&(k!=6))//亮度切換
		{
			k=6;
			if(pwm<9)
				pwm++;
			else
				pwm=1;
		}
		}
		if(k1 && k2 && k3 && k4 && k5 && k6)
			k=0;

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx

相關推薦

電子產業(yè)圖譜