Top Banner
BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM --------------- BÀI TẬP LỚN MÔN: KỸ THUẬT VI XỬ LÝ GIẢNG VIÊN: NGUYỄN THANH HIẾU Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG 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
47

BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Jan 21, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

BỘ GIAO THÔNG VẬN TẢI

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM

---------------

BÀI TẬP LỚN

MÔN: KỸ THUẬT VI XỬ LÝ

GIẢNG VIÊN: NGUYỄN THANH HIẾU

Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

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

Tp. Hồ Chí Minh, Tháng 12 năm 2013

Page 2: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

PHỤ LỤC Trang

PHẦN I - TỔNG QUAN VỀ ĐÈN GIAO THÔNG ........................................................................................ 1

1.1 Giới thiệu đề tài ................................................................................................................................... 1

1.2 Các thành phần chính của hệ thống đèn giao thông dùng vi điều khiển AT89C51 ............................ 1

1.3 Nguyên lý hoạt động ........................................................................................................................... 1

1.4 Ngôn ngữ sử dụng và phần mềm mô phỏng ........................................................................................ 2

1.4.1 Ngôn ngữ ..................................................................................................................................... 2

1.4.2 Phần mềm mô phỏng ................................................................................................................... 2

Phần 2 - KHẢO SÁT VI ĐIỀU KHIỂN AT89C51......................................................................................... 2

1.5 Tổng quát ............................................................................................................................................ 2

1.6 Các chân .............................................................................................................................................. 3

1.6.1 Vcc .............................................................................................................................................. 3

1.6.2 GND ............................................................................................................................................ 3

1.6.3 Các Port ....................................................................................................................................... 4

1.6.4 PSEN ........................................................................................................................................... 4

1.6.5 ALE/PROG ................................................................................................................................. 5

1.6.6 EA/Vpp ....................................................................................................................................... 5

1.6.7 RESET (RST) .............................................................................................................................. 5

1.6.8 XTAL1 & XTAL2 ...................................................................................................................... 5

1.7 Tổ chức bộ nhớ .................................................................................................................................... 5

1.7.1 Vùng RAM đa mục đích ............................................................................................................. 6

1.7.2 Vùng RAM định địa chỉ bit ......................................................................................................... 6

1.7.3 Các dãy thanh ghi ........................................................................................................................ 6

1.8 Bộ nhớ ngoài ....................................................................................................................................... 6

1.8.1 Truy xuất bộ nhớ chương trình ngoài .......................................................................................... 7

1.8.2 Truy xuất bộ nhớ dữ liệu ngoài ................................................................................................... 7

1.8.3 Giải mã địa chỉ ............................................................................................................................ 7

1.9 Giao tiếp ngoại vi ................................................................................................................................ 7

1.9.1 LED 7 đoạn (7 Segment LED) .................................................................................................... 7

Phần III - ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG. ........................................................... 12

Chương I - Xây Dựng Phần Cứng……………………………………..………………………………..…13

Page 3: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

1.1. Mạch dao động và mạch Reset .......................................................................................................... 13

a. Mạch dao động .................................................................................................................................. 13

b. Mạch Reset ........................................................................................................................................ 13

1.2. Mạch hiển thị đếm ngược LED 7 đoạn ............................................................................................. 14

1.3. Mạch hiển thị LED đơn ..................................................................................................................... 15

Địa chỉ và mức điều khiển........................................................................................................................16

1.4. Sơ đồ nguyên lý mạch phần cứng..........................................................................................................17

Chương II – Xây dựng lưu đồ thuật toán....................................................................................................19

Chương III – Viết chương trình (Dùng ngôn ngữ C, Assembly , lập trình bằng phần mêm Keil

C51..................................................................................................................................................................23

Page 4: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

LỜI NÓI ĐẦU

Trong những năm gần đây trên thế giới cùng với sự phát triển mạnh mẽ của ngành

công nghiệp chế tạo linh kiện bán dẫn và vi mạch tổng hợp, một hướng phát triển mới của

các vi xử lý đã hình thành đó là các vi điều khiển. Với nhiều ưu điểm, vi điều khiển đã được

sử dụng rộng rãi trên nhiều lĩnh vực khác nhau. Bằng cách áp dụng vi đều khiển trong quá

trình sản xuất và xử lý, vi điều khiển đã thực sự thể hiện được ưu thế của mình so với các

thiết bị điều khiển thông thường.Vì những lý do trên, trong nhiều trường Đại Học, Cao

Đẳng, vi xử lý thực sự trở thành một môn học hết sức quan trọng, vi xử lý 8051 gần như là

một môn học sử dụng để trang bị cho chúng ta những kiến thức cơ bản về vi xử lý, từ đó mở

rộng ra các loại vi xử lý khác có cấu trúc phức tạp hơn như AVR, PIC, …Qua Bài tập này,

đã giúp chúng em có được hình dung thực tế vi xử lý được áp dụng như thế nào trong cuộc

sống hiện đại, cụ thể chính là hệ thống đèn giao thông dùng vi điều khiển AT89C51. Đồ án

gồm 3 chươ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 dựng phần cứng.

Chương II. Xây dựng lưu đồ thuật toán.

Chương III. Viết chương trình (dùng C, Assembly).

Chúng em xin chân thành cảm ơn!

Tp. Hồ Chí Minh , Tháng 12 năm 2013

Nhóm sinh viên thực hiện

(Nhóm 1)

Page 5: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

1

PHẦN I - TỔNG QUAN VỀ ĐÈN GIAO THÔNG

1.1 Giới thiệu đề tài

Ngày nay cùng với sự phát triển của khoa học kỹ thuật, xã hội ngày càng văn minh và

hiện đại, các đô thị ngày một đi lên. Nhu cầu về giao thông ngày càng trở nên cấp thiết, nhất

là trong các khu vực thành thị. Do nhu cầu của đời sống con người, đặc biệt là nhu cầu đi lại,

các loại phương tiện giao thông đã tăng một cách chóng mặt. Riêng tại Việt Nam số lượng

xe máy trong những năm qua tăng một cách đột biến, mật độ xe lưu thông trên đường ngày

một nhiều, trong khi đó hệ thống đường xá tại Việt Nam còn quá nhiều hạn chế nên thường

gây ra các hiện tượng như kẹt xe, ách tắc giao thông, đặc biệt là tai nạn giao thông ngày

càng phổ biến trở thành mối hiểm họa cho nhiều người.

Vì lý do đó các luật giao thông lần lượt ra đời và được đưa vào sử dụng một cách lặng

lẽ rồi dần trở nên phổ biến như hiện nay. Trong đó hệ thống đèn giao thông là công cụ điều

khiển giao thông công cộng thực tế và hiệu quả có vai trò rất lớn trong việc đảm bảo an toàn

và giảm thiểu tai nạn giao thông.

Từ thực tế đó nhóm chúng em thực hiện đề tài “Thiết kế mạch đèn giao thông dùng

vi điều khiển 8051” nhằm giúp cho mọi người nhất là tầng lớp sinh viên có ý thức hơn

trong việc chấp hành luật lệ an toàn giao thông.

Với yêu cầu khi hệ thống chạy, các đèn xanh, vàng và đỏ sáng trong thời gian

mặc định tương ứng là 30s, 5s và 25s. Ngoài ra còn có chế độ bằng tay và điều

chỉnh thời gian cho các đèn.

1.2 Các thành phần chính của hệ thống đèn giao thông dùng vi điều khiển

AT89C51

Hệ thống đèn giao thông gồm 4 phần chủ yếu sau:

Mạch điều khiển trung tâm dùng vi điều khiển AT89C51.

Mạch dao động, reset.

Mạch hiển thị thời gian, trạng thái đèn.

Phím nhấn điều khiển trạng thái đèn, chỉnh thời gian.

1.3 Nguyên lý hoạt động

Mạch đèn giao thông hoạt động dựa trên nội dung đã lập trình cho AT89C51, khi có tác

động từ các nút điều khiển mạch hoạt động theo đúng thời gian yêu cầu. AT89C51 đưa dữ

liệu đến các LED xanh, đỏ, vàng để điều khiển các LED này đóng, mở. Ngoài ra, nó còn

xuất dữ liệu đến các BJT để điều khiển các LED 7 đoạn. LED 7 đoạn còn nhận dữ liệu từ vi

điều khiển trung tâm để thực hiện việc đếm lùi thời gian. Chúng ta sử dụng ngắt ngoài 0 và

ngắt ngoài 1 để điều khiển đèn tín hiệu giao thông bằng tay và cài đặt thời gian cho các đèn

(Xanh, đỏ, vàng).

Như vậy mỗi khi mạch bắt đầu thực hiện đếm lùi, nếu trục lộ bên này đèn xanh hoặc

vàng sáng thì trục lộ bên kia đèn đỏ sáng và ngược lại. Bộ phận điều khiển AT89C51 là các

nút nhấn. Tùy theo thời gian yêu cầu mà ta điều khiển các trục giao thông sáng. AT89C51 sẽ

Page 6: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

2

xuất ra các cổng I/O những xung ở mức cao hoặc mức thấp để điều khiển các BJT từ đó điều

khiển các đèn hiển thị. Khi AT89C51 nhận tín hiệu điều khiển từ các phím nhấn, nó sẽ quét

và tìm ra chương trình được mã hóa phù hợp với tín hiệu điều khiển để hoạt động.

1.4 Ngôn ngữ sử dụng và phần mềm mô phỏng

1.4.1 Ngôn ngữ

Ngôn ngữ Assembly.

Ngôn ngữ lập trình C.

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

Hình 2.1 Hình dạng AT89C51

AT89C51 là một hệ vi tính 8 bit đơn chip CMOS có hiệu suất cao, công suất nguồn tiêu

thụ thấp và có 4KB bộ nhớ ROM Flash xóa được/lập trình được. Chip này được sản xuất

dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của Atmel.

Chip AT89C51 cũng tương thích với tập lệnh và các chân ra của chuẩn công nghiệp

MCS-51. Flash trên chip này cho phép bộ nhớ chương trình được lập trình lại trên hệ thống.

Kết hợp một CPU linh hoạt 8 bit với Flash trên một chip đơn thể, Atmel 89C51 là một hệ vi

tính 8 bit đơn chip mạnh cho ta một giải pháp có hiệu quả về chi phí và rất linh hoạt đối với

các ứng dụng điều khiển.

AT89C51 có các đặc trưng chuẩn sau: 4KN Flash, 128 byte RAM, 32 đường xuất nhập,

2 bộ định thời/đếm 16 bit, một cấu trúc ngắt hai mức ưu tiên và 5 nguyên nhân ngắt, một

port nối tiếp song công, mạch dao động và tạo xung clock trên chip.

Ngoài ra 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, port nối

tiếp và hệ thống ngắt tiếp tục hoạt động.

Page 7: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

3

Cấu hình chân của AT89C51 như sau:

Hình 2.2 Sơ đồ chân của AT89C51

AT89C51 có tất cả 40 chân. Mỗi chân có chức năng như các đường I/O (xuất/nhập),

trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động như một đường I/O hoặc

như một đường điều khiển hoặc như thành phần của bus địa chỉ và bus dữ liệu.

1.6 Các chân

Hình 2.2 cho ta sơ đồ chân của chip 89C51. Mô tả tóm tắt chức năng của từng chân như

sau.

Như ta thấy trong hình 2.1, 32 trong số 40 chân của 89C51 có công dụng xuất/nhập, tuy

nhiên 24 trong 32 đường này có 2 mục đích (công dụng). Mỗi một đường có thể hoạt động

xuất/nhập hoặc hoạt động như một đường điều khiển hoặc hoạt động như một đường địa

chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp.

32 chân nêu trên hình thành 4 port 8 bit. Với các thiết kế yêu cầu một mức tối thiểu bộ

nhớ ngoài hoặc các thành phần bên ngoài khác, ta có thể sử dụng các port này làm nhiệm vụ

xuất/nhập. 8 đường cho mỗi port có thể được xử lý như một đơn vị giao tiếp với các thiết bị

song song như máy in, bộ biến đổi D-A, v.v… hoặc mỗi đường có thể hoạt động độc lập

giao tiếp với một thiết bị đơn bit như chuyển mạch, LED, BJT, động cơ, loa, v.v…

1.6.1 Vcc

Chân cung cấp điện (5V).

1.6.2 GND

Chân nối đất (0V).

Page 8: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

4

1.6.3 Các Port

1.6.3.1 Port 0

Port 0 (các chân từ 32 đến 39 trên 89C51) có hai công dụng. Trong các thiết kế có tối

thiểu thành phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập. Trong các thiết kế lớn hơn

có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp.

1.6.3.2 Port 1

Port 1 chỉ có công dụng là xuất/nhập (các chân từ 1 đến 8 trên 89C51). Các chân của

port 1 được ký hiệu là P1.0, P1.1, … , P1.7 và được dùng để giao tiếp với thiết bị bên ngoài

khi có yêu cầu. Không có chức năng nào khác nữa gán cho các chân của port 1, nghĩa là

chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi.

1.6.3.3 Port 2

Port 2 (các chân từ 21 đến 28 trên 89C51) có hai công dụng, hoặc làm nhiệm vụ

xuất/nhập hoặc là byte địa chỉ 16 bit cho các thiết kế có bộ nhớ chương trình ngoài hoặc các

thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài.

1.6.3.4 Port 3

Port 3 (các chân từ 10 đến 17 trên 89C51) có hai công dụng. Khi không hoạt động

xuất/nhập, các chân của port 3 có nhiều chức năng riêng (mỗi chân có chức năng riêng liên

quan đến các đặc trưng cụ thể của 89C51).

Bảng 2.1 dưới đây cho ta chức năng của các chân của port 3.

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.

Page 9: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

5

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).

