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