• 方案介紹
    • 1. 主要功能:
    • 2. 講解視頻:
    • 3. 仿真
    • 4. 程序代碼
    • 5. 設(shè)計(jì)報(bào)告
    • 6. 原理圖
    • 7. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)校園作息時(shí)間控制打鈴系統(tǒng)( proteus仿真+程序+設(shè)計(jì)報(bào)告+原理圖+講解視頻)

01/05 08:51
3056
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

共1個(gè)文件

基于51單片機(jī)校園作息時(shí)間控制打鈴系統(tǒng)( proteus仿真+程序+設(shè)計(jì)報(bào)告+原理圖+講解視頻)

仿真圖proteus7.8及以上

程序編譯器:keil 4/keil 5

編程語言:C語言

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

1. 主要功能:

基于51單片機(jī)的校園作息時(shí)間控制系統(tǒng)

1、DS1302芯片計(jì)時(shí),通過數(shù)碼管顯示時(shí)、分、秒。設(shè)置當(dāng)前時(shí)間,蜂鳴器定時(shí)打鈴。

2、可以通過按鍵查看和修改24組定時(shí)打鈴時(shí)間,數(shù)據(jù)永久保存。

3、功能指示led亮的時(shí)候,顯示當(dāng)前時(shí)間,通過按鍵可以調(diào)整當(dāng)前時(shí)間。

led熄滅的時(shí)候,是設(shè)置鬧鐘狀態(tài),一共可以設(shè)置24組鬧鐘。通過按鍵可以調(diào)整鬧鐘時(shí)間。

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

img

以下為本設(shè)計(jì)資料展示圖:

2. 講解視頻:

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


基于51單片機(jī)校園作息打鈴詳細(xì)講解(proteus仿真+程序+報(bào)告+原理圖)

3. 仿真

打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。開始仿真后數(shù)碼管顯示當(dāng)前時(shí)間,指示燈亮紅燈。這個(gè)現(xiàn)實(shí)模式下可以通過按鍵調(diào)整當(dāng)前時(shí)間。

img

可以通過按鍵組+1進(jìn)入設(shè)置模式,顯示第一組,如果顯示第一組可以通過按鍵組-1退出設(shè)置。設(shè)置過程中指示燈不亮。可以通過小時(shí)加減和分鐘加減控制。

img

4. 程序代碼

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

//注意:當(dāng)前日期不能亂改,DS1302容易報(bào)錯(cuò)。 
#include <reg52.h>	         //調(diào)用單片機(jī)頭文件
#include <intrins.h>
#include <ds1302.h>
#include <delay.h>
#include <i2c.h>
#define uchar unsigned char  //無符號字符型 宏定義	變量范圍0~255
#define uint  unsigned int	 //無符號整型 宏定義	變量范圍0~65535

uchar code smgduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//顯示0~9,無小數(shù)點(diǎn)
uchar code smgduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//顯示0~9,有小數(shù)點(diǎn)
uchar limit[48];
//P2為位選口
sbit sm1 =P2^0;//段選口
sbit sm2 =P2^1;
sbit sm3 =P2^2;
sbit sm4 =P2^3;
sbit sm5 =P2^4;
sbit sm6 =P2^5;
sbit led=P1^6;//指示燈
//按鈕
sbit key1=P3^3;//組-1
sbit key2=P3^4;//時(shí)+
sbit key3=P3^5;//時(shí)-
sbit key4=P3^6;//分+
sbit key5=P3^7;//分-
sbit key6=P3^2;//組+1

