天天看點

小項目:單片機可控矽調光設計帶光耦過零檢測 元器件清單 源代碼原理圖等

有人托我做一個關于可控矽調光的畢業設計,我用51單片機做了一個,發出來和大家一起學習一下。

我用的是自己買的開發闆上的52單片機, 晶振采用11.0592M, 光耦用了MOC3023 和P521-1兩個 可控矽用的是BTA41 跟一塊整流橋 電容用的是CBB 0.06μF 電阻那些由于我沒有那麼多 是以就找了相近值的 然後自己加了一個電源訓示燈 和工作訓示燈 按鍵我就直接修改成開發闆上的獨立按鍵。

通電調節過後那幾個電阻發燙都挺嚴重的。 但過零檢測那部分還是不大明白 之前我做了個點焊機根本沒有過零檢測 但是加了有脈沖寬度調節和電流調節。特别提醒各位愛好者在做的過程中千萬要注意安全 檢測檢測再檢測确認對了之後再通電 我也是在嘗試中和大家共同進步。

先上實物圖

小項目:單片機可控矽調光設計帶光耦過零檢測 元器件清單 源代碼原理圖等
小項目:單片機可控矽調光設計帶光耦過零檢測 元器件清單 源代碼原理圖等
小項目:單片機可控矽調光設計帶光耦過零檢測 元器件清單 源代碼原理圖等

原理圖

小項目:單片機可控矽調光設計帶光耦過零檢測 元器件清單 源代碼原理圖等

C語言參考源代碼

#include “reg52.h”

sbit lamp_pwm=P0^0;//可控矽位

sbit key0=P3^4;//降低亮度按鍵位

sbit key1=P3^5;//增加亮度按鍵位

unsigned int inc;

void INT0s()interrupt 0 using 0//INT0外部中斷,過零檢測觸發

{

TR0=0;

if(!key0)//降低亮度

{

inc+=50;

if(inc>=8000)inc=8000;

}

if(!key1)//增加亮度

{

inc-=50;

if(inc<=800)inc=800;

}

TH0=(65536-inc)/256;

TL0=(65536-inc)%256;

TR0=1;

}

void timer1()interrupt 1 using 0//可控矽觸發中斷

{

unsigned char i;

lamp_pwm=0;//燈亮

for(i=0;i<2;i++);//延時2us

lamp_pwm=1;//燈滅

}

/STC不斷電下載下傳用******/

sfr ISP_DOWNS=0xe7;//ISP軟複位位址

sbit ISP_SW=P3^0;//序列槽資料接收

void DebugDownISP()//軟複位

{

鑒于篇幅限制,隻能寫部分代碼,如需要完整代碼請自行下載下傳

最後,如果有什麼意見或者建議歡迎您留言給我,讓我們共同學習一起進步,

如果需要 完整代碼或設計檔案,請在下方留言或者私信我,看到後會第一時間回複。

謝謝!

繼續閱讀