Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
1,16 MB
Nội dung
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỀU KHIỂN & TỰ ĐỘNG HÓA ĐỒ ÁN VI XỬ LÝ NGÀNH: TỰ ĐỘNG HÓA VÀ ĐIỀU KHIỂN THIẾT BỊ CHUYÊN NGÀNH: TỰ ĐỘNG HĨA VÀ ĐIỀU KHIỂN THIẾT BỊ CƠNG NGHIỆP Đề tài: Thiết kế tín hiệu điều khiển đèn giao thơng ngã tư Giảng viên hướng dẫn: Cơ Bùi Thị Dun Nhóm sinh viên: Nhóm Sinh viên thực hiện: Hồng Minh Hiếu 18810430046 Nguyễn Ngọc Hưng 18810430092 Phạm Việt Hùng 18810430043 Vũ Xuân Dương 18810430111 Lớp: D13TDH&DKTBCN1 HÀ NỘI,10/03/2022 h MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG 1: PHƯƠNG ÁN THIẾT KẾ 1.1 Mô tả hoạt động hệ thống 1.2 Phương án thiết kế CHƯƠNG 2: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN 2.1 Giới thiệu vi điều khiển 2.2 Lịch sử phát triển loại vi điều khiển 2.3 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN AT89C51 2.3.1 Mô tả .5 2.3.2 Các cấu hình chân 2.3.3 Sơ lược chân at89c51 2.4 Sơ lược chân at89c52 11 2.5 Module thời gian thực DS1307 11 2.6 IC LM7805 .13 2.7 IC 74LS47 15 CHƯƠNG THIẾT KẾ MẠCH LẬP TRÌNH 19 3.1 Kết cấu chương trình 19 3.2 Sơ đồ board mạch điều khiển giao thông 19 3.3 Phần lập trình 20 3.4 Nguyên lý hoạt động điều khiển đèn giao thông 38 h DANH MỤC HÌNH ẢNH Hình 2.1 Hình ảnh vi điều khiển Hình 2.2 Hình ảnh vi xử lý AC89C51 Hình 2.3 Sơ đồ khối AT89C51 Hình 2.4 Mơ tả chân AT89C52 Hình 2.5 Hình ảnh mạch dao động Hình 2.6 Sơ đồ chân AT89C52 Hình 2.7 Sơ đồ kết nối phần cứng AT89C52 Hình 2.8 Mơ đun thời gian thực DS1307 Bảng 2.9 kí hiệu chân Hình 2.10 Ngun lí hoạt động DS1307 Hình 2.11 IC LM 7805 Hình 2.12 Sơ đị chân IC LM7805 Bảng 2.13 Sơ đồ chân 74LS47 Hình 2.14 Sơ đồ 74LS47 Hình 3.1 Sơ đồ kết cấu cách bố trí đèn nút Hình 3.2 Sơ đồ board h LỜI NÓI ĐẦU Với phát triển ngày mạnh mẽ rộng lớn khoa học kỹ thuật, công nghệ thuộc lĩnh vực khác nhờ đời để đáp ứng nhu cầu xã hội Một số phải kể đến kỹ thuật vi điều khiển Hiện nay, kỹ thuật vi điều khiển lĩnh vực mẻ đưa vào giảng dạy rộng rãi trường Đại Học, Cao Đẳng nước toàn giới Tại trường Đại Học Điện Lực, giảng dạy dẫn nhiệt tình thầy, cô mang lại cho sinh viên nhiều hiểu biết Vi Điều Khiển ứng dụng Vi Điều Khiển đo lường điều khiển Trên tinh thần học đôi với hành, học gắn liền với lao động, sản xuất đời sống, nhóm sinh viên chúng em tìm hiểu ứng dụng Vi Điều Khiển đồ án môn học Với hướng dẫn dạy nhiệt tình giảng viên cô Bùi Thị Duyên, chúng em tiến hành đồ án “Nghiên cứu, thiết kế chế tạo hệ thống điều khiển đèn giao thông ngã tư Chúng em cố gắng trình thực đề tài Tuy nhiên, thời gian không nhiều hạn chế kiến thức nên nội dung cịn nhiều thiếu sót Chúng em mong nhận góp ý thầy bạn sinh viên để báo cáo chúng em hoàn thiện Chúng em xin chân thành cảm ơn! h CHƯƠNG 1: PHƯƠNG ÁN THIẾT KẾ 1.1 Mô tả hoạt động hệ thống Hệ thống đèn điều khiển giao thông gồm: led(xanh, đỏ, vàng) led có chức hiển thị thời gian đếm lùi đồng thời điều khiển đèn Led (Xanh, Vàng, Đỏ) để hướng dẫn phương tiện tham gia giao thơng đường cho phép Do vị trí lưru lượng người tham gia giao thông nút giao thông khác nhau, nên thời gian hiển thị đèn ưu tiên đặt khác tùy thời điểm Ở hệ thống pha điều khiển tự động sau: Đèn xanh sáng tương ứng với thời gian hiển thị đếm lùi 25 giây, đặt phù hợp với nút giao thông Đèn vàng sáng giây, thông báo cho phương tiện tham gia giao thông ứng với pha giảm tốc độ chuẩn bị dừng lại Đèn đỏ sáng 29 giây, thông báo cho phương tiện biết hướng ứng với pha phải dừng lại Để hệ thống hoạt động cách đồng đèn xanh sáng đồng thời leg đoạn đếm lùi 25s, đèn xanh tắt đèn vàng sáng led đoạn đếm lùi 4s, đèn vàng tắt led đoạn đếm lùi 29s, trình lập lập lại 1.2 Phương án thiết kế Hiện việc sử dụng mạch số kết hợp với chip vi điều khiến hệ thống điều khiển tự động trở nên phổ biến ưu tiên như: Độ xác, khả lập trình được, tốc độ điều khiển nhanh, sử dụng đơn- gian, Mặt khác kỹ thuật số, vi xử lý, vi điều khiển lĩnh vực phát triển mạnh mẽ có ứng dụng nhiều ngành sản xuất Vi vậy, ta thiếtkế hệ thống điều khiển đèn giao thông đơn giản, chi sử dụng vi điều khiển Tất tín hiệu điều khiển đưa đến khổi hiển thị trực tiếp từ cổng vi điều khiển Phương án có đặc điểm mạch gọn nhẹ, khơng q phức tạp, cách thức bổ trí linh kiện dễ dàng, lập trình đơn giản, dễ chinh sửa Các vi điều khiển sử dụng hệ thống: Vi điều khiển AT89C51/52 Các led 7seg Các led đơn hiển thị đèn xanh, đèn vàng , đèn đỏ Một số linh kiện hỗ trơh mạch hoạt động ( tụ, trở, thạch anh…) h CHƯƠNG 2: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN 2.1 Giới thiệu vi điều khiển Vi điều khiển máy tính tích hợp chip, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển, thực chất, hệ thống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp (khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ, module vào/ra, module biến đổi số sang tương tự tương tự sang số,… Hình 2.1 Hình ảnh vi điều khiển Vi điều khiển thường sử dụng để xây dựng hệ thống nhúng Nó sử dụng thiết bị điện, điện tử máy giặt, lị vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện hay dây chuyền sản xuất tự động,… 2.2 Lịch sử phát triển loại vi điều khiển Bộ vi điều khiển thực loại vi xử lí tập hợp vi xử lý nói chung Bộ vi điều khiển phát triển từ vi xử lí, từ năm 70 phát triển hồn thiện cơng nghệ vi điện tử dựa kỹ thuật MOS (Metal-Oxide-Semiconductor), mức độ tích hợp linh kiện bán dẫn chip ngày cao Năm 1971 xuất vi xử lí bit loại TMS1000 Công ty Texas Instruments vừa nơi phát minh vừa nhà sản xuất Nhìn tổng thể vi xử lí có chứa chip chức cần thiết để xử lí chương trình theo trình tự, cịn tất phận phụ h trợ khác cần thiết : nhớ liệu, nhớ chương trìn , chuyển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in, hối đồng hồ lịch linh kiện nằm bên nối vào vi xử lí Mãi đến năm 1976 cơng ty INTEL (Interlligen-Elictronics) cho đời vi điều khiển đơn chip giới với tên gọi 8048 Bên cạnh xử lí trung tâm 8048 cịn chứa nhớ liệu, nhớ chương trình, đếm phát thời gian cổng vào Digital chip Các Công ty khác cho đời vi điều khiển 8bit tương tự 8048 hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48) Đến năm 1980 công ty INTEL cho đời hệ thứ hai vi điều khiển đơn chip với tên gọi 8051 Và sau hàng loạt vi điều khiển loại với 8051 đời hình thành họ vi điều khiển MCS-51 Đến họ vi điều khiển bit MCS51 có đến 250 thành viên hầu hết công ty hàng dẫn hàng đầu giới chế tạo Đứng đầu công ty INTEL nhiều công ty khác như: AMD, SIEMENS, PHILIPS, DALLAS, OKI … Ngồi cịn có cơng ty khác có họ vi điều khiển riêng như: Họ 68HCOS Công ty Motorola Họ ST62 Công ty SGS-THOMSON Họ H8 Công ty Hitachi Họ pic cuả Công ty Microchip 2.3 GIỚI 2.3.1 Mô tả THIỆU VỀ VI ĐIỀU KHIỂN AT89C51 AT9C51 hệ vi tính bit đơn chíp CMOS có hiệu suất cao,cơng suất nguồn tiêu thụ thấp có 4Kbyte nhớ ROM Flash xố lập trình Chip sản xuất dựa vào công nghệ nhớ khơng nội dung có độ tích hợp cao Atmel Chip AT89C51 tương thích với tập lệnh chân chuẩn công nghiệp MCS-51 Flash chip cho phép nhớ chương trình lập trình lại hệ thống lập trình nhớ khơng nội dung qui ước Bằng cách kết hợp CPU linh hoạt bit với Flash chip đơn thể, Atmel 89C51 hệ vi tính bit đơn chip mạnh cho ta giải pháp có hiệu h chi phí linh hoạt ứng dụng điều khiển Hình 2.2 Hình ảnh vi xử lý AC89C51 AT89C51 có đặc trưng sau: 4Kbyte Flash, 128 byte Ram, 32 đường xuất nhập, hai định thời / đếm 16 bit, cấu trúc ngắt mức ưu tiên nguyên nhân ngắt, port nối tiếp song công, mạch dao động tạo xung clock chip Ngoài AT8951 thiết kế với logic tĩnh cho hoạt đơng có tần số giảm xuống hỗ trợ hai chế độ tiết kiệm lượng lựa chọn phần mềm Chế độ nghĩ dừng CPU cho phép RAM, định thời /đếm, port nối tiếp hệ thống ngắt tiếp tục hoạt động Chế độ nguồn giảm trì nội dung RAM không cho mạch dao động cung cấp xung clock nhằm vơ hiệu hố hoạt động khác chip có reset cứng Các đặc điểm 8951 tóm tắt sau: KB nhớ lập trình lại nhanh, có khả tới 1000 chu kỳ ghi xố h Tần số hoạt động từ: 0Hz đến 24 MHz mức khóa nhớ lập trình Timer/counter 16 Bit 128 Byte RAM nội Port xuất /nhập I/O bit Giao tiếp nối tiếp 64 KB vùng nhớ mã 64 KB vùng nhớ liệu ngoại Xử lý Boolean (hoạt động bit đơn) 210 vị trí nhớ định vị bit 4µs cho hoạt động nhân chia 2.3.2 Các cấu hình chân Sơ đồ khối AT89C51 Hình 2.3 Sơ đồ khối AT89C51 h 2.3.3 Sơ lược chân at89c51 Mơ tả chân: Hình 2.4 Mơ tả chân AT89C52 VCC: chân cung cấp điện GND: chân nối đất Port 0: gồm chân 32-39 (P0.0…P0,7) Port port có chức Trong thiết kế cỡ nhỏ khơng dùng nhớ mở rộng có chức đường IO Đối với thiết kế cỡ lớn có nhớ mở rộng, kết hợp bus địa bus liệu Port1: chân 1-8 (P1.0…P1.7) Port port IO Có thể dùng cho giao tiếp với thiết bị ngồi cần Port khơng có chức khác, chúng dùng cho giao tiếp với thiết bị bên Port 2: chân 21-28 (P2.0….P2.7) h call send_uart_time call send_uart_date call on_off_led sjmp _while1 Send_uart_time: jb f_send_time, _send_time jmp _exit_send_time send_time: clr f_send_time mov a,#'t' call outchar mov a,#'i' call outchar mov a,#'m' call outchar mov a,#'e' call outchar mov a,#' ' call outchar call outchar call ds1307_read_time mov a,hour swap a anl a,#0fh add a,#48 call outchar mov a,hour 24 h anl a,#0fh add a,#48 call outchar mov a,#':' call outchar mov a,minutes swap a anl a,#0fh add a,#48 call outchar mov a,minutes anl a,#0fh add a,#48 call outchar mov a,#':' call outchar mov a,seconds swap a anl a,#0fh add a,#48 call outchar mov a,seconds anl a,#0fh add a,#48 call outchar mov a,#0dh call outchar 25 h mov a,#0ah call outchar exit_send_time: ret Send_uart_date: jb f_send_date, _send_date jmp _exit_send_date send_date: clr f_send_date mov a,#'d' call outchar mov a,#'a' call outchar mov a,#'t' call outchar mov a,#'e' call outchar mov a,#' ' call outchar mov a,#'t' call outchar mov a,#'h' call outchar mov a,#'u' call outchar mov a,#' ' call outchar 26 h call ds1307_read_date mov a,day swap a anl a,#0fh add a,#48 call outchar mov a,day anl a,#0fh add a,#48 call outchar mov a,#' ' call outchar mov a,date swap a anl a,#0fh add a,#48 call outchar mov a,date anl a,#0fh add a,#48 call outchar mov a,#'/' call outchar mov a,month swap a anl a,#0fh 27 h add a,#48 call outchar mov a,month anl a,#0fh add a,#48 call outchar mov a,#'/' call outchar mov a,year swap a anl a,#0fh add a,#48 call outchar mov a,year anl a,#0fh add a,#48 call outchar mov a,#0dh call outchar mov a,#0ah call outchar exit_send_date: ret on_off_led: ;push 0eh call check_time //kiem tra lai thoi gian; mov a,_hour_val 28 h mov b,#17 div ab cjne a,#00,on //neu sau 17 thi bat // chua toi 17h; kiem tra xem co duoi 5h hay khong: mov a,_hour_val mov b,#05 div ab cjne a,#00,off setb led ret On: setb led ret Off: clr led ret Check_time: mov a,hour swap a anl a,#0fh // chi giu lai gia tri bit thap; mov b,#10 mul ab mov _hour_val,a mov a,hour anl a,#0fh add a,_hour_val mov _hour_val,a 29 h mov p2,_hour_val // lay duoc gia tri 10; ret Ds1307_init: call i2c_start mov a,#0d0h lcall i2c_write ;jc $-5 mov a,#00h lcall ;dia chi ds1307 ; ;dia chi ghi i2c_write mov a,#00h lcall i2c_write call i2c_stop ;enable the oscillator (ch bit = 0) ret Ds1307_output: call i2c_start mov a,#0d0h call i2c_write mov a,#07h call ;dia chi ds1307 ; ;dia chi ghi i2c_write mov a,#10h call i2c_write call i2c_stop ;enable the output oscillator f=1hz ret Ds1307_write_time: call i2c_start mov a,#0d0h call i2c_write ;dia chi ds1307 ; 30 h mov a,#00h call i2c_write mov a,seconds call ; i2c_write mov a,minutes call ;dia chi ghi ; i2c_write mov a,hour call i2c_write call i2c_stop ; ret Ds1307_write_date: call i2c_start mov a,#0d0h call i2c_write mov a,#03h call ;dia chi ghi ;thu i2c_write mov a,date call ; i2c_write mov a,day call ;dia chi ds1307 ;ngay i2c_write mov a,month call ;thang i2c_write mov a,year call i2c_write call i2c_stop ;nam ret Ds1307_read_time: 31 h call i2c_start mov a,#0d0h call i2c_write mov a,#00h call i2c_write call i2c_restart ;dia chi ds1307 va write ; ;dia chi ghi mov a,#0d1h call i2c_write call i2c_read_ack ;dia chi ds1307 va read mov seconds,a call i2c_read_ack mov minutes,a call i2c_read_nack mov hour,a call i2c_stop ret Ds1307_read_date: call i2c_start mov a,#0d0h call i2c_write mov a,#03h call i2c_write call i2c_restart mov a,#0d1h call i2c_write call i2c_read_ack ;dia chi ds1307 va write ; ;dia chi ghi ;dia chi ds1307 va read mov day,a 32 h call i2c_read_ack mov date,a call i2c_read_ack mov month,a call i2c_read_nack mov year,a call i2c_stop ret I2c_write: push 07h mov r7,#8 loop_i2c_write: clr scl rlc a mov sda,c nop nop setb scl nop nop djnz r7, _loop_i2c_write clr scl nop nop nop nop setb sda ;cau hinh ngo vao sda doc ack 33 h setb scl nop mov c,sda ;kiem tra co "c" de xac dinh loi nop nop clr scl pop 07h ret I2c_read_ack: push 07h mov r7,#8 setb sda ;cau hinh ngo vao sda loop_i2c_read_ack: setb scl nop mov c,sda rlc a ;byte doc ve luu ghi "a" nop clr scl nop nop nop djnz r7, _loop_i2c_read_ack clr sda nop setb scl nop 34 h nop nop nop clr scl pop 07h ret I2c_read_nack: push 07h mov r7,#8 setb sda ;cau hinh ngo vao sda loop_i2c_read_nack: setb scl nop mov c,sda rlc a ;byte doc ve luu ghi "a" nop clr scl nop nop nop djnz r7, _loop_i2c_read_nack setb sda nop setb scl nop nop nop 35 h nop clr scl pop 07h ret I2c_init: setb scl setb sda ret I2c_start: setb sda setb scl nop ;delay 4.7us nop ;bus free time between a stop and start condition nop nop nop clr sda nop ;delay 4us nop ;hold time (repeated) start condition nop nop clr scl ret I2c_stop: clr sda setb scl nop ;delay 4.7us 36 h nop ;setup time for stop condition nop nop nop setb sda ret I2c_restart: setb sda setb scl nop ;delay 4.7us Nop ;setup time for a repeated start condition nop nop nop clr sda nop ;delay 4us nop ;hold time (repeated) start condition nop nop clr scl nop nop ret Scl_high: nop ;delay 4us nop ;high period of scl clock setb scl 37 h nop nop ret Scl_low: nop ;delay 4.7us nop ;low period of scl clock clr scl nop nop nop ret Outchar: jnb ti,$ clr ti mov sbuf,a ret End 3.4 Nguyên lý hoạt động điều khiển đèn giao thông Mô đun thời gian thực DS 1307 chuẩn thức I2C để giao tiếp để đọc thời gian ,áy tính để cập nhập thơi gian ngày Sư dụng phương pháp chốt led IC7447 để giải mã hiển thị led ngã tư sử dụng nút bấm tang giảm để điều chỉnh thời gian đếm ngược thơi gian cột đen giao thông theo công thức Đèn đỏ = đèn vàng + đèn xanh ( đèn vàng = 3s) 38 h