Page 10: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

6

1.7.1 Vùng RAM đa mục đích

Mặc dù hình 2.2 trình bày vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến

7FH, bên dưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể được sử dụng tương tự

(mặc dù các vị trí nhớ này có các mục đích khác).

Hình 2.3 Bộ nhớ dữ liệu trên chip 89C51

1.7.2 Vùng RAM định địa chỉ bit

AT89C51 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa trong các byte ở

địa chỉ từ 20H đến 2FH và phần còn lại chứa trong các thanh ghi chức năng đặc biệt.

1.7.3 Các dãy thanh ghi

32 vị trí thấp nhất của bộ nhớ nội chứa các dãy thanh ghi.

1.8 Bộ nhớ ngoài

Các bộ vi điều khiển cần có khả năng mở rộng các tài nguyên trên chip (bộ nhớ, I/O,

v.v…) để tránh hiện tượng cổ chai trong thiết kế. Cấu trúc của MCS-51 cho ta khả năng mở

rộng không gian bộ nhớ chương trình đến 64K và không gian bộ nhớ dữ liệu đến 64K. ROM

và RAM được thêm vào khi cần.

Page 11: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

7

1.8.1 Truy xuất bộ nhớ chương trình ngoài

Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu PSEN.

1.8.2 Truy xuất bộ nhớ dữ liệu ngoài

Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi được cho phép bởi các tín hiệu RD và WR ở các

chân P3.7 và P3.6.

1.8.3 Giải mã địa chỉ

Nếu có nhiều EPROM hoặc nhiều RAM hoặc cả hai giao tiếp với 89C51 ta cần phải

giải mã địa chỉ.

Một IC giải mã điển hình là 74HC138.

1.9 Giao tiếp ngoại vi

1.9.1 LED 7 đoạn (7 Segment LED)

Dạng LED

LED Anode chung

Đối với dạng Led Anode chung, chân COM phải có mức logic 1 và muốn sáng Led thì

tương ứng các chân a – f, dp sẽ ở mức logic 0.

Bảng mã cho Led Anode chung (a là LSB, dp là MSB):

Page 12: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

8

2.1. Thanh ghi điều khiển bộ định thời/bộ đếm TCON ( Timer/Counter Control

Register):

Thanh ghi này bao gồm các bit trạng thái và các bit điều khiển bởi Timer 0, Timer 1.

Thanh ghi TCON có bit định vị.

Ký hiệu: TCON

Chức năng: điều khiển bộ định thời/bộ đếm.

Địa chỉ byte: 88H

Định địa chỉ bit: có.

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

7 6 5 4 3 2 1 0

Định nghĩa bit:

Ký hiệu Vị trí Địa chỉ Mô tả

TF1

TCON.7

8FH

Cờ tràn bộ định thời 1. Được Set bởi phần cứng

khi bộ định thời/đếm bị tràn, được xóa bởi phần

mềm hoặc phần cứng khi trình phục vụ ngắt được

trỏ đến.

TR1

TCON.6

8EH

Bit điều khiển bô định thời 1 hoạt động. Được

Set/Clear bởi phần mềm để điều khiển bộ định thời

11 hoạt động hoặc ngưng hoạt động.

TF0 TCON.5 8DH Cờ tràn bộ định thời 0

TR0 TCON.4 8CH Bit điều khiển bộ định thời 0 hoạt động.

IE1

TCON.3

8BH

Cờ ngắt ngoài 1 tác động cạnh. Được Set bởi phần

cứng khi phát hiện có ngắt ngoài tác động cạnh,

được xóa bởi phần cứng khi ngắt được xử lý.

Page 13: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

9

IT1

TCON.2

8AH

Bit điều khiển chọn ngắt. Được Set/Clear để xác

định ngắt ngoài thuộc loại tác động cạnh xuống

hay tác động mức thấp.

IE0 TCON.1 89H Cờ ngắt ngoài 0 tác động cạnh.

IT0 TCON.0 88H Bit điều khiển chọn loại ngắt.

