仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設計編號:S0075
1. 主要功能:
基于51單片機的教室燈光自動控制系統(tǒng)
1、數(shù)碼管顯示當前工作強度,光照閾值和教室人數(shù);
2、設定值可以通過按鍵調(diào)整;
3、通過按鍵模擬紅外對射傳感器統(tǒng)計進出人數(shù);
4、教室內(nèi)是否開燈取決于光照強度,光照強度低于閾值(教室燈光暗)的時候開燈;
5、教室內(nèi)開燈的數(shù)量根據(jù)教室內(nèi)人數(shù)的多少設定,人數(shù)越多,開燈數(shù)量越多;
需注意仿真中51單片機芯片是兼容的,AT89C51,AT89C52是51單片機的具體型號,內(nèi)核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機芯片。
以下為本設計資料展示圖:
2. 講解視頻:
講解視頻包含仿真運行講解和代碼講解
基于51單片機教室燈光控制proteus仿真+程序+設計報告+原理圖+講解視頻
3. 仿真設計
打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。開始仿真后數(shù)碼管顯示當前光照強度,光照閾值,教室人數(shù),光照強度低于閾值即教室內(nèi)燈光暗,滿足開燈條件。此時教室人數(shù)0,即教室沒有人,所以不需要開燈。
通過點擊按鍵進教室完成教室人數(shù)的設置,從1開始,每多十個人多開一盞燈,最多開8盞燈。
如果光照強度大于閾值,說明自然光足夠亮,不需要開燈。
4. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結合視頻理解代碼含義。
mian 函數(shù)
#include "reg51.h"
#include "ADC0832.h"
sbit smg1=P2^0;//數(shù)碼管引腳
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit smg5=P2^4;
sbit smg6=P2^5;
sbit k1=P1^0;//按鈕
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
unsigned char time=0;
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char num=0;//人數(shù)
unsigned char light=0,limit=20;//光照
unsigned char m1=0,m2=0,m3=0,m4=0;
void delay(unsigned int i)//延時
{
while(i--);
}
void disp()
{
// 根據(jù)光照強度light的十位數(shù),通過數(shù)組smgduan獲取對應的顯示數(shù)據(jù),并將結果顯示在P0口上(假設用于連接數(shù)碼管的段選)
P0 = smgduan[light / 10];
// 清除數(shù)碼管第一位(smg1)的位選信號,使其不顯示任何數(shù)字
smg1 = 0;
// 延時100ms,以便觀察數(shù)碼管的顯示效果
delay(100);
// 設置數(shù)碼管第一位(smg1)的位選信號為1,使顯示數(shù)據(jù)生效
smg1 = 1;
// 根據(jù)光照強度light的個位數(shù),通過數(shù)組smgduan獲取對應的顯示數(shù)據(jù),并更新到P0口上
P0 = smgduan[light % 10];
// 清除數(shù)碼管第二位(smg2)的位選信號
smg2 = 0;
// 延遲100ms
delay(100);
// 設置數(shù)碼管第二位(smg2)的位選信號為1,使顯示數(shù)據(jù)生效
smg2 = 1;
// 同理,根據(jù)光照閥值limit的十位和個位數(shù),分別顯示到數(shù)碼管的第三位和第四位
P0 = smgduan[limit / 10];
smg3 = 0;
delay(100);
smg3 = 1;
P0 = smgduan[limit % 10];
smg4 = 0;
delay(100);
smg4 = 1;
// 根據(jù)人數(shù)num的十位和個位數(shù),分別顯示到數(shù)碼管的第五位和第六位
P0 = smgduan[num / 10];
smg5 = 0;
delay(100);
smg5 = 1;
P0 = smgduan[num % 10];
smg6 = 0;
delay(100);
smg6 = 1;
}
// 主函數(shù)定義
void main()
{
// 設置定時器0的工作模式為模式1(16位定時器/計數(shù)器)
TMOD |= 0X01;
// 設置定時器0的高8位初始值,這里設置的是一個特定的計數(shù)值(具體取決于晶振頻率和系統(tǒng)配置)
TH0 = 0X3C;
// 設置定時器0的低8位初始值,與TH0共同決定定時器的初值
TL0 = 0XB0;
// 打開定時器0中斷允許位,使能定時器0中斷功能
ET0 = 1;
// 打開總中斷,允許單片機接收并處理所有中斷請求
EA = 1;
// 啟動定時器0
TR0 = 1;
// 進入無限循環(huán)
while(1)
{
// 調(diào)用disp()函數(shù),執(zhí)行顯示操作(如可能的話,可能是顯示當前光照閾值或人數(shù)等信息)
disp();
// 檢測按鍵k1狀態(tài),并在m1標記為0時調(diào)整光照閾值limit(增1)
if(!k1 && (m1 == 0))
{
if(limit < 100) // 如果當前閾值小于最大值100
limit++; // 閾值加1
m1 = 1; // 標記m1為已操作,防止連續(xù)觸發(fā)
}
// 當按鍵k1釋放時,重置m1標記
if(k1)
m1 = 0;
// 類似地檢測按鍵k2狀態(tài)并減少光照閾值limit(減1)
if(!k2 && (m2 == 0))
{
if(limit > 0) // 如果當前閾值大于最小值0
limit--; // 閾值減1
m2 = 1; // 標記m2為已操作
}
// 當按鍵k2釋放時,重置m2標記
if(k2)
m2 = 0;
// 檢測按鍵k3表示有人進入教室,當m3標記為0時增加教室內(nèi)人數(shù)num(增1)
if(!k3 && (m3 == 0))
{
if(num < 100) // 如果當前人數(shù)小于最大值100
num++; // 人數(shù)加1
m3 = 1; // 標記m3為已操作
}
// 當按鍵k3釋放時,重置m3標記
if(k3)
m3 = 0;
// 檢測按鍵k4表示有人離開教室,當m4標記為0時減少教室內(nèi)人數(shù)num(減1)
if(!k4 && (m4 == 0))
{
if(num > 0) // 如果當前人數(shù)大于最小值0
num--; // 人數(shù)減1
m4 = 1; // 標記m4為已操作
}
// 當按鍵k4釋放時,重置m4標記
if(k4)
m4 = 0;
// 判斷當前光照強度是否低于設定閾值limit
if(light < limit)
{
// 如果教室內(nèi)有人(即num>0),根據(jù)人數(shù)開啟相應數(shù)量的燈光
if(num > 0)
P3 = 0xff << (num / 10) + 1; // 假設每10人開一組燈,不足10人也開一組
else
P3 = 0xff; // 若教室內(nèi)無人,則全開燈光
}
// 光照強度高于或等于閾值時,關閉所有燈光
else
{
P3 = 0xff;
}
}
}
// 定義一個名為Timer0的中斷服務程序,該中斷由定時器0溢出觸發(fā)(中斷號為1)
void Timer0() interrupt 1
{
// 判斷計數(shù)變量time是否小于10
if(time < 10)
{
// 如果time小于10,則將其加1,表示時間累計增加
time++;
}
else
{
// 如果time不小于10(即等于或大于10),則執(zhí)行以下操作:
// 將time重置為0,重新開始計時周期
time = 0;
// 調(diào)用ADC函數(shù)進行光照強度檢測,并將返回值賦給light變量
light = ADC();
}
// 設置定時器0的高8位和低8位初始值,以維持特定的定時周期
// 假設此處設置的定時器初值使得定時器0每10個單位時間產(chǎn)生一次溢出中斷
TH0 = 0X3C; // 設置TH0為0X3C(十六進制)對應到二進制并轉(zhuǎn)換為對應的機器周期數(shù)
TL0 = 0XB0; // 設置TL0為0XB0(十六進制),與TH0共同決定定時器0的定時周期
}
5. 設計報告
7608字設計報告,內(nèi)容包括硬件設計、軟件設計、軟硬件框圖、調(diào)試、結論等
本課程設計項目正是順應這一時代潮流,選擇了51系列單片機作為核心控制器元件,以其穩(wěn)定可靠、易于編程的特點來構建一套適用于教室環(huán)境的燈光自動控制系統(tǒng)。該系統(tǒng)旨在模擬真實應用場景中的光照條件變化和人員流動情況,實現(xiàn)精準的光線感應控制機制。具體來說,通過集成光敏傳感器實時監(jiān)測教室內(nèi)的自然光線強度,并設定一個可調(diào)閾值,當實際光線低于此閾值時,系統(tǒng)將自動開啟照明設備,確保室內(nèi)有足夠的光線供師生進行教學活動。
此外,為了進一步提高系統(tǒng)的智能性和實用性,本設計還特別加入了人數(shù)統(tǒng)計功能,通過按鍵模擬紅外對射傳感器的工作原理,以簡化的操作方式記錄進出教室的人數(shù)變化。這種創(chuàng)新性的設計不僅有助于精確掌握教室內(nèi)學生數(shù)量,更為關鍵的是,能夠基于人數(shù)動態(tài)調(diào)整教室內(nèi)燈光的數(shù)量和分布,從而實現(xiàn)按需照明,避免不必要的能源浪費。
6. 原理圖
原理圖使用AD繪制,可供實物參考,仿真不同于實物,需要調(diào)試經(jīng)驗才能做出來。
Proteus仿真和實物作品的區(qū)別:
1.運行環(huán)境:Proteus仿真是在計算機上運行的,而實物則是在硬件電路板上運行。
2.調(diào)試方式:在Proteus仿真中,可以方便地進行單步調(diào)試和觀察變量值的變化,而在實物中則需要通過調(diào)試器或者串口輸出等方式進行調(diào)試。
電路連接方式:在Proteus仿真中,可以通過軟件設置進行電路連接的修改,而在實物中則需要通過硬件電路板和連接線進行修改。
3.運行速度:Proteus仿真通常比實物運行速度快,因為仿真是基于計算機運行的,而實物則需要考慮電路板上的物理限制和器件的響應時間等因素。
4.功能實現(xiàn):在Proteus仿真中,可以通過軟件設置實現(xiàn)不同的功能,而在實物中則需要根據(jù)電路設計和器件的性能進行實現(xiàn)。
7. 設計資料內(nèi)容清單&&下載鏈接
資料設計資料包括仿真,程序代碼、講解視頻、功能要求、設計報告、軟硬件設計框圖等。
0、常見使用問題及解決方法–必讀?。。?!
1、程序
2、proteus仿真
3、功能要求
4、軟硬件流程圖
5、開題報告
6、設計報告
7、原理圖
8、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機仿真設計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機學習資料
相關數(shù)據(jù)手冊
答辯技巧
設計報告常用描述
鼠標雙擊打開查找嘉盛單片機51 STM32單片機課程畢業(yè)設計.url
資料下載鏈接(可點擊):
https://docs.qq.com/doc/DS3ZEVW13cXBzT0ZS