sbit beep=P1^7;//蜂鳴器
//變量定義
uchar num=0;//組號
uchar flag=1;
//顯示
void xianshi()
{
	sm6=0;P0=smgduan0[(num)/10];sm1=1;delay_1ms(1);
	sm1=0;P0=smgduan1[(num)%10];sm2=1;delay_1ms(1);
	sm2=0;P0=smgduan0[limit[2*(num-1)]/10];sm3=1;delay_1ms(1);
	sm3=0;P0=smgduan1[limit[2*(num-1)]%10];sm4=1;delay_1ms(1);
	sm4=0;P0=smgduan0[limit[2*(num-1)+1]/10];sm5=1;delay_1ms(1);
	sm5=0;P0=smgduan0[limit[2*(num-1)+1]%10];sm6=1;delay_1ms(1);
}		
void xian()//顯示當(dāng)前時(shí)間
{
	sm6=0;P0=smgduan0[TIME[2]>>4];sm1=1;delay_1ms(1);
	sm1=0;P0=smgduan1[TIME[2]& 0x0f];sm2=1;delay_1ms(1);
	sm2=0;P0=smgduan0[TIME[1]>>4];sm3=1;delay_1ms(1);
	sm3=0;P0=smgduan1[TIME[1]& 0x0f];sm4=1;delay_1ms(1);
	sm4=0;P0=smgduan0[TIME[0]>>4];sm5=1;delay_1ms(1);
	sm5=0;P0=smgduan0[TIME[0]& 0x0f];sm6=1;delay_1ms(1);
}
//初始化讀取定時(shí)值
void init_read()
{
	uchar i,j,k;
	k=0;
	for(j=0;j<48;j=j+2)
	{
	i=At24c02Read(j);
		if(i<24)
			limit[j]=i;
		else
			limit[j]=k;
	i=At24c02Read(j+1);
		if(i<60)
			limit[j+1]=i;
		else
			limit[j+1]=0;
	k++;
	}
}
//判斷時(shí)間,響鈴
void bell_if()
{
	uchar i,j,m,n;
	j=0;
	m=(TIME[2]>>4)*10+(TIME[2]&0X0F);
	n=(TIME[1]>>4)*10+(TIME[1]&0X0F);//讀取時(shí)間 
	for(i=0;i<47;i=i+2)
	{
		if((limit[i]==m)&&(limit[i+1]==n))//當(dāng)前時(shí)間 和 鬧鈴時(shí)間對比
			j++;
	}
	if(j>0)
	{
		if(TIME[0]<0X10)
			beep=0;
		else
			beep=1;
	}
	else
		beep=1;
}
//小時(shí)+1
void shi_jia()
{
	if(limit[2*(num-1)]<23)
		limit[2*(num-1)]++;
	else
		limit[2*(num-1)]=0;
	At24c02Write(2*(num-1),limit[2*(num-1)]);
}
//小時(shí)-1
void shi_jian()
{
	if(limit[2*(num-1)]>0)
		limit[2*(num-1)]--;
	else
		limit[2*(num-1)]=23;
	At24c02Write(2*(num-1),limit[2*(num-1)]);
}
//分鐘+1
void fen_jia()
{
	if(limit[2*(num-1)+1]<59)
		limit[2*(num-1)+1]++;
	else
		limit[2*(num-1)+1]=0;
	At24c02Write(2*(num-1)+1,limit[2*(num-1)+1]);
}
//分鐘-1
void fen_jian()
{
	if(limit[2*(num-1)+1]>0)
		limit[2*(num-1)+1]--;
	else
		limit[2*(num-1)+1]=59;
	At24c02Write(2*(num-1)+1,limit[2*(num-1)+1]);
}
/***************主函數(shù)*****************/
void main()
{
	uchar k=0,m=0;
	beep=1;
	init_read();//初始化
	Ds1302ReadTime();
	TIME[0]&=0X7F;
	Ds1302Init();
while(1)
	{
		led=!flag;//點(diǎn)亮指示燈
		if(!key6 &&(k!=6))//組號+1
		{
			k=6;
			flag=0;
			if(num<24)
				num++;
			else{
				num=0;
				flag=1;//顯示當(dāng)前時(shí)間
			}
		}
		if(!key1 &&(k!=1))//組號-1
		{
			k=1;
			if(num>1&&flag==0)
				num--;
			else
				{
				flag=1;//顯示當(dāng)前時(shí)間
				}
		}
		if(!key2 &&(k!=2))//時(shí)+1
		{
			k=2;
			if(led)
				shi_jia();
			else
			{
				m=(TIME[2]>>4)*10+(TIME[2]&0X0F);
				if(m<23)
					m++;
				else
					m=0;
				TIME[2]=(m/10<<4)+m%10;
				Ds1302Init();
			}
		}
		if(!key3 &&(k!=3))//時(shí)-1
		{
			k=3;
			if(led)
				shi_jian();
			else
			{
				m=(TIME[2]>>4)*10+(TIME[2]&0X0F);
				if(m>0)
					m--;
				else
					m=23;
				TIME[2]=(m/10<<4)+m%10;
				Ds1302Init();
			}
		}
		if(!key4 &&(k!=4))//分+1
		{
			if(led)
				fen_jia();
			else
			{
				m=(TIME[1]>>4)*10+(TIME[1]&0X0F);
				if(m<59)
					m++;
				else
					m=0;
				TIME[1]=(m/10<<4)+m%10;
				Ds1302Init();
			}
			k=4;
		}
		if(!key5 &&(k!=5))//分-1
		{
			if(led)
				fen_jian();
			else
			{
				m=(TIME[1]>>4)*10+(TIME[1]&0X0F);
				if(m>0)
					m--;
				else
					m=59;
				TIME[1]=(m/10<<4)+m%10;
				Ds1302Init();
			}
			k=5;
		}
		if(P3==0xff)
			k=0;
		Ds1302ReadTime();//讀取時(shí)間
		bell_if();//響鈴
		if(flag==0)
			xianshi();//顯示
		else
			xian();
	}完整代碼見文章下載鏈接壓縮
}

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

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