2.1.1 Thanh ghi TMOD (Timer/Counter Mode Control Register):

Thanh ghi này gồm 2 nhóm 4 bit: 4 bit thấp đặt mode hoạt động cho Timer 0 và 4 bit

cao đặt mode hoạt động cho Timer 1.

Ký hiệu: TMOD

Chức năng: điều khiển chọn chế độ định thời/bộ đếm.

Địa chỉ byte: 89H

Định địa chỉ bit: không.

Timer 1 Timer 0

GATE C/T M1 M0 GATE C/T M1 M0

7 6 5 4 3 2 1 0

Định nghĩa bit:

Ký hiệu Mô tả

GATE

Bit điều khiển cổng. Khi bit TRx trong TCON được Set bằng 1 và GATE

= 1, bộ định thời/đếm chỉ hoạt động trong khi chân INTx ở mức cao(điều

khiển cứng). Khi bit GATE = 0, bộ định thời/đếm chỉ hoạt động trong khi

chân TRx ở mức cao(điều khiển mềm).

C/T

Bit chọn chức năng đếm hay định thời cho bộ định thời/đếm. Khi C/T =

0, bộ định thời/đếm hoạt động định thời(dùng xung Clock nhận từ ngõ

vào Tx).

M1 Bit chọn chế độ.

M0 Bit chọn chế độ.

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.

Page 14: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

10

1 1 3

Bộ định thời 0: TL0 là bộ định thời/đếm 8 bit được điều khiển

bởi các bit điều khiển bộ định thời 0. TH0 là bộ định thời 8 bit

được điều khiển bởi các bit điều khiển bộ định thời 1. Bộ định

thời 1: Bộ định thời/đếm 1 ngưng hoạt động.

2.1.2. Hệ các thanh ghi phục vụ định thời:

Hệ thanh ghi này gồm 4 thanh ghi nó cho phép lập trình viên nạp giá trị cho bộ định

thời. Thực tế chỉ 2 thanh ghi 16 bit nhưng nó được cắt đôi thành 4 thanh ghi 8 bit. Trong đó

2 thanh phục vụ cho Timer 0 và 2 thanh phục vụ cho Timer 1.

Bộ Timer 0 có hai thanh ghi là TH0 và TL0, hai thanh ghi này không định địa chỉ bit.

Thanh ghi 8 bit TH0 Thanh ghi 8 bit TL0

Địa chỉ: 8CH Địa chỉ: 8AH

Bộ Timer 1 có hai thanh ghi là TH1 và TL1, hai thanh ghi này không định địa chỉ bit.

Thanh ghi 8 bit TH1 Thanh ghi 8 bit TL1

Địa chỉ: 8DH Địa chỉ: 8BH

Thanh ghi TIMER

Vi Điều Khiển 89C51 có 2 timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử

dụng các timer để:

o Định khoảng thời gian.

o Đếm sự kiện.

o Tạo tốc độ baud cho port nối tiếp.

o Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng

đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực

hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các

ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để

đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung).

o Thanh ghi ngắt (INTERRUPT)

o Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời

chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.

o Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều

khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết

sự kiện đó trong khi một chương trình khác đang thực thi.

o - Tổ chức ngắt của 89C51:

o Có 5 nguồn ngắt ở 89C51: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port

Page 15: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

11

o nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được

cho phép từng cái một bằng phần mềm. Mức độ ưu tiên của các ngắt được lưu trong

thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép chọn mức

ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h).

o Bảng 2.4 Tóm tắt thanh ghi IP

Bit Ký hiệu Địa chỉ bit Mô tả

IP.7 _ _ Không được mô tả

IP.6 _ _ Không được mô tả

IP.5 ET2 BDH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại

timer 2

IP.4 ES BCH Chọn mức ưu tiên cao (=1) hay thấp (=0)

tại cổng nối tiếp.

IP.3 ET1 BBH Chọn mức ưu tiên cao (=1) hay thấp (=0)

tại timer 1

IP.2 EX1 BAH Chọn mức ưu tiên cao (=1) hay thấp (=0)

tại ngắt ngoài 1

IP.1 ET0 B9H Chọn mức ưu tiên cao (=1) hay thấp (=0)

tại timer 0

IP.0 EX0 B8H Chọn mức ưu tiên cao (=1) hay thấp (=0)

tại ngắt ngoài 0

Tóm tắt thanh ghi IP

o Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn sẽ được

phục vụ trước.

o Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên được thực

hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer 0 – ngắt ngoài 1 – timer 1 – cổng

nối tiếp – timer 2.

Page 16: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

12

o Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà có một ngắt

xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy một chương

trình khác có mức ưu tiên cao hơn.

o - Cho phép và cấm ngắt:

o Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt

có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa chỉ A8H.

o Bảng 2.5 Tóm tắt thanh ghi IE

Phần III - ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG.

Chương I – XÂY DỰNG PHẦN CỨNG.

Bit Ký hiệu Địa chỉ bit Mô tả

IE.7 EA AFH Cho phép / Cấm toàn bộ

IE.6 _ AEH Không được mô tả

IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052)

IE.4 ES ACH Cho phép ngắt port nối tiếp

IE.3 ET1 ABH Cho phép ngắt từ Timer 1

IE.2 EX1 AAH Cho phép ngắt ngoài 1

IE.1 ET0 A9H Cho phép ngắt từ Timer 0

Page 17: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

13

1.1. Mạch dao động và mạch Reset

Hình 3.1 Mạch dao động và mạch Reset

a. Mạch dao động

Tinh thể thạch anh (Quartz Crytal) là loại đá trong mờ trong thiên nhiên, chính là dioxyt

silicium (SiO2).

Tinh thể thạch anh dùng trong mạch dao động là một lát mỏng được cắt ra từ tinh thể.

Tùy theo mặt cắt mà lát thạch anh có đặc tính khác nhau. Lát thạch anh có diện tích từ nhỏ

hơn 1cm2 đến vài cm2 được mài rất mỏng, phẳng (vài vài mm) và 2 mặt thật song song với

nhau. Hai mặt này được mạ kim loại và nối chân ra ngoài để dễ sử dụng.

Hình 3.2 Hình dạng thạch anh

Ðặc tính của tinh thể thạch anh là tính áp điện (Piezoelectric Effect) theo đó khi ta áp

một lực vào 2 mặt của lát thạch anh (nén hoặc kéo dãn) thì sẽ xuất hiện một điện thế xoay

chiều giữa 2 mặt. Ngược lại dưới tác dụng của một điện thế xoay chiều, lát thạch anh sẽ rung

ở một tần số không đổi và như vậy tạo ra một điện thế xoay chiều có tần số không đổi. Tần

số rung động của lát thạch anh tùy thuộc vào kích thước của nó đặc biệt là độ dày mặt cắt.

Khi nhiệt độ thay đổi, tần số rung động của thạch anh cũng thay đổi theo nhưng vẫn có độ

ổn định tốt hơn rất nhiều so với các mạch dao động không dùng thạch anh (tần số dao động

gần như chỉ tùy thuộc vào thạch anh mà không lệ thuộc mạch ngoài).

b. Mạch Reset

Chân Reset (chân 9) có tác dụng reset chip AT89C51, mức tích cực của chân này là

mức 1, để reset ta phải đưa mức 1 (5V) đến chân này với thời gian tối thiếu 2 chu kỳ máy

(tương đương 2 S – đối với thạch anh 12MHz).

Page 18: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

14

Tần số làm việc AT89C51 12

TAff

Chu kỳ máy = thời gian sử lý 1 lệnh: T =f

1

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

1.2. Mạch hiển thị đếm ngược LED 7 đoạn

Khối hiển thị đếm ngược led 7 đoạn: hiển thị thời gian của các chế độ thời gian, được

hiển thị trên led 7 đoạn, các chân của led được nối thông qua một điện trở thanh để nối với

IC vi điều khiển.

Hình 3.3 Hình dạng điện trở thanh

Việc giải mã nhị phân sang led 7 đoạn điều được thực hiện trên vi điều khiển. Led 7

đoạn được nối theo kiểu anode chung, trong mạch này :chân A nôt chung của các led được

điều khiên gián tiếp từ chân P2.0 đến P2.3 thông qua các Trasistor H1061 (loại NPN). Led

hoạt động với dòng từ 10mA đến 20mA. Sử dụng port (P0): P0.0, P0.1, P0.2, P0.3, P0.4,

P0.5, P0.6, P0.7 , để điều khiển các chân K tốt . Với các chân A nốt chung được điều khiển

thông qua các transistor H1061, điều khiển hoạt động ở chế độ bão hòa cung cấp dòng cho

Page 19: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

15

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 chỉ như sau và mưc điều khiển các Led 7 đoạn như sau.

a. Địa chỉ điều khiển các chân K chung của Led 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ức đ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 chỉ điều khiển các chân A nốt chung của led 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 chỉ và mức điều khiển :

