① 單片機的路燈電路
單片機是8051嗎?像這種,人家只會在網上隨便的找一下程序復制給你,誰也沒有時間去做這個的,光是一個時間的程序,如果是完全由自己來寫,那得好幾天的時間,
在網上找一下電子時鍾的程序來,自己改一下
要麼就完全的由自己完成
人家完全的設計好給你,你只要一個復制就得了,有意義嗎?交作業?無非就是讓你過了這一關而已,沒有什麼用的
② 基於51單片機的自動路燈控制,需要哪幾部分組成能實現
首先肯定是要有單片機最小系統,晶振電路復位電路啥的。
再就是需要檢測天黑不黑,所以需要光敏電阻,但光敏電阻的值需要再經比較器處理成高低電平觸發信號然後再給單片機。這是信號輸入部分
然後還需要控制輸出,也就是能讓單片機對路燈通斷電控制,這就是需要接繼電器
③ 單片機路燈控製程序
這應該是modbus協議吧。這要根據通信協議來寫程序的,誰也不會有現成的程序。而要寫出這樣的程序,可是一個產品或一個項目的工作量了,想在這里免費做項目,做產品嗎?那公司只要老闆一個人就行了,一切工作都來這里免費設計完成啦!
④ 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!
C語言實現LED燈閃爍控制配套51單片機開發板。
#include //包含單片機寄存器的頭文件
/****************************************
函數功能:延時一段時間
*****************************************/
void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。
{
unsigned int i; //定義無符號整數,最大取值范圍65535。
for(i=0;i<20000;i++) //做20000次空循環。
; //什麼也不做,等待一個機器周期。
}
/*******************************************************
函數功能:主函數 (C語言規定必須有也只能有1個主函數)。
********************************************************/
void main(void)
{
while(1) //無限循環。
{
P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。
delay(); //延時一段時間。
P0=0xff; //P1=1111 1111B, P0.0輸出高電平。
delay(); //延時一段時間。
}
}
單片機驅動LED燈的源程序:
#include<reg52.h> //頭文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定義。
void delay_ms(uint);//mS級帶參數延時函數。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延時子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(4)大學生單片機控制燈擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
⑤ 基於單片機的路燈控制
簡單。如果是基於時間的加個RTC時鍾電路,最好是能有紐扣電池,掉電後時間不變。最好是加個根據亮度能自動亮的電路,就是說在白天如果光線太暗,也可以自己亮,就是說加個光感測器。如果你要調光的,需要加個DAC電路,然後路燈上需要加根據你的DAC的輸出,進行路燈電壓或者電流調整的模塊。如果你要輪流熄滅就簡單些。如果你兩盞輪流熄滅就兩盞一組,三盞輪流滅就三盞一組,只需要單片機的IO口輪流高電平就行。但需要在路燈上加繼電器。
你要先根據你所需要的介面選好單片機,然後再選外圍電路的晶元或模塊。原理圖就沒有了,論文還是你自己寫吧。網上找找看有沒有類似的吧。
⑥ 求教如何用單片機控制LED燈的亮度
控制ked亮度不難,你硬體直接連連接好led燈,串個限流電阻。如果引腳一直給電平那麼燈肯定最亮,那你如果改變給燈的時間燈就能調亮度了,如你用定時器或者延時多少個時間引腳電平取反一次。例如每間隔1毫秒電平取反一次就可以改變亮度。那你在用個變數值來給這個時間賦值。就能調亮度了啊,比如你接個電位器電位器值改變你程序你就讓定時器時間也相應跟著變動
程序名稱:一隻按鍵控制兩只LED燈十種亮度顯示
編程人:xx
備註:此程序簡單
#include<stc12c2052ad.h>
*** it d1=P1^7;、、 定義LED燈1
*** it d2=P1^6; 定義LED燈2
*** it key1=P3^0; 定義按鍵燈
void delay(unsigned int a){ 延時程序
unsigned int i;
while( a-- != 0){
for(i = 0; i < 100; i++);
}
}
void main(){
while(1){
unsigned int a,b,c,d;
if(key1==0)d++; 按鍵判斷
switch(d) 按鍵信息比較
{
case 1: b=9;;a=1;break;
case 2: b=8;;a=2;break;
case 3: b=7;;a=3;break;
case 4: b=6;;a=4;break;
case 5: b=5;;a=5;break;
case 6: b=4;;a=6;break;
case 7: b=3;;a=7;break;
case 8: b=2;;a=8;break;
case 9: b=1;;a=9;break;
}
while(key1==0); 判判斷按鍵是否松開
if(d==10)d=0; 按鍵9種亮度判斷,是否是第9種,如果是,則d=0
for(c=0;c<2;c++){ 亮度模式循環顯示
d1=0;
d2=1;
delay(a);
d1=1;
d2=0;
delay(b);
}
}
}
、2010.10.05 20;06修改
此程序是我寫的簡單程序,已做過實驗,並且通過!
用pic的脈寬調制功能就可以了,只需要給單片機不同的占空比的值,單片機就可以產生不同占空比的信號,將這個信號用三極體放大驅動LED就行了。還有什麼問題可以給我留言
第一,要理解中斷在這里的作用是固定的「一小段」時間進入一次。 第二,PWM_ON在程序中的作用很大,它會由0------>CYCLE------>0並且一直循環下去。可以把它看成一個有規律的變化的量。 第三,每進入中斷一次count++,滿足條件count==PWM_ON或coun..
接好單片機的硬體電路,然後編寫程序,再然後燒寫程序,然後就可以程序了,沒問題的話就可以按你的要求點亮了
# include<reg51.h>
void delay(unsigned int j)
{
unsigned int i;
for (;j>0;j--)
{
for(i=0;i<1000;i++)
;
}
}
void main()
{
while(1)
{
P1^0=0;
delay(100);
P1^0=1;
delay(100);具體數值根據你單片機晶振頻率而定
}
}
原理是PWM波占空比不同,其功率亦不同,只要PWM頻率很大,人眼分辨不出其閃爍,就可通過控制占空比(高電平時間和周期之比)的大小來控制其亮度。
才用PWM調制
LED燈不好控制亮度,在電流變化較大的范圍中,亮度變化不明顯
如果是電燈泡還可以的
控制LED燈的亮度 這個其實有難度的, 先練習聲音控制開關燈,成功後再考慮控制亮度
LED亮度是通過的電流決定的,控制亮度其實就是控制電流.這一點至今沒辦法做到便宜又簡單.
當然,也有種簡易的辦法是PWM控制亮關比,優點是容易,缺點是閃爍.
還有就是目前燈亮度有幾種控制方式,連續變化的貴,高中低分檔位的便宜些.
void main()
{
unsigned int temp,i;
temp=1;
while(1)
{
P1=temp&0x00ff; 取temp低8位
P2=(temp&0xff00)>>8; 取temp高8位
for(i=0;i<65535;i++)
{} 延時
if(temp!=0x8000)
temp<<=1; temp左移一位
else temp=1;
}
}
如果不需要控制轉速,一個三極體一個繼電器就可以控制馬達了。