1樓:
暈! 懶鬼!
想求別人寫幾百字的**,自己就不會多寫幾個字,描述一下具體情況?你起碼得有個電路圖吧?難道想讓別人硬體、軟體都幫你做?
自己的作業主要還得靠自己完成。別人只能是指點指點不明白的地方。
啥微控制器? 微控制器分很多程式設計指令集 和語言的! 51微控制器? 紅黃綠燈接哪個腳? 難道還外接數碼led顯示秒數?
有按鍵沒?晶振的頻率?
2樓:
用一個定時器就可以做了,自己看看書就很容易做出來了。就算給你程式,你的硬體能適合嗎?做微控制器是軟硬結合的。只能你個程式,沒有硬體也是沒有用的。
3樓:
大哥,在網上可以搜到一堆有關交通燈的微控制器程式,自己好好搜一個把。先送你一個吧。
/*實驗名稱:交通燈實驗
*描 述:交通燈實驗要求紅燈亮15秒,綠燈亮10秒,黃燈亮5秒,
當紅燈切換為綠燈或者綠燈切換為紅燈,
要實現燈閃爍。紅燈、綠燈、黃燈的點亮持續時間可以通過串列埠來修改,
並在下一個迴圈中更新數值。
*作 者:溫子祺
*修改日期:2010/5/4
*說 明:**註釋與講解詳見《51微控制器c語言創新教程》溫子祺等著,北京航空航天大學出版社
*/#include "stc.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
typedef char int8;
typedef int int16;
typedef long int32;
#define timer0_initial_value 5000
#define high 1
#define low 0
#define on 1
#define off 0
#define seg_port p0
#define ls164_data(x)
#define ls164_clk(x)
#define north_r_light(x)
#define north_y_light(x)
#define north_g_light(x)
#define south_r_light(x)
#define south_y_light(x)
#define south_g_light(x)
#define traffic_status_1 0
#define traffic_status_2 1
#define traffic_status_3 2
#define uart_marker 0xee
uint8 timer0irqevent=0;
uint8 time1secevent=0;
uint8 time500msevent=0;
uint8 timecount=0;
uint8 segcurposition=0;
uint8 lightorgcount[4]=;
uint8 lightcurcount[4]=;
uint8 trafficlightstatus=0;
code uint8 segcode[10] =;
uint8 segbuf[4] =;
code uint8 segposition[4]=;
typedef struct _light_val
light_val;
typedef union _light_val_ex
light_val_ex;
void ls164send(uint8 byte)
else
ls164_clk(low);
ls164_clk(high);}}
void refreshdisplaybuf(uint8 s1) //重新整理顯示快取
void segdisplay(void)
}void timerinit(void)
void timer0start(void)
void timer0stop(void)
void portinit(void)
void uartinit(void)
void uartsendbyte(uint8 byte)
void uartprintfstring(int8 *str)
}void main(void)
else if(lightcurcount[1])
else if(lightcurcount[2])
else if(lightcurcount[3])
else
trafficlightstatus=0;
} switch(trafficlightstatus)
break;
case 1:
else
north_y_light(on);
south_y_light(on);
}break;
case 2:
break;
case 3:
else
north_y_light(on);
south_y_light(on);
}break;
default:break;
}refreshdisplaybuf(lightcurcount[trafficlightstatus]);
lightcurcount[trafficlightstatus]--;
}segdisplay();}}
}void uartirq(void)interrupt 4
cnt=0;
uartprintfstring("設定交通燈完成\r\n");}}
else}}
void timer0irq(void) interrupt 1
4樓:匿名使用者
我這有彙編做的 但是隻有四個數碼管 湊合著用吧ewtime equ 20h
sntime equ 21h
org 0000h
ljmp main
org 000bh
ljmp t_0
org 0030h
main:mov sp,#50h
mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h
mov ie,#82h
setb tr0
mov ewtime,#30
mov sntime,#35
mov r0,#10
start:lcall s1
lcall s2
lcall s3
lcall s4
ljmp start
s1:mov p1,#0f5h
lcall ewdisp
lcall sndisp
mov a,ewtime
cjne a,#00h,s1
mov ewtime,#5
ret;東西方向綠燈,南北方向紅燈
s2:clr c
mov a,#5
subb a,r0
jc s21
mov p1,#0f3h
sjmp s22
s21:mov p1,#0f7h
s22:lcall ewdisp
lcall sndisp
mov a,ewtime
cjne a,#00h,s2
mov ewtime,#35
mov sntime,#30
ret;東西方向黃燈閃爍,南北方向紅燈
s3:mov p1,#0eeh
lcall ewdisp
lcall sndisp
mov a,sntime
cjne a,#00h,s3
mov sntime,#5
ret;南北方向綠燈,東西方向紅燈
s4:clr c
mov a,#5
subb a,r0
jc s23
mov p1,#0ebh
sjmp s24
s23:mov p1,#0efh
s24:lcall ewdisp
lcall sndisp
mov a,ewtime
cjne a,#00h,s4
mov ewtime,#30
mov sntime,#35
ret;南北方向黃燈閃爍,東西方向紅燈
ewdisp:mov r2,#0fdh
mov a,ewtime
mov b,#10
div ab
mov r1,a
lcall disp
mov r2,#0feh
mov r1,b
lcall disp
ret;東西方向時間倒計時
sndisp:mov r2,#0bfh
mov a,sntime
mov b,#10
div ab
mov r1,a
lcall disp
mov r2,#7fh
mov r1,b
lcall disp
ret;南北方向時間倒計時
disp:mov p3,r2
mov a,r1
mov dptr,#tab
movc a,@a+dptr
mov p2,a
mov r7,#00h
djnz r7,$
ret;數碼管顯示
t_0:mov th0,#3ch
mov tl0,#0b0h
djnz r0,out
mov r0,#10
dec ewtime
dec sntime
out:reti
;定時一秒程式(定時器中斷)
tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
哪位語文高手幫幫小妹,哪位語文高手幫幫忙
一 判斷題 正確打 錯誤打 1 人無遠慮,必有近憂。寸心不昧,萬發皆明 節選自 名賢集 2 水調歌頭 赤壁懷古 的作者是唐代蘇軾。3 從 時時體悉,漸漸從寬 中我們懂得了怎樣要求自己,怎樣對待別人。二 填空題 1 青出於藍而勝於藍,謂 優於師傅。蓮乃花中君子,海棠花內神仙。以上兩句均出自 幼學求源 ...
養花高手進來幫幫忙急,養花高手幫幫忙 請問這是什麼植物啊?
林晗 水大了 不通風 造成嫩芽落蕾 盆土一定要乾透再澆 讓根有休息的時間 不要給花葉噴水 花不喜歡 洗澡淋浴 我認為主要是磷 鉀肥不夠造成的。先到花市買點應急。以後自己漚點肥,魚頭 魚腸 青蛙皮都可以漚。幾個月後,兌幾十倍的水澆,只能澆在土中。其次是陽光的問題,太缺光了不行,現在每天烈日下暴曬,也不...
微控制器c語言程式中斷問題,高手進
count 0 放if程式裡面 另外不一定對吧 把m 0 b 1 y 0 改成m 1 b 0 y 1不行嗎!萬一有引腳是三態的 你這樣的賦值有可能出錯 另外把這個初始賦值放main裡面去 if裡面的狀態有取異 對不起 昨天晚上的作答沒有過腦子 主程式 退出了,所以 沒用 加個while 1 試下,你...