* Địa chỉ:

-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.

Page 20: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

16

-P0.5: Nối với đèn xanh đường 2.

Sử dụng các led đơn nối cathode chung. Còn các chân anode thì được nối vào điện trở

R. Và nó được điều khiển bởi các chân P0.0 đến P0.5.

Vì LED đơn có dòng hoạt động khoảng 10mA trở lên nên ta có thể chọn điện trở R sao

cho phù hợp.

Nguồn được cấp: Vcc = +5V.

Điện áp phân cực thuận của các LED:

-Led xanh : Vx = 2V - 2.8V.

-Led vàng : Vv = 2V - 2.5V.

-Led đỏ : Vd = 1.4V - 1.8V.

* Mức điểu khiển các đền báo vàng xanh đỏ.

- Mức 1: Đèn sáng.

- Mức 0: Đèn tắt.

1.4. Sơ đồ nguyên lý mạch phần cứng.

Page 21: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

17

Chương II – XÂY DỰNG LƯU ĐỒ THUẬT TOÁN.

LƯU ĐỒ THUẬT TOÁN

CHƯƠNG TRÌNH CHÍNH

START

SoGiayLan1=25.

SoGiayLan2=30.

Bật Đèn :Xanh1, Do2

Chạy chương trình quét

led 7 đoạn

Trễ 1s

SoGiayLan1 = 0.

?

SoGiayLan1 = SoGiayLan1 – 1.

SoGiayLan2 = SoGiayLan2 – 1.

Sai

Đúng

SoGiayLan1 = 5.

Page 22: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

18

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

Tắt Đèn : Vàng1, Đỏ2.

Bật Đèn: Đỏ1, Xanh2.

SoGiayLan1 = 30.

SoGiayLan2 = 25.

Page 23: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

19

Chạy chương trình quét

led 7 đoạn.

Trễ 1s

SoGiayLan1 = SoGiayLan1 – 1.

SoGiayLan2 = SoGiayLan2 – 1.

SoGiayLan2= 0

?

Tắt Đèn : Xanh2

Bật Đèn : Vang2

.

SoGiayLan2 = 5.

Sai

Đúng

Chạy chương trình quét

led 7 đoạn.

Trễ 1s

Page 24: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

20

SoGiayLan1 = SoGiayLan1 – 1.

SoGiayLan2 = SoGiayLan2 – 1.

SoGiayLan1= 0

?

Sai

Đúng

Tắt Đèn : Do1, Vang2

.

Page 25: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

21

LƯU ĐỒ THUẬT TOÁN NGẮT NGOÀI 0 (CHẾ ĐỘ BẰNG TAY):

S S

Đ

Đ

S S

Đ

Đ

S S

TẮT LED 7 ĐOẠN

BẬT XANH 1 ĐỎ 2

CHUYỂN ĐÈN

?

TẮT XANH 1 BẬT VÀNG 1

CHUYỂN ĐÈN

?

START

TẮT VÀNG 1 BẬT ĐỎ 1

TẮT ĐỎ 2 BẬT XANH 2

CHUYỂN ĐÈN

?

THOÁT CHẾ

ĐỘ TAY

?

?

THOÁT CHẾ

ĐỘ TAY

?

?

THOÁT CHẾ

ĐỘ TAY

?

?

EXIT

START

EXIT

START

EXIT

START

Page 26: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

22

S

S SS SS S

Đ

Đ

Đ Đ

TẮT XANH 2 BẬT VÀNG 2

CHUYỂN ĐÈN

?

THOÁT CHẾ

ĐỘ TAY

?

?

EXIT

START

Page 27: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

23

LƯU ĐỒ THUẬT TOÁN NGẮT NGOÀI 1 (CÀI ĐẶT THỜI GIAN)

S

Đ

S

Đ

S

START

THỜI GIAN ĐÈN XANH = 0,

BẬT ĐÈN XANH

HIỂN THỊ LED 7 ĐOẠN

TĂNG ?

TĂNG THỜI GIAN XANH

GIẢM ?

GIẢM THỜI GIAN XANH

OK

XANH ?

Page 28: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

24

Đ

S

Đ

S

Đ

S

Đ

THỜI GIAN ĐÈN VÀNG = 0,

TẮT XANH, BẬT VÀNG

HIỂN THỊ LED 7 ĐOẠN

TĂNG ?

TĂNG THỜI GIAN VÀNG

GIẢM ?

GIẢM THỜI GIAN VÀNG

OK

