仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):S0052
講解視頻
1.主要功能:
基于51單片機(jī)的路燈自動(dòng)開關(guān)控制仿真設(shè)計(jì)
1、測(cè)量環(huán)境光強(qiáng)度,如果光照過(guò)低,開燈
2、可以通過(guò)按鍵設(shè)置閥值,光照低于該閥值表示光照過(guò)低
3、LCD顯示光照和閥值
4、環(huán)境亮度越低,燈光亮度越高
需注意仿真中51單片機(jī)芯片是通用的,AT89C51,AT89C52都是51單片機(jī)的具體型號(hào),內(nèi)核是兼容的。相同的原理圖里,無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
以下為本設(shè)計(jì)資料展示圖:
2.仿真
開始仿真
打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。開始仿真后LCD1602顯示檢測(cè)到光照強(qiáng)度和默認(rèn)光照閾值。當(dāng)前檢測(cè)到的光照強(qiáng)度是3lx,接近于0,PWM的占空比最小,PNP三極管低電平導(dǎo)通,經(jīng)過(guò)PNP三極管反向后LED燈的亮度接近最亮。
環(huán)境光照強(qiáng)度通過(guò)光敏電阻的值改變,上下箭頭分別調(diào)低和調(diào)高光敏電阻的阻值。
通過(guò)點(diǎn)擊光敏電阻的阻值調(diào)整,檢測(cè)到環(huán)境光照強(qiáng)度93Lx,接近于閾值。越接近閾值,單片機(jī)控制輸出的PWM占空比,PNP三極管低電平導(dǎo)通,PWM經(jīng)過(guò)PNP三極管反向后LED燈的亮度越暗。
高于閾值,單片機(jī)控制輸出的PWM占空比最大達(dá)100%,PNP三極管低電平導(dǎo)通,PWM經(jīng)過(guò)PNP三極管反向后LED燈完全熄滅。
以上仿真結(jié)果均符合設(shè)計(jì)要求。
3. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報(bào)告理解代碼含義。
main函數(shù)部分代碼
#include "reg51.h"
#include "lcd1602.h"
#include"ADC0809.h"
sbit lamp=P2^3;//燈
sbit k1=P3^6;//按鈕
sbit k2=P3^7;
uchar hang1[]="Ligh:000Lx";//顯存
uchar hang2[]=" Lim:000Lx";
uint light=0,limit=100;//光強(qiáng)
uint time=0;
uint pwm=0,sec=0;
//主函數(shù)
void main()
{
init_1602();
adc0809_init();
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開定時(shí)器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時(shí)器
while(1)
{
if(!k1)//加
{
limit++;
while(!k1);
}
if(!k2)//減
{
limit--;
while(!k2);
}
//PWM
if(sec<99)
sec++;
else
sec=1;
if(pwm<sec)
lamp=1;
else
lamp=0;
}
}
//定時(shí)器0中斷
void Timer0() interrupt 1
{
if(time<10)//定時(shí)0.5s
time++;
else
{
time=0;
light=adc0809_read();//測(cè)光
hang1[5]=light/100+0x30;
hang1[6]=light%100/10+0x30;
hang1[7]=light%10+0x30;
hang2[5]=limit/100+0x30;
hang2[6]=limit%100/10+0x30;
hang2[7]=limit%10+0x30;
write_string(1,0,hang1);
write_string(2,0,hang2);
if(light>limit)//功能1
{
pwm=0;
}
else
{
pwm=99-light*100/limit;//輸出PWM占空比,光照強(qiáng)度越低,pwm占空比越大
}
}
TH0=0X3C;
TL0=0XB0;
}
4. 設(shè)計(jì)報(bào)告
6308字設(shè)計(jì)報(bào)告,內(nèi)容包括引言,硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、總結(jié)和展望等
5. 設(shè)計(jì)資料內(nèi)容清單
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見使用問(wèn)題及解決方法–必讀?。。?!
1、仿真圖
2、程序源碼
3、開題報(bào)告
3、原理圖
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)雙擊打開查找更多51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
資料下載鏈接(可點(diǎn)擊):