Việc đáp ứng này có thể được thực hiện thông qua các chế độ hoạt động của đèn giao thông, như: chế độ hoạt động tự động khi không ở giờ cao điểm, chế độ điều khiển bằng tay của cảnh sát
Trang 1LỜI NÓI ĐẦU
Công nghệ điện tử đang có những bước phát triển chóng mặt trong những năm gần đây Trong đó công nghệ vi điện tử đã có bước phát triển vượt bậc Những con chip với kích thước nhỏ gọn đang là sự lựa chọn tối ưu nhất cho các ứng dụng ngày nay Hàng loạt các nghiên cứu của các nhà khoa học đều nhằm rút ngắn kích thước, tăng tính tiện lợi và thông minh hơn cho các chip
Các chip càng tối ưu thì khả năng ứng dụng vào thực tế càng cao Thực tế đã cho thấy, những sản phẩm của công nghệ vi điện tử đã vươn tới mọi lĩnh vực trong cuộc sống, từ sản xuất đến sinh hoạt hằng ngày Trong tương lai công nghệ vi điện tử sẽ còn tiến xa hơn để thoả mãn nhu cầu ngày càng cao của con người Vì vậy đối với mỗi sinh viên ngành điện tử cần luôn đào sâu nghiên cứu để theo kịp sự phát triển của công nghệ Vi điều khiển là một sản phẩm quan trọng của công nghệ vi điện tử, những chip vi điều khiển nhỏ gọn thực sự là một bộ óc nhân tạo.
Em đã được làm quen với vi điều khiển 8051 của hãng Intel, vì vậy qua việc thực hiện đề tài “mô hình đèn giao thông” này là một cơ hội để em nắm vững kiến thức hơn, đồng thời mong muốn có thể ứng dụng kiến thức đã học để tạo ra sản phẩm có ích cho cuộc sống Em nghĩ đề tài này xát thực tế và có nhiều hướng phát triển Tuy nhiên vì điều kiện thời gian có giới hạn và thực hiện một mình nên không thể biến hết các ý tưởng thành hiện thực Lần đầu tiên thực hiện đồ án nên không thể tránh khỏi những sai sót, em rất mong nhận được sự đóng góp ý kiến của thầy cô và bạn
bè để khắc phục những điểm chưa hoàn thiện của đề tài
Trong thời gian thực hiện đề tài em đã nhận được sự giúp đỡ tận tình cả về kiến thức chuyên ngành lẫn tinh thần của cô giáo Phạm Trần Bích Thuận cũng như các thầy cô trong khoa điện tử, em xin chân thành cảm ơn các thầy cô Với mong muốn tiếp tục hoàn thiện đề tài em rất mong nhận được sự giúp đỡ của các thầy cô
Em xin chân thành cảm ơn!
1
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
-Chữ ký của giáo viên
2
Trang 3NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
-Chữ ký của giáo viên
3
Trang 4MỤC LỤC
PHẦN A: NỘI DUNG -5
I MỤC ĐÍCH -5
II NGUYÊN LÝ HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG -6
II.1 HOẠT ĐỘNG -6
II.2 LƯU ĐỒ GIẢI THUẬT CHUNG -6
III CÁC KHỐI CỦA MÔ HÌNH ĐÈN GIAO THÔNG -8
III.1 KHỐI VI XỬ LÝ VÀ KHỐI NGUỒN -8
III.1.1 Sơ đồ nguyên lý -8
III.1.2 Nguyên lý hoạt động -9
III.1.2.1 Khối vi xử lí -9
III.1.2.2 Khối nguồn -9
III.2 KHỐI HIỂN THỊ -10
III.2.1 Lưu đồ giải thuật -10
III.2.2 Sơ đồ nguyên lý -11
III.2.3 Nguyên lý hoạt động -12
III.3 KHỐI BÀN PHÍM -13
III.3.1 Sơ đồ nguyên lý -13
III.3.2 Lưu đồ giải thuật -14
IV CHƯƠNG TRÌNH LẬP TRÌNH CHO VI XỬ LÍ -17
PHẦN B: KẾT LUẬN -39
PHẤN C: HƯỚNG PHÁT TRIỂN ĐỀ TÀI -40
PHẦN D: TÀI LIỆU THAM KHẢO -41
4
Trang 5Theo em nghĩ xây dựng một hệ thống tín hiệu đèn giao thông đơn giản, có thể được ứng dụng và nhân rộng và đặt biệt là hoạt động ổn định, thay thế được vai trò của người cảnh sát giao thông là cần thiết và sát thực tế nhất Không những thế hệ thống đèn thông giao thông này phải thật sự linh hoạt để đáp ứng các tình huống khi mà lượng xe lưu thông trên đường có sự thay đổi Việc đáp ứng này có thể được thực hiện thông qua các chế độ hoạt động của đèn giao thông, như: chế độ hoạt động tự động khi không ở giờ cao điểm, chế độ điều khiển bằng tay của cảnh sát giao thông sử dụng khi kẹt đường, chế độ đèn vàng trong khoảng thời gian từ 23h tối hôm này đến 5h sáng hôm sau Ngoài ra hệ thống đèn giao thông này còn có thể thay đổi được khoảng thời gian hiển thị của các tín hiệu đèn Từ những ý tưởng đó đi đến mục đích để em xây dựng mô hình hệ thống đèn giao thông này Với mong muốn mô hình này sẽ tiếp tục có những nâng cấp, sửa đổi để có thể
đi vào thực tế
II NGYUÊN LÝ HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG
Mô hình đèn giao thông gồm có:
Đầu nhập dữ liệu vào là bàn phím, gồm các phím chức năng và phím nhập thời gian,để cài đặt thời gian của các chế độ hiển thị
Khối vi xử lí gồm có: mạch vi xử lí với vi điều khiển 89V51 làm nhiệm vụ xử lí chính, bộ nguồn cung cấp điện áp 5VDC, các nút nhấn:
_ Nút Reset: Đưa chương trình trở lại ban đầu
5
Trang 6_ Nút Cut and Set: chuyển giữa các chế độ tự động và chế độ điều khiển bằng tay; chuyển sang chế độ nhập dữ liệu từ bàn phím, là nút nhấn tạo ra tín hiệu ngắt ngoài.
_ Nút Manual mode: chuyển đổi hai trạng thái hiển thị trong chế độ điều khiển bằng tay
Đầu dữ liệu ra ( hiển thị) gồm:
_Màn hình LCD: hiển thị thông tin được nhập vào từ bàn phím
_Led đơn: hiển thị tín hiệu đèn giao thông.
_Led 7 đoạn: hiển thị thời gian sáng của đèn.
II.1 HOẠT ĐỘNG
Đầu tiên chương trình Main thiết lập chế độ ngắt ngoài,khi có tín hiệu ngăt ngoài (nút cut and set được nhấn), chương trình chuyển sang chế độ chọn quét phím hay chọn điều khiển bằng tay
Khi chương trình đang chạy, nút Cut and Set nhấn lần 1để ngắt hiển thị, nhấn lần 2 chương trình chuyển sang chế độ quét phím Thông tin nhập vào từ bàn phím ma trận sẽ được lưu lại đồng thời được hiển thị trên LCD Sau khi nhập đầy đủ các thông số: thời gian hiển thị của đèn xanh,đèn đỏ; thời gian hiện tại,người sử dụng nhấn phím Enter để thoát khỏi chương trình quét bàn phím ma trận và chuyển tới chương trình hiển thị tín hiệu đèn giao thông và hiển thị thời gian trên led 7 đoạn Nếu không nhấn phím Enter thì không thể chuyển sang hiển thị tín hiệu đèn
Nếu nút Man mode được nhấn, chương trình chuyển sang chế độ điều khiển bằng tay của cảnh sát giao thông Tiếp tục sử dụng phím Man mode để chuyển đổi qua lại giữa hai chế độ hiển thị: tuyến a đèn vàng sáng, tuyến b đèn xanh sáng và tuyến a đèn xanh sáng, tuyến b đèn vàng sáng Khi không cần thiết sử dụng chế độ điều khiển bằng tay (khi đường đã thông xe trở lại) thì người dùng nhấn nút Cut and Set để ngắt chế độ điều khiển bằng tay Khi chế độ điều khiển bằng tay đã ngắt thì người dung phải cài đặt lại thời gian hiện tại
II.2 LƯU ĐỒ GIẢI THUẬT CHUNG
6
Trang 7GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
7
Cut and Set
Chọn nhập thời gian
Manual mode
Tín hiệu đèn
Cut and Set
Cut and Set
Có nhấn
không
không
Cut and Set
Có nhấn
Quét bàn
Phím Enter
Trang 8III CÁC KHỐI CỦA MÔ HÌNH ĐÈN GIAO THÔNG
III.1 KHỐI VI XỬ LÝ VÀ KHỐI NGUỒN
III.1.1 Sơ đồ nguyên lý
8
Trang 9- Port 0 : nối với bàn phím, đồng thời nối với các chân từ chân AD0 đến AD6 để xuất các tín hiệu data đưa vào các chân từ D0 đến D7 của các led 7 đoạn.
- Port 1 : để thu và phát thông tin đến các chân từ D0 đến D7 của màn hình LCD
- Các chân từ P2.0 đến P2.5 dùng để điều khiển sáng tắt led đơn, đóng vai trò làm tín hiệu đèn giao thông
- Các chân từ P2.0 đến P2.2 tương ứng dùng để điều khiển các chân RS, RW, E, đóng vai trò là các chân điều khiển của màn hình LCD
- Chân P3.1 được nối với nút nhấn Man mode
- Chân P3.2 được nối với nút nhấn Cut and Set
- Các chân từ P3.4 đến P3.7 đóng vai trò xuất tín hiệu quét led 7 đoạn
III.1.2.2 Khối nguồn
9
Trang 10Gồm có biến thế 3A,đưa ra mức điện áp 12VAC Cầu chỉnh lưu biến điện áp 12VAC thành 12VDC Mức điện áp này đi qua IC ổn áp 7805, đầu ra của IC 7805 là mức điện áp 5VDC, mức điện áp này dùng để cung cấp cho khối vi xử lí và khối hiển thị Ngoài ra trong sơ đồ khối nguồn còn có các tụ có nhiệm vụ lọc nhiễu và giảm bớt độ nhấp nhô của
áp DC ở ngõ ra
III.2 KHỐI HIỂN THỊ
III.2.1 Lưu đồ giải thuật
10
A: đỏ B:xanh
Đổi BCD Sang 7 đoạn
Delay quét
(58H) với
#0fH
A: xanh B:đỏ
Đổi BCD Sang 7 đoạn
A: đỏ
B:xanh
Delay quét
MOV R6,54H MOV R7,55H
MOV R6,55H MOV R7,54H
R7 với 0Khôngbằng Bằng R6 với 0Khôngbằng
7 61
Main1:
Trang 11III.2.2 Sơ đồ nguyên lí
11
R7 với 0
A: đỏ B:vàng Trong 3s; mov R7,#3
Khôngbằng
R6 với 0
A: vàng B:đỏ Trong 3s;mov R6,#3
Khôngbằng
Trang 12Sơ đồ mạch in
III.2.3 Nguyên lí hoạt động
Chương trình hiển thị led đơn, hiển thị thời gian trên led 7 đoạn được đặt trong chương trình ngắt Timer1 Chương trình hiển thị led chỉ được thực hiện sau khi đã chạy xong chương trình phuc vụ ngắt ngoài ( chương trình cài đặt thời gian hiển thị cho các led) Sau khi đã cài đặt thời gian, các gia trị được lưu trên hai ô nhớ 54H ( đèn đỏ) và 55H ( đèn xanh) Các giá trị này lần lược được chuyển qua thanh ghi R6 và R7
Ta biết hệ thống giao thông ngã tư có hai tuyến Chương trình khởi động chế độ hiển thị thứ nhất: tuyến A đèn đỏ và tuyến B đèn xanh Chương trình con chuyển BCD sang 7 đoạn và chương trình quét led được gọi để hiển thị thời gian trên led 7 đoạn, các giá trị
xử lí trong hai chương trình con này được lấy từ R6 và R7 Ô nhớ 58H là ô nhớ đánh dấu
ở chế độ đèn vàng, nếu ô nhớ 58H bằng giá trị 0fH ( là một giá trị tuỳ ý ta chọn) tức là chương trình vừa thoát khỏi chế độ đèn vàng, chương trình sẽ quay trở lại thực hiện từ đầu Nếu không bằng chương trình tiếp tục giảm R6 và so sánh giá trị R6 với 0 Nếu R6 khác không, tức là thời gian đèn đỏ hiển thị chưa hết, thì chương trình chuyển sang giảm R7 và so sánh giá trị R7 với 0, nếu khác 0, chương trình quay trở lại ban đầu để tiếp tục cho hiển thị tren led 7 đoạn, nếu bằng 0, tức thời gian đèn xanh đã hết, đèn xanh sẽ chuyển sang đèn vàng trong vòng 3s, đèn đỏ giữ nguyên Trường hợp khi so sánh R6
12
Trang 13bằng 0 ( thời gian đèn đỏ đã hết), thì chương trình sẽ chuyển sang trạng thái hiển thị thứ hai: tuyến A đèn xanh và tuyến B đèn đỏ Chương trình hoạt động theo trình tự tương tự như trên
Trong suốt quá trinh hoạt động của đèn, Timer0 sẽ đếm liên tục để tăng byte giờ ( ô nhớ 51H), khi nào (51H) bằng 23, tức 11h tối, hệ thống chuyển sang chế độ đèn vàng Khi (51H) bằng 5, tức 5h sáng hôm sau, hệ thống thoát khỏi chế độ đèn vàng
III.3 KHỐI BÀN PHÍM
III.3.1 Sơ đồ nguyên lý
13
Trang 14III.3.2 Lưu đồ giải thuật
Khi nhấn phím chức năng nào sẽ vào chương trình con tương ứng, các chương trình con đều được xây dựng với sơ đồ giải thuật tương tự nhau Dưới đây là giải thuật của chương trình quét phím và nhập thời gian cho đèn đỏ, từ đó có thể suy ra giải thuật cho các chương trình khác
14
Red light
Green light
Hours
Minute s
Không nhấn
Không nhấn
Không nhấn
Không nhấn
nhấn
Scankeypad :
RETI
Trang 15Hiển thị:”RED LIGHT:”
Trên LCD
Phím số
Có nhấn
Không
Không
Nạp vào R4 Scankeypad
Trang 16GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
Phím số
Có nhấn
Nạp vào R4 Hiển thị LCD số hàng đơn vị
Scankeypad
Phím: Red; Green;
Hours; Minutes
CL R
Phím số
Trang 17Tất cả các chương trình phím chức năng kết quả đều nạp vào thanh ghi R4 Cuối chương trình giá trị của thanh ghi R4 sẽ được chuyển vào một ô nhớ cố định, riêng biệt cho từng chương trình trước khi nhấn Enter để đưa các giá trị trong các ô nhớ đó hiển thị
ở led, hoặc tiếp tục xử lí ( chương trình cài đặt thời gian cho Timer0) Ta có 51H, 52H lần lượt chứa thông tin về giờ và phút được cài đặt; 54H, 55H lần lượt chứa thời gian hiển thị của đèn đỏ và đèn vàng
Ngưòi dùng chỉ được nhập một số có hai chữ số, nhập hơn chương trình sẽ báo đầy
Ở chương trình nhập thời gian cho byte giờ và byte phút, sau khi nhập xong dữ liệu thay vì kiểm tra giá trị nhập là bằng o hay khác o, chương trình sẽ kiểm tra để chặn các giá trị nạp vào lớn hơn hoặc bằng 24
RET
Có nhấnKhông
Khác 00
Xét nội dung được nạp
Bằng 00
Thông báo Yêu cầu nhập lại Nạp vào ô nhớ 54H
Trang 18JZ TRANSFER
MOVR6,AMOVA,R7ADDA,#99H
18
Trang 19MOVA,R7ADDA,#99H
DAA
JZ MAIN1
MOVR7,AMOVA,R6ADDA,#99H
DAAMOVR6,ACJNER6,#00H,BEGIN2
MOVR6,#3H
MOVP2,#0F5H
LJMP BEGIN2EXIT:
Trang 20JB MAN_MODE,CHOOSE_MODE1
LCALL MANUAL_MODEAUTO_MODE:
MOVP2,65H
CLRIE0SETBEX0SETBTF1SETBET1RETI
;************************MANUAL MODE***************************
MANUAL_MODE:
PUSHACCPUSH 00H
PUSH 70H
PUSH 03H
MOV 65H,P2CLREX0
Trang 21SJMP SCAN_SW2DELAY_MANU:
MOVR0,#40
MOVTMOD,#11HLOOP3:
JB CUT_SETTING,SCAN_SW2
DJNZR3,SCAN_SW1
SJMP CHANGE_MODESCAN_SW2:
JNBTF0,SURE_1
CLRTR0CLRTF0DJNZR0,LOOP3
Trang 22SETBP3.4SETBP3.5SETBP3.6SETBP3.7LCALL LCDSTARTMAIN_2:
Trang 23LCALL REDLIGHT_1NEXT1:
CJNEA,#0BH,NEXT2
LCALL GREENLIGHT_1NEXT2:
CJNEA,#0CH,NEXT3
LCALL HOURS_1NEXT3:
CJNEA,#0DH,NEXT4
LCALL MINUTES_1NEXT4:
CJNEA,#00H,NEXT5
SJMP NEXT6NEXT5:
LJMP MAIN_2NEXT6:
POPACCPOPDPLPOPDPHRET
Trang 24MOVCA,@A+DPTRMOV 61H,A
MOVA,R6ANLA,#0F0H
SWAPAMOVCA,@A+DPTRMOV 60H,A
MOVA,R7ANLA,#0FH
MOVCA,@A+DPTRMOV 63H,A
MOVA,R7ANLA,#0F0H
SWAPAMOVCA,@A+DPTRMOV 62H,A
POPACCPOPDPHPOPDPLRET
;=====================DISPLAY 7SEG CODE=======================
DIS_7SEG:
24
Trang 25PUSHACCPUSH 00H
MOVR0,#60H
MOVA,#0EFH
LOOP:
MOVP0,@R0MOVP3,ALCALL DELAY_1
MOVP3,#0FFH
INCR0
RLACJNEA,#0FEH,LOOP
POP 00H
POPACCRET
;======================DELAY AND SCAN IN 1S==================
DELAY_SCAN:
PUSH 00H
PUSHACCMOVR0,#40
MOVTMOD,#01HLOOP1:
Trang 26SJMP BACKSCAN_2DETECT1:
CJNEA,#3,DETECT2
LCALL WAITING_1
MOV 58H,#0FH
SJMP BACKSCAN_2DETECT2:
CJNEA,#4,BACKSCAN_1
LCALL WAITING_1
MOV 58H,#0FH
SJMP BACKSCAN_2BACKSCAN_1:
POPACCPOP 00H
MOVP2,#0EDH
MOV 53H,#00HWAITING_2:
MOVA,51H
26
Trang 27MOV 51H,#00HDELAY1S:
MOV 56H,#100
MOVTMOD,#11HLOOP2:
MOVTH0,#HIGH(-10000)
MOVTL0,#LOW(-10000)
SETBTR0JNBTF0,$
CLRTR0CLRTF0INC 53H
POP 56H
POPTL0POPTH0POPACCRET
27
Trang 28=========================SCAN==================================
SCANKEYPAD:
PUSH 03HSCANKEYPAD_1:
MOVP0,AMOVR7,AMOVA,P0ANLA,#0FH
CJNEA,#0FH,KEYPRESSED
MOVA,R7
RLADJNZR6,TEST
CLRCSJMP EXIT1KEYPRESSED:
MOVR7,AMOVA,#4
CLRCSUBBA,R6MOVR6,A
28
Trang 29RRCAJNC DONE
INCR6INCR6INCR6INCR6DJNZR5,AGAINDONE:
SETBCMOVA,R6
MOVA,59H
SWAPAMOVR4,A
RETURN:
LCALL GET_NUMBER_CLR
MOV 59H,ACJNEA,#0FH,INPUT
MOVA,R4ANLA,#00H
MOVR4,ALCALL CLEAR_1
Trang 30ADDA,R4MOVR4,AMOV 57H,#0FHGO_1:
LCALL GET_NUMBER_CLR_ESC
CJNEA,#0FH,GO_2
MOVA,R4ANLA,#0F0H
MOVR4,ALCALL CLEAR_2
CJNEA,#0DH,GET_2
CLRASJMP GET_NUMBER_CLR
30
Trang 31CJNEA,#0CH,GET_3
CLRASJMP GET_NUMBER_CLRGET_3:
CJNEA,#0BH,GET_4
CLRASJMP GET_NUMBER_CLRGET_4:
CJNEA,#0AH,GET_5
CLRASJMP GET_NUMBER_CLRGET_5:
CJNEA,#0CH,GET2
CLRASJMP GET_NUMBER_CLR_ESCGET2:
CJNEA,#0BH,GET3
CLRASJMP GET_NUMBER_CLR_ESCGET3:
CJNEA,#0AH,GET4
CLRASJMP GET_NUMBER_CLR_ESCGET4:
31
Trang 32MOV 64H,#9
LCALL WRITE_LABELREDLIGHT_2:
LCALL SETTING
CJNER4,#00H,FINISH1
SJMP REDLIGHT_2FINISH1:
MOV 54H,R4
STOP1:
POPACCRET
MOV 64H,#11
LCALL WRITE_LABELGREENLIGHT_2:
LCALL SETTING
CJNER4,#00H,FINISH2
SJMP GREENLIGHT_2FINISH2:
MOV 55H,R4
STOP2:
32
Trang 33MOV 64H,#5
LCALL WRITE_LABELHOURS_2:
LCALL SETTING
CJNER4,#00H,FINISH3
SJMP HOURS_2FINISH3:
MOV 51H,R4
STOP3:
POPACCRET
MOV 64H,#7
LCALL WRITE_LABELMINUTES_2:
33
Trang 34LCALL SETTING
CJNER4,#00H,FINISH4
SJMP MINUTES_2FINISH4:
MOV 52H,R4
STOP4:
POPACCRET
Trang 35CLR RS
SJMP PULSE_ENSENDDATA:
NOP
BUSY:
MOVA,DATABUS
JBACC.7,BUSYBUSY_2:
CLRTR1CLRTF1RET
35
Trang 36ADDA,#80H
MOV DATABUS,A
MOVR1,ALCALL SENDCOMMAND
NOPMOV DATABUS,#' '
LCALL SENDDATA
LCALL DELAY_1
MOVA,R1MOV DATABUS,ALCALL SENDCOMMAND
POPACCPOP 01H
RET
CLEAR_2:
PUSH 01H
PUSHACCMOVA,64H
ADDA,#2
ADDA,#80H
MOV DATABUS,AMOVR1,A
36
Trang 37LCALL SENDCOMMAND
POPACCPOP 01H
RET
WRITE_CONT1:
MOV DATABUS,ALCALL SENDDATA
INCR1MOVA,R1SJMP WRITE_LABEL_1
RET
WRITE_DATA:
MOVCA,@A+DPTRMOV DATABUS,ALCALL SENDDATA
Trang 38THEN COMPARE FOR MAIN1 PROGRAM
;RETURN AT THE BEGINNING POSITION
THE STATUS OF LIGHTS(CONTEND OF
;P2) IN AUTO MODE AND MANUAL MODE
ERASE A CHARACTER PROGRAM
THE MANUAL MODE
END
38
Trang 39B KẾT LUẬN
Sau thời gian thực hiện, đề tài đã có những kết quả nhất định, em đã xây dựng được mô đèn giao thông ( như hình) với những tính năng như sau:
Hiển thị chính xác thời gian trên led 7 đoạn và tín hiệu đèn giao thông trên led đơn
Có khả năng cài đặt lại thời gian hiển thị của đèn đỏ và đèn xanh, và cài đặt thời gian hiện tại thông qua bàn phím ma trận
Ngoài ra đèn còn có chế độ điều khiển bằng tay thông qua nút nhấn Manual mode,
sử dụng khi kẹt đường Chế độ hiển thị đèn vàng trong khoảng thời gian từ 23h đến 5h sáng hôm sau
39