仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):S0050
1.主要功能:
基于51單片機(jī)的紅外檢測(cè)光照檢測(cè)智能臺(tái)燈仿真設(shè)計(jì)
1、檢測(cè)光照強(qiáng)度并顯示在數(shù)碼管上。
2、具備紅外檢測(cè)人體功能。
3、燈光控制模式分為自動(dòng)模式和手動(dòng)模式,自動(dòng)模式下自動(dòng)模式指示燈點(diǎn)亮。
4、自動(dòng)模式下,感應(yīng)到人體,LED亮度隨光照強(qiáng)度自動(dòng)變化。手動(dòng)模式下,按鍵控制LED亮度。
需注意仿真中51單片機(jī)芯片是通用的,AT89C51,AT89C52都是51單片機(jī)的具體型號(hào),內(nèi)核是兼容的。無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
2.仿真
開(kāi)始仿真
打開(kāi)仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開(kāi)始仿真。開(kāi)始仿真后,數(shù)碼管顯示當(dāng)前的光照強(qiáng)度32和LED燈的亮度級(jí)別6。
自動(dòng)模式:
在自動(dòng)模式下,燈光亮度等級(jí)跟隨光照強(qiáng)度變化,光照強(qiáng)度越大,亮度等級(jí)越低。當(dāng)光照強(qiáng)度最大為99時(shí),亮度等級(jí)為0,臺(tái)燈燈珠熄滅。
在自動(dòng)模式下,燈光亮度等級(jí)跟隨光照強(qiáng)度變化,光照強(qiáng)度越小,亮度等級(jí)越高。當(dāng)光照強(qiáng)度最大為0時(shí),亮度等級(jí)為9,臺(tái)燈燈珠最亮。
在自動(dòng)模式下,如果紅外檢測(cè)沒(méi)檢測(cè)到人體,不管光照強(qiáng)度大小,臺(tái)燈燈珠都是熄滅狀態(tài)。
手動(dòng)模式:
手動(dòng)模式下,臺(tái)燈燈光亮度只受亮度切換按鍵影響,不受光照強(qiáng)度或者紅外檢測(cè)影響。
以上仿真結(jié)果均符合設(shè)計(jì)要求。
3. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。
main函數(shù)
//主函數(shù)
void main()
{
uchar k=0,i=0;
uint j=0;
adc0808_start=0;
adc0808_oe=0;
TMOD|=0X01;//初始化定時(shí)器
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開(kāi)定時(shí)器0中斷允許
EA=1;//打開(kāi)總中斷
TR0=1;//打開(kāi)定時(shí)器
while(1)
{
//顯示光照
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))//啟動(dòng)
{
k=1;
start=1;
fen=set;
miao=0;
}
if(!k2 &&(k!=2))//停止
{
k=2;
start=0;
}
if(!k3 &&(k!=3))//手動(dòng),自動(dòng)
{
k=3;
mode=!mode;
}
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;
//輸出PWM
if(mode==0)//自動(dòng)模式
{
led=0;
if((start==1)&& !ir_in)
{
j=0;
if(i<9)
i++;
else
i=0;
if(i<pwm)
out=0;
else
out=1;
}
else
{
out=1;
}
}
else//手動(dòng)模式
{
led=1;
if(start==1)
{
if(i<9)
i++;
else
i=0;
if(i<pwm)
out=0;
else
out=1;
}
else
{
out=1;
}
}
}
}
4. 原理圖
原理圖使用AD繪制,可供實(shí)物參考,仿真不同于實(shí)物,經(jīng)驗(yàn)不足不要輕易搞實(shí)物。
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í)物中則需要通過(guò)調(diào)試器或者串口輸出等方式進(jìn)行調(diào)試。
電路連接方式:在Proteus仿真中,可以通過(guò)軟件設(shè)置進(jìn)行電路連接的修改,而在實(shí)物中則需要通過(guò)硬件電路板和連接線進(jìn)行修改。
3.運(yùn)行速度:Proteus仿真通常比實(shí)物運(yùn)行速度快,因?yàn)榉抡媸腔谟?jì)算機(jī)運(yùn)行的,而實(shí)物則需要考慮電路板上的物理限制和器件的響應(yīng)時(shí)間等因素。
4.功能實(shí)現(xiàn):在Proteus仿真中,可以通過(guò)軟件設(shè)置實(shí)現(xiàn)不同的功能,而在實(shí)物中則需要根據(jù)電路設(shè)計(jì)和器件的性能進(jìn)行實(shí)現(xiàn)。
5. 設(shè)計(jì)報(bào)告
6174字設(shè)計(jì)報(bào)告
6. 設(shè)計(jì)資料內(nèi)容清單
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見(jiàn)使用問(wèn)題及解決方法–必讀?。。?!
1、仿真圖
2、程序源碼
3、開(kāi)題報(bào)告
4、原理圖
5、功能要求
6、元器件清單
7、設(shè)計(jì)報(bào)告
8、軟硬件流程框圖
9、講解視頻
Altium Designer 軟件資料
filename.bat
KEIL軟件資料
Proteus軟件資料
單片機(jī)學(xué)習(xí)資料
目錄清單.txt
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開(kāi)查找更多51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
網(wǎng)盤鏈接:
//https://docs.qq.com/doc/DS3hUb3FHUUZQVWZp