Gồm 4 khối hoạt động liên quan chặt chẽ với nhau - Khối chế độ: là khối đặt các chế độ để điều khiển đèn - Khối điều khiển trung tâm: là khối quan trọng nhất của cả hệthống, điều khiển đ
Trang 1BÀI TẬP LỚN VI XỬ LÝ
Đề tài: Hệ thống điều khiển đèn giao thông tại 1 ngã tư.
MỤC LỤC
I.Tài liệu tham khảo 2
II Đặt vấn đề 2
III Phương án giải quyết 2
IV Mô tả hệ thống 3
1 Khối chế độ………5
2 Khối điều khiển trung tâm……….5
3 Khối giải mã……… 22
4 Khối hiển thị……… 25
V Code……… 28
VI Sơ đồ mạch điều khiển 30
VII Sơ đồ mạch in………
31 VIII Nguyên lý hoạt động…… 31
IX Mở rộng thêm các chức năng của chương trình 32
X Kết luận……… … 34
Trang 2
I.Tài liệu tham khảo
1 Họ vi điều khiển 8051_ tác giả: Tống Văn On- Hoàng Đức Hải
2 Cấu trúc và lập trình họ vi điều khiển 8051_ tác giả: Nguyễn Tăng Cường
3 Lập trình hợp ngữ( Assembly) và máy tính IBM-PC_ Biên dịch: Quách TuấnNgọc- Đỗ Tiến Dũng- Nguyễn Quang Khải
II Đặt vấn đề
Hệ thống giao thông là vấn đề rất quan trọng trong một đô thị văn minh.Nhưng hiện nay tại Hà Nội và một số thành phố lớn nói chung vẫn thườngxuyên xảy ra tai nạn và ách tắc giao thông đặc biệt là vào các giờ cao điểm Hệthống đèn báo hiệu tại các ngã tư hoạt động chưa đạt được hiệu quả tối ưu, chưatiện lợi cho người đi đường Do vậy việc thiết kế hệ thống đèn báo hiệu hợp lý,hiệu quả là rất cần thiết
III Phương án giải quyết
Xuất phát từ việc cần thiết phải có một hệ thống điều khiển đèn giaothông khoa học và đạt hiệu quả Nhóm thiết kế chúng em đã chọn đề tài thiết kế
hệ thống điều khiển đèn giao thông có hiển thị đồng hồ đếm ngược báo hiệuthời gian hiển thị các đèn Việc có đồng hồ đếm thông báo hoạt động của cácđèn làm cho người tham gia giao thông chủ động trong việc chấp hành luật giaothông, đẩy lùi tan nạn và ách tắc giao thông
Trang 3END
LƯU ĐỒ GIẢITHUẬT
So sánh chọn chế
độ
Chế độ tự động Chế độ đèn v ng àng
nhấp nháy
Khối hiển thị
S
Trang 4Gồm 4 khối hoạt động liên quan chặt chẽ với nhau
- Khối chế độ: là khối đặt các chế độ để điều khiển đèn
- Khối điều khiển trung tâm: là khối quan trọng nhất của cả hệthống, điều khiển đèn bằng các lệnh đã được lập trình sẵn
- Khối giải mã: giải mã tín hiệu nhận được từ khối điều khiển trungtâm rồi đưa tín hiệu ra khối hiển thị
- Khối hiển thị: là khối hiển thị thời gian hoạt động từng đèn
SƠ ĐỒ KHỐI CỦA HỆ THỐNG
Khối Hiển thị
Khối
chế độ
Khối giải mó
Trang 5- Chế độ tự động( chế độ 2): Tất cả các khối đều hoạt động Sử dụng chế độ này tại các thời điểm có lưu lượng xe tham gia giao thông bình thường Các đèn hoạt động theo chế độ đã được định từ trước trong bộ diều khiển
Chế độ ban đêm( chế độ đèn vàng nhấp nháy- chế độ1): Các khối điềukhiển trung tâm, khối giải mã và đồng hồ bị ngắt bằng cách cắt nguồn Chế độnày dùng vào các thời điểm vắng vẻ, cụ thể là vào ban đêm Lưu lượng xe thamgia hoạt động giao thông nhỏ, nên việc sử dụng các đèn điều khiển là không cầnthiết Hoạt động của các cột đèn ở chế độ này là đèn vàng nháy liên tục theoxung đồng hồ Các xe được đi liên tục không cần dừng lại
3 Khối điều khiển trung tâm
Đối với hệ thống điều khiển đèn giao thông, khối điều khiển là khối quantrọng nhất, nó là trung tâm nhận tín hiệu và phát các tín hiệu điều khiển đèn của
hệ thống Hệ thông giao thông mà ta thiết kế có sử dụng bộ đồng hồ đếmngược, để khi hiển thị đèn đỏ thì đồng hồ đếm ngược từ 29 về 0, đèn xanh thìđồng hồ đếm ngược từ 26 về 0, đèn vàng 3s Ta thấy đồng hồ đếm ngược cónhững giá trị ban đầu khác nhau ứng với mỗi tín hiệu hiển thị của đèn Vì vậy,khối vi điều khiển không những dùng để điều khiển các đèn mà còn dùng đểthiết lập giá trị ban đầu của bộ đông hồ đếm ngược
Trang 6Sơ đồ chân của AT89C52
Khối điều khiển trung tâm là bộ não của toàn bộ hệ thống điều khiển đèngiao thông Cấu tạo của khối chỉ bao gồm một IC vi điều khiển AT89C51 nhưhình bên Xử lý bên trong thông qua phần mềm lập trình sẵn đã được nạp trongROM của VĐK, đưa tín hiệu điều khiển các đèn đường P1, tín hiệu ra đồng hồ
là các chân P0,P2.Chân P3.0 nối với khối chế độ Các port 0,1,2 ở đây đều đượcdùng để xuất dữ liệu, port 3.0 dùng nhận tín hiệu được đưa vào từ khối chế độ ,chân 18,19 nối với bộ tạo dao động thạch anh 12MHz,
Trang 7MC - 51 là họ Micro Controller được chế tạo ban đầu bởi công ty Intel.
C8051có các đặc điểm sau:
- CPU 8-bít thích hợp với các ứng dụng đo lường, điều khiển
- Có khả năng xử lý từng bít
- Cho phép địa chỉ hoá 64Kbyte bộ nhớ chương trình
- Cho phép truy nhập 64Kbyte bộ nhớ chương trình
- 4Kbyte bộ nhớ chương trình trên Chip (ROM, EPROM, EEPROM)
- 128 byte bộ nhớ dữ liệu trên chíp (với 8952 là 256 byte)
- 32 đường vào ra có địa chỉ riêng biệt
- 2 bộ Timer/Counter (với 8952 thì có 3 bộ Timer/Counter)
- Cổng truyền thông tin nối tiếp hoạt động ở chế độ Full- Duplex
- Cấu trúc ngắt gồm 6 nguồn ngắt và 5 Véc tơ ngắt với 2 mức ưu tiên
- Có thể phát xung clock trên Chip
Sơ đồ chân linh kiện:
Sơ đồ Bố trí chân của C 8051
Đây là loại vi xử lý có 40 chân và bố trí như sau:
Trang 8- Chân 31 là EA để chọn chế độ làm việc với ROM ngoài hay ROM trong
- Nguồn cấp vào chân 20 và 40
Cấu trúc bên trong của C 8051
Trang 9Hình 3 Cấu trúc bên trong của C 8051
Tổ chức bộ nhớ trong C 8051
C 8051 có hai khoảng địa chỉ độc lập cho bộ nhớ chương trình và bộnhớ số liệu Sự độc lập của bộ nhớ chương trình và bộ nhớ số liệu cho phép bộnhớ dữ liệu được xử lý bởi địa chỉ 8 bit Tuy nhiên địa chỉ 16 bit cũng có thểđược sử dụng thông qua thanh ghi DPTR
Bộ nhớ chương trình (ROM, EPROM ) là bộ nhớ chỉ có đọc Bộ nhớ này
có thể lên tới 64Kbyte Trong 8051 4Kbyte thấp nhất của bộ nhớ chương trình
là trên chíp Bộ nhớ ngoài có thể đọc được nhờ tín hiệu chốt của chân PSEN
Bộ nhớ số liệu độc lập với bộ nhớ chương trình 128 Byte thấp nhất của
bộ nhớ dữ liệu ở trên chíp và nó có thể truy nhập đến 64Kbyte ngoài CPU sẽphát ra các tín hiệu RD và WR cần thiết trong suốt quá trình xử lý bộ nhớ sốliệu
Bộ nhớ chương trình
Sau khi Reset CPU bắt đầu thực hiện từ địa chỉ 0000H Bảng vector ngắtbắt đầu từ địa chỉ 0003H đến 002BH Mỗi một ngắt được xác định tại một vị trí
cố định trong bộ nhớ chương trình Khi một ngắt xảy ra CPU sẽ nhảy tới vị trí
mà nó yêu cầu phục vụ Mỗi một vector ngắt có độ dài 8 Byte Nếu chươngtrình ngắt đủ ngắn thì ta chứa ngay trong 8 Byte này, nếu chương trình ngắt dàithì nó chỉ chứa một lệnh nhảy tới chương trình phục vụ
Trang 104Kbyte (hoặc 8Kbyte, 16Kbyte ) phần thấp nhất của bộ nhớ chương trình
có thể ở ROM trong hoặc ở ROM ngoài Điều này được thực hiện bởi nối chân
EA lên mức logic 1 hay 0 (EA = 1 thì ROM trong EA = 0 thì ROM ngoài).Khi truy cập bộ nhớ ngoài MCS - 8051 sử dụng P0 và P2 làm 16 đường vào ra,trong đó P0 làm chức năng Bus địa chỉ và Bus dữ liệu P0 là Byte địa chỉ phầnthấp của bộ nhớ chương trình còn P2 là byte địa chỉ phần cao
Địa chỉ của bộ nhớ chương trình luôn có độ rộng là 16 bít
Bộ nhớ dữ liệu
Bộ nhớ số liệu có thể truy nhập tới 64Kbyte bộ nhớ dữ liệu ngoài Địa chỉcủa bộ nhớ ngoài có thể là 1 Byte hoặc 2 Byte Bộ nhớ số liệu trong được chialàm 3 khối, 128 Byte thấp, 128 Byte cao và khối thanh ghi chức năng đặc biệt
Bộ nhớ trong luôn sử dụng địa chỉ 1 Byte Sơ đồ bộ nhớ dữ liệu trong:
* Phần Lower 128 Bytes được chia thành 3 vùng:
+ Vùng 1: Địa chỉ từ 00H đến 1FH là phần thấp nhất được chia thành 4khối của 8 thanh ghi Các lệnh của chương trình sẽ gọi các thanh ghi này từ R0đến R7 2 bít trong thanh ghi trạng thái (RS0, RS1 ) sẽ lựa chọn 4 khối này
Chỉ xử lý bởi địa chỉ gián tiếp
Xử lý bởi địa chỉ trực tiếp hoặc gián tiếp
Xử lý bởi địa chỉ trực tiếp
FFH
80H
FFH 80H 7FH
Hình 4 Sơ đồ bộ nhớ dữ liệu trong
Trang 11+ Vùng 2: Địa chỉ từ 20H đến 2FH bao gồm 16Byte là vùng ô nhớ địa chỉtheo Bit Tập lệnh của MC - 51 bao gồm sự lựa chọn độ rộng của câu lệnh theotừng Bit và 128 Bits trong vùng này có thể được xử lý bởi các câu lệnh trực tiếphoặc gián tiếp Địa chỉ các Bits này là từ 00H đến 7FH.
+ Vùng 3: Địa chỉ từ 30H đến 7FH làm chức năng thông thường của bộnhớ RAM
Tất cả các Bytes trong 128 Bytes Lower đều có thể được xử lý bởi địa chỉtrực tiếp hoặc gián tiếp
* Phần Upper 128 Bytes chỉ có thể được xử lý bởi địa chỉ gián tiếp vàphần này không có trong 8051
* Vùng các thanh ghi chức năng đặc biệt (SFR) SFRs bao gồm bộ chốtcác cổng, Timer, điều khiển ngoại vi Các thanh ghi này chỉ có thể được xử líbởi địa chỉ trực tiếp 16 địa chỉ trong vùng thanh ghi chức năng đặc biệt là địachỉ theo Bytes và Bits Địa chỉ theo Bits trong vùng này là từ 80H đến FFH
Thanh ghi trạng thái chương trình (Program Status Word: PSW )
Thanh ghi trạng thái chứa các Bits ảnh hưởng đến trạng thái của CPU.Cấu trúc của thanh ghi trạng thái:
Thanh ghi trạng thái nằm trong vùng các thanh ghi chức năng đặc biệt
Nó chứa bit Carry, bit Carry phụ (dùng cho hoạt động BCD), 2 bit lựa chọnnhóm thanh ghi, cờ tràn, cờ dấu và 2 cờ trạng thái mà người dùng có địnhnghĩa
Các chế độ địa chỉ
Các chế độ địa chỉ trong tập lệnh của MCS -51 như sau:
Trang 12- Chế độ địa chỉ trực tiếp: Chế độ địa chỉ trực tiếp sử dụng địa chỉ 8 bit.Chỉ có RAM trong và các thanh ghi chức năng đặc biệt có thể sử dụng địa chỉtrực tiếp.
- Chế độ địa chỉ gián tiếp: Trong chế độ địa chỉ gián tiếp các câu lệnhthanh ghi nơi chứa địa chỉ của toán hạng Cả RAM trong và RAM ngoài đều làđịa chỉ gián tiếp
Thanh ghi địa chỉ đối với địa chỉ 8 bit có thể là R0 hoặc R1 của nhómthanh ghi được lựa chọn hoặc của con trỏ ngăn xếp Thanh ghi địa chỉ 16 bitsdùng cho địa chỉ 16 bits chỉ có thể là thanh ghi con trỏ dữ liệu 16 bits, DPTR
- Câu lệnh thanh ghi đặc biệt: Một vài câu lệnh luôn luôn hoạt động trênthanh chứa (Acc), hoặc con trỏ dữ liệu (DPTR ) Vì vậy nó không cần byte địachỉ nào để chỏ tới nó Bản thân mã lệnh của nó sẽ làm điều đó
- Chế độ địa chỉ hằng số trực tiếp: Giá trị của hằng số theo mã lệnh trong
ô nhớ chương trình
- Chế độ địa chỉ chỉ số: Chỉ có bộ nhớ chương trình có thể được xử lý vớiđịa chỉ chỉ số và nó chỉ có thể được đọc Chế độ này có xu hướng dùng để đọcbảng trong bộ nhớ chương trình Một thanh ghi cơ sở 16 bit (DPTR hoặc PC )trỏ tới địa chỉ cơ sở của bảng và thanh chứa Acc được thiết lập với số lượngdanh mục của bảng Địa chỉ của danh mục trong bộ nhớ chương trình hìnhthành bởi thêm dữ liệu thanh chứa vào con trỏ cơ sở
Một loại khác của chế độ địa chỉ chỉ số là sử dụng trong câu lệnh "Jump".Địa chỉ đích được xác định bởi tổng của con trỏ cơ sở và dữ liệu thanh chứa
Cổng I/O song song
C 8051 có 4 cổng vào ra song song P0 P1, P2 và P3 Trong hầu hết cácứng dụng với bộ nhớ ngoài thì cổng P0 được sử dụng như là Bus dữ liệu và địachỉ phần thấp còn P2 tương ứng với byte cao của địa chỉ
Tất cả các chân của P3 và 2 chân của P1 (P1.0, P1.1) là đa chức năng, các chứcnăng của chúng được thể hiện ở bảng sau:
Trang 13Port in Chức năng khác
P1.0 T2 (Đầu vào bên ngoài của Timer/Counter 2)
P1.1 T2EX (Trigger lạp lại của Timer/Counter 2)
P3.4 T0 (Đầu vào bên ngoài của bộ Timer/Counter 0 )
P3.5 T1 (Đầu vào bên ngoài của bộ Timer/Counter 1 )
P3.6 WR (Xung chốt để viết bộ nhớ dữ liệu ngoài )
P3.7 RD (Xung chốt để đọc bộ nhớ dữ liệu ngoài )
Tất cả bộ chốt các cổng đều được đặt ở mức logic "1" khi Reset
Timer/ Counter
MC 8051 có hai thanh ghi Timer/Counter 16 bit: Timer 0 và Timer 1.Các thanh ghi này đều có thể hoạt động ở chế độ Timer hoặc Couter
Trong chế độ Timer nội dung của thanh ghi sẽ tăng sau mỗi chu kỳ máy
và tần số của đồng hồ bằng 1/12 tần số máy phát thạch anh
Trong chế độ Counter nội dung của thanh ghi sẽ tăng khi có sự chuyển từ1 0 tại chân tín hiệu T0 hoặc T1 Trong chế độ này đầu vào sẽ được lấy mẫutại S5P2 của chu kỳ máy vì vậy tần số đếm lớn nhất bằng 1/24 tần số máy phátthạch anh
Chức năng Timer hoặc Counter được chọn bởi bit điều khiển C T trongthanh ghi
Trang 14chức năng đặc biệt TMOD Timer 0 và Timer 1 có chế độ hoạt động được lựachọn bởi cặp bit (M0, M1 ).
TCON:Thanh ghi điều khiển Timer/Counter Địa chỉ hoá theo bit
- TF1: Cờ báo Timer 1 tràn
- TR1: Bit điều khiển làm việc của Timer 1
- TF0: Cờ báo Timer 0 tràn
- TR0: Bit điều khiển làm việc của Timer 0
- IE1: Cờ cho phép chân INT1 có thể hoạt động
- IT1: Bit điều khiển ngắt ở chân INT1
- IE0: Cờ cho phép chân INT0 có thể hoạt động
- IT0: Bit điều khiển loại ngắt ở chân INT0
Thanh ghi điều khiển chế độTimer/Counter:TMOD
- GATE: Khi TRx được thiết lập và GATE = 1, thì TIMER/COUNTERx
sẽ chỉ chạy trong khi chân INTx ở mức cao Khi GATE = 0 thìTIMER/COUNTERx sẽ chỉ chạy trong khi TRx = 1
- C T : Bit lựa chọn Timer hoặc Counter
- M1: Bit lựa chọn chế độ
- M2: Bit lựa chọn chế độ
Trang 15M1 M0 Chế độ hoạt động (Operating Mode)
- Mode 1: Mode 1 giống Mode 0 ngoại trừ là thanh ghi Timer hoạt độngvới địa chỉ 16 bit
- Mode 2: Định dạng thanh ghi Timer như là một bộ đếm 8 bit (TL1 ) vớichức năng tự động lạp lại giá trị Khi TL1 đếm tràn nó sẽ đặt cờ TF1 và lạp lạinội dung TH1 đã được đặt trước bằng phần mềm
- Mode 3: Timer 1 là một bộ đếm, nó sẽ hoạt động khi TR1 được đặtbằng 1 Timer 0 thiết lập TL0 và TH0 như 2 bộ đếm độc lập
Giao diện cổng nối tiếp
Cổng nối tiếp hoạt động ở chế độ Full duplex, có nghĩa là nó có thểtruyền và nhận tại cùng một thời điểm Thanh ghi truyền và nhận của cổngthông tin nối tiếp, cả hai truy nhập tại thanh ghi chức năng đặc biệt SBUF Khi
ta viết tới SBUF thì là thanh ghi truyền và khi đọc SBUF ta sẽ truy nhập tớithanh ghi nhận độc lập Cổng thông tin nối tiếp có thể hoạt động ở 4 chế độ:
Trang 16- Mode 0: Số liệu nối tiếp vào và ra thông qua chân RXD, TXD Truyền
và nhận 8 bit 8 bit dữ liệu (đầu tiên là trọng số nhỏ nhất LSB ) Tốc độ truyền
cố định bằng 1/12 tần số máy phát
- Mode 1: 10 bit được truyền thông qua chân TXD Nhận thông qua chânRXD: 1 bit Start (0 ), 8 bit dữ liệu (LSB ) đầu tiên), 1 bit Stop (1 ) Khi nhậnbit Stop sẽ được đặt vào RB8 trong thanh ghi SCON Tốc độ truyền có thể thayđổi
- Mode 2: 11 bit được truyền thông qua chân chân TXD hoặc được nhậnthông qua chân RXD 1 bit Start (0 ), 8 bit dữ liệu (bit đầu tiên là LSB ), 1 bit
dữ liệu thứ 9 có thể được đặt, 1 bit Stop (1 ) Khi phát bit thứ 9 sẽ được đặt tạiTB8 thanh SCON Khi nhận bit thứ 9 sẽ được đặt vào RB8 trong thanh ghiSCON Tốc độ độ truyền có thể đặt bằng 1/32 hoặc bằng 1/64 tần số máy phát
- Mode 3: 11 bit được truyền thông qua chân TXD hoặc nhận thông quaRXD 1 bit Start (0 ), 8 bit dữ liệu, bit dữ liệu thứ 9 có thể được đặt, 1 bit Stop(1 ) Mode 3 tương tự Mode 2 nhưng tốc độ truyền có thể thay đổi
Trong tất cả 4 Mode trên, chế độ truyền được khởi đầu bằng câu lệnh,trong đó thanh ghi SBUF được sử dụng giống như thanh ghi đích, chế độ nhậnđược khởi đầu trong Mode 0 bởi điều kiện RI = 0 và REN = 1 Nhận được khởiđầu trong các chế độ khác bởi đặt bit Start nếu REN = 1
SCON: Thanh ghi điều khiển cổng nối tiếp Địa chỉ hoá theo bit.
Trang 17- REN: Được thiết lập hoặc xoá bằng phần mềm để cho phép chế độ nhậnhoạt động hoặc không hoạt động.
- TB8: Bit dữ liệu thứ 9 sẽ được truyền trong Mode 2, 3 Được thiết lậphoặc xoá bằng phần mềm
- RB8: Trong Mode 2 và 3 là bit dữ liệu thứ 9 Trong Mode 1, nếuSM2 = 0 RB8 là bit Stop, trong Mode 0 thì RB8 không được sử dụng
- TI: Cờ cho phép ngắt truyền, được thiết lập bằng phần cứng tại cuối bit thứ 8 trong Mode 0, hoặc tại thời điểm bắt đầu của bit Stop trong các chế độ khác Phải được xoá bằng phần mềm
- RI: Cờ cho phép ngắt nhận Được thiết lập bằng phần cứng tại thờiđiểm cuối của bit thứ 8 trong Mode 0, hoặc tại thời điểm bắt đầu bit Stop trongcác chế độ khác Phải được xoá bằng phần mềm
1 0 2 9 bit UART Fosc/64 hoặc Fosc/32
Thi t l p c ng n i ti p:ết lập cổng nối tiếp: ập cổng nối tiếp: ổng nối tiếp: ối tiếp: ết lập cổng nối tiếp: