1. Trang chủ
  2. » Tất cả

MACH ĐẾM SẢN PHẨM

22 6 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 454,36 KB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - TRUYỀN THÔNG  BÁO CÁO BÀI TẬP LỚN MÔN KỸ THUẬT VI XỬ LÝ ĐỀ TÀI : THIẾT KẾ MẠCH ĐẾM SẢN PHẨM Giáo viên hướng dẫn: Sinh viên thực : Nguyễn Tất Nam Chu Quang Đại Hà Nội ngày : 19 tháng: 12 năm: 2014 LỜI MỞ ĐẦU Song hành với phát triển nghành khoa học máy tính 60 năm qua.cơng nghệ điện tử có bước tiến vượt bậc với khả tích hợp ngày cao vi mạch từ giúp tang tốc độ xử lý , nâng cao độ tin cậy giảm giá thành sản phẩm Từ ứng dụng ban đầu chủ yếu lĩnh vực quân máy tính vi xử lý ,ngày nay, đời họ vi điều khiển với việc tích hợp khối chức IC ,các vi xử lý chuyên dụng ,cùng với mạnh vốn có xử lý đa giúp cho việc ứng dụng kỹ thuật vi xử lý vào hệ thống phi máy tính trở lên đơn giản ,mở rộng đối tượng ứng dụng thành nghành cơng nghiệp hiên đại ngày nay.Ta thấy ứng dụng chúng hệ thống máy tính lớn ,các hệ thống viễn thông sản phẩm quen thuộc máy giặt,điều hịa ,đèn giao thơng Trong khn khổ tập lớn ,với mục đích tìm hiểu ứng dụng thực tế vi xử lý ,nhóm chúng em lựa chọn đề tài thiết kế mạch đếm sản phẩm ứng dụng kỹ thuật vi xử lý MỤC LỤC Lời nói đầu I.Tổng quan II.Sơ đồ nguyên lý III.Các IC linh kiện sử dụng mạch 1.AT89C51 2.LM555 3.LED đoạn IV.Nguyên lý tác dụng linh kiện V.Chương trình VI.Nhận xét ,kết luận ,hướng mở rộng đề tài Tài liệu tham khảo I.Tổng quan Giới thiệu sản phẩm: Mạch đến sản phẩm nhóm thực mạch ứng dụng vi điều khiển mcs_51 dùng thu phát hồng ngoại ,tăng số lượng sản phẩm lên kỹ thuật đếm xung, sử dụng phương pháp quét led để thị số đếm có khả dừng bang truyền Mạch có khối là: +Khối phát hồng + Khối thu hồng ngoại +Khối thị +Bộ xử lý xử lý trung tâm dùng vi điều khiển 8051 II.Sơ đồ nguyên lý III.Các IC linh kiện sử dụng mạch 1.AT89C51 - Tương thích với sản phẩm thuộc họ vi điều khiển MCS-51 -Có Kbytes nhớ flash ,khả ghi/xóa 1000 lần -Làm việc tần số 0Hz-24MHz -Khóa nhớ chương trình mức -128 x bit RAM nội -32 đường xuất/nhập lập trình -2 định thời /đếm 16 bit -6 nguồn ngắt -Kênh nối tiếp lập trình -Chế độ tiêu thụ lượng a.Các chân IC 89C51 -Vcc: nối với điện áp nguồn - GND: nối đất - Port 0: c xuất/nhập bit Khi làm cổng xuất, chân ghép nối với đầu vào TTL Khi chân m ức 1, chân dùng làm đầu vào trở kháng cao Ngoài ra, truy cập tới chương trình liệu bên ngồi, port sử dụng làm bus địa thấp/ liệu đa hợp.Port dùng để nhận chương trình nạp vào Flash kiểm tra - Port 1: c xuất/nhập bit, đệm ghép nối với đầu vào TTL Các chân làm đầu vào tất thiết lập mức Port nhận byte địa thấp trình ghi chương trình kiểm tra - Port 2: c xuât/nhập bit, đệm ghép nối với đầu vào TTL Các chân làm đầu vào tất thiết lập mức Port truyền byte địa cao bus địa v ới thiết kế có nhớ chương trình ngồi thiết kế có nhiều 256 byte nhớ liệu ngồi Port nhận bit địa cao vài tín hiệu điều khiển q trình nạp chương trình kiểm tra - Port 3: c xuất/nhập bit, đệm ghép nối với đầu vào TTL Khi tất chân m ức 1, Port thực nhận liệu Ngồi ta, Port cịn phục vụ số chức đặc biệt AT89C51 Port nhận số tín hiệu điều khiển q trình nạp chương trình kiểm tra - RST: đầu vào reset Khi chân m ức cao chu kỳ máy osccilator hoạt động IC reset - ALE/PROG: chân cho phép chốt địa chiđưa xung để chốt byte địa thấp trình truy cập nhớ ngồi Chân đóng vài trị đầu vào xung chương trình PROG q trình nạp chương trình Ở điều kiện bình thường, tín hiệu phát từ chân có số 1/6 tần số mạch dao động chip sử dụng làm xung clock - PSEN: chân cho phép nhớ chương trình Khi AT89C51 thực thi lệnh từ b ộ nhớ chương trình ngồi, chân tích cực lần chu kỳ máy -EA/Vpp: chân phải nối đất để IC tìm mã từ nhớ chương trình địa 0000H đến FFFFH (64Kbyte) Để IC tìm thực thi lệnh chương trình nhớ nội, chân cần nối với Vcc Chân nhận điện áp cho phép ghi chương trình 12V trình nạp chương trình - XTAL1: đầu vào khuếch đại dao động đảo - XTAL2: đầu khuếch đại dao động đảo b.Tổ chức nhớ Bộ nhớ bên chip bao gồm ROM, RAM EPROM RAM chip bao gồm vùng RAM đa chức ,vùng RAM với bit định địa ,các dây nghi (bank) nghi chức đặc biệt Có đặc tính đáng lưu ý: + Các nghi port I/O định địa theo kiểu ánh xạ nhớ truy xuất vị trí nhớ nhớ + Vùng track thường trú RAM chip thay RAM ngồi vi xử lý Tóm tắt khơng gian nhớ chip • Vùng RAM đa mục đích : Có 80 byte ,địa từ 30H đến 7FH • Vùng RAM định địa Chip 89C51 chứa 210 vị trí định địa có 128 byte chứa byte địa 20H đến 2FH (16 byte x = 128 bits), phần cịn lại chứa rong nghi đặc biệt • Các dãy nghi: Có địa từ 00H đến 1FH ,32 vị trí thấp nhớ nội chứa dãy nghi Các lệnh 89C51 hỗ trợ nghi từ R0 đến R7 • Các nghi đặc biệt (SFR) Không phải tất 128 địa từ 80H đến FFH định địa nghĩa mà có 21 địa định nghĩa IC LM 555 1.Thông số +Điện áp đầu vào: 2-18V + Dòng điện tiêu thụ :6mA-15mA +Điện áp logic mức cao :0.5 -15 V +Điện áp logic mức thấp : 0.03 -0.06V +Công suất tiêu thụ (max) 600mW 2.Chức 555 +Tạo xung +Điều chế biên độ rộng xung (PWM) +Điều chế vi trí xung (PPM) 3.Bố trí chân sơ đồ nguyên lý * Chân : *Nguyên lý hoạt động: Ở mạch H: mức cao gần Vcc; L mức thấp 0V Sử dụng FF – RS Khi S = [1] Q = [1] = Q- = [ 0] Sau đó, S = [0] Q = [1] =Q- = [0] Khi_R=[1]_thì=[1]_và_Q=[0] Khi S = [1] Q = [1] R = [1] Q = [0] Q-= [1], transisitor mở dẫn, cực C nối đất Cho nên điện áp không nạp vào tụ C, điện áp chân không vượt V2 Do lối Op-amp mức 0, FF khơng reset Khi đóng mạch, tụ C nạp qua Ra, Rb, với thời (Ra+Rb)C 3.Led đoạn Là LED xếp theo hình mẫu Một chân led nối chung với ( A nod chung Knot chung), chân cịn lại đưa ngồi để phân cực cho led Đây loại đèn dung để thị số từ đến đèn gồm đoạn a,b,s,d,e,f,g bên đoạn led Đối với led đoạn ta phải tính tốn cho đoạn led đoạn có dịng điện từ 10 – 20mA.với điện áp 5V điện trở cần dung 270 ôm Công suất 1.4 W IV Nguyên lý tác dụng linh kiện 1.Khối phát hồng ngoại Khối phát hồng ngoại: dùng timer0 để phát xung 38khz chân 89c51 chọn chân p1.5, Sơ đồ khối phát hồng ngoại: dùng cách ghép darlington để khuếch đại tín hiệu đưa từ chân p1.5 tín hiệu từ 89c51 bé nên cần khuếch đại dòng cho để đủ sáng led, Q1,Q2 bác dùng loại NPN dùng C1815 Nói sơ qua cho bác hiểu nguyên lý hoạt động nhé: phát dạng xung vng có tần số 38khz tức chân p1.5 89c51 sẻ liên tục đảo chiều lên lại xuống 0, p1.5 lên Q1 dẫn lúc có dịng Vcc chạy từ cực C xuống E Q1, cực E Q1 nối với cực B Q2 nên Q1 dẫn cực B Q2 có dịng nên Q2 dẫn có dịng chạy từ Vcc qua cực C xuống E Q2 qua led phát hồng ngoại qua điện trở xuống mass, lúc led phát hồng ngoại sáng cịn chân p1.5 xuống mức Q1 Q2 không dẫn nên led phát hồng ngoại tắt 2.Khối thu hồng ngoại: có chức phát xung ( có sản phẩm qua ) đưa 89c51 để xử lý tăng số đếm lên đơn vị Sơ đồ mạch thu: • Nguyên lý hoạt động: có sản phẩm qua led thu hồng ngoại bị che khuất lúc có dòng từ Vcc qua led thu hồng ngoại ròi qua cực B Q3 lúc Q3 dẫn, cực C Q3 xuống mức thấp lúc tụ C4 xả điện qua diode qua Q3 xuống mass lúc chân số LM555 kích tạo xung chân số đưa cho ic89c51 xử lý (chân số LM555 nối vào chân P3.2 89c51 tức chân 12 ) Biến trở R18 dùng để điều chỉnh tốc độ nhận dạng sản phẩm qua, có sản phẩm qua led thu hồng ngoại bị che khuất ta có sơ đồ xung sau Khối thị: V.Chương trình Chúng ta làm mạch đếm sản phẩm quản lý số đếm R7 nên chương trình có nhiệm vụ nạp giá trị ban đầu cho phép ngắt, tách số BCD hiển thị LED Trong mạch sử dụng nguồn ngắt ngắt timer0 dùng để phát xung cho mạch phát, ngắt dùng để tăng số lượng sản phẩm ngắt timer1 dùng để dừng băng truyền.Chương trình phát xung: sử dụng ngắt timer0 chế độ ( timer0 chế độ có khả tự nạp lại giá trị ban đầu nên cần nạp lần đủ ) Chúng ta dùng thạch anh 12MHz nên ta có chu kỳ máy = 1µs, phát tần số 38khz ta có T=1/f = 1/38 = 0.026ms = 26 µs → Ton =Toff = 26/2 = 13 cần nạp cho timer0 giá trị -13.Trong chương trình ngắt timer0 ta việc đảo trạng thái chân p1.5 ta có đoạn chương trình ngắt timer0 là: T0_ISR: CPL P1.5 RETI Chương trình đếm sản phẩm: sử dụng ngắt ngồi Khi phát xung ( có sản phẩm qua) chân P3.2 xuống mức thấp lúc xảy ngắt ngồi Trong chương trình ngắt ngồi tăng số đếm lên đơn vị so sánh với giá trị 100 đạt đến 100 reset ta có đoạn chương trình ngắt ngồi 0: EX0_ISR: INC R7 ; tang s? d?m lên don v? CJNE R7,#100,EXIT; so sánh R7 với 100 ,nếu chưa 100 nhảy tiếp Exit cịn 100 xóa MOV R7,#0 EXIT:RET muốn dừng băng truyền chương trình ngắt ngồi ta so sánh số đếm với giá trị định sẳn chẳng hạn giá trị 20,40,60,80,100, số đếm giá trị cho dừng truyền 5s cho băng truyền hoạt động ta có lại đoạn chương trình ngắt sau : E0_ISR: INC R7 ; tăng R7 lên trở lại CJNE R7,#20,TIEP ; so sánh R7 với 20, chưa nhảy tới nhản TIEP cịn gọi chương trình TIEPTUC ACALL TIEPTUC ; gọi chương trình TIEPTUC TIEP: CJNE R7,#40,TIEP1 ; so sánh R7 với 40 ACALL TIEPTUC ; gọi chương trình tiếp tục TIEP1: CJNE R7,#60,TIEP2 ; so sánh R7 với 60 ACALL TIEPTUC ; gọi chương trình TIEPTUC TIEP2: CJNE R7,#80,TIEP3 ; so sánh R7 với 80 ACALL TIEPTUC ; gọi chương trình TIEPTUC TIEP3: CJNE R7,#100,EXIT ; so sánh R7 với 100 MOV R7,#0 ; xóa R7 ACALL TIEPTUC ; gọi chương trình TIEPTUC EXIT: RETI ; quay từ ngắt Trong chương trình TIEPTUC sẻ cho dừng băng truyền làm mơ nên thay động điều khiển băng truyền led led sáng báo hiệu dừng băng truyền Trong main nạp giá trị ban đầu cho phép ngắt tách số BCD hiển thị lên LED dùng phương pháp quét led ( nói sơ qua phương pháp quét led cho số bác chưa biết hiểu: nối chân a,b,c,d,e,f,g,dp led chục led đơn vị lại với nhau, ta gửi tín hiệu led để hiển thị giá trị cần hiển thị dĩ nhiên cho phép hai led hai led hiển thị số, lúc cho phép led sáng ví dụ muốn hiển thị số 15 ta cần led chục hiển thị số led đơn vị hiển thị số ta gửi tín hiệu cho sáng số tắt led đơn vị cho phép led chục, delay khoảng thời gian gửi tiếp tín hiệu cho sáng số tắt led chục cho phép led đơn vị) quét led nghĩa cho trạng thái có led sáng led chục sáng số tắt led đơn vị, delay khoảng thời gian tắt led chục cho led đơn vị sáng số delay khoảng thời gian, tốc độ sáng led khoảng 24hình/s mắt có khơng thể nhận biết thay đổi có cảm giác hiển thị số 15 Giải thuật tách số đếm R7 này: nạp cho B giá trị 10 lấy R7 chuyển vào A lấy A chia cho B phần nguyên sẻ nằm A ( tức số chục lưu A ) phần dư nằm B ( tức số đơn vị nằm B), ta tách số chục số đơn vị ra, chuyển số hàng chục port0 cho led chục tích cực tắt led đơn vị, chuyển B A xuất port0 cho phép led đơn vị sáng tắt led chục ORG 0000H ; điểm vào reset LJMP MAIN ; gọi chương trình ORG 000BH ; vecter timer LJMP T0_ISR ; gọi chương trình ngắt timer ORG 0003H ; vecter ngắt LJMP E0_ISR ; gọi chương trình ngắt ngồi ORG 001BH ; vecter timer LJMP T1_ISR ; gọi chương trình ngắt timer ORG 0030H ; điểm vào chương trình MAIN: MOV TMOD, #12H ; timer chế độ timer chế độ MOV TH0,#(-13) ; sau 13 Ms xảy ngắt timer ( tần số 38Khz) SETB TR0 ; cho phép timer chạy SETB EA ; cho phép ngắt toàn SETB ET0 ; cho phép ngắt timer SETB EX0 ; cho phép ngắt SETB IT0 ; ngắt cạnh xuống CLR P1.4 ; xóa p1.4 (tắt led báo hiệu dừng băng truyền) MOV R7,#0 ; nạp cho R7 giá trị ban đầu (R7 chứa số đếm) MOV R5,#50 ; nạp cho R5 giá trị 50 (mục đích tạo khoảng thời gian để ngừng băng truyền) LOOP: MOV A,R7 ; chuyển số đếm R7 vào A MOV B,#10 ; nạp cho B giá trị 10 DIV AB ; chia A cho B MOV DPTR,#LUT ; trỏ DPTR vào bảng LUT MOVC A,@A+DPTR ;chuyển giá trị chọn bảng LUT vào ghi tích lũyA MOV P0,A ; xuất A port CLR P1.7 ; cho phép led chục sáng SETB P1.6 ; tắt led đơn vị ACALL DELAY ; gọi chương trình delay MOV A,B ; chuyển B vào A MOV DPTR,#LUT ; trỏ DPTR vào bảng LUT MOVC A,@A+DPTR ;chuyển giá trị chọn bảng LUT vào ghi tích lũyA MOV P0,A ; xuất A port CLR P1.6 ; cho phép led đơn vị sáng SETB P1.7 ; tắt led chục ACALL DELAY ; gọi chương trình delay SJMP LOOP ; quay lại chương trình RET T0_ISR: CPL P1.5 ; đảo trạng thái p1.5 ( mục đích tạo xung vuông ) RETI ; quay lại từ ngắt E0_ISR: INC R7 ; tăng R7 lên CJNE R7,#20,TIEP ; so sánh R7 với 20, chưa nhảy tới nhản TIEP cịn gọi chương trình TIEPTUC ACALL TIEPTUC ; gọi chương trình TIEPTUC TIEP: CJNE R7,#40,TIEP1 ; so sánh R7 với 40 ACALL TIEPTUC ; gọi chương trình tiếp tục TIEP1: CJNE R7,#60,TIEP2 ; so sánh R7 với 60 ACALL TIEPTUC ; gọi chương trình TIEPTUC TIEP2: CJNE R7,#80,TIEP3 ; so sánh R7 với 80 ACALL TIEPTUC ; gọi chương trình TIEPTUC TIEP3: CJNE R7,#100,EXIT ; so sánh R7 với 100 MOV R7,#0 ; xóa R7 ACALL TIEPTUC ; gọi chương trình TIEPTUC EXIT: RETI ; quay từ ngắt DELAY: MOV R6,#200 DJNZ R6,$ RET ; dòng lệnh delay 400Ms TIEPTUC: SETB P1.4 ; cho đèn sáng ( báo hiệu dừng băng truyền ) SETB ET1 ; cho phép ngắt timer MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) ; hai dòng lệnh nạp giá trị cho timer ( sau 50000 Ms xảy ngắt timer 1) SETB TR1 ; cho timer chạy RET ; kết thúc chương trình tiếp tục T1_ISR: DJNZ R5,THOAT ; giảm R5 so sánh với chưa cịn lằm tiếp CLR P1.4 ; tắt đèn ( báo hiệu cho băng truyền hoạt động trở lại ) CLR ET1 ; cấm ngắt timer CLR TR1 ; dừng timer MOV R5,#50 ; nạp lại cho R5 giá trị 50 THOAT: RETI ; trở từ ngắt LUT: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H END VI.Nhận xét ,kết luận Trong trình thực dự án này, chúng em học tập thêm nhiều kiến thức thực tế, trao đổi thêm thành viên, làm quen với tác phong làm việc theo nhóm cách thức xử lý khó khăn gặp phải Kỹ thuật vi xử lý mơn học hay khó, lần nhóm thực dự án này, bên cạnh việc tự học hướng dẫn kinh nghiệm thầy giúp đỡ chúng em nhiều Chúng em cám ơn thầy nhiều bảo tận tình thời gian qua ... thiệu sản phẩm: Mạch đến sản phẩm nhóm thực mạch ứng dụng vi điều khiển mcs_51 dùng thu phát hồng ngoại ,tăng số lượng sản phẩm lên kỹ thuật đếm xung, sử dụng phương pháp quét led để thị số đếm. .. chỉnh tốc độ nhận dạng sản phẩm qua, có sản phẩm qua led thu hồng ngoại bị che khuất ta có sơ đồ xung sau Khối thị: V.Chương trình Chúng ta làm mạch đếm sản phẩm quản lý số đếm R7 nên chương trình... P1.5 RETI Chương trình đếm sản phẩm: sử dụng ngắt ngồi Khi phát xung ( có sản phẩm qua) chân P3.2 xuống mức thấp lúc xảy ngắt ngồi Trong chương trình ngắt ngồi tăng số đếm lên đơn vị so sánh

Ngày đăng: 04/10/2016, 00:22

w