![]() |
發布時間: 2018-7-15 16:50
正文摘要:本帖最后由 ckeai 于 2018-7-17 17:47 編輯 單片機源程序如下: #include<reg52.h> #include<intrins.h> #define uintunsigned int #define ucharunsigned char sbit pwm =P2^1; uintcount=0,timer1=0,val ... |
呼吸燈只有是線性變化才可以保證能夠取到各個階段有效電壓值,亮度主要是由有效電壓確定的,都的原因是有些有效電壓之沒有取到,可以減少占空比步幅實現 |
JYLI 發表于 2018-7-15 22:30 那如何在程序是線性的情況下,使它不抖 |
imxuheng 發表于 2018-7-17 11:54 已上傳 |
驅動電路是怎樣的 |
HC6800-ES-V2.0 發表于 2018-7-16 08:14 有平方根的倒數關系?能詳細說一下嗎?不太理解 |
437374033 發表于 2018-7-15 17:10 我這個是有由暗到亮的程序的,但是不知道為什么沒顯示 |
建議你拿示波器看一下波形,是不是正弦波或者三角波 |
我的這個程序,可以從這到暗,再從暗到亮。 #include<reg51.h> #define LED P2 unsigned int T=0,Tt=500,i=0,Ii=100,j=0; bit A=1; void TimeConfig(); void main(void) { TimeConfig(); while(1) { if (T>=Tt) { T=0; } if (i>=Ii) { i=0; if (A==1) { j++; } else { j--; } } if (j==Tt) { A=0; } if (j==0) { A=1; } if (T<=j) { LED=0x00;//LED燈亮 } else { LED=0xff; } } } void TimeConfig() { TMOD = 0x01; TH0 = 0xff; TL0 = 0xff; EA = 1; ET0 = 1; TR0 = 1; } void Time0() interrupt 1 { TH0 = 0xff; TL0 = 0xff; T++; i++; } /* 此占空比的變化,數據是線性關系,但顯示出來的視覺不是線性關系。因為占空比是功率換算, 有平方根的倒數關系,所以這要進步算法才行。 */ |
你寫一個從亮到暗的不就好了 |