- Chức năng là bus dữ liệu và bus địa chỉ AD7-AD0 : 8 chân này hoặc Port 0 còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại nếu cókết nối với bộ nhớ ngoài, đồng thời Port 0 còn được dù
Trang 1LỜI CẢM ƠN
Để hoàn thành đồ án tốt nghiệp này, lời đầu tiên em xin chân thành cảm
ơn các thầy giáo, cô giáo trong Khoa Công nghệ thông tin, Trường Đại học Công nghệ thông tin và Truyền thông- Đại học Thái Nguyên, những người đã
tận tình giảng dạy, trang bị cho chúng em những vốn kiến thức và kinh nghiệmquý báu, cung cấp cho chúng em những điều kiện và môi trường học tập tốt nhất
Em xin bày tỏ lòng biết ơn sâu sắc nhất tới cô giáo Lưu Thị Liễu, người
đã tận tình hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đồ án
Nhân dịp này em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè,những người thân đã cổ vũ, động viên tiếp thêm cho em nghị lực để em hoànthành đồ án tốt nghiệp
Cuối cùng, em xin kính chúc các thầy, cô và gia đình dồi dào sức khỏe vàthành công hơn nữa trong sự nghiệp của mình
Thái Nguyên,tháng 6 năm 2012
Sinh viên thực hiện
Nguyễn Trung Kiên
Trang 2LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng đượcyêu cầu đề ra, bản thân em đã cố gắng nghiên cứu, học tập và tích lũy thêm kiến
thức Em đã tham khảo một số tài liệu nêu trong phần “TÀI LIỆU THAM KHẢO “ và không hề sao chép nội dung từ bất kì đồ án nào khác Toàn bộ đồ án
là do bản thân em nghiên cứu xây dựng nên
Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xinhoàn toàn chịu trách nhiệm trước Hội đồng
Thái Nguyên, tháng 6 năm 2012
Sinh viên
Nguyễn Trung Kiên
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH VẼ 6
DANH MỤC TỪ VIẾT TẮT 8
LỜI NÓI ĐẦU 9
CHƯƠNG 1 10
VI ĐIỀU KHIỂN AT89C51 10
1.1 Tóm tắt về lịch sử của 8051 10
1.2 Giới thiệu về vi điều khiển AT89C51 11
1.2.1 Các đặc điểm của vi điều khiển AT895C1 được tóm tắt như sau 11
1.2.2 Sơ đồ khối và sơ đồ chân 13
1.3 Bộ nhớ chương trình- Bộ nhớ ROM 18
1.4 Bộ nhớ dữ liệu-Bộ nhớ RAM 19
1.4.1 Các bank thanh ghi 19
1.4.2 Vùng RAM truy xuất từng bit 20
1.4.3 Vùng RAM bình thường 20
1.4.4 Các thanh ghi có chức năng đặc biệt 20
1.4.5 Tìm hiểu một số ô nhớ có chức năng đặc biệt 21
1.5 Các Bộ định thời của 89C51 23
1.6 Điều khiển ngắt 24
CHƯƠNG 2 26
KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ĐIỀU KHIỂN HỆ THỐNG ĐÈN GIAO THÔNG 26
2.1 Khảo sát tình hình giao thông tại ngã tư đường Nguyễn Trãi-Lê Lợi, thành phố Thanh Hóa 26
2.2 Phân tích hệ thống 27
2.2.1 Các giải pháp thiết kế 27
2.2.1.1 Mạch dùng IC số 27
2.2.1.2 Vi mạch dùng kỹ thuật vi xử lí 27
Trang 42.2.1.3 Điều khiển bằng vi điều khiển 28
2.2.1.4 Điều khiển bằng PLC 28
2.2.2 Xác định bài toán 29
2.2.2.1 Nội dung chương trình cần thiết kế 29
2.2.2.2 Yêu cầu của bài toán thiết kế hệ thống điều khiển đèn giao thông .29
2.2.2.3 Yêu cầu và giới hạn của hệ thống điều khiền đèn giao thông dùng vi điều khiển 29
2.3 Các linh kiện dùng để thiết kế 30
2.3.1 Vi điều khiển AT89C51 30
2.3.2 Led 7 thanh 30
2.3.2.1 Các khái niệm cơ bản 31
2.3.2.2 Kết nối với Vi điều khiển 31
2.3.2.3 Hiển thị dữ liệu cho Led 7 đoạn 33
2.3.3 Thạch anh 33
2.3.4 Transistor 34
2.3.5 Led đơn 35
2.3.6 Điện trở, điện trở thanh 35
2.3.7 Tụ 36
2.3.8 Nút bấm (Button) 36
2.3.9 IC ổn áp 7805 37
2.3.10 Jack cắm nối với bus 38
2.3.11 IC ULN2803 38
2.3.12 Chip PL 2303 39
CHƯƠNG 3 41
THIẾT KẾ HỆ THỐNG 41
3.1 Sơ đồ khối hệ thống 41
3.2 Giản đồ thời gian 41
3.3 Sơ đồ nguyên lý hệ thống 42
3.3.1 Sơ đồ nguyên lý toàn mạch 42
3.3.2 Sơ đồ nguyên lý khối điều khiển trung tâm 43
Trang 53.3.3 Sơ đồ nguyên lý khối hiển thị 47
3.3.4 Sơ đồ nguyên lý khối nguồn 48
3.4 Giao tiếp với máy tính (USB Interface) 48
3.5 Hoạt động của mạch 49
3.6 Lưu đồ thuật toán 50
3.7 Chương trình 53
3.8 Kết quả mô phỏng 59
3.9 Sơ đồ mạch in 61
3.10 Hoàn thành mạch 62
KẾT LUẬN 64
HƯỚNG PHÁT TRIỂN 65
TÀI LIỆU THAM KHẢO 66
DANH MỤC HÌNH VẼ
Trang 6Hình 1.1 Sơ đồ khối của họ vi điều khiển 8051 13
Hình 3.5 Sơ đồ nguyên lý khối tạo xung dao động 43Hình 3.6 Sơ đồ nguyên lý khối vi điều khiển 44Hình 3.7 Sơ đồ mạch đệm tín hiệu điều khiển các led 7 thanh
và led đơn trên cột đèn
Hình 3.12 Giao diện giao tiếp với máy tính 48
Hình 3.14 Lưu đồ thuật toán chương trình chính 50Hình 3.15 Lưu đồ chương trình Xử lý truyền thông 51Hình 3.16 Chương trình Xử lý dữ liệu, điều khiển led giao
thông và led 7 đoạn
Trang 7DANH MỤC TỪ VIẾT TẮT
- ROM: Read Only Memory
- RAM: Random Access Memory
- CPU: Central Processing Unit
- SRAM: Static Random Access Memory
- PLC :Programable logic controller
- EEPROM: Electrically Erasable Programmable Read Only Memory
- EPROM: Erasable Programmable Read Only Memory
- CMOS: Complementary Metal Oxide Semiconductor
- CISC: Complex Instruction Set Computer
- PSEN: Program Store Enable
- ALE: Address Latch Enable
- RST: Reset
- SFR: Special Function Register
Trang 8- MSB: Most Significant Bit
- LSB: Least Significant Bit
- PEROM: Flash Programmable And Erasable Read Only Memory
- PCON: Power Control Register
- LED: Light Emitting Diode
- IC: Integrated Circuit
- TTL: Transistor-Transistor Logic
- DC: Direct Current
- PSEN: Program store enable
- OE: Output Enable
- IP: Interrupt Priority
- OSC: Oscillator
- IE: Interrupt Enable
LỜI NÓI ĐẦU
Ngày nay cùng với sự phát triển đi lên của xã hội, các phương tiện thamgia giao thông cũng gia tăng không ngừng và hệ thống giao thông ngày càngphức tạp Vì vậy để đảm bảo giao thông được an toàn và thông suốt thì việc sửdụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông làrất cần thiết
Nhận thấy đây là vấn đề rất sát thực, với những kiến thức đã được trang
bị trong quá trình học tập và nghiên cứu tại trường Đại học Công nghệ thông tin
và Truyền thông, em đã lựa chọn đề tài:”Thiết kế hệ thống điều khiển đèn giao thông cho ngã tư đường Nguyễn Trãi-Lê Lợi”.
Trong quá trình thực hiện đồ án em đã nhận được sự chỉ bảo, hướng dẫn
tận tình của các thầy cô trong khoa, đặc biệt đó là sự chỉ bảo của cô Lưu Thị Liễu Em xin trân thành cảm ơn sự chỉ bảo của các thầy cô!
Trang 9Trong khi thực hiện đồ án do kiến thức còn hạn chế, và không có nhiềuthời gian thực hiện,vậy nên đồ án của em còn nhiều thiếu xót mong các thầy côđóng góp và bổ xung ý kiến để đồ án của em đươc hoàn thiện hơn!
Em xin chân thành cảm ơn!
Sinh viên thưc hiện
Nguyễn Trung Kiên
xử lý chuyên dụng phục vụ các mục đích đo lường và điều khiển tự động, phục
vụ các ứng dụng đơn giản nhưng rất phổ biến khác, đặc biệt là trong các Hệthống nhúng (Embedded Systems) Các chip Vi xử lý loại này đã vượt ra ngoàikhuôn khổ của một trung tâm Vi xử lý đơn thuần, trở thành một máy vi tính(MicroComputer) Cũng có thể nhìn nhận rằng, các trung tâm Vi xử lý họ này làmột máy vi tính thực thụ, nếu nhìn nhận chip này theo quan điểm kiến trúc máytính của Von Neumann: Chip được trang bị thêm bộ nhớ chương trình (ROMhoặc EPROM) và bộ nhớ dữ liệu, cũng như các cổng vào/ra nối tiếp, vào/ra songsong, v.v…
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiêncủa họ: vi điều khiển họ MCS-51 Nó bao gồm 4KB ROM, 128 byte RAM, 32
Trang 10đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit Tiếp theo sau đó là sự
ra đời của chip 8052,8053,8055 với nhiều tính năng được cải tiến
Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51nữa, thay vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD,Siemens, Matra&Dallas, Semiconductors được cấp phép làm nhà cung cấp thứhai cho các chip của họ MCS-51 Chip Vi điều khiển được sử dụng rộng rãi trênthế giới cũng như ở Việt Nam hiện nay là Vi điều khiển của hãng Atmel vớinhiều chủng loại vi điều khiển khác nhau
Hãng Atmel có các chip Vi điều khiển có tính năng tương tự như chip Viđiều khiển MCS-51 của Intel, các mã số chip được thay đổi chút ít khi đượcAtmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sảnxuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năngchương trình tương tự như nhau Tương tự 8051,8053,8055 có mã số tươngđương ở Atmel là 89C51, 89C53, 89C55 Vi điều khiển Atmel sau này ngày càngđược cải tiến và được bổ sung thêm nhiều chức năng tiện lợi hơn cho ngườidùng
Bảng 1
Dung lượng RAM Dung lượng ROM Chế độ nạp
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trườngdòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêmkhả năng nạp chương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người
sử dụng
Bảng 2
Dung lượng RAM Dung lượng ROM Chế độ nạp
Trang 1189S55 128 byte 20 Kbyte nối tiếp
1.2 Giới thiệu về vi điều khiển AT89C51
Đặc điểm và chức năng hoạt động của các IC họ MCS-51 hoàn toàn tương
tự như nhau Ở đây giới thiệu IC 89C51 là một họ IC vi điều khiển do hãng Intelcủa Mỹ sản xuất
1.2.1 Các đặc điểm của vi điều khiển AT895C1 được tóm tắt như sau
AT89C51 có những đặc điểm chung của họ vi điều khiển 8051
- 4 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả năng tới 1000 chu kỳ ghi xoá
- Tần số hoạt động từ: 0Hz đến 24 MHz
- 128 Byte RAM nội
- 4 Port xuất /nhập 8 bit
AT89C51 có các đặc trưng cơ bản như sau: 4 K byte Flash, 128 byteRAM, 32 đường xuất nhập, hai bộ định thời/đếm 16-bit, một cấu trúc ngắthai 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
Trang 12dao động và tạo xung clock trên chip
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ầnmềm Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ địnhthời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động Chế độ nguồngiảm duy trì nội dung của RAM nhưng không cho mạch dao động cungcấp xung clock nhằm vô hiệu hoá các hoạt động khác của chip cho đến khi
có reset cứng tiếp theo
1.2.2 Sơ đồ khối và sơ đồ chân
Các thành viên khác của họ MCS-51 có các tổ hợp ROM (EPROM), RAMtrên chip với dung lượng khác nhau, bộ biến đổi tín hiệu tương tự-số và số-tương
tự, và có thể có thêm bộ định thời thứ ba Mỗi một chíp của họ MCS-51 đều cóphiên bản CMOS tiêu thụ công suất thấp
Sơ đồ khối
Trang 13Hình 1.1 Sơ đồ khối của họ vi điều khiển 8051
CPU(Central Processing Unit):
Đơn vị xử lý trung tâm tính toán và điều khiển quá trình hoạt động của hệthống
OSC(Oscillator):
Mạch dao động tạo tín hiệu xung clock cung cấp cho các khối trong chiphoạt động
Trang 14 RAM (Random access Memory):
Bộ nhớ dữ liệu trong chip, lưu các dữ liệu
ROM(Read only Memory):
Bộ nhớ chương trình trong chip, lưu chương chình hoạt động của chip
I/O ports (In/Out ports):
Các port xuất/nhập, điều khiển việc xuất nhập dữ liệu dưới dạng songsong giữa trong và ngoài chip thông qua các port P0, P1, P2, P3
Trang 16- Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển,
cách đơn giản là sử dụng IC ổn áp 7805
Port 0 (P0)
Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
- Chức năng xuất/nhập: Các chân này được dùng để nhận tín hiệu từ bên
ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạnxuất tín hiệu để điều khiển led đơn sáng tắt
- Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc
Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu cókết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉcủa bộ nhớ ngoài
Port 1 (P1)
- Port 1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các
đường xuất/nhập, không có chức năng khác
Port 2 (P2)
Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
- Chức năng xuất/nhập
- Chức năng là bus địa chỉ cao (A8-A15): Khi kết nối với bộ nhớ ngoài có
dung lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0đảm nhận, byte cao do P2 này đảm nhận
Port 3 (P3)
Port 3 gồm 8 chân (từ chân 10 đến 17):
- Chức năng xuất /nhập.
- Với mỗi chân có một chức năng riêng thứ hai
Bảng dưới đây cho ta chức năng các chân của Port 3 và 2 chân P1.0, P1.1của Port 1:
P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD Ngõ xuất dữ liệu nối tiếp
P3.2 INT0 Ngõ vào ngắt cứng thứ 0
P3.3 INT1 Ngõ vào ngắt cứng thứ 1
Trang 17P3.4 T0 Ngõ vào của Timer/Counter thứ 0
P3.5 T1 Ngõ vào của Timer/Counter thứ 1
P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ
nhớ ngoàiP3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ
bên ngoàiP1.0 T2 Ngõ vào của Timer/Counter thứ 2
Chân XTAL1 và XTAL2
Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xungclock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các
tụ để tạo nguồn xung clock ổn định
Chân cho phép bộ nhớ chương trình PSEN
- PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để
truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân
OE (output enable) của ROM ngoài
- Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức
logic không tích cực (logic 1)
- Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát
ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kìmáy
Chân ALE (chân cho phép chốt địa chỉ-chân 30)
- Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng
là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường
dữ liệu và địa chỉ Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để
Trang 18giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với
IC chốt
- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi
điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clockcung cấp cho các phần khác của hệ thống
- Khi không sử dụng có thể bỏ trống chân này.
Chân EA
- Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội
hay ROM ngoại
- Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy
Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng tùyvào chủng loại cần dùng
Bộ nhớ ROM được định địa chỉ theo từng Byte, các byte được đánh địachỉ theo số hex-số thập lục phân, bắt đầu từ địa chỉ 0000H, khi viết chương trìnhcần chú ý đến địa chỉ lớn nhất trên ROM, chương trình được lưu sẽ bị mất khi địachỉ lưu vượt qua vùng này
Trang 19Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việcgiao tiếp với bộ nhớ ROM bên ngoài lên đến 64Kbyte (địa chỉ từ 0000H đếnFFFFH).
1.4 Bộ nhớ dữ liệu-Bộ nhớ RAM
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quảtrung gian và kết quả cuối cùng của các phép toán, xử lí thông tin Nó cũng dùng
để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu
RAM nội trong vi điều khiển được tổ chức như sau:
- Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập
lục phân (số Hex)
- Các bank thanh ghi có địa chỉ 00H đến 1FH
- 210 vị trí được định địa chỉ bit
- Các vị trí RAM bình thường
- Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH
Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ", nếu các ô nhớ
có chức năng đặc biệt thường được gọi là "thanh ghi", nếu là bit thì được gọi là
"bit nhớ"
1.4.1 Các bank thanh ghi
Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trongmỗi bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặcđịnh trong bank 1 Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bankthanh ghi được truy xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truyxuất các thanh ghi trên các bank thanh ghi, người dùng phải thay đổi giá trị cácbit chọn bank trong thanh ghi trạng thái PSW bằng các câu lệnh trong chươngtrình
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ
ít hơn và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAMkhác, ngoài ra các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì
lí do này các dữ liệu sử dụng thường được người viết chương trình đưa vào lưu
Trang 20trong các thanh ghi này Ngoài ra, có thể truy xuất thanh ghi trên các bank thanhghi như với các ô nhớ bình thường khác Ví dụ: nguời dùng có thể truy xuất đếnthanh ghi R7 bằng ô nhớ 07H
1.4.2 Vùng RAM truy xuất từng bit
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đếntừng bit, các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- sốHex Trong đó có 128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH,các bit nhớ còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt
Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuynhiên chúng sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câulệnh tương ứng dành cho các bit nhớ hoặc các ô nhớ này :
1.4.4 Các thanh ghi có chức năng đặc biệt
Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ
bit, có địa chỉ của các thanh ghi này nằm trong khoảng 80H đến FFH Các thanhghi đặc biệt này được dùng để xác lập trạng thái hoạt động cần thiết cho Vi điềukhiển
1.4.5 Tìm hiểu một số ô nhớ có chức năng đặc biệt
Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:
Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thểtruy xuất và xác lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt làP0, P1, P2, P3 tương ứng với các Port xuất Chẳng hạn để tất cả các chân của
Trang 21Port 0 lên mức logic 1, cần làm cho các bit của thanh ghi có địa chỉ 80H lên mức1.
Con trỏ ngăn xếp SP: địa chỉ 81H
Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó đượctăng, giảm tự động khi thực hiện các lệnh PUSH, CALL, POP con trỏ SP dùngquản lí và xử lí các nhóm dữ liệu liên tục Giá trị mặc định của SP là 07H
Con trỏ dữ liệu DPTR
Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển được tạothành từ hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địachỉ byte 83H) Hai thanh ghi DPL và DPT có thể truy xuất độc lập bởi người sửdụng Con trỏ dữ liệu DPTR thường được sử dụng khi truy xuất dữ liệu từ bộ nhớROM hoặc bộ nhớ từ bên ngoài
Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H)
PSW.5 D5H F0 Cờ 0 hay cờ Zero
PSW.4 D4H RS1 Bit lựa chọn dãy thanh ghi
Trang 22PSW.3 D3H RS0 Bit lựa chọn dãy thanh ghi
PSW.2 D2H 0V Cờ tràn với phép tính liên quan đến số nhị phân có
dấuPSW.1 D1H - Chưa được thiết kế để sử dụng
PSW.0 D0H P Cờ chẵn lẻ
Chức năng từng bit trong thanh trạng thái PSW:
- Cờ nhớ C
Cờ được sử dụng trong các lệnh toán học:
C=1 nếu phép toán cộng xảy ra tràn hoặc phép trừ có mượn
C=0 nếu phép toán cộng không tràn hoặc phép trừ không có mượn
- Cờ nhớ phụ AC:
Cờ AC được dùng trong các phép toán cộng hai số BCD
Khi cộng số BCD:
Nếu kết quả 4 bit lớn hơn 09H thì AC=1
Nếu kết quả 4 bit dưới 09H thì AC=0
- Cờ 0 hay cờ nhớ Z:
Cờ Z = 0 khi thanh ghi A có giá trị khác 0
Cờ Z =1 khi thanh ghi A có giá trị là 0
- Các bit chọn bank thanh ghi:
Hai bit RS1 và RS2 dùng để xác lập bank thanh ghi được sử dụng, mặcđịnh RS1=0 và RS2=0
RS1 RS2 Bank thank ghi
Trang 23Phép cộng hai số có dấu lớn hơn +127 thì OV=1
Hoặc phép trừ hai số có dấu nhỏ hơn -127 thì OV=1
Các trường hợp còn lại OV=0
M0(1)
GATE0
C/
T0
M1(0)
M0(0)+ Nếu bit GATE xóa, các Bộ định thời được phép hoạt động khi bit TR# tươngứng trong thanh ghi TCON thiết lập Ngược lại, nếu GATE thiết lập thì các bộđịnh thời chỉ hoạt động khi các chân INT# tương ứng tích cực (mức thấp)
+ Bit C/T# dùng để lựa chọn chế độ hoạt động bộ đếm hay bộ định thời Nếuđược thiết lập thì nó hoạt động theo chế độ đếm sự kiện, lúc này nguồn xung cho
bộ đếm là xung ngoài đưa vào từ chân T# tương ứng (chân 14, 15) Nếu bị xóa,thì nó hoạt động theo chế độ định thời với nguồn xung là xung tạo ra từ bộ tạodao động trên chip sau khi chia 12
+ Các bit M0, M1 dùng để xác dịnh chế độ đếm cho các bộ đếm:
M1
M0Chế độ
Trang 24Bộ đếm 1 dừng hoạt động.
Các chế độ hoạt động của các bộ đếm
Sự hoạt động của các Bộ định thời được điều khiển bởi thanh ghi TCON:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0+ Các bit TR# cho phép Bộ định thời hoạt động (nếu được thiết lập) hoặc khôngcho phép chúng hoạt động (nếu bị xóa)
+ Các bit TF# là các cờ tràn tương ứng với các Bộ định thời Chúng được thiếtlập khi xảy ra tràn và được xóa bằng phần cứng nếu khi đó bộ xử lý rẽ nhánh đếnchương trình phục vụ ngắt tương ứng
+ Các bit IT# là các bit ngắt Thiết lập IT# tạo ra chế độ ngắt cạnh, chân INT#nhận ra một ngắt khi nhận ra có một sườn âm (↓) của tín hiệu vào Xóa IT# tạo rachế độ ngắt mức, tức là ngắt được tạo ra khi tín hiệu vào ở mức thấp (0) Ở chế
độ ngắt mức, khi tín hiệu vào còn ở mức thấp thì ngắt được tạo ra liên tục chođến khi tín hiệu vào chuyển lên mức cao hoặc thiết lập IT#
+ Các bit IE# là các cờ ngắt cạnh, được thiết lập khi dò thấy ngắt cạnh
1.6 Điều khiển ngắt
Bộ vi điều khiển 89C51 có 5 nguồn ngắt: TF0, TF1, INT0, INT1 và ngắt
do cổng nối tiếp Sự điều khiển hoạt động ngắt được cất trong 2 thanh ghi làthanh ghi cho phép ngắt IE (Interrupt Enable) và thanh ghi xác định thứ tự ưutiên ngắt IP (Interrupt Priority)
Các bit và chức năng của chúng trong thanh ghi IE như sau (thiết lập làcho phép, xóa là cấm):
Bit Mã gợinhớ
Trang 254 ES Cho phép ngắt do cổng nối tiếp
3 ET1 Cho phép ngắt do bộ đếm 1
2 EX1 Cho phép ngắt từ bên ngoài 1
1 ET0 Cho phép ngắt do bộ đếm 0
0 EX0 Cho phép ngắt từ bên ngoài 0
Các bit và chức năng của nó trong thanh ghi IE
Với thanh ghi IP(Interrupt Priority):
Bit
Mã gợinhớ
0 PX0 Ưu tiên ngắt từ bên ngoài 0
Các bit và chức năng của chúng trong thanh ghi IP
CHƯƠNG 2 KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ĐIỀU KHIỂN HỆ THỐNG
ĐÈN GIAO THÔNG 2.1 Khảo sát tình hình giao thông tại ngã tư đường Nguyễn Trãi-Lê Lợi, thành phố Thanh Hóa
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àngvăn minh và hiện đại, cuộc sống ngày càng được cải thiện rõ ràng, mức sốngngày một cao, sự phát triển ở đô thị ngày một đi lên Nhu cầu về giao thông ngàycàng trở nên cấp thiết, nhất là trong các thành phố lớn Do nhu cầu của đời sốngcon 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ộtcách chóng mặt Riêng tại Việt Nam số lượng xe máy, ô tô trong những năm qua
Trang 26tăng một cách đột biến, mật độ xe lưu thông trên đường ngày một nhiều, trongkhi đó hệ thống đường xá tại Việt Nam còn quá nhiều hạn chế, nên thường gây racá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àycàng phổ biến trở thành mối hiểm họa cho nhiều người.
Không nằm ngoài thực trạng chung đó, tình hình giao thông ở ngã tưđường Nguyễn Trãi-Lê Lợi hết sức phức tạp Vì chưa có một hệ thống điều khiểnđèn giao thông trong khi đó lưu lượng người tham gia giao thông lớn, nên thườngxuyên gây ra tình trạng ùn tắc giao thông vào các giờ cao điểm, và cũng đã cónhững trường hợp xảy ra tai nạn đáng tiếc gây thiệt hại lớn về người, tài sản củanhân dân Vấn đề được đặt ra ở đây là phải có một hệ thống điều khiển đèn giaothông cho ngã tư này
Trong đó hệ thống đèn giao thông sẽ là công cụ điều khiển giao thôngcô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 Hệ thống điều khiển đèn giao thông đi vào hoạtđộng sẽ đáp ứng được nguyện vọng của người dân nơi đây, góp phần không nhỏvào việc điều tiết giao thông, khiến cho việc tham gia giao thông được dễ dàng
Với mạch dùng IC số có các ưu điểm sau:
- Tổn hao công suất bé, mạch có thể dùng pin hoặc acquy
- Giá thành rẻ
- Mạch đơn giản dễ thực hiện Song với việc sử dụng kỹ thuật số rất khó
khăn trong việc thay đổi chương trình Muốn thay đổi một yêu cầu nào
đó của chương trình thì buộc lòng phải thay đổi phần cứng Do đó mỗi
Trang 27lần phải lắp lại mạch dẫn đến tốn kém về kinh tế mà nhiều khi yêu cầu
đó không thực hiện được nhờ phương pháp này
- Với sự phát triển mạnh mẽ của ngành kỹ thuật số đặc biệt là cho ra đời
các họ vi xử lý, vi điều khiển hay PLC đã giải quyết được những bế tắc
và kinh tế hơn mà phương pháp dùng IC số lại không thực hiện được
2.2.1.2 Vi mạch dùng kỹ thuật vi xử lí
Ngoài những ưu điểm như đã liệt kê trong phương pháp dùng IC số thìphương pháp dùng kỹ thuật vi xử lý con có những ưu điểm sau:
- Ta có thể thay đổi chương trình một cách linh hoạt bằng việc thay đổi
phần mềm trong khi đó phần cứng không thay đổi mà mạch dùng IC sốkhông thể thực hiện được, mà nếu có thể thực hiện được thì cũng cứngnhắc mà người công nhân cũng khó tiếp cận, dễ nhầm
- Số linh kiện để sử dụng trong mạch ít hơn
- Mạch đơn giản hơn so với mạch dùng IC số Song do phần cứng của vi
xử lý chỉ sử dụng CPU đơn chíp mà không có các bộ nhớ Ram, Rom,các bộ timer, hệ thống ngắt Nên việc viết chương trình gặp nhiều khókhăn Do vậy hiện nay để khắc phục những nhược điểm trên hiện nayngười ta thường dùng bộ vi điều khiển
2.2.1.3 Điều khiển bằng vi điều khiển
Ngoài những ưu điểm có của hai phương pháp trên, phương pháp này còn
có những ưu điểm sau:
- Trong mạch có thể sử dụng ngay bộ nhớ trong đối với chương trình có
quy mô nhỏ, rất tiện lợi mà vi xử lý không thực hiện được
- Nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lý cũng
giao tiếp được nhưng là giao tiếp song song nên cần có linh kiệnchuyển đổi dữ liệu từ song song sang nối tiếp để giao tiếp với máytính
- Do trong vi điều khiển có sử dụng các bộ timer, các hệ thống ngắt, câu
lệnh đơn giản nên việc lập trình đơn giản, dễ thực hiện
Trang 28- Phù hợp với kiến thức của sinh viên.
2.2.1.4 Điều khiển bằng PLC
Với phương pháp điều khiển bằng PLC có những ưu điểm sau:
- Làm việc chắc chắn, liên tục và có tuổi thọ cao
- Chức năng điều khiển thay đổi dễ dàng bằng thiết bị lập trình (máy
tính, màn hình) mà không cần thay đổi phần cứng nếu không có yêucầu thêm bớt các thiết bị xuất nhập
- Có thể làm việc trong nhiều điều kiện khác nhau.
- Hướng dẫn người sử dụng đơn giản.
- Thời gian hoàn thành một chu trình điều khiển rất nhanh (vài ms).
- Tuy phương pháp này có nhiều ưu điểm hơn vi xử lý nhưng việc áp
dụng trong các hệ thống nhỏ là không thích hợp bởi giá thành rất cao
Kết luận :
Với các phương pháp đã nêu ở trên, em lựa chọn giải pháp điều khiểnbằng vi điều khiển bởi đây là phương pháp phù hợp và tối ưu nhất với đề tài
2.2.2 Xác định bài toán
2.2.2.1 Nội dung chương trình cần thiết kế
Thiết kế hệ thống điều khiển đèn giao thông tại ngã tư dùng vi điều khiểngồm:
- Có hiển thị thời gian đếm ngược trên đỉnh mỗi cột đèn.
2.2.2.2 Yêu cầu của bài toán thiết kế hệ thống điều khiển đèn giao thông
Trước tình hình phương tiện tham gia giao thông ngày càng gia tăngkhông ngừng và hệ thống giao thông nước ta ngày càng phức tạp Dẫn đến tình
Trang 29trạng ùn tắc và tai nạn giao thông ngày càng gia tăng Vì vậy để đảm bảo giaothông được an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điềukhiển và phân luồng tại các nút giao thông là rất cần thiết Với tầm quan trọngnhư vậy hệ thống điều khiển tín hiệu giao thông cần đảm bảo các yêu cầu sau:
- Đảm bảo hoạt động một cách chính xác, liên tục trong thời gian dài
- Độ tin cậy cao.
- Đảm bảo làm việc ổn định, lâu dài.
- Dễ quan sát cho người đi đường.
- Chi phí nhỏ, tiết kiệm năng lượng.
2.2.2.3 Yêu cầu và giới hạn của hệ thống điều khiền đèn giao thông dùng vi điều khiển
- Có sự sai lệch trong thời gian so với thời gian thực.
- Khó liên kết với các hệ thống giám sát chung của hệ thống giao thông.
Trang 302.3 Các linh kiện dùng để thiết kế
2.3.1 Vi điều khiển AT89C51
Hình 2.1 Ảnh thực tế của AT89C51
2.3.2 Led 7 thanh
Hình 2.2 Dạng của Led 7 thanh
Dùng để hiển thị thời gian đếm ngược cho mạch
2.3.2.1 Các khái niệm cơ bản
Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sửdụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led 7
Trang 31đoạn" Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉcần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng,trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩm được kiểmtra sau một công đoạn nào đó
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và
có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phảicủa led 7 đoạn, 8 led đơn trên led 7 đoạn có Anode (cực +) hoặc Cathode (cực -)được nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối vớimạch điện, 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũngđược đưa ra ngoài để kết nối với mạch điện Nếu led 7 đoạn có Anode(cực +)chung, đầu chung này được nối với +Vcc, các chân còn lại dùng để điều khiểntrạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này
ở mức 0 Nếu led 7 đoạn có Cathode (cực -) chung, đầu chung này được nốixuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sángtắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.Vì led
7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng quamỗi led đơn trong khoảng 10mA-20mA để bảo vệ led Nếu kết nối với nguồn 5V
có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển
2.3.2.2 Kết nối với Vi điều khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thểdùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn Như vậy led 7đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt củatừng led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường đượcgọi là "mã hiển thị led 7 đoạn" Có hai kiểu mã hiển thị led 7 đoạn: mã dành choled 7 đoạn có Anode(cực +) chung và mã dành cho led 7 đoạn có Cathode (cực -)chung Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b và c sáng, nếu
sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và c điện áp là0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn ngược lại, tức làphải đặt vào chân b và c điện áp là 5V(mức 1) Phần cứng được kết nối với 1 Port
Trang 32bất kì của Vi điều khiển, để thuận tiện cho việc xử lí về sau phần cứng nên đượckết nối như sau: Px.0 nối với chân a, Px.1 nối với chân b, lần lượt theo thứ tự chođến Px.7 nối với chân h.
2.3.2.3 Bảng mã của Led Anode chung
Bảng mã cho Led Anode chung (a là MSB, dp là LSB)
Bảng mã cho Led Anode chung (a là LSB, dp là MSB)
Trang 332.3.2.3 Hiển thị dữ liệu cho Led 7 đoạn
Khi nối chung các đường dữ liệu của Led 7 đoạn, ta không thể cho các
Led này sáng đồng thời, mà phải thực hiện phương pháp quét nghĩa là tại mộtthời điểm chỉ sáng một Led và tắt các Led còn lại Do hiện tượng lưu ảnh củamắt, ta sẽ thấy các Led sáng đồng thời
Ngoài ra ta có thể tách riêng các đường dữ liệu của Led, để cho phép cácLed sáng đồng thời mà sẽ không có ảnh hưởng giữa các Led IC chốt 74LS373hay 74LS374 có thể được dùng lưu trữ dữ liệu cho các Led
Trang 342.3.4 Transistor
Hình 2.4 Transistor
Transistor là một linh kiện bán dẫn thường được sử dụng như một thiết bịkhuếch đại hoặc một khóa điện tử Tranzitor là khối đơn vị cơ bản xây dựng nêncấu trúc mạch ở máy tính điện tử và tất cả các thiết bị điện tử hiện đại khác Vìđáp ứng nhanh và chính xác nên các tranzitor được sử dụng trong nhiều ứngdụng tương tự và số, như khuếch đại, đóng cắt, điều chỉnh điện áp, điều khiển tínhiệu, và tạo dao động.Tranzitor cũng thường được kết hợp thành mạch tích hợp(IC),có thể tích hợp tới một tỷ tranzitor trên một diện tích nhỏ
Transistor gồm ba lớp bán dẫn ghép với nhau hình thành hai mối tiếp giápP-N, nếu ghép theo thứ tự PNP ta được Transistor thuận, nếu ghép theo thứ tựNPN ta được Transistor ngược
Các transistor sử dụng như những chiếc khóa điện tử đóng mở rất nhanh,vừa có tác dụng đệm dòng cho các led đủ sáng vì dòng do vi điều khiển cung cấpkhông đủ để làm cho các led sáng đẹp và được dùng để khuếch đại dòng vào cácled đơn đồng thời ngăn dòng dò từ vi điều khiển vào các led.Và một lý do nữa lànếu ta sử dụng trực tiếp các chân của vi điều khiển sẽ làm vi điều khiển hoạtđộng quá công suất, dẫn đến vi điều khiển rất nóng và hay bị treo khi hoạt động
2.3.5 Led đơn