Báo cáo bài tập lớn vi xử lý Máy bán hàng tự động

20 635 0
Báo cáo bài tập lớn vi xử lý Máy bán hàng tự động

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN KỸ THUẬT VI XỬ LÝ Máy bán hàng tự động Giáo viên hướng dẫn: TH.S Hàn Huy Dũng Nhóm sinh viên thực hiện: 1.Lê Văn Nguyên - ĐT2-K48 2.Trần Lê Vinh - ĐT3-K48 Hà Nội tháng năm 2006 LỜI GIỚI THIỆU Sự đời máy rút tiền tự động,các bảng quảng cáo sử dụng quang báo,hệ thống hẹn tắt mở hệ thống giao thông… gần Việt Nam khẳng đinh ứng dụng mạnh mẽ kỹ thuật vi xử lý.Nó thực vào đời sống phục vụ nhu cầu Ban đầu bọn em có ý tưởng thiêt kế đồng hồ điện tử chúng em mô thành công Proteus lắp mô Panel mạch chạy tốt.Càng làm thấy thú vị thực nó,chúng em lại có ý tưởng mở rộng sản phẩm Kết hợp với LCD,viết phần lập trình READ51 sau cho chạy phần mềm mô thành công.Tiếp tuc mở rộng chúng em nghĩ thiết kế phần hiển thị máy bán hàng tự động Hiện có nhiều vi điều khiển PIC,PSOC,… lần bọn em tiếp xúc với vi điều khiển bọn em lựa chọn vi điều khiển 8051 họ vi đièu khiển có nhiều tài liệu để nghiên cứu (theo chúng em) QUI TRÌNH THỰC HIỆN Phần I :Khái quát chung cách thực 1.Thảo luận để đưa ý tưởng cuối 2.Hỏi để biết cách sử dụng thạo phần mềm Read51,proteus.Đây phần mềm hay dùng để lập trình mô cho mạch.Phần mềm thiết kế mạch in Ocad 9.2,sưu tầm phần mềm phục vụ cho việc nạp mạch 3.Mô mạch Proteus, viết phần lập trình Read51 để tính toán mua linh kiện 4.Các linh kiện sủ dụng đặc điểm: a)AT89S52 -Là sản phẩm hãng Atmel có 256 bytes Ram,8 Kbyte Rom ,32 chân vào ,3 định thời,8 nguồn ngắt,1 cổng nối tiếp -Kiểu nhớ NV-RAM kiểu nhớ mà có khả nạp chương trình vào ROM chip hệ thống mà lấy ra,ngoài kiểu nhớ có ưu việt cho phép thay đổi nội dung Rom theo byte nhớ kiểu Flash EPROM phải xóa hết trước lập trình lại -các chân AT89S52 miêu tả hình bên cạnh -Một số điều quan trọng AT89S52: +Để tạo thời gian trễ AT89S52 phải nối với thạch anh có tần số từ 10 đến 12 MHZ Để tránh sai số cho bit thường chọn tần số thạch anh 11.0592 MHZ +Một chu kỳ máy 12 chu kỳ dao động thạch anh + Do AT89S52 có ROM chip nên chân 31 nối với nguồn VCC Sơ đồ nối chân cần thiết AT89S52 +Cổng P0 phải nối với điện trở kéo để thiết lập làm cổng vào,do cổng P0 thiết kế điện trở kéo không giống cổng P1,P2,P3 (cấu tạo cổng P0 có dạng cực máng) a) LCD 16X2 -Các chân LCD 16x2 biểu diễn hình vẽ -Các chân LCD nối với vi điều khiển hình sau: b) IC 74LS47 -Trên hình vẽ chân 7,1,2,6 tương ứng với A,B,C,D chân vào Các chân 13,12,11,10,9,15,14 tương ứng với QA,QB,QC,QD,QE,QF,QG cổng nối với chân LED -Sơ đồ nối 74LS47 với AT89S52 sau c) LED Thanh ( Anode chung ) Tóm lại ,sơ đồ nguyên lý mạch: Phần II : Phần lập trình : Ta có sơ đồ thuật toán BEGIN HIỂN THỊ CHỮ CHẠY KHÔNG BỎ TIỀN? (BẤM NÚT) CÓ HIỂN THỊ MENU KHÔNG CHỌN (SAU 10S) CHỌN HAY LÀ 2 LẤY ( ĐÈN XANH SÁNG) ĐỢI 10S END LẤY ( ĐÈN ĐỎ SÁNG) Phần code sau: ORG 0000H ;Nơi bắt đầu LJMP MAIN1 ;Nhảy khỏi bảng vector ngắt ORG 0013H ;địa ngắt INT1 SETB P3.6 ;đèn đỏ sáng báo hiệu chon ACALL LED1 RETI ORG 0030H ;bắt đầu chương trình MAIN1: MOV A,#01H ;XOA MAN HINH HIEN THI ACALL COMMAND ;GUI LENH DEN LCD MOV A,#38H ;ma trận dòng 5x7 ACALL COMMAND ACALL DELAY CLR P3.6 CLR P3.7 MOV P0,#00H ;ban đầu Led hiển thị 00 MOV P1,#00H ; MAIN: MOV A,#0CH ;BAT HIEN THI , TAT CON TRO ACALL COMMAND ;GUI LENH DEN LCD MOV A,#01H ;XOA MAN HINH HIEN THI ACALL COMMAND ;GUI LENH DEN LCD ACALL DELAY STRING : DB ' WELCOME! WELCOME!' ;Hiển thị chữ “WELCOME” chạy MOV IE,#00H ;cấm ngắt MOV A,#38H ACALL COMMAND ACALL DELAY MOV A,#0CH ;BAT HIEN THI , TAT CON TRO ACALL COMMAND ;GUI LENH DEN LCD MOV A,#01H ;XOA MAN HINH HIEN THI ACALL COMMAND ;GUI LENH DEN LCD LCALL DELAY ;GOI TRE MOV A,#93H ;DUNG DE CHAY LCALL COMMAND ACALL DELAY MOV R0,#16 ;HIEN TOI DA 16 KI TU (LCD 16.2) MOV DPTR,#STRING CLR A MOVC A,@A+DPTR ACALL DATA_DISPLAY ;HIEN THI ACALL DELAY TAO_VA_DICH :MOV A,#18H ;dich toan bo hien thi sang trai ACALL COMMAND MOV A,#93H ACALL COMMAND ACALL DELAY INC DPTR CLR A MOVC A,@A+DPTR ACALL DATA_DISPLAY ACALL DELAY1 DJNZ R0,TAO_VA_DICH MOV R1,#19 DICH : MOV A,#18H ; dich toan bo hien thi sang trai ACALL COMMAND ACALL DELAY DJNZ R1,DICH MOV A,#38H ACALL COMMAND ACALL DELAY MOV A,#0CH ;BAT HIEN THI , TAT CON TRO ACALL COMMAND ;GUI LENH DEN LCD ACALL DELAY MOV A,#01H ;XOA MAN HINH HIEN THI LCALL COMMAND ;GUI LENH DEN LCD ACALL DELAY LCALL COMMAND ACALL DELAY MOV A,#0EH ;bật hiển thị nhấp nháy trỏ LCALL COMMAND MOV A,#01H ;xóa hình hiển thị LCALL COMMAND MOV A,#06H ;dịch trỏ sang phải LCALL COMMAND MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ;để chữ hiển thị vào LCD ACALL COMMAND ACALL DELAY MOV A,#'M' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'Y' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#' ' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'B' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'N' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#' ' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'H' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'N' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'G' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 SETB P1.7 JNB P1.7,LUACHON ; ;nhảy dến LUACHON bam nut MOV A,#0C0H ;đưa trỏ đầu dòng thứ ACALL COMMAND ACALL DELAY1 MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY1 MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY1 MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY1 MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY1 MOV A,#'T' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'U' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#' ' ACALL DATA_DISPLAY ACALL DELAY1 MOV A,#'D' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'O' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'N' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'G' LCALL DATA_DISPLAY ;HIEN THI JNB P1.7,LUACHON ;nhảy dến LUACHON bam nut LCALL DATA_DISPLAY ;HIEN THI MOV A,#01H ;XOA MAN HINH HIEN THI ACALL COMMAND ;GUI LENH DEN LCD ACALL DELAY LJMP MAIN RET ; -;DOAN THU LUACHON: MOV A,#38H ACALL COMMAND ACALL DELAY MOV A,#01H ;XOA MAN HINH HIEN THI LCALL COMMAND ;GUI LENH DEN LCD ACALL DELAY LCALL COMMAND ACALL DELAY MOV A,#0EH LCALL COMMAND MOV A,#01H LCALL COMMAND MOV A,#06H LCALL COMMAND ACALL DELAY1 MOV A,#'1' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'.' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'C' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'F' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'F' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'E' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#' ' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'B' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'U' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'O' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'N' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'M' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'E' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#0C0H ACALL COMMAND ACALL DELAY1 MOV A,#' ' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'2' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'.' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'C' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'O' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'C' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'C' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'O' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'L' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 HERE: MOV IE,#84H ;cho phép ngắt SETB p1.4 JNB p1.4,led ;nhảy bấm nút MOV A,#00H ;đếm thời gian đợi (10s) MOV R5,#10 MOV B,#00H LAP10:MOV IE,#84H SETB p1.4 JNB p1.4,led MOV A,#00H MOV P1,B SETB p1.4 ACALL DELAY2 MOV IE,#84H JNB p1.4,led INC B DJNZ R5,LAP10 JNB p1.4,led MOV P1,#00H SETB p1.4 MOV P0,#01H ACALL DELAY2 MOV IE,#84H JNB p1.4,led LJMP MAIN1 ;nếu không bấm nút ;ngắt quay lại ban đầu SJMP HERE ; -LED: SETB P3.7 ;đèn xanh sang báo hiệu chọn led1: MOV IE,#0000H MOV A,#01H ;XOA MAN HINH HIEN THI LCALL COMMAND ;GUI LENH DEN LCD MOV A,#38H LCALL COMMAND MOV A,#0EH LCALL COMMAND MOV A,#01H LCALL COMMAND MOV A,#06H LCALL COMMAND MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY ACALL DELAY1 MOV A,#'P' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'L' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'E' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'S' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'E' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#' ' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'W' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'I' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'T' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'!' LCALL DATA_DISPLAY ;HIEN THI MOV A,#00H ;đếm thời gian luc đợi lấy hàng MOV R6 ,#1 MAIN2: MOV P0,A ACALL DEMDONVI INC A DJNZ R6, MAIN2 MOV P1,#00H MOV P0,#01H ACALL DELAY2 ;DOAN KET THUC MOV A,#01H ;XOA MAN HINH HIEN THI LCALL COMMAND ;GUI LENH DEN LCD MOV A,#38H LCALL COMMAND MOV A,#0EH ;bật hiển thị nhấp nháy trỏ LCALL COMMAND MOV A,#01H LCALL COMMAND MOV A,#06H LCALL COMMAND MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACA LL DELAY MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ACALL COMMAND ACALL DELAY1 MOV A,#'T' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'H' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'A' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'N' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'K' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#' ' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'Y' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'O' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'U' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY1 MOV A,#'!' LCALL DATA_DISPLAY ;HIEN THI ACALL DELAY2 ACALL DELAY2 MOV A,#01H ;XOA MAN HINH HIEN THI ACALL COMMAND ;GUI LENH DEN LCD SETB IE.2 MOV IE,#84H LJMP MAIN1 RET ; ;THIET KE BO DEM ; -DEMDONVI: MOV R5,#10 MOV B,#00H LAP1: MOV P1,B ACALL DELAY2 INC B DJNZ R5,LAP1 RET COMMAND : MOV P2,A ;SAO A DEN CONG P2 ; 8chân P2 nối với D0-D7 LCD CLR P3.0 ;P3.0=0->RS=0 GUI LENH DEN LCD ;P3.0 nối với RS LCD CLR P3.1 ;P3.1=0->R/W=0 DE GHI DU LIEU ;P3.1 nối với R/Ư LCD SETB P3.2 ;P3.2=1->E=1 XUNG CAO ;P3.2 nối với chân E(cho phép) CLR P3.2 ;E-0 XUNG THAP ;có xung cao xuống thấp chốt liệu(xung>450ns) RET DATA_DISPLAY : MOV P2,A ;SAO A DEN CONG P2 SETB P3.0 ;P3.0=1->RS=1 GUI DU LIEU DEN LCD CLR P3.1 ;P3.1=0->R/W=0 DE GHI DU LIEU SETB P3.2 ;P3.2=1->E=1 CHO XUNG CAO CLR P3.2 ;E=0 CHO XUNG THAP RET DELAY : ;trễ dùng cho dòng chữ chạy MOV R7,#4 LAP: MOV TMOD,#01H MOV TL0,#0FFH MOV TH0,#8FH SETB TCON.4 AGAIN : JNB TF0,AGAIN CLR TR0 CLR TF0 DJNZ R7,LAP RET DELAY1: MOV R7,#10 LAP2: MOV TH0,#0F0H MOV TL0,#0FH SETB TR0 LAP3: JNB TF0,LAP3 CLR TF0 CLR TR0 DJNZ R7,LAP2 RET DELAY2: MOV R7,#15 LAP8: MOV TH0,#10H MOV TL0,#00H SETB TR0 LAP9: JNB TF0,LAP9 CLR TF0 CLR TR0 DJNZ R7,LAP8 RET ; END ;trễ chữ hiển thị Lcd ;trễ 1s dùng cho đồng hồ PHẦN III : QUÁ TRÌNH CHẠY CỦA MẠCH 1.Khi bật nguồn hình xuất 2.Bạn muốn mua gì,hãy bỏ tiền vào (ở bấm công tắc để chọn loại hàng) Máy đợi 10s bạn không chọn tự động quay thời điểm ban đầu 3.Khi bạn chọn mặt hàng mua ví dụ caffe buôn mê bạn bấm công tắc lựa chọn,công tắc thiết kế sẵn,màn hình hiển thị có dạng sau: Khi LCD hiển thị Please wait đồng hồ bắt đầu đếm đến 10 giây bạn có hàng cho đồng thời đén xanh bật sáng: 4.Sau bạn có hàng cho máy hiển thị lời cảm ơn bạn sử dụng 5.Nếu bạn không thích caffe buôn mê bạn lựa chọn sản phẩm khác mà máy có phù hợp với sở thích bạn chẳng hạn bạn chọn coca máy hiển thị tương tư lúc đèn đỏ bật sáng 6.Sau bạn chọn sản phẩm thích máy tự động quay lại trạng thái ban đầu Mặt khác mạch thiết kế công tắc RESET có tác dụng quay lại trạng thái ban đầu Do làm mẫu nên lựa chọn sản phẩm tượng trưng.Trong thực tế cho nhiều loại hàng hóa khác với giá để khách hàng đưa tiền vào sau đợi khoảng 10 giây cho máy xử lý bạn có hàng Đề tài làm để chạy thử nên chúng giả thiết tiền mua sản phấm với TỔNG KẾT Chúng em biết sử dụng phần mềm việc thiết kế mạch,kết hợp lý thuyết thực hành.Theo chúng em điều quan trọng cho nhà kỹ sư,để tránh thực tế vấp phải lỗi sai tốt bạn nên mô mạch trước làm Nói riêng đề tài bọn em thực :Ban đầu bọn em có ý tưởng nhỏ dùng vi xử lý để thiết kế đếm ,sau thực thành công bọn em tiếp tục phát triển đề tài lên thành đề tài Đây mạch hoạt động theo ý tưởng chưa thể áp dụng vào thực tế muốn áp dụng vào thực tế cần bổ sung thêm Bọn em tiếp tục nghiên cứu họ vi điều khiển khác để ngày nâng cấp sản phẩm mình.Xu hướng bọn em sau tiếp tục nghiên cứu PIC,PSOC,…để thấy mặt mạnh mặt yếu họ vi điều khiển nhằm áp dụng chúng cho ứng dụng có ích Đây lần nghiên cứu vi xử lý nên nhiều mặt hạn chế kiến thức cách nhìn nhận vấn đề mặt thực tế nên chúng em mong nhận phê bình góp ý thầy để sản phẩm ngày hoàn thiện Cuối chúng em xin chân thành cảm ơn thầy HÀN HUY DŨNG nhiệt tình giúp đỡ chúng em trình thực

Ngày đăng: 30/10/2016, 00:13

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan