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.add a,ro a 0fh 30h 3fh,c 0 2.add a,30h a 3fh 30h 6fh,c 0 2.inc a a 6fh 1 70h c 0 3.subb a,30h a 70h 30h 40h c 0 4.rl a a 80h c 0 5.cpl a a 7fh c 0 6...
微控制器簡易電子門的設計 ??幫幫忙
暈 樓上的部分 也太 部分 了吧。不知樓主想設計成簡易到什麼程度?有沒有課題要求之類的啊?買作品 51微控制器盒製作簡易門鈴控制系統 51微控制器開發盒的電路圖有沒。利用微控制器設計簡易電子琴 這個肯定適合你!proteus電子琴。整個設計過程,程式電路圖都有了。這個 不是一句話兩句話說清楚的,先完...
我是剛學微控制器的菜鳥,高手幫幫忙啊,利用動態掃描顯示法,,讓
include reg51.h include intrins.h include math.h unsigned char code data led 17 數碼管顯示段碼 sbit wd p3 6 void delay unsigned char i unsigned char kzw 位碼vo...