加入星計(jì)劃,您可以享受以下權(quán)益:

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

基于普中51單片機(jī)開發(fā)板的電子門鈴設(shè)計(jì)( proteus仿真+程序+設(shè)計(jì)報告+講解視頻)

11/18 08:57
1578
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 1. 主要功能:
    • 2. 講解視頻:
    • 3. 仿真
    • 4. 程序代碼
    • 5. 設(shè)計(jì)報告
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于普中51單片機(jī)開發(fā)板的電子門鈴設(shè)計(jì)( proteus仿真+程序+設(shè)計(jì)報告+講解視頻)

仿真圖proteus8.15(有低版本)

程序編譯器:keil 4/keil 5

編程語言:C語言

設(shè)計(jì)編號:P17

1. 主要功能:

基于51單片機(jī)的電子門鈴設(shè)計(jì)

1、系統(tǒng)采用一個按鍵簡潔設(shè)計(jì),可以選擇門鈴聲;

2、門鈴聲音通過蜂鳴器播放,5種類型音樂,數(shù)碼管顯示當(dāng)前選擇的門鈴聲類型編號;

3、在正常模式下長按按鍵2秒以上,進(jìn)入門鈴聲類型選擇模式短按進(jìn)行類型選擇,再次長按按鍵退出選擇模式;

4、在正常模式下,短按一下,門鈴聲響一次,3秒內(nèi),短按5次,門鈴聲響1分鐘。

5、需要在Proteus軟件和普中51開發(fā)板實(shí)現(xiàn)功能驗(yàn)證。

(目前僅完全適配普中51-實(shí)驗(yàn)板234,其他普中開發(fā)板型號可能需要做代碼修改或額外接線)

img

需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號,內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。

資料下載鏈接:

P系列單片機(jī)設(shè)計(jì)下載鏈接(復(fù)制到瀏覽器打開)

https://docs.qq.com/doc/DS2pPenNRaHB6SlR1

2. 講解視頻:

講解視頻包含仿真運(yùn)行講解和代碼講解

img

3. 仿真

打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。開始仿真后數(shù)碼管顯示1,默認(rèn)按下門鈴鈴聲1響起。

img

可以通過長按按鍵再松手進(jìn)入鈴聲設(shè)置模式,指示燈點(diǎn)亮。進(jìn)入設(shè)置模式短按按鍵切換鈴聲1-鈴聲5,設(shè)置好之后再次長按退出設(shè)置模式,設(shè)置指示燈熄滅。

img

設(shè)置完短按按鍵播放對應(yīng)的鈴聲,短按一下,門鈴聲響一次,3秒內(nèi),短按5次,門鈴聲響1分鐘。

完整代碼見文章開頭下載鏈接
#define uchar unsigned char
#define uint unsigned int

//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0,mode=0;//系統(tǒng)變量
uchar num=1;//編號

