Ngày nay,các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kĩ thuật và đời sống xã hội.Hầu hết các thiết bị kĩ thuật từ phức tạp cho đến đơn giản như thiết bị điều khiển tự động,thiết bị văn phòng cho đến các thiết bị trong gia đình đều có dùng các bộ vi điều khiển.Và một số ứng dụng đơn giản nhất cho các hệ thống nhúng là điều khiển đèn nhấp nháy,đếm số người vào/ra,hiển thị dòng thông báo trên matrix led hay điều khiển ON_OF của động cơ
Và với những kiến thức cơ bản nhất về vi điều khiển và kĩ thuật lập trình nhóm chúng em xin trình bầy một trong những ứng dụng đơn giản của bộ vi điều khiển.Đó là lập trình cho vi điều khiển 89C51 điều khiển đèn giao thông.
13 trang |
Chia sẻ: tuandn | Lượt xem: 3800 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Đề tài Mô phỏng đèn giao thông tại ngã tư (có đếm ngược), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
KHOA CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC THÁI NGUYÊN
………….…O….…………….
BÀI TẬP LỚN
BÀI TẬP 7:
Mô Phỏng Đèn Giao Thông Tại Ngã Tư
(Có Đếm Ngược)
Giáo viên hướng dẫn: Th.S PHẠM QUỐC THỊNH
Lớp: Kỹ thuật nhúng N01.TL1
Sinh viên trình bày:
1. Nguyễn Đức Trọng
2. Lý Trọng Toàn
3. Dương Ngọc Đức
4. Đặng Văn Hùng
5. Lê Hồng Quang
6. Nguyễn Thanh Tùng
Thái Nguyên,tháng 05 năm 2010
LỜI NÓI ĐẦU:
Ngày nay,các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kĩ thuật và đời sống xã hội.Hầu hết các thiết bị kĩ thuật từ phức tạp cho đến đơn giản như thiết bị điều khiển tự động,thiết bị văn phòng cho đến các thiết bị trong gia đình đều có dùng các bộ vi điều khiển.Và một số ứng dụng đơn giản nhất cho các hệ thống nhúng là điều khiển đèn nhấp nháy,đếm số người vào/ra,hiển thị dòng thông báo trên matrix led hay điều khiển ON_OF của động cơ……………
Và với những kiến thức cơ bản nhất về vi điều khiển và kĩ thuật lập trình nhóm chúng em xin trình bầy một trong những ứng dụng đơn giản của bộ vi điều khiển.Đó là lập trình cho vi điều khiển 89C51 điều khiển đèn giao thông.
Mặc dù đã cố gắng rất nhiều trong thời gian thực hiên bài tập lớn nhưng chúng em cũng không thể tránh khỏi những sai sót do kiến thức cũng như kinh nghiệm còn hạn chế.Chúng em rất mong nhận được sự đóng góp của thầy giáo và các bạn để bài tập lớn của chúng em được hoàn thiện hơn.
YÊU CẦU:
Lập trình cho vi điều khiển 8051 bằng ngôn ngữ ASM hoặc ngôn ngữ C
NỘI DUNG:
Điều khiển đèn giao thông tại ngã tư có sử dụng Atmel IC 89S51
Và led 7 thanh đếm ngược.
Phần I: Sơ lược cấu trúc vi điều khiển 8051
Hiện nay có rất nhiều họ Vi điều khiển trên thị trường với nhiều ứng dụng khác nhau, trong đó họ Vi điều khiển họ MCS-51 được sử dụng rất rộng rãi trên thế giới và ở Việt nam.
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51. 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-51 nữ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ọ MSC-51. Chip vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay là vi điều khiển của hãng Atmel với nhiề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 được Atmel sản xuất. Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chươ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ười dùng.
Các đặc điểm của 89C51 được tóm tắt như sau :
8 KB EPROM bên trong.
128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bít.
Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại.
Xử lí Boolean (hoạt động trên bít đơn).
210 vị trí nhớ có thể định vị bít.
4 μs cho hoạt động nhân hoặc chia.
89C51 của Atmel 8051 của Intel
Sơ đồ khối của 89C51
Sơ đồ các chân của 89C51:
Phần II: Sơ đồ và các linh kiện trong mạch
Các linh kiện sử dụng và chức năng:
AT89S51
LED:hiển thị tín hiệu đèn báo.
Thạch Anh 12MHz: Là nguồn tạo xung nhịp dao động clock ổn định (12 MHz) cho dao động của 8051. Thạch anh sẽ được gắn vào chân XTAL1 và XTAL2 (Chân số 18 và 19) của 8051.
Tụ gốm 30pF:Lọc nhiễu cho dao động thạch anh. 2 tụ gốm 33pF sẽ được nối một đầu với chân của thạch anh, đầu còn lại đấu ra Mass.
Tụ hóa 10μF: Tụ hóa 10μF được gắn đầu âm vào chân reset, đầu dương lên nguồn. Khi cấp điện cho mạch, tụ sẽ phóng điện khiến chân reset bật lên mức cao, khi đó toàn bộ hệ thống sẽ được nạp lại từ đầu. Khi đang vận hành thì tụ hóa ngăn dòng đi vào chân reset.
Trở 10KΩ, 4,7KΩ, 220Ω : Có tác dụng hạn chế dòng điện và phân cực cho transistor
Transistor H1061 (NPN): Là loại transistor công suất lớn. Có công dụng như một khóa. Với 1 là cực B, 2 là cực C và 3 là cực E. H1061 có tần số hoạt động tầm 10MHz, β = 60-200 (Tùy thuộc vào dòng điện vào cực C).
Led 7 thanh(anot chung): Hiển thị đồng hồ đếm ngược
IC 74LS47: giải mã BCD 4bit nhị phân
Phần III – Nguyên lý hoạt động của mạch
Mạch điện được thiết kế gồm 1 IC điều khiển chính 89S51 điều khiển toàn bộ hoạt động của mạch, và 1 IC giải mã BCD 74LS47. Chương trình code điều khiển được dịch ra file .hex rồi đưa vào IC qua bộ nạp nối cổng LPT bằng chương trình nạp Aec_isp.exe. Code lập trình cho cổng P1 và P3 của IC 89S51.
Port 1:
Mỗi chân từ P1.0 đến P1.5 sẽ được nối với cực B của transistor H1061 loại NPN thông qua 1 trở 4,7KΩ để phân cực. Transistor ở đây mang nhiệm vự như 1 khóa. Cực C của H1061 nối với nguồn +5V, cực E sẽ ra LED. Khi tín hiệu điều khiển của IC ra mức 1, transistor sẽ được phân cực thuận, khóa sẽ đóng cho phép dòng điện từ cực C đi đến cực E. Khi tín hiệu điều khiển ở mức 0, khóa mở, dòng điện sẽ bị cắt.
Đèn LED được ghép thành hình mô phỏng đèn giao thông với 3 màu xanh, đỏ, vàng. Mỗi đèn được ghép 13 LED song song. Đầu Kathode của tất cả các LED được nối chung xuống Mass. Các đèn được nối thêm một trở 220Ω để hạn chế dòng điện đi vào LED (Mỗi LED chịu được dòng tối đa là 10mA).
Port 3:
Các chân từ P3.0 đến P3.3 đc nối với IC 74LS47.
IC 74LS47
IC 74LS47 nhận tín hiệu điều khiển từ IC 89S51thông qua 4 chân 1, 2, 6, 7 như hình vẽ trên.Còn các chân 9, 10, 11, 12, 13, 14, 15 được nối với led 7 thanh.
Mạch sau khi hoàn thành:
Phần IV – Chương trình Asembler lập trình cho mạch
;------------------------chuong trinh dieu khien den giao thong----------
;-------------------------------khai bao du lieu--------------------------------- xanh1_do2 EQU 00001100B ; xanh 1 va do 2 sang
vang1_do2 EQU 00001010B ; vang 1 va do 2 sang
do1_xanh2 EQU 00100001B ; do 1 va xanh 2 sang
do1_vang2 EQU 00010001B ; do 1 va vang 2 sang
;----------------------------------------------------------------------------------
org 0000h
;----------------------------------xanh 1 va do 2 sang-----------------------
TL:
mov p1,#xanh1_do2
lcall dem9_4
;----------------------------------vang 1 va do 2 sang-----------------------
mov p1,#vang1_do2
lcall dem3_0
;---------------------------------do 1 va xanh 2 sang------------------------
mov p1,#do1_xanh2
lcall dem9_4
;--------------------------------do 1 va vang 2 sang-------------------------
mov p1,#do1_vang2
lcall dem3_0
ljmp TL
;---------------------------dem nguoc tu 9->4-------------------------------
dem9_4:
MOV P3,#9
ACALL DELAY
MOV P3,#8
ACALL DELAY
MOV P3,#7
ACALL DELAY
MOV P3,#6
ACALL DELAY
MOV P3,#5
ACALL DELAY
MOV P3,#4
ACALL DELAY
RET
;--------------------------dem nguoc 3->0-----------------------------------
dem3_0:
MOV P3,#3
ACALL DELAY
MOV P3,#2
ACALL DELAY
MOV P3,#1
ACALL DELAY
MOV P3,#0
ACALL DELAY
RET
;----------------------------chuong trinh delay 1 giay----------------------
delay: mov r3,#10
dl: mov r2,#100
dl1: mov r1,#250
dl2: nop
nop
djnz r1,dl2
djnz r2,dl1
djnz r3,dl
RET
END
Kết Luận