Đề tài Mô phỏng đèn giao thông tại ngã tư (có đếm ngược)

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.

doc13 trang | Chia sẻ: tuandn | Lượt xem: 3800 | Lượt tải: 2download
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