Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Lời nói đầu
Ngày nay trong khoa học kỹ thuật và đời sống xã hội các bộ vi điều
khiển có ứng dụng rộng rãi và thâm nhập ngày càng nhiều đến công việc, cuộc
sống hằng ngày của con người. Từ các thiết bị gia đình đến các thiết bị văn
phòng, hay các bộ điều khiển tự động đều sử dụng đến các bộ vi điều khiển, vì
vậy các hệ thống nhúng sử dụng vi điều khiển phục vụ cuộc sống con người là
thực sự cần thiết.
Cuộc sống được nâng cao, mật độ dân cư ở các thành phố đô thị lớn ngày càng
đông đúc hơn, vấn đề hỗ trợ cho người tham gia giao thông an toàn là việc cần
làm ngay và hệ thống đèn điều khiển và phân luồng giao thông ở các điểm ngã
tư, ngã năm được đưa vào sử dụng. Không những hạn chế được những xung đột
trong giao thông thành phố mà còn tránh được hiện tương ùn tắc, tai nạn giao
thông, hướng dẫn người tham gia giao thông đi đúng làn đường. Với nhu cầu
thực tiễn đó, nhóm chúng em đã tìm hiểu, nghiên cứu, thực hiện thiết kế mạch
điều khiển đèn giao thông.
1
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Chương I. Phương án thiết kế
1.1. Mô tả hoạt động của hệ thống:
Hệ thống đèn điều khiển giao thông gồm: led(xanh, đỏ, vàng) và 2 led 7
thanh có chức năng hiển thị thời gian đếm lùi đồng thời điều khiển các đèn Led
(Xanh, Vàng, Đỏ) để hướng dẫn các phương tiện tham gia giao thông đi đúng
làn đường cho phép của mình.
Do vị trí và lưu lượng người tham gia giao thông ở các nút giao thông là khác
nhau, nên thời gian hiển thị của các đèn ưu tiên cũng có thể đặt khác nhau tùy
từng thời điểm. Ở hệ thống này mỗi pha được điều khiển tự động như sau:
Đèn xanh sáng tương ứng với thời gian hiển thị đếm lùi là 25 giây, hoặc
có thể đặt phù hợp với từng nút giao thông.
Đèn vàng sáng 4 giây, thông báo cho các phương tiện tham gia giao
thông ứng với pha này giảm tốc độ và chuẩn bị dừng lại.
Phần II. Thiết kế
Để thực hiện thiết kế hệ thống, trước hết chúng ta tìm hiểu về cấu tạo và
chức năng của các vi điều khiển, khối vi điều khiển được sử dụng trong hệ
thống.
2.1. Khối xử lý:
2.1.1 Giới thiệu chung về vi điều khiển 8051:
Vi điều khiển AT89C51 là một vi điều khiển thuộc họ 8051, loại
CMOS, có tốc độ cao và công suất thấp với bộ nhớ Flash có thể lập trình được.
Nó được sản xuất với công nghệ bộ nhớ không bay hơi mật độ cao của hãng
Atmel. AT89C51 có 40 chân, được đóng gói theo tiêu chuẩn PDIP.
4
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Sơ đồ chân ra của dòng vi điều khiển 8051
Các đặc điểm tiêu chuẩn của họ 8051:
- 4KB Flash ROM.
- 128 byte RAM.
- 4 cổng vào/ra song song 8 bit.
- 2 bộ định thời/đếm 16 bit.
- Kiến trúc 5 vectơ ngắt 2 mức (five vector two-level interrupt
architecture).
- 1 cổng nối tiếp song công (full-duplex).
- Mạch tạo dao động trên chip và mạch đồng hồ.
AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần số giảm
xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọn bằng
phần mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ
định thời/đếm, cổng nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ
nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao động
cung cấp xung clock nhằm vô hiệu hóa các hoạt động khác của chip cho
đến khi có reset cứng tiếp theo.
ở đây không phải là ứng dụng chủ yếu. Cổng P3 có thêm một chức năng quan
trong khác là cung cấp một số tín hiệu đặc biệt, chẳng hạn như ngắt.
Bit P3.0 và P3.1 được dùng để thu phát dữ liệu trong truyền thông nối tiếp.
Bit P3.2 và P3.3 được dành cho ngắt ngoài. Bit P3.4 và P3.5 được dùng cho các
bộ định thời 0 và 1. Bit P3.6 và P3.7 dùng để ghi, đọc các bộ nhớ ngoài.
6
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Bảng chức năng của cổng P3
Bit Tên Chức năng chuyển đổi
P3.0 RxD Đường vào dữ liệu cổng nối tiếp
P3.1 TxD Đường ra dữ liệu cổng nối tiếp
P3.2 INT0 Đường vào ngắt ngoài 0
P3.3 INT1 Đường vào ngắt ngoài 1
P3.4 T0 Đường vào của bộ định thời/bộ đếm thứ 0
P3.5 T1 Đường vào của bộ định thời/bộ đếm thứ 1
P3.6 WR Tín hiệu ghi dữ liệu bộ nhớ ngoài
P3.7 RD Tín hiệu đọc dữ liệu bộ nhớ ngoài
Các chân tín hiệu điều khiển:
- Chân cho phép bộ nhớ chương trình PSEN (Program Storage Enable):
7
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Tín hiệu PSEN là tín hiệu ra ở chân 29 có tác dụng kép.
Cho phép đọc bộ nhớ chương trình ngoài, thường được nối đến
chân OE (Output Enable) của EPROM cho phép đọc các byte mã lệnh. Tín hiệu
PSEN ở logic 0 trong thời gian vi điều khiển tìm nạp lệnh. Các mã lệnh được
đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh IR của vi điều
khiển để giải mã.
Khi vi điều khiển thi hành chương trình trong ROM nội PSEN sẽ ở
mức logic 1.
- Chân cho phép chốt địa chỉ ALE/PROG (Address Latch Enable):
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
- Các chân XTAL1, XTAL2:
Các chân này (chân 18, 19) nối với bộ tạo dao động trên chip. Mạch
tạo dao động như sau:
Tần số của dao động thường là 12MHz. Khi đó tụ có giá trị 33pF. Chân
VCC nối đến +5V của nguồn cấp, chân GND nối đất.2.1.3. Bộ nhớ trên chip
RAM trong:
Bộ vi điều khiển 8051 có 128 byte RAM trong bao gồm 32 byte đầu
tiên(00H đến 1FH) dành cho các thanh ghi, 16 byte tiếp theo (20H đến 2FH) là
vùng RAM định địa chỉ theo bit, sau đó là 80 byte RAM nháp.
Vùng thanh ghi có 32 byte, chia thành 4 khối (bank 0 đến bank 3), mỗi
khối có 8 thanh ghi (từ R0 đến R7).
Ở vùng RAM định địa chỉ theo bit, các bit được dánh địa chỉ từ 00H
đến 7FH.
10
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Các thanh ghi chuyên dụng (SFRs – Special Function Registers):
Các thanh ghi này có địa chỉ từ 80H đến FFH. Chúng chứa nội dung
của các thanh ghi điều khiển.
Tổ chức không gian bộ nhớ RAM của 8051:
11
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
2.2. Khối giải mã:
Khối giải mã nhận tín hiệu điều khiển từ khối xử lý, sau đó giải mã để
mức giữa các đèn sẽ xen kẽ những bộ đếm lùi thời gian.
Kết thúc mỗi bộ đếm sẽ tương ứng thiết lập lại các bit để hiển thị đèn
tiếp theo.
Giữa đèn xanh và vàng là 25 giây
Giữa đèn vàng và đèn đỏ là 4 giây
Giữa đèn đỏ và đèn xanh là 29 giây
b) Hiển thị bộ đếm lùi tương ứng từng trạng thái của đèn tín hiệu:
IC 74LS47 thực hiện việc giải mã BCD sang thập phân và hiển thị các
thập phân đó sang Led 7 đoạn. Hệ thống sử dụng 4 IC 74LS47 được nối với các
cổng Port 1 và Port 2 dùng cho việc hiển thị hai Led trên hai làn đường.
Việc tạo ra số thập phân được thực hiện bằng cách nạp giá trị đếm 29
giảm dần vào bộ nhớ RAM. Để thu được mã BCD hiển thị ra dãy số thập phân
29 – 0 ta sẽ bỏ qua các trạng thái 0A,0B…1F.
Nạp các giá trị biến đếm trạng thái hiển thị cho hai làn đường vào các
thanh ghi R1 và R2, lần lượt giảm dần giá trị có trong thanh ghi và kiểm tra các
trạng thái không cho phép hiển thị (1F…0B,0A).
14
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
3.2. Sơ đồ nguyên lý mạch mô phỏng:
3.3. Chương trình điều khiển:
$MOD51
ORG 0000h
Xanh1 EQU P0.0
Vang1 EQU P0.1
15
Thiết kế hệ thống đèn giao thông ứng dụng vi điều khiển 8051
Do1 EQU P0.2
MAIN:
MOV R1,#29h; BIEN DEM TRANG THAI HIEN THI DEN DO
LAP1:
MOV P1,R1
DEC R1
ACALL DELAY
CJNE R1,#0Fh,LAP5
MOV R1,#09h
LAP6:
MOV P1,R1
DEC R1
ACALL DELAY
CJNE R1,#00Fh,LAP6
MOV R1,#04h
LAP7:
MOV P1,R1
SETB Xanh1
CLR Vang1
DEC R1
ACALL DELAY
CJNE R1,#00Fh,LAP7
MOV R1,#29h
LJMP MAIN
DELAY:
PUSH 00H
MOV TMOD,#01H
MOV R0,#100
AAA:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
JNB TF0,$
CLR TF0