MỤC LỤC TrangLỜI NÓI ĐẦU…………………………………………………………………..3CHƯƠNG 1: KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 89c51………………............1.1.GIỚI THIỆU VỀ VĐK 89C51 VÀ CÁC LINH KIỆN DÙNG TRONG ĐỒ ÁN…………………………………………………………………1.2.SƠ ĐỒ KHỐI VÀ LƯU ĐỒ THUẬT TOÁN CỦA TỪNG KHỐI VÀ CẢ HỆ THỐNG………………………………………………CHƯƠNG 2: TỔ CHỨC HIỆN THỰC HÓA HỆ THỐNG TRÊN THIẾT BỊ……..2.1. SƠ ĐỒ NGUYÊN LÝ TRONG MÔ PHỎNG PROTEUS………2.2. SƠ ĐỒ MẠCH IN……………………………………KẾT LUẬN………………………………………………………………………….PHỤ LỤC…………………………………………………………………………. LỜI NÓI ĐẦUNgày nay khi mà công nghệ khoa học kỹ thuật ngày càng phát triển thì tất cả các công việc đều dần được thực hiện một cách tự động thông qua hệ thống các máy móc được cài các chương trinh điều khiển. Công nghệ kỹ thuật đượcứng dụng một cách rộng rãi trong thực tế đời sống, trong công nghiệp ở các nhà máy xí nghiệp sản xuất và trong những tiện nghi của ngôi nhà chúng ta. Một trong những ứng dụng đó là chức năng đếm với các mạch đếm như đếm số sản phẩm trên hệ thống băng chuyền , đếm số người đi qua cổng một siêu thị, vào thang máy, qua cửa sân bay hay số xe ô tô đi ra , vào bãi đỗ xe .Trong trường hợp có quá nhiều sản phẩm hay sản phẩm qua cổng đếm với tôc độ nhanh và đồng thời có nhiều cổng đếm cùng thực hiện thì việc sử dụng phương pháp thủ công tức là dung người để đếm sẽ dẫn tới sai sót và lãng phí nguồn nhân lực. Vì vậy mạch đếm sản phẩm sẽ giúp ta kiểm soát được số sản phẩm một cách chính xác, giúp người lao động bớt phần mệt nhọc chân tay, tiết kiệm chi phí cho công ty xí nghiệp, nâng cao hiệu suất lao động. Việc thực hiện đồ án này giúp chúng em hiểu rõ về nguyên lý hoạt động , cách làm để có thể ứng dụng vào thực tiễn khi ra trườngYêu cầu của mạch đếm sản phẩm là phải chạy một cách chính xác, ổn định, gọn nhẹ dễ lắp đặt, dễ sửa chữa và rẻ tiền.DANH MỤC VIẾT TẮTVi điều khiển : VĐK
MỤC LỤC Trang LỜI NÓI ĐẦU………………………………………………………………… CHƯƠNG 1: KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 89c51……………… 1.1.GIỚI THIỆU VỀ VĐK 89C51 VÀ CÁC LINH KIỆN DÙNG TRONG ĐỒ ÁN………………………………………………………………… 1.2.SƠ ĐỒ KHỐI VÀ LƯU ĐỒ THUẬT TOÁN CỦA TỪNG KHỐI VÀ CẢ HỆ THỐNG……………………………………………… CHƯƠNG 2: TỔ CHỨC HIỆN THỰC HÓA HỆ THỐNG TRÊN THIẾT BỊ…… 2.1 SƠ ĐỒ NGUYÊN LÝ TRONG MÔ PHỎNG PROTEUS……… 2.2 SƠ ĐỒ MẠCH IN…………………………………… KẾT LUẬN………………………………………………………………………… PHỤ LỤC………………………………………………………………………… LỜI NÓI ĐẦU Ngày mà công nghệ khoa học kỹ thuật ngày phát triển tất cơng việc dần thực cách tự động thông qua hệ thống máy móc cài chương trinh điều khiển Công nghệ kỹ thuật đượcứng dụng cách rộng rãi thực tế đời sống, công nghiệp nhà máy xí nghiệp sản xuất tiện nghi nhà Một ứng dụng chức đếm với mạch đếm đếm số sản phẩm hệ thống băng chuyền , đếm số người qua cổng siêu thị, vào thang máy, qua cửa sân bay hay số xe ô tô , vào bãi đỗ xe Trong trường hợp có nhiều sản phẩm hay sản phẩm qua cổng đếm với tôc độ nhanh đồng thời có nhiều cổng đếm thực việc sử dụng phương pháp thủ công tức dung người để đếm dẫn tới sai sót lãng phí nguồn nhân lực Vì mạch đếm sản phẩm giúp ta kiểm soát số sản phẩm cách xác, giúp người lao động bớt phần mệt nhọc chân tay, tiết kiệm chi phí cho cơng ty xí nghiệp, nâng cao hiệu suất lao động Việc thực đồ án giúp chúng em hiểu rõ nguyên lý hoạt động , cách làm để ứng dụng vào thực tiễn trường Yêu cầu mạch đếm sản phẩm phải chạy cách xác, ổn định, gọn nhẹ dễ lắp đặt, dễ sửa chữa rẻ tiền DANH MỤC VIẾT TẮT Vi điều khiển : VĐK CHƯƠNG 1: KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 89C51 1.1.GIỚI THIỆU VỀ VI ĐIỀU KHIỂN AT89C51 VÀ CÁC LINH KIỆN 1.Vi điều khiển AT89C51 đếm/định thời AT89C5 a.Giới thiệu chung VĐK 89C51 VĐK 89C51 vđk thuộc họ 8051 hãng Intel sáng chế , họ chuẩn hóa họ VĐK chia sẻ rộng rãi cho tồn giới chế tạo sử dụng Hiện có nhiều hãng chế tạo loại VĐK Atmel, Motorola, Philips Trong đề tài em sử dụng VĐK AT89C51 hãng Atmel chế tạo AT89C51 VĐK đóng vỏ dạng DIP có 40 chân Có 4KB ROM 128 bytes RAM cổng xuất, nhập liệu cổng bit định thời 16bit Có mạch giao tiếp nối tiếp Khơng gian nhớ chương trình ngồi 64K Khơng gian nhớ liệu ngồi 64K Có ROM chip dạng flash Mỗi lệnh xử lý hết khoảng micro giây Sơ đồ chân AT89C51 Trong chức chân sau: Chân 40 cấp nguồn +5v (Vcc) Chân 20 nối đất (GND) Chân 29 PSEN tín hiệu điều khiển xuất 89C51 , cho phép chọn nhớ ngồi nối với chân OE EPROM mở rộng phép đọc chương trình Chân 30 ALE tín hiệu điều khiển xuất 89C51 , cho phép phân kênh bus địa bus liệu port Chân 31 EA đưa xuống thấp cho phép chọn nhớ 89C51 ( EA = 5(V) chọn rom nội , EA = 0V chọn rom ngoại ) Chân 18 19 để nối thạch anh tạo dao động cho VĐK 32 chân lại chia làm cổng vào Cổng 0: từ chân 39 đến chân 32 tương ứng chân P0_0 đến P0_7 , cổng cần dung trở kéo để xuất nhập liệu Cổng : từ chân đến chân tương ứng P1_0 đến P1_7 Cổng : từ chân 21 đến chân 28 tương ứng chân P2_0 đến P2_7 Cổng 3: từ chân 10 đến chân 17 tương ứng chân P3_0 đến P3_7 , nhiên người ta không thường xuyên dung cổng P3 cổng xuất nhập chân cổng P3 có chức riêng sau P3_0: RxD: chân nhân liệu nối tiếp giao tiếp RS232 ( cổng COM) P3_1: TxD: chân truyền liệu nối tiếp giao tiếp RS 232 P3_2: INT0: chân ngắt P3_3: INT1 : chân ngắt P3_4: T0 : Timer đầu vào đếm/định thời P3_5:T1: Timer đầu vào đếm/định thời P3_6 WR: điều khiển ghi liệu P3_7 RD: điều khiển đọc liệu b.Ngắt INT0/1 VĐK 89C51 Bộ vi điều khiển 8051 có hai ngắt phần cứng bên chân 12( P3.2) chân 12( P3.3) dùng cho ngắt INT0 INT1 Khi kích hoạt chân 8051 ngừng cơng việc thực hiên nhảy đến bảng vector ngắt để chạy trình phục vụ ngắt Hai ngắt bố trí chân P3.2 P3.3 địa bảng vector ngắt 003H 0013H Các ngắt phép bị cấm ghi IE Có cách kích hoạt ngắt phần cứng ngồi kích phát mức kích phát sườn Và cụ thể này, bọn em chọn kích phát sườn Ngắt kích phát sườn: Reset 8051 đặt ngắt INT0 INT1 chế độ kích phát mức thấp Để đổi ngắt thành kích phát sườn cần phải viết chương trình cho bit ghi TCON Thanh ghi TCON có bit cờ IT0 IT1 xác định chế độ kích phát sườn hay mức ngắt phần cứng IT0 IT1 bit D0 D2 tương ứng ghi TCON Các bit viết dạng TCON.0(IT0) TCON.2(IT1) mức thấp (0), nghĩa ngắt phần cứng chân INT0 INT1 ngắt theo mức thấp Nếu chuyển bit TCON.0 TCON.2 lên cao ngắt phần cứng ngồi INT0 INT1 trở thành ngắt theo sườn Tất trình với giả thiết bit ngắt cho phép ghi IE Thanh ghi TCON 2.Màn hình LCD 16*2 LCD có 16 chân chức sau Châ n Kí hiệu I/O Mơ tả VSS - Đất VCC - Nguồn VEE - Nguồn điều khiển tương phản RS I RS=0 chọn ghi lệnh RS=1 chọn ghi liệu R/W I R/W = đọc liệu, R/W = ghi liệu E I/O Cho phép đọc ghi DB0 I/O Bit liệu DB1 I/O Nt DB2 I/O Nt 10 DB3 I/O Nt 11 DB4 I/O Nt 12 DB5 I/O Nt 13 DB6 I/O Nt 14 DB7 I/O Nt Chân 15,16 LCD đèn led để giúp nhìn thấy LCD điều kiện ánh sáng thấp Nguyên lý hoạt động LCD: Chân VCC, VSS VEE: Các chân VCC, VSS VEE: Câp dưng ngn 5v đất tương ứng VEE dùng để điều khiển độ tương phản cho LCD Chân chọn ghi , RS =0 cho phép người dùng gửi lệnh lên LCD ví dụ di chuyển trỏ xóa hình RS=1 cho phép người dùng gửi liệu hiển thị lên LCD Chân đọc ghi R/W : đầu vào đọc ghi cho phép người dùng ghi thông tin lên LCD R/W =0 đọc thông tin từ R/W=1 Chân cho phép E sử dụng để LCD chốt liệu , liệu cấp đến chân liệu thi xung mức cao xuống mức thấp phải áp đến chân để LCD chốt liệu chân liệu Yêu cầu xung phải rộng tối thiểu 450ns Chân D0 đến D7 chân liệu dùng để hiển thị thông tin lên LCD đọc nội dung từ ghi , LCD hiển thị ký tự mã ASCII gửi đến chân liệu Cần ý sử dụng LCD phải sử dụng bit RS =0 để kiểm tra bit cờ bận D7, bit đọc R/W=1 RS=0 Nếu D7=1 LCD bận nên khơng nhận thông tin D7 =0 LCD sãn sang nhận thơng tin Sau bảng mã lệnh LCD Mã(hex) A C E F 10 14 18 1C 80 C0 38 0C 28 Lệnh đến hiển thị LCD Xóa hình hiển thị Trở đầu dòng Giảm trỏ (dịch trỏ sang trái) Tăng trỏ ( dịch trỏ sang phải ) Dịch hiển thị sang phải Dịch hiển thị sang phải Tắt trỏ, tắt hiển thị Tắt hiển thị , bật trỏ Bật hiển thị , tắt trỏ Bật hiển thị , nhấp nháy trỏ Tắt trỏ , nhấp nháy trỏ Dịch vị trí trỏ sang trái Dịch bị trí trỏ sang phải Dịch toàn hiển thị sang trái Dịch toàn hiển thị sang phải Ép trỏ đầu dòng thứ Ép trỏ đầu dòng thứ Chế độ dòng ma trận ký tự 5x7 Cho phép hiển thị hình Giao thức bit hiển thị hàng , ký tự 5x8 Muốn điều khiển LCD thực việc ta qua bước sau Bước : chuẩn bị phần cứng , chỉnh độ tương phản Bước 1: Khởi tạo LCD Bước : Gán giá trị cho bit điều khiển dùng chân RS,RW,EN cho phù hợp Bước xuất liệu cổng liệu Bước 4: kiểm tra cờ bận 3.IC MUX 74151 MUX 74151 IC gộp kênh đầu vào đầu đợn giản Có ba chân chọn cổng ABC cho bảng chân lý sau Dựa vào bảng chân lý ta tìm tín hiệu để chọn kênh đếm 4.Bàn phím điện thoại kiểu T9 KEYPAD Nguyên lý qt bàn phím em trình bày cụ thể phần sau 1.2.SƠ ĐỒ KHỐI VÀ LƯU ĐỒ THUẬT TOÁN CỦA TỪNG KHỐI VÀ CẢ HỆ THỐNG 1.Sơ đồ khối hệ thống kênh thông tin vào IC MUX 74151 Màn hình LCD 16*2 Đưa xung chân INT1 AT89C51 Bàn phím Hoạt động khối cụ thể sau: Khối kênh thông tin đầu vào : thực tế cảm biến hồng ngoại đề tài em mô nút bấm, bấm lần tương đương với vật thể qua cảm biến IC MUX 74151 : ic có đầu vào em sử dụng đầu vào tương ứng với tín hiệu chọn kênh VĐK AT89c51: nơi nhận xử lý thơng tin sau gửi tín hiệu tới ngoại vi Màn hình 16*2 : hiển thị tên kênh số sản phẩm kênh Bàn phím : hoạt động cách quét bàn phím , người dùng bấm phím , tín hiệu gửi VĐK Lưu đồ thuật toán a, Lưu đồ thuật toán quét bàn phím Bàn phím đến cột bàn phím , bình thường hàng có mức cao Nếu nút gồm cột hàng , có nút bấm Nguyên lý quét bàn phím đưa mức thấp bấm hàng nối đất , VĐK quét liên tục có cột hàng phím mức phím bấm Start: đưa Hàng Cột lên mức logic Đưa Hàng xuống mức logic Gọi chương trình chống rung; Kiểm tra mức logic Cột Cột có mức logic Đúng Ctc: Chọn kênh Lưu giá trị số kênh vào R2 Đặt chế độ để chọn tín hiệu từ kênh lưu số sp vào nhớ Ram Đưa tín hiệu VĐK END: RET Sai b, Lưu đồ thuật toán hệ thống Start :Khai báo cổng vào cho LCD, Keypad (3x4) chân chọn tín hiệu IC 74151 -Gọi ctc khởi tạo LCD -Đặt giá trị ban đầu cho ô nhớ lưu số sp kênh -Cho phép thực ct ngắt có tín hiệu gửi VĐK qua cổng INT1 theo sườn âm -Gọi vịng lặp WHILE vơ hạn để thực qt bàn phím để chọn kênh kiểm tra tín hiệu đưa vào VĐK Có tín hiệu cho phép ngắt? N Hiển thị số kênh số lượng sản phẩm lên LCD END Y Thực ct ngắt để đếm sản phẩm CHƯƠNG 2: TỔ CHỨC HIỆN THỰC HÓA HỆ THỐNG TRÊN THIẾT BỊ 2.1 SƠ ĐỒ NGUYÊN LÝ Chức cụ thể khối: Khối VĐK AT89c51: nơi nhận xử lý thơng tin sau gửi tín hiệu tới ngoại vi Khối hiển thị : hiển thị tên kênh số sản phẩm kênh Khối nguồn: cấp nguồn 5V cho mạch hoạt động Khối tạo dao động: tạo xung đồng hồ cho AT89c51 sử dụng thạch anh Khối mạch nạp: đưa tín hiệu chọn từ ngoại vi VĐK Khối reset: reset lại VĐK trường hợp mạch bị treo hoạt động tải 2.2 SƠ ĐỒ MƠ PHỎNG TRÊN PROTEUS Mơ đề tài thực phần mềm Proteus 8.1 Sau chạy thử kiểm tra ta có nhận xét sau: Các kênh chọn phù hợp với nút bấm keypad (3x4) Mạch đến sản phẩm hoạt động ổn định Màn hình hiển thị theo số kênh số lượng sản phẩm KL: Mạch mô chạy theo yêu cầu đề 2.3 SƠ ĐỒ MẠCH IN Sau thực mạch thật có lỗi phát sinh sau Khi bấm vào nút bấm kênh đếm sản phẩm số sản phẩm thường bị nhảy lên thêm vài số nhiễu nút bấm KẾT LUẬN Trên phần trình bày nhóm q trình thực đề tài Qua đề tài em rút nhiều kinh nghiệm lập trình VĐK thực mạch thật Từ kết thực yêu cầu toán em thấy số điểm sau Mạch làm chưa sát với thực tiễn sử dụng hệ thống nút bấm thay cho hệ thống cảm biến để thực nhiệm vụ đếm sản phẩm Việc đếm sản phẩm diễn kênh cách việc thiết kế sáu kênh chưa sử dụng hết hiệu suất Xuất phát từ nhận xét trên, nhóm xin mạnh dạn đư hướng phát triển ứng dụng đồ án việc đếm sản phẩm thực nhiều kênh diễn lúc lưu trữ lại sử dụng kết cần thiết phát triển đề tài hẹn trước số sản phẩm để đóng gói đếm sản phẩm khơng có tính chắn sáng… Do kiến thức tầm hiểu biết kinh nghiệm hạn chế nên dù cố gắng tránh khỏi thiếu sót Nhóm mong đóng góp thầy để chúng em hồn thiện sản phẩm Em xin chân thành cảm ơn! DANH MỤC TÀI LIỆU THAM KHẢO Kỹ thuật vi xử lý lập trình Assembly cho hệ vi xử lý- PGS.TS Đỗ Xuân Tiến- NXB Khoa học kỹ thuật(2009) Cấu trúc lập trình họ vi điều khiển 8051- Nguyễn Tăng Cường, Phan Quốc Thắng- NXB Khoa học kỹ thuật (2004) Họ vi điều khiển 8051- Tống Văn On- NXB Lao động, Xã hội PHỤ LỤC Sau phần code cho đồ án ORG 00H JMP MAIN C1 EQU P2.3 C2 EQU P2.2 C3 EQU P2.1 H1 EQU P2.7 H2 EQU P2.6 H4 EQU P2.5 RS EQU P2.0 E EQU P2.4 LCD EQU P0 A1 EQU P1.0 A2 EQU P1.1 A3 EQU P1.2 ORG 13H ACALL DEM RETI ORG 30H MAIN: ACALL KHOITAO ACALL WHILE RET WHILE: ACALL QUETPHIM ACALL HIENTHIDL ACALL WAIT JMP WHILE DEM: CJNE @ R1,#50H,BT ACALL HIENTHIDL RET BT: CJNE @ R0,#99H,TANG MOV A,@ R1 ADD A,#1H DA A MOV @ R1,A MOV @ R0,#0H RET TANG: MOV A,@ R0 ADD A,#1H DA A MOV @ R0,A RET HIENTHIDL: MOV LCD,#8CH ACALL GHILENH MOV LCD, R2 ACALL GHIDULIEU MOV LCD,#0CCH ACALL GHILENH MOV A,@ R1 MOV B,#10 DIV AB ADD A,#30H MOV LCD, A ACALL GHIDULIEU MOV A,B ADD A,#30H MOV LCD, A ACALL GHIDULIEU MOV A,@ R0 MOV B,#10 DIV AB ADD A,#30H MOV LCD, A ACALL GHIDULIEU MOV A,B ADD A,#30H MOV LCD, A ACALL GHIDULIEU RET WAIT: L1: L2: MOV R4,#100 MOV R5,#100 DJNZ R5,L2 DJNZ R4,L1 RET KHOITAO: MOV LCD,#38H ACALL GHILENH MOV LCD,#0CH ACALL GHILENH ACALL HIENTHIBANDAU SETB EA SETB EX1 SETB IT1 MOV R0,#30H MOV R1,#31H MOV 30H,#0H MOV 31H,#0H MOV 32H,#0H MOV 33H,#0H MOV 34H,#0H MOV 35H,#0H MOV 36H,#0H MOV 37H,#0H MOV 38H,#0H MOV 39H,#0H MOV 3AH,#0H MOV 3BH,#0H RET HIENTHIBANDAU: MOV LCD,#80H ACALL GHILENH MOV LCD,#'K' ACALL GHIDULIEU MOV LCD,#'E' ACALL GHIDULIEU MOV LCD,#'N' ACALL GHIDULIEU MOV LCD,#'H' ACALL GHIDULIEU MOV LCD,#' ' ACALL GHIDULIEU MOV LCD,#'T' ACALL GHIDULIEU MOV LCD,#'H' ACALL GHIDULIEU MOV LCD,#'U' ACALL GHIDULIEU MOV LCD,#':' ACALL GHIDULIEU MOV LCD,#0C0H ACALL GHILENH MOV LCD,#'S' ACALL GHIDULIEU MOV LCD,#'O' ACALL GHIDULIEU MOV LCD,#' ' ACALL GHIDULIEU MOV LCD,#'S' ACALL GHIDULIEU MOV LCD,#'P' ACALL GHIDULIEU MOV LCD,#':' ACALL GHIDULIEU RET GHILENH: ACALL DELAY SETB E CLR RS CLR E RET GHIDULIEU: ACALL DELAY SETB E SETB RS CLR E RET QUETPHIM: SETB H1 SETB H2 SETB H4 SETB C1 SETB C2 SETB C3 NOP CLR H1 ACALL DELAY_SCAN JNB C1,PHIM1 JNB C2,PHIM2 JNB C3,PHIM3 SETB H1 NOP CLR H2 ACALL DELAY_SCAN JNB C1,PHIM4 JNB C2,PHIM5 JNB C3,PHIM6 SETB H2 NOP CLR H4 ACALL DELAY_SCAN JNB C2,RESET RET PHIM1: SETB H1 MOV R2,#'1' CLR A1 CLR A2 CLR A3 MOV R0,#30H MOV R1,#31H RET PHIM2: PHIM3: SETB H1 MOV R2,#'2' SETB A1 CLR A2 CLR A3 MOV R0,#32H MOV R1,#33H RET SETB H1 MOV R2,#'3' CLR A1 SETB A2 CLR A3 MOV R0,#34H MOV R1,#35H RET PHIM4: PHIM5: SETB H2 MOV R2,#'4' SETB A1 SETB A2 CLR A3 MOV R0,#36H MOV R1,#37H RET SETB H2 MOV R2,#'5' CLR A1 CLR A2 SETB A3 MOV R0,#38H MOV R1,#39H RET PHIM6: RESET: SETB H2 MOV R2,#'6' SETB A1 CLR A2 SETB A3 MOV R0,#3AH MOV R1,#3BH RET SETB H4 MOV @R0,#0H MOV @R1,#0H RET DELAY: MOV R5,#50 DELAY1: DJNZ R5,DELAY1 RET DELAY_SCAN: NOP NOP NOP RET END ... KEYPAD Nguyên lý quét bàn phím em trình bày cụ thể phần sau 1.2.SƠ ĐỒ KHỐI VÀ LƯU ĐỒ THUẬT TOÁN CỦA TỪNG KHỐI VÀ CẢ HỆ THỐNG 1.Sơ đồ khối hệ thống kênh thơng tin vào IC MUX 74151 Màn hình LCD 16*2... Bàn phím : hoạt động cách quét bàn phím , người dùng bấm phím , tín hiệu gửi VĐK Lưu đồ thuật toán a, Lưu đồ thuật tốn qt bàn phím Bàn phím đến cột bàn phím , bình thường hàng có mức cao Nếu... tín hiệu từ kênh lưu số sp vào ô nhớ Ram Đưa tín hiệu VĐK END: RET Sai b, Lưu đồ thuật toán hệ thống Start :Khai báo cổng vào cho LCD, Keypad (3x4) chân chọn tín hiệu IC 74151 -Gọi ctc khởi tạo