VÀNG ?

Page 29: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

25

S

Đ

S

Đ

S

Đ

THỜI GIAN ĐÈN ĐỎ = 0,

TẮT VÀNG, BẬT ĐỎ

HIỂN THỊ LED 7 ĐOẠN

TĂNG ?

TĂNG THỜI GIAN ĐỎ

GIẢM ?

GIẢM THỜI GIAN ĐỎ

OK ĐỎ?

EXIT

Page 30: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

26

Chương III – VIẾT CHƯƠNG TRÌNH (DÙNG NGÔN NGỮ C, VÀ ASSEMBLY VIẾT

TRÊN PHẦN MỀM KEIL C 51)

DÙNG NGÔN NGỮ ASSEMBLY:

ORG 0H

LJMP MAIN

ORG 0003H

LJMP DK_BANGTAY

ORG 0013H ;KHAI BAO VEC TO NGAT NGOAI 1

LJMP CAIDAT

MAIN:

MOV IE,#10000101B ; THIET LAP NGAT NGOAI 1 ,NGATNGOAI 0

MOV 40H,#30 ; O NHO 40H CHUA THOI GIAN DEN DO

MOV 41H,#25 ; O NHO 40H CHUA THOI GIAN DEN XANH

MOV 42H,#05 ; O NHO 40H CHUA THOI GIAN DEN VANG

MOV DPTR,#LED7DOAN ; LAY MA LED 7 DOAN DE HIEN THI

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:

Page 31: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

27

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:

Page 32: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

28

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

CHIA: ;///// . ... BIN TO BCD........//////

MOV A,R6

MOV B,#10

Page 33: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

29

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

Page 34: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

30

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

Page 35: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

31

ACALL DELAY_125MS

ACALL DELAY_125MS

RET

LED7DOAN:

DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h

DK_BANGTAY: ;///...CT NGAT PHUC VU CHE DO DK BANG TAY...///

MOV P0,#0H

MOV P1,#11100000B

D1_X2:

SETB P0.0

SETB P0.5

JNB P3.5,THOAT

JB P3.4,D1_X2

LCALL DELAY_750MS

CLR P0.5

D1_V2:

SETB P0.4

JNB P3.5,THOAT

JB P3.4,D1_V2

LCALL DELAY_750MS

CLR P0.0

CLR P0.4

X1_D2:

SETB P0.2

SETB P0.3

JNB P3.5,THOAT

JB P3.4,X1_D2

LCALL DELAY_750MS

Page 36: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

32

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

CAIDAT: ; ///..CT NGAT CAI DAT THOI GIAN DEN XANH,DO,VANG.../////

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

Page 37: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

33

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

Page 38: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

34

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 ;

Page 39: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

35

sbit dk_ch1 = P1^1 ;

sbit dk_dv2 = P1^2 ;

sbit dk_ch2 = P1^3 ;

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)

Page 40: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

36

{

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;

Page 41: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

37

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;

}

}

void delay( unsigned int ms)

{

unsigned i,j;

for(i=0;i<ms;i++)

for (j=0;j<121;j++)

{}

}

Page 42: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

38

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

{

Page 43: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

39

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)

Page 44: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

40

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)

Page 45: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

41

{

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;

}

Page 46: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

42

while(chinhtay!=0);

delay(225);

d1=0;

v2=0;

}

}

Page 47: BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM Đề tài: ỨNG DỤNG 8051 ĐIỀU KHIỂN ĐÈN GIAO THÔNG

Nhóm 1 Khoa Điện-Điện tử viễn thông

43

KẾT LUẬN

Sau thời gian tìm hiểu về hệ thống đèn giao thông, cùng với việc tìm tài liệu trên sách,

báo, internet, kết hợp với kiến thức đã được học và được sự chỉ bảo của thầy Nguyễn Thanh

Hiếu. Chúng em đã hoàn thành bài tập, đáp ứng được yêu cầu thầy đề ra.

Qua bài tập này giúp chúng em nắm vững được quy luật điều khiển đèn giao thông,

Cách thức một hệ thống đèn giao thông hoạt động cũng như thuật toán xử lý khi điều

khiển bằng vi xử lý.

Xong do hạn chế về nhiều mặt , nên chắc chắn không tránh khỏi những thiếu sót. Chúng

em rất mong nhận được sự đóng góp của thầy cùng các bạn .

Xin chân thành cảm ơn!

Tp. Hồ Chí Minh, Tháng 12 năm 2013.

Nhóm Sinh Viên:

(Nhóm 1)