Professional Documents
Culture Documents
HÀ NỘI, 2022
LỜI MỞ ĐẦU
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
hiện đại và mạnh mẽ của kinh tế như hiện nay. Các hệ thống điện tử rất đa dạng và đang
thay thế các công việc đơn giản đến phức tạp.
Vấn đề điều khiển đèn giao thông tại các ngã ba, ngã tư mà không cần đèn sự có
mặt thường trực của cảnh sát giao thông, người ta sử dụng đèn giao thông báo hiệu: đèn
xanh, vàng, đỏ. Việc sử dụng đèn giao thông như vậy đã giảm thiểu các vụ tai nạn không
mong muốn. Nhận thấy đây là vấn đề xác thực với những kiến thức mà mình đã học nên
em xin chọn đề tài là: “ Nghiên cứu và thiết kế hệ thống đèn giao thông sử dụng vi xử
lý 8051” để làm bài tập lớn.
Hệ thống này sử dụng dụng họ vi xử lý 8051 cụ thể là AT89C51, được lập trình
bằng ngôn ngữ Assembly.
Dù em đã cố gắng để hoàn thành đề tài này nhưng sẽ không tránh được những
thiếu sót về kiến thức. Em mong được đón nhận những ý kiến đóng góp của thầy.
Em xin chân thành cảm ơn !
CHƯƠNG I : TỔNG QUAN ĐỀ TÀI.
1. Chi tiêu kỹ thuật.
Các đèn xanh , vàng và đỏ sáng trong các khoảng thời gian là 10s , 10s và 20s
2. Công cụ mô phỏng và lập trình
Sử dụng phần mềm Proteus và Keil C.
Ngôn ngữ lập trình Assembly.
3. Nguyên lý hoạt động.
Mạch gồm 3 thành phần chính: khối nguồn, khối vi xử lý và hệ thống mạch hiển
thị
Mạch này hoạt động dựa trên nôi dung đã lập trình cho vi xử lý. AT89C51 đưa dữ
liệu đến các Led xanh, vàng, đỏ để các đèn sáng theo chế độ, đồng thời điều khiển các
Led 7 thanh hiển thị thời gian đếm lùi chờ các đèn.
Port 1: (chân 1 – 8) chỉ có một chức năng là IO, không dùng cho mục đích khác
(chỉ trong 8032/8052/8952 thì dùng thêm P1.0 và P1.1 cho bộ định thời thứ 3).
- Tại port 1 đã có điện trở kéo lên nên không cần thêm điện trở ngoài. Port 1 có khả
năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa chỉ thấp trong quá trình lập
trình hay kiểm tra.
- Khi dùng làm ngõ vào, Port 1 phải được set mức logic 1 trước đó.
P3.6 WR Tín hiệu điều khiển ghi dữ liệu lên bộ nhớ ngoài.
RST (Reset): (chân 9) cho phép reset AT89C51 khi ngõ vào tín hiệu đưa lên mức 1
trong ít nhất là 2 chu kỳ máy.
Xtal1, Xtal2: Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối
thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch anh thường sử
dụng cho AT89C51 là 12Mhz.
Tùy vào sơ đồ mạch, tùy vào ký tự hay số muốn hiển thị mà dữ liệu xuất ra sẽ
khác nhau. Dưới đây là bảng mã led 7 thanh cho loại led Anot chung.
Chữ A B C D E F G DP Mã
số
0 0 0 0 0 0 0 1 1 0xC0
1 1 0 0 1 1 1 1 1 0xF9
2 0 0 1 0 0 1 0 1 0xA4
3 0 0 0 0 1 1 0 1 0xB0
4 1 0 0 1 1 0 0 1 0x99
5 0 1 0 0 1 0 0 1 0x92
6 0 1 0 0 0 0 0 1 0x82
7 0 0 0 1 1 1 1 1 0xF9
8 0 0 0 0 0 0 0 1 0x80
9 0 0 0 0 1 0 0 1 0x90
3.2 Code.
ORG 00H ;
LJMP MAIN
ORG 300H
TBL:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
ORG 30H
MAIN: MOV P2,#00H
MOV P3,#00H
ACALL FRONT
MOV DPTR,#TBL
CLR A
MOV 40H,#10
MOV 43H,#10
MOV 46H,#20
MOV 49H,#20
MOV R0,#35
MOV R6,#30
MOV R7,#40
MOV A,46H
MOV B,#10
DIV AB
MOV 47H,A
MOV 48H,B
SETB P3.4
CLR P3.5
MOV A,47H
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
MOV P3,#00H
SETB P3.5
CLR P3.4
MOV A,48H
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
MOV P3,#00H
MOV A,49H
MOV B,#10
DIV AB
MOV 50H,A
MOV 51H,B
SETB P3.6
CLR P3.7
MOV A,50H
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
MOV P3,#00H
SETB P3.7
CLR P3.6
MOV A,51H
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
MOV P3,#00H
DJNZ R0,X2
MOV R0,#35
DJNZ 40H,Q1
MOV 40H,#20