img

在當(dāng)今全球科技日新月異、創(chuàng)新浪潮洶涌澎湃的時(shí)代背景下,智能化校園管理這一概念已從理想藍(lán)圖逐漸轉(zhuǎn)化為現(xiàn)實(shí)應(yīng)用,日益凸顯其在提升教育質(zhì)量和行政效率方面不可替代的價(jià)值。它不僅反映了教育領(lǐng)域緊跟時(shí)代步伐、積極擁抱先進(jìn)技術(shù)的趨勢,更體現(xiàn)了教育工作者對構(gòu)建高效、有序、人性化校園環(huán)境的不懈追求。其中,對校園作息時(shí)間實(shí)施精準(zhǔn)控制,無疑是智能化管理體系中不可或缺的一環(huán),其重要性體現(xiàn)在多個(gè)維度。

首先,從維護(hù)教學(xué)秩序的角度來看,精準(zhǔn)的作息時(shí)間控制猶如一座無形的指揮塔,為全校師生提供了統(tǒng)一的時(shí)間坐標(biāo)系。無論是日常的課程安排、實(shí)驗(yàn)實(shí)訓(xùn),還是各類學(xué)術(shù)活動、社團(tuán)活動,都離不開對時(shí)間的嚴(yán)格遵循。精確到秒的上下課鈴聲、休息時(shí)段提示,確保了教學(xué)活動的連貫性與節(jié)奏感,避免了因時(shí)間錯(cuò)亂導(dǎo)致的教學(xué)中斷、資源浪費(fèi)和學(xué)生困惑,有利于形成良好的教學(xué)氛圍和學(xué)習(xí)習(xí)慣,保障教學(xué)活動的高效進(jìn)行。

6. 原理圖

原理圖使用AD繪制,可供實(shí)物參考,仿真不同于實(shí)物,經(jīng)驗(yàn)不足不要輕易搞實(shí)物。

img

Proteus仿真和實(shí)物作品的區(qū)別:

1.運(yùn)行環(huán)境:Proteus仿真是在計(jì)算機(jī)上運(yùn)行的,而實(shí)物則是在硬件電路板上運(yùn)行。

2.調(diào)試方式:在Proteus仿真中,可以方便地進(jìn)行單步調(diào)試和觀察變量值的變化,而在實(shí)物中則需要通過調(diào)試器或者串口輸出等方式進(jìn)行調(diào)試。

電路連接方式:在Proteus仿真中,可以通過軟件設(shè)置進(jìn)行電路連接的修改,而在實(shí)物中則需要通過硬件電路板和連接線進(jìn)行修改。

3.運(yùn)行速度:Proteus仿真通常比實(shí)物運(yùn)行速度快,因?yàn)榉抡媸腔谟?jì)算機(jī)運(yùn)行的,而實(shí)物則需要考慮電路板上的物理限制和器件的響應(yīng)時(shí)間等因素。

4.功能實(shí)現(xiàn):在Proteus仿真中,可以通過軟件設(shè)置實(shí)現(xiàn)不同的功能,而在實(shí)物中則需要根據(jù)電路設(shè)計(jì)和器件的性能進(jìn)行實(shí)現(xiàn)。

7. 設(shè)計(jì)資料內(nèi)容清單&&下載鏈接

資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。

0、常見使用問題及解決方法–必讀?。。。?/p>

1、程序

2、proteus仿真

3、功能要求

4、軟硬件流程圖

5、開題報(bào)告

6、設(shè)計(jì)報(bào)告

7、原理圖

8、元器件清單

9、講解視頻

Altium Designer 安裝破解

KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡易使用教程

單片機(jī)學(xué)習(xí)資料

相關(guān)數(shù)據(jù)手冊

答辯技巧

設(shè)計(jì)報(bào)告常用描述

鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url

img

資料下載鏈接:

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

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

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!