1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly

30 15 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Đèn Giao Thông
Tác giả Đồng Văn Duy, Nguyễn Thành Đạt, Phạm Quốc Khánh
Người hướng dẫn TS. Nguyễn Huy Hoàng
Trường học Trường Đại Học Bách Khoa Hà Nội
Thể loại báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 1,12 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI (7)
    • 1.1 Thành phần chính của hệ thống đèn giao thông dung vi điều khiển 8051 (7)
    • 1.2 Nguyên lý hoạt động (7)
    • 1.3 Công cụ để thực hiện lập trình và mô phỏng (7)
  • CHƯƠNG 2. KHẢO SÁT VI ĐIỀU KHIỂN AT89C51 (8)
    • 2.1 Giới thiệu (8)
    • 2.2 Chi tiết chân của AT89C51 (9)
      • 2.2.1 Vcc (9)
      • 2.2.2 GND (10)
      • 2.2.3 Các Port (10)
      • 2.2.4 PSEN (11)
      • 2.2.5 ALE/PROG (11)
      • 2.2.6 EA/Vpp (11)
      • 2.2.7 RESET (RST) (11)
      • 2.2.8 XTAL1 & XTAL2 (11)
    • 2.3 Tổ chức bộ nhớ (11)
      • 2.3.1 Vùng RAM đa mục đích (12)
      • 2.3.2 Vùng RAM định địa chỉ bit (13)
      • 2.3.3 Các dãy thanh ghi (13)
    • 2.4 Bộ nhớ ngoài (13)
      • 2.4.1 Truy xuất bộ nhớ chương trình ngoài (13)
      • 2.4.2 Truy xuất bộ nhớ dữ liệu ngoài (13)
      • 2.4.3 Giải mã địa chỉ (13)
    • 2.5 Giao tiếp ngoại vi (13)
      • 2.5.1 Led 7 thanh (13)
    • 2.7 Thanh ghi TMOD( Timer/Counter Mode Control Register) (15)
    • 2.8 Hệ các thanh ghi phục vụ định thời (16)
  • CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG ĐÈN GIAO THÔNG (19)
    • 3.1 Sơ đồ khối (19)
    • 3.2 Thiết kế phần cứng (19)
      • 3.2.1 Mạch dao động và Reset (19)
      • 3.2.2 Mạch hiển thị đếm ngược LED 7 đoạn (21)
      • 3.2.3 Mạch hiển thị LED đơn (22)
      • 3.2.4 Sơ đồ nguyên lý (23)
    • 3.3 Xây dựng, thiết kế chương trình (23)
      • 3.3.1 Lưu đồ thuật toán (23)
      • 3.3.2 Chương trình Assembly cho 89C51 (25)
  • CHƯƠNG 4. KẾT LUẬN (29)
  • TÀI LIỆU THAM KHẢO (30)

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN KỸ THUẬT VI XỬ LÝ Đề tài THIẾT KẾ ĐÈN GIAO THÔNG Nhóm sinh viên thực hiện Đồng Văn Duy 20182461 Nguyễn Thành Đạt 20182416 Phạm Quốc Khánh 20182604 Giảng viên hướng dẫn TS Nguyễn Huy Hoàng Hà Nội, 2 2022 LỜI NÓI ĐẦU Trong thời đại ngày nay khi nhân loại đang trải qua những bước tiến vượt bậc về khoa học công nghệ, thì ngành điện tử cũng có những bước tiến quan trọng đặc biệt là trong lĩnh vực vi điều khiển Các bộ vi xử lý.

TỔNG QUAN VỀ ĐỀ TÀI

Thành phần chính của hệ thống đèn giao thông dung vi điều khiển 8051

Hệ thống đèn giao thông gồm 3 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 hiển thị thời gian, trạng thái đèn.

Nguyên lý hoạt động

Mạch đèn giao thông hoạt động dựa trên lập trình của AT89C51, cho phép điều khiển thời gian hoạt động qua các nút bấm Vi điều khiển AT89C51 gửi dữ liệu đến các LED xanh, đỏ, vàng để điều chỉnh trạng thái mở, đóng của chúng Đồng thời, nó cũng xuất dữ liệu đến các BJT để điều khiển LED 7 đoạn, nhận dữ liệu từ vi điều khiển trung tâm nhằm thực hiện chức năng đếm ngược thời gian.

Khi mạch bắt đầu đếm lùi, nếu đèn xanh hoặc vàng bên một trục lộ sáng, thì đèn đỏ bên trục lộ đối diện sẽ bật và ngược lại Vi điều khiển AT89C51 sẽ xuất xung mức cao hoặc thấp qua các cổng I/O để điều khiển các BJT, từ đó điều chỉnh các đèn hiển thị.

Hình 1.1 Sơ đồ khối của hệ thống

Công cụ để thực hiện lập trình và mô phỏng

Sử dụng ngôn ngữ lập trình Assembly trên phần mềm Keil C

Sử dụng Proteus 8.8 để mô phỏng hệ thống

KHẢO SÁT VI ĐIỀU KHIỂN AT89C51

Giới thiệu

AT89C51 là một vi điều khiển 8 bit CMOS hiệu suất cao, tiêu thụ năng lượng thấp, với 4KB bộ nhớ ROM Flash có thể xóa và lập trình Chip này được phát triển bởi Atmel, dựa trên công nghệ bộ nhớ không mất nội dung với độ tích hợp cao.

Chip AT89C51 tương thích với tập lệnh và chân ra của chuẩn công nghiệp MCS-51, cho phép lập trình lại bộ nhớ chương trình trên hệ thống nhờ vào Flash tích hợp Kết hợp CPU linh hoạt 8 bit với Flash trong một chip đơn thể, Atmel 89C51 cung cấp giải pháp vi tính 8 bit mạnh mẽ, hiệu quả về chi phí và linh hoạt cho các ứng dụng điều khiển.

AT89C51 là một vi điều khiển với các đặc điểm nổi bật như 4KB Flash, 128 byte RAM, 32 chân I/O, hai bộ định thời/đếm 16 bit, cấu trúc ngắt hai mức ưu tiên với 5 nguyên nhân ngắt, cổng nối tiếp song công, cùng với mạch dao động và tạo xung clock tích hợp trên chip.

AT89C51 được thiết kế với logic tĩnh, cho phép hoạt động ở tần số 0 và hỗ trợ hai chế độ tiết kiệm năng lượng tùy chọn qua phần mềm Trong chế độ nghỉ, CPU sẽ dừng hoạt động nhưng RAM, các bộ định thời/đếm, cổng nối tiếp và hệ thống ngắt vẫn tiếp tục hoạt động.

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

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

Vi điều khiển AT89C51 có 40 chân, mỗi chân đảm nhiệm chức năng như các đường I/O (xuất/nhập) Trong số đó, 24 chân có công dụng kép, cho phép chúng hoạt động như đường I/O, đường điều khiển, hoặc thành phần của bus địa chỉ và bus dữ liệu.

Chi tiết chân của AT89C51

Trong vi mạch 89C51, 32 trong số 40 chân có chức năng xuất/nhập, trong đó 24 chân có thể đảm nhận hai vai trò khác nhau Mỗi chân có khả năng hoạt động như một đường xuất/nhập, một đường điều khiển hoặc một đường địa chỉ/dữ liệu trong bus địa chỉ/dữ liệu đa hợp.

Bài viết đề cập đến 32 chân được chia thành 4 cổng 8 bit, cho phép sử dụng làm nhiệm vụ xuất/nhập trong các thiết kế yêu cầu bộ nhớ ngoài hoặc các thành phần bên ngoài Mỗi cổng với 8 đường có thể giao tiếp với các thiết bị song song như máy in hoặc bộ biến đổi D-A, hoặc hoạt động độc lập để kết nối với các thiết bị đơn bit như chuyển mạch, LED, BJT, động cơ và loa.

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

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

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

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)

Chân của Port 3 Chức năng

P3.0 RxD( ngõ vào của port nối tiếp

P3.1 TxD( ngõ ra của port nối tiếp)

P3.2 INT0( ngõ vào ngắt ngoài 0)

P3.3 INT( ngõ vào ngắt ngoài 1)

P3.4 T0(ngõ vào bên ngoài của bộ định thời 0)

P3.5 T1( ngõ vào bên ngoài của bộ định thời 1)

P3.6 WR( điều khiển ghi bộ nhớ dữ liệu ngoài)

P3.7 RD( điều khiển đọc bộ nhớ dữ liệu ngoài)

Bảng 2-1 Chức năng của các chân trong port 3

Chân PSEN (program store enable) cho phép điều khiển truy xuất bộ nhớ chương trình ngoài trong vi điều khiển AT89C51 Khi vi điều khiển này thực thi chương trình từ bộ nhớ ngoài, tín hiệu PSEN được kích hoạt hai lần trong mỗi chu kỳ máy, ngoại trừ khi có hai lần tác động của PSEN bị bỏ qua trong quá trình truy xuất bộ nhớ dữ liệu ngoài.

Xung ngõ ra ALE (address latch enable) cho phép chốt byte thấp của địa chỉ trong quá trình truy suất bộ nhớ ngoài và cũng được sử dụng làm ngõ vào xung lập trình (PROG) trong quá trình lập trình Flash Trong hoạt động bình thường, xung ALE có tần số bằng 1/6 tần số của mạch dao động trên chip, phục vụ 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 ý rằng một xung ALE sẽ bị bỏ qua trong mỗi chu kỳ truy xuất bộ nhớ dữ liệu ngoài.

Chân EA (external access enable) cần được nối với GND để cho phép chip vi điều khiển truy xuất lệnh từ bộ nhớ ngoài, với địa chỉ từ 0000H đến FFFFH Nếu bit khóa 1 được lập trình, EA sẽ bị chốt bên trong khi reset Để thực thi chương trình trong chip, EA nên được nối với Vcc Ngoài ra, chân EA/Vpp cũng nhận điện áp cho phép lập trình Vpp trong quá trình lập trình Flash, với điện áp yêu cầu là 12V cho các bộ phận tương ứng.

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

XTAL1 là ngõ vào cho mạch khuếch đại đảo của mạch dao động và cũng là ngõ vào cho mạch tạo xung clock bên trong chip Trong khi đó, XTAL2 là ngõ ra từ mạch khuếch đại đảo của mạch dao động.

Tổ chức bộ nhớ

AT89C51 sở hữu không gian bộ nhớ riêng biệt cho chương trình và dữ liệu, cả hai đều được tích hợp bên trong chip Tuy nhiên, người dùng có thể mở rộng bộ nhớ chương trình và dữ liệu bằng cách sử dụng các chip nhớ bên ngoài.

6 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 hai loại chính là ROM và RAM Trong đó, RAM được chia thành các vùng như RAM đa chức năng, vùng RAM định địa chỉ bit, các dãy thanh ghi và các thanh ghi chức năng đặc biệt (SFR).

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

Vùng RAM đa mục đích có kích thước 80 byte, nằm từ địa chỉ 30H đến 7FH, trong khi vùng nhớ phía dưới từ địa chỉ 00H đến 2FH cũng có thể được sử dụng, mặc dù các vị trí nhớ này phục vụ cho các mục đích khác nhau.

Hình 2.3 Cấu trúc bộ nhớ RAM bên trong AT89C1

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

AT89C51 có 210 vị trí bit được định địa chỉ, trong đó 128 bit nằm trong các byte từ địa chỉ 20H đến 2FH, và phần còn lại được lưu trữ trong các thanh ghi chức năng đặc biệt.

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

Bộ nhớ ngoài

Các bộ vi điều khiển cần khả năng mở rộng tài nguyên trên chip như bộ nhớ và I/O để ngăn chặn hiện tượng cổ chai trong thiết kế Cấu trúc MCS-51 cho phép mở rộng không gian bộ nhớ chương trình và bộ nhớ dữ liệu lên đến 64K, với khả năng thêm ROM và RAM khi cần thiết.

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

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

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.

Giao tiếp ngoại vi

Đối với đèn LED anode chung, chân COM cần đạt mức logic 1 để hoạt động Để đèn LED sáng, các chân a đến f và dp phải ở mức logic 0 Bảng mã cho LED anode chung được xác định với a là bit thấp nhất (LSB) và dp là bit cao nhất (MSB).

Bảng 2-2 Bảng mã cho led 7 thanh anode chung

2.6 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ị

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

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

TF1 TCON.7 8FH là cờ tràn của bộ định thời 1, được thiết lập bởi phần cứng khi bộ định thời hoặc bộ đếm xảy ra tình trạng tràn Cờ này sẽ được xóa bởi phần mềm hoặc phần cứng khi trình phục vụ ngắt được kích hoạt.

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 là một cờ ngắt ngoài có tác động cạnh, được thiết lập bởi phần cứng khi phát hiện ngắt ngoài Cờ này sẽ được xóa bởi phần cứng sau khi ngắt được xử lý.

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

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

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

Bit GATE điều khiển hoạt động của bộ định thời/đếm trong TCON Khi bit TRx được thiết lập

C/T Bit có thể được cấu hình để thực hiện chức năng đếm hoặc định thời cho bộ định thời/đếm Khi C/T = 0, bộ định thời/đếm sẽ hoạt động theo chế độ định thời, sử dụng xung Clock nhận từ ngõ vào Tx.

Hai bit M1 và M0 dùng để chọn mode Timer 0 và Timer 1:

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

Bộ định thời 0 (TL0) là bộ định thời 8 bit, hoạt động dựa trên các bit điều khiển của nó, trong khi TH0 cũng là bộ định thời 8 bit nhưng được điều khiển bởi các bit của bộ định thời 1 Bộ định thời 1 hiện đang ngưng hoạt động.

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

Hệ thanh ghi bao gồm 4 thanh ghi cho phép lập trình viên nạp giá trị cho bộ định thời, trong đó có 2 thanh ghi 16 bit được chia thành 4 thanh ghi 8 bit Hai thanh ghi phục vụ cho Timer 0 và hai thanh ghi còn lại 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

Vi điều khiển 89C51 được trang bị hai timer 16 bit, mỗi timer có bốn chế độ hoạt động khác nhau Các timer này thường được sử dụng để định khoảng thời gian, đếm sự kiện, tạo tốc độ baud cho cổng nối tiếp và trong các ứng dụng định khoảng thời gian, timer được lập trình với các khoảng thời gian đều đặn và cờ tràn timer được thiết lập Cờ này giúp đồng bộ hóa chương trình để thực hiện các tác động như kiểm tra trạng thái ngõ vào hoặc gửi sự kiện ra ngõ ra Ngoài ra, việc tạo xung nhịp đều đặn từ timer cũng có thể được ứng dụng để đo thời gian trôi qua giữa hai sự kiện, chẳng hạn như đo độ rộng xung.

Ngắt (INTERRUPT) là một sự kiện gây ra tạm dừng chương trình chính để xử lý một điều kiện khác Chúng đóng vai trò quan trọng trong thiết kế và cài đặt ứng dụng vi điều khiển, cho phép hệ thống phản ứng bất đồng bộ với các sự kiện và giải quyết chúng trong khi một chương trình khác đang chạy.

Vi điều khiển 89C51 có 5 nguồn ngắt, bao gồm 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt từ cổng nối tiếp Sau khi hệ thống được reset, tất cả các ngắt mặc định sẽ bị cấm và có thể được kích hoạt từng cái một thông qua phần mềm Mức độ ưu tiên của các ngắt được quản lý bởi thanh ghi IP (Interrupt Priority), cho phép người dùng chọn mức ưu tiên cho từng ngắt, với giá trị thanh ghi IP khi reset là 00h.

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 cổng 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

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

Bảng 2-3 Tóm tắt thanh ghi IP

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

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

Khi một chương trình ngắt có mức ưu tiên thấp đang hoạt động, nếu có một ngắt mới xảy ra với mức ưu tiên cao hơn, chương trình hiện tại sẽ tạm dừng để cho phép chương trình ngắt có mức ưu tiên cao hơn được thực thi.

Mỗi nguồn ngắt có thể được cho phép hoặc cấm thông qua một thanh ghi chức năng đặc biệt, với địa chỉ bit IE (Interrupt Enable) nằm tại địa chỉ A8H.

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

Bảng 2-4 Tóm tắt thanh ghi IE

PHÂN TÍCH THIẾT KẾ HỆ THỐNG ĐÈN GIAO THÔNG

Sơ đồ khối

Hình 3.1 Sơ đồ khối của hệ thống

Thiết kế phần cứng

3.2.1 Mạch dao động và Reset

Hình 3.2 Sơ đồ nguyên lý của mạch dao động và reset

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 sử dụng trong mạch dao động là những lát mỏng được cắt từ tinh thể, có diện tích từ nhỏ hơn 1cm² đến vài cm², được mài mỏng và phẳng với hai mặt song song Hai mặt này được mạ kim loại và nối chân để dễ sử dụng Tinh thể thạch anh có tính áp điện, nghĩa là khi áp lực tác động lên hai mặt, sẽ sinh ra điện thế xoay chiều Ngược lại, khi có điện thế xoay chiều, thạch anh sẽ rung với tần số không đổi, tạo ra điện thế xoay chiều tương ứng Tần số rung động phụ thuộc vào kích thước và độ dày của lát thạch anh, và mặc dù tần số có thể thay đổi khi nhiệt độ thay đổi, nhưng độ ổn định của nó vẫn cao hơn nhiều so với các mạch dao động không sử dụng thạch anh.

Chân Reset (chân 9) có chức năng reset chip AT89C51 Để thực hiện quá trình reset, cần đưa mức 1 (5V) đến chân này trong thời gian tối thiểu 2 chu kỳ máy, tương đương 2 µS với thạch anh 12MHz.

Tần số làm việc AT89C51 𝑓 = 𝑓 𝑇𝐴

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

Khi reset thì trạng thái của RAM nội không thay đổi

Bộ đếm chương trình PC 0000H

Từ trạng thái chương trình PSW 00H

Con trỏ dữ liệu DPTR 0000H

Thanh ghi ưu tiên ngắt IP xxx00000B(8031/8051) xx000000B(8032/8052)

Thanh ghi cho phép ngắt IE 0xx00000B(8031/8051)

Các thanh ghi định thời 00H

Thanh ghi điều khiển nối tiếp SCON 00H

Bộ đệm dữ liệu nối tiếp SBUF 00H

Thanh ghi điều khiển nguồn PCON( HMOS)(CMOS) 0xxxxxxxB

Bảng 3-1 Trạng thái của các thanh ghi khi reset

3.2.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 là thiết bị hiển thị thời gian cho các chế độ khác nhau Thời gian được trình bày rõ ràng trên màn hình LED 7 đoạn, với các chân LED được kết nối qua một điện trở thanh để kết nối với vi điều khiển.

Việc giải mã nhị phân sang LED 7 đoạn được thực hiện trên vi điều khiển, với LED 7 đoạn được nối theo kiểu anode chung Chân anode chung của các LED được điều khiển gián tiếp từ chân P1.0 đến P1.3 thông qua transistor H1061 (NPN), cho phép LED hoạt động với dòng từ 10mA đến 20mA Port P0 (P2.0 đến P2.7) được sử dụng để điều khiển các chân cathode, trong khi các chân anode chung được điều khiển qua transistor H1061 ở chế độ bão hòa, cung cấp dòng cho LED sáng Transistor H1061 kết nối với port P1 (P1.0 đến P1.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ừ P0.0 đến P0.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 Cathode 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 Cathode mức thấp và chân Anode chung ở mức cao

Các đèn LED 7 thanh sẽ phát sáng khi các chân từ P2.0 đến P2.6 ở mức thấp, trong khi các chân Anode chung ở mức cao Đồng thời, các chân điều khiển cực B của các Transistor NPN (Q1 đến Q4) cũng cần phải ở mức cao để đảm bảo hoạt động đúng.

Các thanh LED sẽ tắt khi không đáp ứng một trong hai điều kiện cần thiết, hoặc khi cả hai điều kiện đều không được thỏa mãn Địa chỉ điều khiển các chân Anode chung của LED 7 đoạn rất quan trọng trong quá trình này.

• 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

3.2.3 Mạch hiển thị LED đơn

-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

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

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

Hình 3.3 Sơ đồ nguyên lý của hệ thống

Xây dựng, thiết kế chương trình

Sử dụng ngôn ngữ lập trình Assembly trên phần mềm Keil C để thiết kế chương trình cho hệ thống

Hình 3.4 Lưu đồ thuật toán của chương trình

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

MOV 41H,#10 ; 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

MOV R6,40H ; R6 LAY 30S CHO DEN DO 1

MOV R7,41H ; R7 LAY 25S CHO DEN XANH 2

SETB P0.0 ; BAT LED DON DO 1

SETB P0.5 ; BAT LED DON XANH 2

HIENTHI: ;///// QUET MÃ LED 7 DOAN ////// MOV A,31H

CHIA: ;///// BIN TO BCD ////// MOV A,R6

Ngày đăng: 20/06/2022, 20:46

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Sơ đồ khối của hệ thống - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 1.1 Sơ đồ khối của hệ thống (Trang 7)
Hình 2.1 AT89C51 của Microchip - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 2.1 AT89C51 của Microchip (Trang 8)
Hình 2.2  Sơ đồ chân AT89C51 - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 2.2 Sơ đồ chân AT89C51 (Trang 9)
Bảng 2-1 Chức năng của các chân trong port 3 - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Bảng 2 1 Chức năng của các chân trong port 3 (Trang 10)
Hình 2.3 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) - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 2.3 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) (Trang 12)
Hình 2.4 Dạng led 7 thanh anode chung - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 2.4 Dạng led 7 thanh anode chung (Trang 13)
Bảng 2-2 Bảng mã cho led 7 thanh anode chung - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Bảng 2 2 Bảng mã cho led 7 thanh anode chung (Trang 14)
Bảng 2-3 Tóm tắt thanh ghi IP - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Bảng 2 3 Tóm tắt thanh ghi IP (Trang 17)
Hình 3.2 Sơ đồ nguyên lý của mạch dao động và reset - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 3.2 Sơ đồ nguyên lý của mạch dao động và reset (Trang 19)
Bảng 3-1 Trạng thái của các thanh ghi khi reset - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Bảng 3 1 Trạng thái của các thanh ghi khi reset (Trang 21)
Hình 3.3 Sơ đồ nguyên lý của hệ thống - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 3.3 Sơ đồ nguyên lý của hệ thống (Trang 23)
Hình 3.4 Lưu đồ thuật toán của chương trình - Điều khiển đèn giao thông tại ngã tư bằng 8051 Assembly
Hình 3.4 Lưu đồ thuật toán của chương trình (Trang 24)

TỪ KHÓA LIÊN QUAN

w