Professional Documents
Culture Documents
BÀI T P L N
MỌN: KỸ THU T VI X Lụ
GI NGăVIểN:ăNGUY NăTHANHăHI U
NhómăSVăthựcăhiện:
Nhómă1:ă
1.ăNguy năVĕnăCa
2.ăNguy năBáăC ng
3.ăLêăVĕnăH u
4. SaăHuỳnhăL c
5. ĐàoăVĕnăLinh
6.ăD ơngăQu căUy
PH L C Trang
L I NÓI Đ U
Trong nh ng năm g n đây trên th giới Ếùng với sự phát triển mạnh m Ếủa ngành
Ếông nghiệp Ếh tạo linh kiện ẽán ếẫn và vi mạẾh tổng hợp, một hướng phát triển mới Ếủa
ẾáẾ vi x lý đã hửnh thành đó là ẾáẾ vi đi u khiển. Với nhi u ưu điểm, vi đi u khiển đã đượẾ
s ếụng rộng rãi trên nhi u lĩnh vựẾ kháẾ nhau. Bằng ẾáẾh áp ếụng vi đ u khiển trong quá
trửnh sản xu t và x lý, vi đi u khiển đã thựẾ sự thể hiện đượẾ ưu th Ếủa mửnh so với ẾáẾ
thi t ẽị đi u khiển thông thường.Vử nh ng lý ếo trên, trong nhi u trường Đại HọẾ, Cao
Đẳng, vi x lý thựẾ sự trở thành một môn họẾ h t sứẾ quan trọng, vi x lý 8051 g n như là
một môn họẾ s ếụng để trang ẽị Ếho Ếhúng ta nh ng ki n thứẾ Ếơ ẽản v vi x lý, từ đó mở
rộng ra ẾáẾ loại vi x lý kháẾ Ếó Ế u trúẾ phứẾ tạp hơn như AVR, PIC, …Qua Bài tập này,
đã giúp Ếhúng Ềm Ếó đượẾ hửnh ếung thựẾ t vi x lý đượẾ áp ếụng như th nào trong ẾuộẾ
sống hiện đại, Ếụ thể Ếhính là hệ thống đèn giao thông ếùng vi đi u khiển AT89C51. Đồ án
gồm 3 Ếhương:
Ph n I: T ng quan v đèn giao thông, gi i thiệu khái quát đ tƠi, các thƠnh ph n chính
c a hệ th ng đèn giao thông, nguyên lý ho t đông, ngôn ng s d ng vƠ ph n m m mô
phỏng.
Ph n II: Kh o sát vi đ u khi n 8051 (AT89C51).
Ph n III: ng d ng 8051 đi u khi n đèn giao thông.
Ch ng I. Xây ếựng ph n Ếứng.
Ch ng II. Xây ếựng lưu đồ thuật toán.
Ch ng III. Vi t Ếhương trửnh (ếùng C, Assembly).
Chúng Ềm xin Ếhân thành Ếảm ơn!
Tp. Hồ Chí Minh , Tháng 12 năm 2013
Nhựm sinh ốiên th Ế hiện
(Nhựm 1)
Nhóm 1 Ầhoa Điện-Điện t viễn thông
1
Nhóm 1 Ầhoa Điện-Điện t viễn thông
Phầnăm măKeilăCăăă
1.4.2 Ph n mềm mô phỏng
Phầnăm măPROTEUS
Ph n 2 - KH O SÁT VI ĐI U KHI N AT89C51
1.5 T ng quát
2
Nhóm 1 Ầhoa Điện-Điện t viễn thông
CấuăhìnhăchânăcủaăAT89C51ănh ăsau:
3
Nhóm 1 Ầhoa Điện-Điện t viễn thông
1.6.4 PSEN
Chânăchoăphépăb ănh ăch ơngătrìnhăPSENă(programăstoreăenable)ăđi uăkhi nătruyăxuấtă
b ănh ăch ơngătrìnhăngoài.ăKhiăAT89C51ăđangăthựcăthiăch ơngătrìnhătrongăb ănh ăch ơngă
trìnhăngoài,ăPSENătíchăcựcăhaiălầnăchoăm iăchuăkỳămáy,ăngo iătrừătr ngăhợpă2ătácăđ ngăcủaă
PSENăb ăb ăquaăchoăm iălầnătruyăxuấtăb ănh ădữăliệuăngoài.
4
Nhóm 1 Ầhoa Điện-Điện t viễn thông
1.6.5 ALE/PROG
Xungăcủaăngõăraăchoăphépăch tăđ aăch ăALEă(addressălatchăenable)ăchoăphépăch tăbyteă
thấpăcủaăđ aăch ătrongăth iăgianătruyăsuấtăb ănh ăngoài.ăChânănàyăcũngăđ ợcădùngălàmăngõă
vàoăxungăl pătrìnhă(PROG)ătrongăth iăgianăl pătrìnhăchoăFlash.
Khiăho tăđ ngăbìnhăth ng,ăxungăcủaăngõăraăALEăluônăluônăcóătầnăs ăb ngă1/6ătầnăs ă
củaăm chădaoăđ ngătrênăchip,ăcóăth ăđ ợcăsửădụngăchoăcácămụcăđíchăđ nhăth iătừăbênăngoàiă
vàăt oăxungăclock.ăTuyănhiênăcầnăl uăýălàăm tăxungăALEăs ăb ăb ăquaătrongăm iăm tăchuăkỳă
truyăxuấtăb ănh ădữăliệuăngoài.
1.6.6 EA/Vpp
Chânăchoăphépătruyăxuấtăb ănh ăngoàiăEAă (externalăaccessăenable)ăph iăđ ợcăn iăv iă
GNDăđ ăchoăphépăchipăviăđi uăkhi nătìmăn pălệnhătừăcácăv ătríănh ăcủaăb ănh ăch ơngătrìnhă
ngoài,ăb tăđầuătừăđ aăch ă0000Hăchoăđ năFFFFH.ăTuyănhiênăcầnăl uăýălàăn uăbităkhóaă1ă(lockă
bită1)ăđ ợcăl pătrình,ăEAăs ăđ ợcăch tăbênătrongăkhiăreset.
EAănênăn iăv iăVccăđ ăthựcăthiăch ơngătrìnhăbênătrongăchip.
Chână EA/Vppă cònă nh nă điệnă ápă choă phépă l pă trìnhă Vppă trongă th iă giană l pă trìnhă choă
Flash,ăđiệnăápănàyăcấpăchoăcácăb ăph n cóăyêuăcầuăđiệnăápă12V.
1.6.7 RESET (RST)
Ngõă vàoă RSTă(chână 9).ă Mứcă caoă trênă chână nàyă trongă 2ă chuă kỳă máyă trongă khiă b ă daoă
đ ngăđangăho tăđ ngăs ăresetăAT89C51.
1.6.8 XTAL1 & XTAL2
XTAL1 ngõăvàoăđ năm chăkhu chăđ iăđ oăcủaăm chădaoăđ ngăvàăngõăvàoăđ năm chăt oă
xung clockăbênătrongăchip.
XTAL2ăngõăraătừăm chăkhu chăđ iăđ oăcủaăm chădaoăđ ng.
1.7 T ch c b nh
AT89C51ă cóă khôngă giană b ă nh ă riêngă choă ch ơngă trìnhă vàă dữă liệu.ă C ă haiă b ă nh ă
ch ơngătrìnhăvàădữăliệuăđ uăđ tăbênătrongăchip,ătuyănhiênătaăcóăth ămởăr ngăb ănh ăch ơng
trìnhăvàăb ănh ădữăliệuăb ngăcáchăsửădụngăcácăchipănh ăbênăngoàiăv iădungăl ợngăt iăđaălàă
64KBăchoăb ănh ăch ơngătrìnhă(hayăb ănh ămư)ăvàă64KBăchoăb ănh ădữăliệu.
B ănh ăn iătrongăchipăbaoăg măROMăvàăRAM.ăRAMătrênăchipăbaoăg măvùngăRAMăđaă
chứcă nĕngă (nhi uă côngă dụng),ă vùngă RAMă v iă từngă bită đ ợcă đ nhă đ aă ch ă (g iă t tă làă vùngă
RAMăđ nhăđ aăch ăbit),ăcácădưyă(bank)ăthanhăghiăvàăcácăthanhăghiăchứcănĕngăđ căbiệtăSFRă
(special funtion register).
Hìnhă2.2ăchoătaăchiăti tăcủaăb ănh ădữăliệuătrênăchip.ăTaăthấyăr ngăkhôngăgianănh ăn iă
nàyăđ ợcăchiaăthành:ăcácădưyăthanhăghiă(00H÷1FH),ăvùngăRAMăđ nhăđ aăch ăbită(20H÷2FH),ă
vùngăRAMăđaămụcăđíchă(30H÷7FH)ăvàăcácăthanhăghiăchứcănĕngăđ căbiệtă(80H÷FFH).
5
Nhóm 1 Ầhoa Điện-Điện t viễn thông
6
Nhóm 1 Ầhoa Điện-Điện t viễn thông
7
Nhóm 1 Ầhoa Điện-Điện t viễn thông
8
Nhóm 1 Ầhoa Điện-Điện t viễn thông
HaiăbităM1,M0ădùngăđ ch nămodeăTimeră0ăvàăTimeră1:
M1 M0 Ch đ Mô t
0 0 0 B đ nh th i 13 bit (t ơngăthíchăh 8048).
0 1 1 B đ nh th i/đ m 16 bit.
1 0 2 B đ nh th i/đ m 8 bit tự đ ng n p l i.
9
Nhóm 1 Ầhoa Điện-Điện t viễn thông
o Đ măsựăkiện.
10
Nhóm 1 Ầhoa Điện-Điện t viễn thông
11
Nhóm 1 Ầhoa Điện-Điện t viễn thông
12
Nhóm 1 Ầhoa Điện-Điện t viễn thông
13
Nhóm 1 Ầhoa Điện-Điện t viễn thông
f
fTA
Tầnăs ălàmăviệcăAT89C51
12
1
Chuăkỳămáyă=ăth iăgianăsửălýă1ălệnh: T=
f
Khiăresetăthìătr ngătháiăcủaăRAMăn iăkhôngăthayăđổi,ăb ngătr ngătháiăcủaăcácăthanhăghiă
khi reset
14
Nhóm 1 Ầhoa Điện-Điện t viễn thông
LED sáng. Transistor H1061 đ ợcăn iăv iăportă(P2): P2.0, P2.1, P2.2, P2.3 củaăviăđi uăkhi n
cóăchứcănĕngă khuy chăđ iădòngăchoăled 7ăđo n ho tăđ ngăbìnhăth ng. CácăchânătừăP1.0ă
đ nă P1.5ădùngă đ ă đi uă khi nă th iăgiană sángă t iă củaă cácă đènă báoă xanhă đ ă vàng củaă haiă lànă
đ ng.
Cụ thể bảng địa Ếhỉ nh sau ốà m Ế điều khiển ẾáẾ ầeế 7 đoạn nh sau.
a. Địa Ếhỉ điều khiển ẾáẾ Ếhân Ầ Ếhung Ế a ầeế 7 đoạn:
-P2.0:ăThanhăAăcủaăcácăledă7ăđo n.
-P2.1:ăThanhăBăcủaăcácăledă7ăđo n.
-P2.2:ăThanhăCăcủaăcácăledă7ăđo n.
-P2.3:ăThanhăDăcủaăcácăledă7ăđo n
-P2.4:ăThanhăEăcủaăcácăledă7ăđo n
-P2.5:ăThanhăFăcủaăcácăledă7ăđo n
-P2.6:ăThanhăGăcủaăcácăledă7ăđo n
b. M Ế điều khiển : Cácă thanhă củaă ledă 7ă đo nă Aă n tă chungă t ơngăứngă từă Aă t iăGă s ă
sángăkhiăăcácăchânăKăt tămức thấpăvàăchânăAăn tăchungăăởămứcăcao.
Vìăv yăcácăledă7ăthanhăs ăsángăkhiăchânăt ơngăứngătừăP2.0ăđ năP2.6 ởămứcăthấp,ăvàăcácă
chânăAăn tăchungăởămứcăcao,ăhayăcácăchânăđi uăkhi năcựcăBăcácăTransistor NPN t ơngăứngăă
(Q1ăđ năQ4,ălo iăNPN)ăph iăởămứcăcao.
Cácăthanhăledăt ơngăứngăs ăt tăkhiăthi uăm tătrongăhaiăđi uăkiện,ăho căc ăhaiăđi uăkiệnă
trên.
c. Địa Ếhỉ điều khiển ẾáẾ Ếhân A n t Ếhung Ế a leế 7 đoạn:
-P1.0: chânăAăn tăchungăă(LEDăhàngăđơnăv )ăcủaălànăđ ngă1.
-P1.1:ăchânăAăn tăchungăă(LEDăhàngăchục) củaălànăđ ngă1.
-P1.2:ăchânăAăn tăchungăă(LEDăhàng đơnăv ) củaălànăđ ngă2.
-P1.3:ăchânăAăn tăchungăă(LEDăhàng chục) củaălànăđ ngă2.
1.3. M ch hi n thị LED đ n
a. Địa Ếhỉ ốà m Ế điều khiển :
* Địa Ếhỉ:
-P0.0:ăN iăv iăđènăđ đ ngă1.
-P0.1:ăN iăv iăđènăvàng đ ngă1.
-P0.2:ăN iăv iăđènăxanhăđ ngă1.
-P0.3:ăN iăv iăđènăđ ăđ ng 2.
-P0.4:ăN iăv iăđènăvàngăăđ ngă2.
15
Nhóm 1 Ầhoa Điện-Điện t viễn thông
16
Nhóm 1 Ầhoa Điện-Điện t viễn thông
START
L UĐ THU T TOÁN
CH NG TRÌNH
SoGiayLan1=25. CHÍNH
SoGiayLan2=30.
B tăĐènă:Xanh1,ăDo2
Ch yăch ơngătrìnhăquétă
ledă7ăđo n
Tr ă1s
SoGiayLan1 = SoGiayLan1 ậ 1.
SoGiayLan2 = SoGiayLan2 ậ 1.
SoGiayLan1 = 0. Sai
?
Đúng
SoGiayLan1 = 5.
17
Nhóm 1 Ầhoa Điện-Điện t viễn thông
TĕtăĐèn:ăXanh1.ăB tăĐèn:Vang1
Ch yăch ơngătrìnhăquétă
ledă7ăđo n
Tr ă1s
SoGiayLan1 = SoGiayLan1 ậ 1.
SoGiayLan2 = SoGiayLan2 ậ 1.
SoGiayLan1 = 0 Sai
?
Đúng
SoGiayLan1 = 30.
SoGiayLan2 = 25.
T tăĐènă:ăVàng1,ăĐ 2.
B tăĐèn:ăĐ 1,ăXanh2.
18
Nhóm 1 Ầhoa Điện-Điện t viễn thông
Ch yăch ơngătrìnhăquétă
ledă7ăđo n.
Tr ă1s
SoGiayLan1 = SoGiayLan1 ậ 1.
SoGiayLan2 = SoGiayLan2 ậ 1.
SoGiayLan2= 0 Sai
?
Đúng
SoGiayLan2 = 5.
T tăĐènă:ăXanh2
B tăĐènă:ăVang2
Ch yăch ơngătrìnhăquétă
ledă7ăđo n.
Tr ă1s
19
Nhóm 1 Ầhoa Điện-Điện t viễn thông
SoGiayLan1 = SoGiayLan1 ậ 1.
SoGiayLan2 = SoGiayLan2 ậ 1.
SoGiayLan1= 0 Sai
?
Đúng
T tăĐènă:ăDo1,ăVang2
.
20
Nhóm 1 Ầhoa Điện-Điện t viễn thông
START
T TăLEDă7ăĐO N
B TăXANHă1ăĐ ă2
S THOỄTăCH ă S
CHUY NăĐÈN
Đ ăTAY
?
?
Đ
Đ
THOỄTăCH ă
CHUY NăĐÈN S S
Đ ăTAY
?
?
Đ
Đ
T TăVÀNGă1ăB TăĐ ă1
EXIT
T TăĐ ă2ăB TăXANHă2
S THOỄTăCH ă S
CHUY NăĐÈN
Đ ăTAY
?
?
EXIT
21
Nhóm 1 Ầhoa Điện-Điện t viễn thông
Đ
Đ
T TăXANHă2ăB TăVÀNGă2
S
CHUY NăĐÈN S THOỄTăCH
SS ă
SS S
Đ ăTAY
?
?
Đ
Đ
EXIT
22
Nhóm 1 Ầhoa Điện-Điện t viễn thông
START
TH IăGIANăĐÈNăXANHă=ă0,ă
B TăĐÈNăXANH
HI NăTH ăLEDă7ăĐO N
TĔNGă? S
TĔNGăTH IăGIANăXANH
S
GI Mă?
GI MăTH IăGIANăXANH
S OK
XANH ?
23
Nhóm 1 Ầhoa Điện-Điện t viễn thông
HI NăTH ăLEDă7ăĐO N
TĔNGă? S
TĔNGăTH IăGIANăVÀNG
S
GI Mă?
GI MăTH IăGIANăVÀNG
S OK
VÀNGă?
24
Nhóm 1 Ầhoa Điện-Điện t viễn thông
TH IăGIANăĐÈNăĐ ă=ă0,
T TăVÀNG,ăB TăĐ
HI NăTH ăLEDă7ăĐO N
S
TĔNGă?
TĔNGăTH IăGIAN Đ
GI Mă? S
GI MăTH IăGIAN Đ
S
OKăĐ ?
EXIT
25
Nhóm 1 Ầhoa Điện-Điện t viễn thông
ORG 0H
LJMP MAIN
ORG 0003H
LJMP DK_BANGTAY
ORG 0013H ;KHAI BAO VEC TO NGAT NGOAI 1
LJMP CAIDAT
MAIN:
TIEP:
////...DO1 - XANH2 SANG...////
MOV R6,40H ; R6 LAY 30S CHO DEN DO 1
MOV R7,41H ; R7 LAY 25S CHO DEN VANG 2
MOV R1,#125 ; DEM 1 S
MOV P0,#0H
SETB P0.0 ; BAT LED DON DO 1
SETB P0.5 ; BAT LED DON VANG 2
LOOP1:
26
Nhóm 1 Ầhoa Điện-Điện t viễn thông
LCALL CHIA
DEC R6
DEC R7
LAP1:
LCALL HIENTHI
DJNZ R1,LAP1
MOV R1,#125
CJNE R7,#0H,LOOP1
////...DO1 - VANG2 SANG...////
MOV R6,42H
MOV R7,42H
CLR P0.5
SETB P0.4
LOOP2:
LCALL CHIA
DEC R6
DEC R7
LAP2:
LCALL HIENTHI
DJNZ R1,LAP2
MOV R1,#125
CJNE R7,#0H,LOOP2
////...XANH1 - DO2 SANG...////
MOV R6,41H
MOV R7,40H
CLR P0.0
CLR P0.4
SETB P0.2
SETB P0.3
LOOP3:
27
Nhóm 1 Ầhoa Điện-Điện t viễn thông
LCALL CHIA
DEC R6
DEC R7
LAP3:
LCALL HIENTHI
DJNZ R1,LAP3
MOV R1,#125
CJNE R6,#0H,LOOP3
////...VANG1 - DO2 SANG...////
MOV R6,42H
MOV R7,42H
CLR P0.2
SETB P0.1
LOOP4:
LCALL CHIA
DEC R6
DEC R7
LAP4:
LCALL HIENTHI
DJNZ R1,LAP4
MOV R1,#125
CJNE R7,#0H,LOOP4
LJMP TIEP
28
Nhóm 1 Ầhoa Điện-Điện t viễn thông
DIV AB
MOV 31H,B
MOV 32H,A
MOV A,R7
MOV B,#10
DIV AB
MOV 33H,B
MOV 34H,A
RET
HIENTHI: ;/////.....QUETăMÃăLEDă7ăDOAN.....//////
MOV A,31H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.0
LCALL DELAY_2MS
CLR P1.0
MOV A,32H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.1
LCALL DELAY_2MS
CLR P1.1
MOV A,33H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.2
29
Nhóm 1 Ầhoa Điện-Điện t viễn thông
LCALL DELAY_2MS
CLR P1.2
MOV A,34H
MOVC A,@A+DPTR
MOV P2,A
SETB P1.3
LCALL DELAY_2MS
CLR P1.3
RET
DELAY_2MS:
MOV R2,#4
CONT:
MOV R3,#250
DJNZ R3,$
DJNZ R2,CONT
RET
DELAY_125MS:
MOV R4,#250
AGAIN:
MOV R5,#250
DJNZ R5,$
DJNZ R4,AGAIN
RET
DELAY_750MS:
ACALL DELAY_125MS
ACALL DELAY_125MS
ACALL DELAY_125MS
ACALL DELAY_125MS
30
Nhóm 1 Ầhoa Điện-Điện t viễn thông
ACALL DELAY_125MS
ACALL DELAY_125MS
RET
LED7DOAN:
DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
31
Nhóm 1 Ầhoa Điện-Điện t viễn thông
CLR P0.2
V1_D2:
SETB P0.1
JNB P3.5,THOAT
JB P3.4,V1_D2
LCALL DELAY_750MS
LJMP DK_BANGTAY
THOAT:
RETI
SETUP_XANH:
MOV 41H,#0
CLR p1.5
LAPX1:
MOV R6,41H
MOV R7,41H
LCALL CHIA
LCALL HIENTHI
KT_TANG_X:
JB P3.6,KT_GIAM_X
LCALL DELAY_125MS
INC 41H
KT_GIAM_X:
JB P3.7,OK_X
LCALL DELAY_125MS
DEC 41H
OK_X:
JB P3.5,LAPX1
32
Nhóm 1 Ầhoa Điện-Điện t viễn thông
LCALL DELAY_750MS
SETB P1.5
SETUP_VANG:
MOV 42H,#0
CLR P1.6
LAPV1:
MOV R6,42H
MOV R7,42H
LCALL CHIA
LCALL HIENTHI
KT_TANG_V:
JB P3.6,KT_GIAM_V
LCALL DELAY_125MS
INC 42H
KT_GIAM_V:
JB P3.7,OK_V
LCALL DELAY_125MS
DEC 42H
OK_V:
JB P3.5,LAPV1
LCALL DELAY_750MS
SETB P1.6
SETUP_DO:
MOV 40H,#0
CLR P1.7
LAPD1:
MOV R6,40H
MOV R7,40H
33
Nhóm 1 Ầhoa Điện-Điện t viễn thông
LCALL CHIA
LCALL HIENTHI
KT_TANG_D:
JB P3.6,KT_GIAM_D
LCALL DELAY_125MS
INC 40H
KT_GIAM_D:
JB P3.7,OK_D
LCALL DELAY_125MS
DEC 40H
OK_D:
JB P3.5,LAPD1
LCALL DELAY_750MS
SETB P1.7
RETI
END
NGÔN NG C
#include <at89x51.h>
#include <REGX51.H>
#define bat 1
#define tat 0
sbit d1 = P0^0 ;
sbit v1 = P0^1 ;
sbit x1 = P0^2 ;
sbit d2 = P0^3 ;
sbit v2 = P0^4 ;
sbit x2 = P0^5 ;
sbit dk_dv1 = P1^0 ;
34
Nhóm 1 Ầhoa Điện-Điện t viễn thông
sbit a = P2^0 ;
sbit b = P2^1 ;
sbit c = P2^2 ;
sbit d = P2^3 ;
sbit e = P2^4 ;
sbit f = P2^5 ;
sbit g = P2^6 ;
sbit chinhledxanh = P1^5 ;
sbit chinhledvang = P1^6 ;
sbit chinhleddo = P1^7 ;
sbit ok = P3^5 ;
sbit len = P3^6 ;
sbit xuong = P3^7 ;
sbit chinhtay = P3^4 ;
unsigned char
thoigian1,thoigian2,timerxanh=25,timerdo=30,timervang=5,solanquet=25;
unsigned char maled7[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int ms);
void hienthi(thoigian1,thoigian2);
void main()
{
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
P0=0x00;
while (1)
35
Nhóm 1 Ầhoa Điện-Điện t viễn thông
thoigian1=timerxanh;
thoigian2=timerdo;
x1=1;
d2=1;
do
{
hienthi(thoigian1,thoigian2);
thoigian1--;
thoigian2--;
}
while(thoigian1!=0);
x1=0;
thoigian1=timervang;
thoigian2=timervang;
v1=1;
do
{
hienthi(thoigian1,thoigian2);
thoigian1--;
thoigian2--;
}
while(thoigian1!=0);
d2=0;
v1=0;
thoigian1=timerdo;
thoigian2=timerxanh;
d1=1;
x2=1;
36
Nhóm 1 Ầhoa Điện-Điện t viễn thông
do
{
hienthi(thoigian1,thoigian2);
thoigian1--;
thoigian2--;
}
while(thoigian2!=0);
x2=0;
thoigian1=timervang;
thoigian2=timervang;
v2=1;
do
{
hienthi(thoigian1,thoigian2);
thoigian1--;
thoigian2--;
}
while(thoigian1!=0);
d1=0;
v2=0;
}
}
37
Nhóm 1 Ầhoa Điện-Điện t viễn thông
void hienthi(thoigian1,thoigian2 )
{
unsigned char ch1,dv1,dv2,ch2,u;
ch1=thoigian1/10;
dv1=thoigian1%10;
ch2=thoigian2/10;
dv2=thoigian2%10;
for(u=0;u<=solanquet;u++)
{
P2=maled7[dv1];
dk_dv1 = 1;
delay(10);
dk_dv1 = 0;
P2=maled7[ch1];
dk_ch1 = 1;
delay(10);
dk_ch1=0;
P2=maled7[dv2];
dk_dv2=1;
delay(10);
dk_dv2=0;
P2=maled7[ch2];
dk_ch2=1;
delay(10);
dk_ch2=0;
}
}
void chinhthoigian(void) interrupt 2
{
38
Nhóm 1 Ầhoa Điện-Điện t viễn thông
timerxanh=0;
timerdo=0;
timervang=0;
solanquet=5;
do
{
chinhledxanh=0;
thoigian1=timerxanh;
thoigian2=timerxanh;
hienthi(thoigian1,thoigian2);
if (len==0)
timerxanh++;
else
if (xuong==0)
timerxanh--;
}
while(ok!=0);
chinhledxanh=1;
delay(7);
do
{
chinhledvang=0;
thoigian1=timervang;
thoigian2=0;
hienthi(thoigian1,thoigian2);
if (len==0)
timervang++;
else
if (xuong==0)
39
Nhóm 1 Ầhoa Điện-Điện t viễn thông
timervang--;
}
while(ok!=0);
chinhledvang=1;
delay(7);
do
{
chinhleddo=0;
thoigian1=timerdo;
thoigian2=timerdo;
hienthi(thoigian1,thoigian2);
if (len==0)
timerdo++;
else
if (xuong==0)
timerdo--;
}
while(ok!=0);
chinhleddo=1;
delay(7);
thoigian1=1;
thoigian2=1;
solanquet=25;
}
void bangtay(void) interrupt 0
{
P1=0;
P0=0xe0;
while (ok!=0)
40
Nhóm 1 Ầhoa Điện-Điện t viễn thông
{
do
{
x1=1;
d2=1;
}
while(chinhtay!=0);
delay(225);
x1=0;
do
{
v1=1;
d2=1;
}
while(chinhtay!=0);
delay(225);
d2=0;
v1=0;
do
{
d1=1;
x2=1;
}
while(chinhtay!=0);
delay(225);
x2=0;
do
{
d1=1;
v2=1;
}
41
Nhóm 1 Ầhoa Điện-Điện t viễn thông
while(chinhtay!=0);
delay(225);
d1=0;
v2=0;
}
}
42
Nhóm 1 Ầhoa Điện-Điện t viễn thông
K T LU N
Sau thời gian tửm hiểu v hệ thống đèn giao thông, Ếùng với việẾ tửm tài liệu trên sáẾh,
ẽáo, intỀrnỀt, k t hợp với ki n thứẾ đã đượẾ họẾ và đượẾ sự Ếhỉ ẽảo Ếủa th y Nguyễn Thanh
Hi u. Chúng Ềm đã hoàn thành ẽài tập, đáp ứng đượẾ yêu Ế u th y đ ra.
Qua ẽài tập này giúp Ếhúng Ềm nắm v ng đượẾ quy luật đi u khiển đèn giao thông,
CáẾh thứẾ một hệ thống đèn giao thông hoạt động Ếũng như thuật toán x lý khi đi u
khiển ẽằng vi x lý.
Xong ếo hạn Ếh v nhi u mặt , nên ẾhắẾ Ếhắn không tránh khỏi nh ng thi u sót. Chúng
Ềm r t mong nhận đượẾ sự đóng góp Ếủa th y Ếùng ẾáẾ ẽạn .
Xin Ếhân thành Ếảm ơn!
43