uchar start=0,sec=0,shu=0;
uint miao=0;
//延時
void delay(uint i)
{
	while(i--);
}
//蜂鳴器門鈴鈴聲
void sound(uchar m)
{
	uint i=0,j=0;
	if(m==1)
	{
		for(i=0;i<2000;i++)//長響
		{
			beep=!beep;
			delay(110);
		}
		beep=1;
	}
	if(m==2)
	{
		for(i=0;i<500;i++)//0.5s響一次
		{
			beep=!beep;
			delay(110);
		}
		beep=1;
		for(i=0;i<500;i++)
		{
			delay(110);
		}
		for(i=0;i<500;i++)//0.5s響一次
		{
			beep=!beep;
			delay(110);
		}
		beep=1;
		for(i=0;i<500;i++)
		{
			delay(110);
		}
		beep=1;
	}
	if(m==3)
	{
		for(i=150;i>50;i--)//升頻率
		{
			for(j=0;j<5;j++)
			{
				beep=!beep;
				delay(i);
			}
		}
		beep=1;
		for(i=150;i>50;i--)//升頻率
		{
			for(j=0;j<5;j++)
			{
				beep=!beep;
				delay(i);
			}
		}
		beep=1;
	}
	if(m==4)//叮咚
	{
		for(i=0;i<200;i++)
		{
			beep=!beep;
			delay(70);
		}
		beep=1;
		for(i=0;i<500;i++)
		{
			delay(110);
		}
		beep=1;
		for(i=0;i<800;i++)
		{
			beep=!beep;
			delay(130);
		}
		beep=1;
	}
	if(m==5)//升降頻率
	{
		for(i=150;i>50;i--)//升頻率
		{
			for(j=0;j<5;j++)
			{
				beep=!beep;
				delay(i);
			}
		}
		for(i=50;i<150;i++)//降頻率
		{
			for(j=0;j<5;j++)
			{
				beep=!beep;
				delay(i);
			}
		}
	}
	if(m==6)//嘟嘟嘟
	{
		for(i=0;i<200;i++)
		{
			beep=!beep;
			delay(110);
		}
		beep=1;
		for(i=0;i<200;i++)
		{
			delay(110);
		}
		beep=1;
		for(i=0;i<200;i++)
		{
			beep=!beep;
			delay(110);
		}
		beep=1;
		for(i=0;i<200;i++)
		{
			delay(110);
		}
		beep=1;
		for(i=0;i<200;i++)
		{
			beep=!beep;
			delay(110);
		}
		beep=1;
		for(i=0;i<200;i++)
		{
			delay(110);
		}
		beep=1;
	}
}
//主函數(shù)
void main()
{
	P0=smgduan[1];
	//設(shè)置INT0
	IT0=1;//跳變沿出發(fā)方式(下降沿)
	EX0=1;//打開INT0的中斷允許。	
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打開定時器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時器
	while(1)
	{
		 if(mode==0){
		 	led=1;
		 }else{
			led=0;
		 }

		
		 if(miao==0){
			 if(!k1){
			 	 if(mode==0){
				 	start=1;//啟動計(jì)時
				 	shu++;
				 }
				 while(!k1);//等待按鍵松開
				 if(time==30){
				 	mode=!mode;//長按
				}else if(time>2){//短按
				 	if(mode==0)
						sound(num);//播放
					else{
						if(num<6)
							num++;
						else
							num=1;
						P0=smgduan[num];  //顯示數(shù)字
					}
				}
				 time=0;
			  }
		 }else {
		 	sound(num);//響1分鐘
		 }
	}
}
//定時器中斷
void Timer0() interrupt 1
{
	if(!k1 )//長按檢測
	{
		if(time<30)
			time++;
	}
	if(start==1)
	{
		if(sec<60)//3s
			sec++;
		else
		{
			sec=0;
			if(shu>4)//按5次
			{
				miao=1200;//60s
				start=0;
			}
			shu=0;
		}
	}
	if(miao>0)//1分鐘計(jì)時
		miao--;
	TH0=0X3C;
	TL0=0XB0;
}	 

4. 程序代碼

使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合視頻理解代碼含義。

img

5. 設(shè)計(jì)報告

6939字設(shè)計(jì)報告,內(nèi)容包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等

img

隨著現(xiàn)代智能化技術(shù)的迅速進(jìn)步和廣泛應(yīng)用,人們對于家居設(shè)備的功能拓展以及用戶體驗(yàn)的關(guān)注度日益提升。在當(dāng)今智能家居生態(tài)系統(tǒng)中,各種智能硬件產(chǎn)品不僅需要具備基礎(chǔ)功能,更需要滿足用戶個性化、便捷化的需求,從而創(chuàng)造更加舒適、愉快的生活空間。本課程設(shè)計(jì)項(xiàng)目正是順應(yīng)這一發(fā)展趨勢,將經(jīng)典的51系列單片機(jī)作為核心控制單元,巧妙地結(jié)合了數(shù)碼管顯示技術(shù)和蜂鳴器發(fā)聲元件,旨在研發(fā)一款擁有音樂選擇功能的智能門鈴系統(tǒng)。

這款電子門鈴的設(shè)計(jì)理念注重簡潔與易用性,力求讓每一位用戶都能夠輕松上手并享受到個性化定制的樂趣。系統(tǒng)內(nèi)預(yù)置了多種風(fēng)格各異的門鈴音效,用戶可以根據(jù)個人喜好通過按鍵操作在五種不同的音樂類型之間切換,而當(dāng)前所選的音樂類型編號會實(shí)時清晰地顯示在數(shù)碼管上,增強(qiáng)了交互界面的直觀性和友好性。

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

相關(guān)推薦

電子產(chǎn)業(yè)圖譜