『壹』 單片機課程設計的要求 交通燈系統設計
:利用單片機的定時器功能,令十字路口的紅綠燈交替點亮和熄滅(用實驗箱上的8隻發光二極體分成南北、東西兩組各4隻表示),並且用LED數碼管顯示時間(實驗箱上的8隻數碼管中,用兩端的各2隻表示南北、東西兩組的計時)
我可以幫你做,提供電路圖和源程序
『貳』 單片機交通燈課程設計~~
你認為網上的動心可信馬
人家辛辛苦苦弄出來的事,就憑你的30分給你?
不要看人家把程序給你了 ,那都是實現不了邏輯功能的。
你還是自己來吧
『叄』 單片機課程設計:交通燈控制!
我給你發一個看看,是protues的模擬電路圖,可以運行看效果,還有keil的匯編程序,有郵箱給你發去
我給你發了啊!!!下邊是程序:
org 0000h
sjmp main
org 0030h
main: mov p0,#11101110b
acall del1
acall del1
acall del1
acall mmm
mov p0,#11011011b
acall del1
acall del1
mov p0,#11110101b
lcall del1
acall del1
acall del1
acall mmm
sjmp main
del1:mov r0,#0ffh
loop1:mov r1,#0ffh
loop2:djnz r1,loop2
djnz r0,loop1
ret
mmm:mov p1,#0ffh
mov p2,#0ffh
mov r3,#02h
mmm2:mov p1,r3
mov r2,#09h
mmm1:mov p2,r2
acall del1
acall del1
djnz r2,mmm1
djnz r3,mmm2
mov p1,r3
mov r2,#09h
mmm3: mov p2,r2
acall del1
acall del1
djnz r2,mmm3
ret
end
『肆』 單片機模擬交通燈實驗報告怎麼寫
實驗時間 實驗項目 實驗地點 實驗人員 實驗工具 實驗過程 實驗原理(程序流程圖) 實驗目的 指導老師 等等 在網上下一個實驗報告範文 換些內容就行
『伍』 高分求單片機課程設計報告
手邊有一些你需要的關於單片機的論文設計資料 需要的話加QQ 晚上7點以後隱身在線,直接加就行,說明要的資料名字就好。嘿嘿 樓主 要是覺的好的話 可別忘了給分哦。
『陸』 基於單片機的交通燈設計開題報告
近年來隨著科技的飛速發展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬體結構軟硬體結合,加以完善。
十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那麼靠什麼來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本系統採用MSC-51系列單片機ATSC51和可編程並行I/O介面晶元80C51為中心器件來設計交通燈控制器,實現了能根據實際車流量通過8051晶元的P1口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩秒時黃燈閃爍警示。本系統實用性強、操作簡單、擴展功能強。
本設計以單片機為核心,以LED燈作為直行和左右拐彎指示完成了對題目要求的功能。
『柒』 單片機交通信號燈課程設計
你好!
這里有一個交通燈模擬演示,基本滿足你的設計要求
『捌』 單片機交通燈課程設計
/*****************************************************
十字路口交通燈控制C程序
******************************************************/
#defineucharunsignedchar
#defineuintunsignedint
#include<reg52.h>
/*****定義控制位**********************/
sbit Time_Show_LED2=P2^5;//Time_Show_LED2控制位
sbit Time_Show_LED1=P2^4;//Time_Show_LED1控制位
sbitEW_LED2=P2^3;//EW_LED2控制位
sbitEW_LED1=P2^2;//EW_LED1控制位
sbitSN_LED2=P2^1;//SN_LED2控制位
sbitSN_LED1=P2^0;//SN_LED1控制位
sbit SN_Yellow=P1^6;//SN黃燈
sbit EW_Yellow=P1^2;//EW黃燈
sbit EW_Red=P1^3;//EW紅燈
sbit SN_Red=P1^7;//SN紅燈
sbit EW_ManGreen=P3^0;//EW人行道綠燈
sbit SN_ManGreen=P3^1;//SN人行道綠燈
sbit Special_LED=P2^6;//交通正常指示燈
sbit Busy_LED=P2^7;//交通繁忙指示燈
sbit Nomor_Button=P3^5;//交通正常按鍵
sbit Busy_Btton=P3^6;//交通繁忙按鍵
sbit Special_Btton=P3^7;//交通特殊按鍵
sbit Add_Button=P3^3;//時間加
sbit Reces_Button=P3^4;//時間減
bit Flag_SN_Yellow;//SN黃燈標志位
bit Flag_EW_Yellow;//EW黃燈標志位
charTime_EW;//東西方向倒計時單元
charTime_SN;//南北方向倒計時單元
ucharEW=60,SN=40,EWL=19,SNL=19;//程序初始化賦值,正常模式
ucharEW1=60,SN1=40,EWL1=19,SNL1=19;//用於存放修改值的變數
ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1~~~~9段選碼
ucharcodeS[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};//交通信號燈控制代碼
/**********************延時子程序************************/
voidDelay(uchara)
{
uchari;
i=a;
while(i--){;}
}
/*****************顯示子函數**************************/
voidDisplay(void)
{
charh,l;
h=Time_EW/10;
l=Time_EW%10;
P0=table[l];
EW_LED2=1;
Delay(2);
EW_LED2=0;
P0=table[h];
EW_LED1=1;
Delay(2);
EW_LED1=0;
h=Time_SN/10;
l=Time_SN%10;
P0=table[l];
SN_LED2=1;
Delay(2);
SN_LED2=0;
P0=table[h];
SN_LED1=1;
Delay(2);
SN_LED1=0;
h=EW1/10;
l=EW1%10;
P0=table[l];
Time_Show_LED1=1;
Delay(2);
Time_Show_LED1=0;
P0=table[h];
Time_Show_LED2=1;
Delay(2);
Time_Show_LED2=0;
}
/**********************外部0中斷服務程序************************/
voidEXINT0(void)interrupt0using1
{
EX0=0;//關中斷
if(Add_Button==0)//時間加
{
EW1+=5;
SN1+=5;
if(EW1>=100)
{
EW1=99;
SN1=79;
}
}
if(Reces_Button==0)//時間減
{
EW1-=5;
SN1-=5;
if(EW1<=40)
{
EW1=40;
SN1=20;
}
}
if(Nomor_Button==0)//測試按鍵是否按下,按下為正常狀態
{
EW1=60;
SN1=40;
EWL1=19;
SNL1=19;
Busy_LED=0;//關繁忙信號燈
Special_LED=0;//關特殊信號燈
}
if(Busy_Btton==0)//測試按鍵是否按下,按下為繁忙狀態
{
EW1=45;
SN1=30;
EWL1=14;
SNL1=14;
Special_LED=0;//關特殊信號燈
Busy_LED=1;//開繁忙信號燈
}
if(Special_Btton==0)//測試按鍵是否按下,按下為特殊狀態
{
EW1=75;
SN1=55;
EWL1=19;
SNL1=19;
Busy_LED=0;//關繁忙信號燈
Special_LED=1;//開特殊信號燈
}
EX0=1;//開中斷
}
/**********************T0中斷服務程序*******************/
voidtimer0(void)interrupt1using1
{
staticucharcount;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==10)
{
if(Flag_SN_Yellow==1)//測試南北黃燈標志位
{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1) //測試東西黃燈標志位
{EW_Yellow=~EW_Yellow;}
}
if(count==20)
{
Time_EW--;
Time_SN--;
if(Flag_SN_Yellow==1)//測試南北黃燈標志位
{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1)//測試東西黃燈標志位
{EW_Yellow=~EW_Yellow;}
count=0;
}
}
/*********************主程序開始**********************/
voidmain(void)
{
Busy_LED=0;
Special_LED=0;
IT0=1;//INT0負跳變觸發
TMOD=0x01;//定時器工作於方式1
TH0=(65536-50000)/256;//定時器賦初值
TL0=(65536-50000)%256;
EA=1;//CPU開中斷總允許
ET0=1;//開定時中斷
EX0=1;//開外部INTO中斷
TR0=1;//啟動定時
while(1)
{/*******S0狀態**********/
EW_ManGreen=0;//EW人行道禁止
SN_ManGreen=1;//SN人行道通行
Flag_EW_Yellow=0; //EW關黃燈顯示信號
Time_EW=EW;
Time_SN=SN;
while(Time_SN>=5)
{P1=S[0];//SN通行,EW紅燈
Display();}
/*******S1狀態**********/
P1=0x00;
while(Time_SN>=0)
{Flag_SN_Yellow=1;//SN開黃燈信號位
EW_Red=1; //SN黃燈亮,等待左拐信號,EW紅燈
Display();
}
/*******S2狀態**********/
Flag_SN_Yellow=0;//SN關黃燈顯示信號
Time_SN=SNL;
while(Time_SN>=5)
{P1=S[2];//SN左拐綠燈亮,EW紅燈
Display();}
/*******S3狀態**********/
P1=0x00;
while(Time_SN>=0)
{Flag_SN_Yellow=1;//SN開黃燈信號位
EW_Red=1; //SN黃燈亮,等待停止信號,EW紅燈
Display();}
/***********賦值**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;
/*******S4狀態**********/
EW_ManGreen=~EW_ManGreen;//EW人行道通行
SN_ManGreen=~SN_ManGreen;//SN人行道禁止
Flag_SN_Yellow=0; //SN關黃燈顯示信號
Time_EW=SN;
Time_SN=EW;
while(Time_EW>=5)
{P1=S[4];//EW通行,SN紅燈
Display();}
/*******S5狀態**********/
P1=0X00;
while(Time_EW>=0)
{Flag_EW_Yellow=1;//EW開黃燈信號位
SN_Red=1;//EW黃燈亮,等待左拐信號,SN紅燈
Display();}
/*******S6狀態**********/
Flag_EW_Yellow=0; //EW關黃燈顯示信號
Time_EW=EWL;
while(Time_EW>=5)
{P1=S[6];//EW左拐綠燈亮,SN紅燈
Display();}
/*******S7狀態**********/
P1=0X00;
while(Time_EW>=0)
{Flag_EW_Yellow=1;//EN開黃燈信號位
SN_Red=1;//EW黃燈亮,等待停止信號,SN紅燈
Display();}
/***********賦值**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;
}
}
『玖』 基於89C51單片機的交通燈設計報告
我這里有一個用HOLTEK單片機匯編寫的,利用查表程序完成,你可以參考一下.
include HT48R10A-1.inc;
;-------------------------------------
data .section 'data' ;資料段
COUNT1 db ? ;延時變數1
count2 db ? ;延時變數2
count3 db ? ;延時變數3
flash db ? ;LED閃爍控制暫存器
rglight db ? ;LED控制暫存器
;---------------------------------------
code .section at 0 'code' ;程序段
org 0H ;程式初始入口地址
jmp start ;
start : ; 程序開始
mov a, 0h
mov pac, a ;設PA為輸出口
mov pa,a ;PA清零
;*********************************
loop: ;LED燈循環
mov a, 0 ;
mov tblp, a ;表格指標初始化
tabrdl rglight ;讀取最後一頁表格內容放入LED控制寄存器
mov a,rglight ;
mov pa, a ;把LED寄存器的內容輸出到PA
call delay1 ;調用延時子程序DELAY1
inc tblp ;遞增表格內容
mov a, 6 ;
mov flash, a ;設LED閃爍控制寄存器的內容為6次
; ;;;;;;;;;;;;;
flashlamp: ;LED閃爍循環?
tabrdl rglight ;讀取最後一頁表格內容放入LED控制寄存?
mov a,rglight ;
mov pa,a ;將LED寄存器的內容輸出到PA
call delays ;
inc tblp ;遞增表格指標
sdz flash ;檢LED閃爍是否結束
jmp flashlamp ;閃爍沒有結束,跳至LED閃爍循環
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;將LED寄存器的內容輸出到PA
call delaym ;呼叫延時子程序
inc tblp ;遞增表格指標
;----------------
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a, rglight
mov pa, a ;將LED寄存器的內容輸出到PA
call delay1 ;呼叫延時子程序
inc tblp ;遞增表格指標
mov a, 6 ;設LED閃爍次數
mov flash,a ;將閃爍次數放入LED閃爍控制寄存器
flash2: ;LED閃爍循環次數
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;將LED寄存器的內容輸出到PA
call delays ;調用延時子程序
inc tblp ;遞增表格指標
sdz flash ;檢查LED閃爍是否結束
jmp flash2 ;閃爍沒有結束,中央電視台跳至LED閃爍循環2
tabrdl rglight ;讀取最後一頁表格內容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;將LED寄存器的內容輸出到PA
call delaym ;呼叫延時子程序DELAYM
jmp loop ;?
;======================== ;?
delay1 proc ; 延時子程序DELAY1
mov a,0fh ;?
mov count1,a ;?
mov count2,a ;?
mov count3,a ;?
d1: ;?
sdz count2
jmp d1 ;?
sdz count2
jmp d1
sdz count1
jmp d1
ret
delay1 endp
;;;;;;;;;;;;;;;;;;;;;;;;;;
delaym proc ;延時子程序DELAYM
mov a, 07h
mov count1 ,a
mov a, 0ffh
mov count2, a
mov count3,a
d2: sdz count3
jmp d2
sdz count2
jmp d2
sdz count1
jmp d2
ret
delaym endp
;------------------------
delays proc ;延時子程序DELAYS
mov a, 0ffh
mov count1, a
mov count2, a
d3: sdz count2
jmp d3
sdz count1
jmp d3
delays endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 300h ;led表格
dc 0ebh, 0fbh, 0ebh, 0fbh, 0ebh, 0fbh, 0ebh, 0dbh
dc 0beh, 0bfh, 0beh, 0bfh, 0beh, 0bfh, 0beh, 0bdh
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end