Ngày nay, trong thực tế sản xuất công nghiệp thì vấn đề tự động được đặt lên hàng đầu, từ nhiên liệu đầu vào cho đến quá trình hoàn thành sản phẩm diễn ra trong một hệ thống dây truyền tự động khép kín. Sự phát triển nhanh chóng của cuộc cách mạng khoa học kỹ thuật nói chung và trong lĩnh vực điện điện tử nói riêng làm cho bộ mặt xã hội thay đổi từng ngày. Các loại cảm biến từ đó cũng ra đời một cách phổ biến hơn và gần như có mặt tại tất cả các lĩnh vực liên quan đến điều khiển tự động. Đặc biệt là vi xử lý đã tạo ra một bước đột phá mới làm thay đổi một cách sâu sắc, toàn diện cũng như thúc đẩy mạnh mẽ sự phát triển các thiết bị, hệ thống thiết bị điện điện tử, các hệ thống điều khiển… Đối với sinh viên khoa điện nói chung và đặc biệt là sinh viên ngành tự động hóa của chúng em thì việc nắm vững lý thuyết môn học Vi xử lý trong đo lường điều khiển và biết cách ứng dụng chúng vào thực tế là điều rất quan trọng. Hiện nay cân điện tử là một công nghệ được sử dụng rộng rãi trong công nghiệpvà đời sống. ở học kỳ này em được giao cho đồ án môn học có đề tài là: “Thiết kế cân điện tử tải trọng 020kg sử dụng dụng vi điều khiển 89S52” Được sự hướng dẫn, chỉ bảo tận tình của các thầy cô trong bộ môn và đặc biệt là sự hướng dẫn trực tiếp của cô Bùi Thị Duyên, em đã hoàn thành đồ án đúng thời gian quy định. Mặc dù đã cố gắng rất nhiều trong việc tìm hiểu cũng thiết kế đồ án nhưng do trình độ còn hạn chế nên đồ án không thể tránh khỏi sai sót, rất mong sự đóng góp ý kiến của các thầy cô và các bạn để đồ án được hoàn thiện hơn. Em xin chân thành cảm ơn
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA ĐỒ ÁN MƠN HỌC VI XỬ LÝ TRONG ĐO LƯỜNG ĐIỀU KHIỂN Đề tài : THIẾT KẾ CÂN ĐIỆN TỬ TẢI TRỌNG 0-20KG SỬ DỤNG VI ĐIỀU KHIỂN 89S52 Giảng viên hướng dẫn : TS BÙI THỊ DUYÊN Sinh viên thực : TRẦN TRUNG HIẾU Mã sinh viên : 18810430180 Lớp : D13TDH&DKTBCN2 Hà Nội, năm 2022 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 LỜI MỞ ĐẦU Ngày nay, thực tế sản xuất cơng nghiệp vấn đề tự động đặt lên hàng đầu, từ nhiên liệu đầu vào q trình hồn thành sản phẩm diễn hệ thống dây truyền tự động khép kín Sự phát triển nhanh chóng cách mạng khoa học kỹ thuật nói chung lĩnh vực điện - điện tử nói riêng làm cho mặt xã hội thay đổi ngày Các loại cảm biến từ đời cách phổ biến gần có mặt tất lĩnh vực liên quan đến điều khiển tự động Đặc biệt vi xử lý tạo bước đột phá làm thay đổi cách sâu sắc, toàn diện thúc đẩy mạnh mẽ phát triển thiết bị, hệ thống thiết bị điện- điện tử, hệ thống điều khiển… Đối với sinh viên khoa điện nói chung đặc biệt sinh viên ngành tự động hóa chúng em việc nắm vững lý thuyết môn học Vi xử lý đo lường & điều khiển biết cách ứng dụng chúng vào thực tế điều quan trọng Hiện cân điện tử công nghệ sử dụng rộng rãi công nghiệpvà đời sống học kỳ em giao cho đồ án môn học có đề tài là: “Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52” Được hướng dẫn, bảo tận tình thầy cô môn đặc biệt hướng dẫn trực tiếp cô Bùi Thị Duyên, em hoàn thành đồ án thời gian quy định Mặc dù cố gắng nhiều việc tìm hiểu thiết kế đồ án trình độ cịn hạn chế nên đồ án khơng thể tránh khỏi sai sót, mong đóng góp ý kiến thầy cô bạn để đồ án hoàn thiện Em xin chân thành cảm ơn! SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 NHIỆM VỤ ĐỒ ÁN MÔN HỌC Đề tài : Thiết kế cân điện tử tải trọng 0-20kg sử dụng vi điều khiển 89S52 Nhiệm vụ thiết kế : Dải đo: – 20kg Dùng loadcell loại 20kg Sử dụng ADC 0804 chuyển đổi tín hiệu Độ nhạy loadcell ± 0.1 mV/V Thiết kế bàn cân Hiển thị giá trị đo LCD Có cảnh báo tải SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 MỤC LỤC CHƯƠNG ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ THƯ 1.1 Đặt vấn đề 1.2 Nhiệm vụ CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG CÂN ĐO KHỐI LƯỢNG DÙNG CÂN ĐIỆN TỬ 2.1 Các thành phần cân điện tử 2.2 Cảm biến trọng lượng - LOADCELL 10 2.3 Bộ chuyển đổi tín hiệu tương tự-số ADC 14 2.4 Vi điều khiển 8051 16 CHƯƠNG THIẾT KẾ PHẦN CỨNG 20 3.1 Sơ đồ khối hệ thống đo 20 3.2 Sơ lược khối chức 20 3.3 Thiết kế phần cứng 26 CHƯƠNG THIẾT KẾ PHẦN MỀM 29 4.1 Lưu đồ thuật toán hệ thống 29 4.2 Chương trình đọc ADC 29 4.3 Chương trình tính giá trị khối lượng 30 4.4 Chương trình hiển thị kết cho LCD 31 KẾT LUẬN 33 TÀI LIỆU THAM KHẢO 34 SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 DANH MỤC HÌNH ẢNH Hình 1.1 Cân điện tử có thiết kế nhỏ gọn đơn giản Hình 2.1 Cấu tạo cân điện tử Hình 2.2 Loadcell tải trọng 20kg 10 Hình 2.3 Sơ đồ hệ thống cân dùng load cell tương tự điển hình 11 Hình 2.4 Cấu tạo loadcell 13 Hình 2.5 Loadcell cầu Wheatstone trước sau có tải trọng 13 Hình 2.6 ADC 0804 14 Hình 2.7 Vi điều khiển AT89S52 hãng Atmel 16 Hình 2.8 Cấu trúc tổng quan vi điều khiển 16 Hình 2.9 Các thiết bị ngoại vi vi điều khiển 18 Hình 3.1 Hệ thống đo khối lượng dùng loadcell 20 Hình 3.2 Sơ đồ đấu nối cảm biếm Loadcell 21 Hình 3.3 Sơ đồ đấu nối INA128 21 Hình 3.4 Sơ đồ đấu nối ADC 0804 22 Hình 3.5 Vi điều khiển AT89S52 hãng Atmel 24 Hình 3.6 Sơ đồ đấu nối LCD 16x2 25 Hình 3.7 Sơ đồ hệ thống cân điện tử sử dụng Loadcell 27 Hình 3.8 Mạch phần cứng 28 Hình 3.9 Sơ đồ xếp linh kiện phần cứng 28 Hình 4.1 Lưu đồ thuật toán hệ thống cân điện tử 29 SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 CHƯƠNG ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ THƯ 1.1 Đặt vấn đề Ngày nay, thực tế sản xuất cơng nghiệp vấn đề tự động đặt lên hàng đầu, từ nhiên liệu đầu vào q trình hồn thành sản phẩm diễn hệ thống dây chuyền tự động khép kín Vậy, làm để định lượng khối lượng nguyên liệu đầu vào cách xác đời sản phẩm đạt tiêu chuẩn chất lượng với chi phí sản xuất thấp nhất? Hay muốn phối liệu nguyên liệu theo tỷ lệ khối lượng cho trước ? Làm để kiểm tra loại bỏ sản phẩm bị lỗi trình sản xuất? Vì người ta phát minh mơ hình “cân điện tử” Băng chuyền sử dụng rộng rãi lĩnh vực sản xuất thương mại xuất Xác định xác khối lượng có ý nghĩa to lớn sản xuất kinh doanh Trong nhà máy sản xuất thường có nhu cầu xác định khối lượng nguyên liệu đầu vào nguyên liệu đầu Để thực điều này, người ta sử dụng phương pháp phương pháp cân tĩnh kinh điển phương pháp cân động Phương pháp cân tĩnh kinh điển phương pháp cân thơng thường sử dụng cân đồng hồ Các nguyên vật liệu cần xác định khối lượng cân theo mẻ Nhờ áp lực tĩnh vật liệu lên bàn cân mà ta xác định khối lượng tĩnh chúng Phương pháp cân có ưu điểm có độ xác cao nhiên ta cần lưu trữ thông tin truyền thơng cân q trình ngun liệu di chuyển phương pháp khơng cho phép Để khắc phục nhược điểm này, người ta sử dụng phương pháp thứ hai cân động cân điện tử Phương pháp cho phép ta cân nguyên liệu liên tục, không thời gian đưa nguyên liệu lên bàn cân không ảnh hưởng đến hoạt động liên tục hệ thống công nghệ Trong công nghiệp, cân điện tử đóng vai trị quan trọng việc xác định khối lượng hàng hóa, đo khối lượng phục vụ việc tự động hóa q trình sản xuất Cung cấp xác giá trị khối lượng hàng hóa để phục vụ cho ứng dụng liên quan lưu trữ, truyền tin,phân loại,…vv SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Cân điện tử dụng cụ cần thiết đời sống cơng nghiệp, nhu cầu sử dụng cân nên cân điện tử đời góp phần nhiều vào sống người Cân điện tử có ưu điểm chính: Nhỏ gọn, đơn giản Các loại cân học xưa với khối lượng, kích thước lớn khơng tiện di chuyển nay, tất loại cân cải tiến để người sử dụng thuận tiện trường hợp Hình 1.1 Cân điện tử có thiết kế nhỏ gọn đơn giản Từ loại cân cầm tay cân bàn, cân sàn, cân vàng, cân điện tử đem lại lợi ích thiết thực cho người Nhờ có cân điện tử nên xác cao số hiển thị rõ mà chừng có đơi bị lệch vị trí đứng khác cân đồng hồ Ngoài ra, cách sử dụng cân điện tử vô đơn giản Độ xác cao SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Với đời cân điện tử đem đến xác vơ cao so với loại cân trước Các số hiển thị cân điện tử với số rõ ràng đem đến hài lòng cho người sử dụng Bên cạnh đó, cân điện tử cịn kèm theo chức tính tiền, tính đơn giá in hóa đơn điện tử trường hợp cần thiết Tích hợp nhiều tính đa dạng Hiện có nhiều loại cân điện tử từ nhỏ đến lớn, từ cân cầm tay đến cân sàn Hơn nữa, cân điện tử cân từ vật khối lượng nhẹ vàng ô tô có trọng tải vài Nhờ vậy, công việc chun mơn hóa chúng lại phát huy vai trị Ngồi việc cân số lượng sản phẩm, cân điện tử cịn tích hợp chức khác tùy theo yêu cầu công việc 1.2 Nhiệm vụ Đo khối lượng cách nhanh chóng, độ xác cao Giảm chi phí thời gian, tăng cường tốc độ sản xuất Dây chuyền khép kín, giảm thiểu sức lao động nhân cơng Lưu trữ xác thông tin cần thiết SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG CÂN ĐO KHỐI LƯỢNG DÙNG CÂN ĐIỆN TỬ 2.1 Các thành phần cân điện tử Cấu tạo cân điện tử gồm phần khí (địn cân) phần điện (mạch tín hiệu điện tử) Trong phần khí cân điện tử có cấu tạo nên khí gồm khung bàn cân, sàn mặt cân điện tử Các thiết kế khí khác gồm có giá đỡ, khung bảo vệ, khung khí cho cân Mỗi phận có chức định Phần điện cân điện tử bao gồm phận cảm biến trọng lượng (tên thường gọi khác loadcell) đầu hiển thị cân (hay đầu cân điện tử) Loadcell phận quan trọng cân điện tử Hình 2.1 Cấu tạo cân điện tử Các phận cấu tạo cân điện tử: Đĩa cân: phận để đặt vật cần cân lên làm inox khơng rỉ, nhựa… Cảm biến lực (loadcell): truyền tín hiệu điện vào bo mạch cân có vật đặt lên đĩa cân Mạch khuếch đại: tín hiệu điện đầu loadcell nhỏ (hàng mV), cần có mạch chuẩn hóa tín hiệu, khuếch đại tín hiệu lớn để xử lý nhận tín hiệu tốt hơn, nhầm giảm thiểu sai số đo đạc Mạch chuyển đổi tín hiệu vi xử lý: Bộ vi xử lý xử lý tín hiệu số, mạch có chức chuyển tín hiệu từ loadcell truyền sau khuếch SVTH : TRẦN TRUNG HIẾU | 18810430180 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 đại (tín hiệu điện, Analog) sang tín hiệu số (digital) Có thể sử dụng vi xử lí để thực ứng dụng với tín hiệu số hiển thị hình khơng cần qua vi xử lý ( thiết bị đo kĩ thuật số loại 1) Bộ thị phím tương tác: hình hiển thị giá trị cân đo phím chức để thực yêu cầu người dùng 2.2 Cảm biến trọng lượng - LOADCELL Loadcell thiết bị điện dùng để chuyển đổi lực thành tín hiệu điện Loadcell thiết bị nhỏ, có điện trở ra/vào thay đổi bị nén hay kéo dãn nuôi nguồn điện ổn định Loadcell thiết kế để gắn cố định đầu, đầu lại tự gắn với mặt bàn cân (Đĩa cân) Khi ta bỏ khối lượng lên đĩa cân, loadcell bị uốn cong trọng lượng khối lượng cân gây Khi kim loại bị uốn, điện trở bị kéo dãn thay đổi điện trở Như vậy, đặt vật cân lên bàn cân, tùy theo khối lượng vật mà Loadcell bị uốn lượng tương ứng lượng đo lường qua thay đổi điện Hình 2.2 Loadcell tải trọng 20kg a Phân loại Có thể phân loại loadcells theo: Phân loại Loadcell theo lực tác động: chịu kéo (shear loadcell), chịu nén (compression loadcell), dạng uốn (bending), chịu xoắn (Tension Loadcells) SVTH : TRẦN TRUNG HIẾU | 18810430180 10 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Hình 3.7 Sơ đồ hệ thống cân điện tử sử dụng Loadcell SVTH : TRẦN TRUNG HIẾU | 18810430180 27 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Hình 3.8 Sơ đồ xếp linh kiện phần cứng Hình 3.9 Mạch phần cứng SVTH : TRẦN TRUNG HIẾU | 18810430180 28 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 CHƯƠNG THIẾT KẾ PHẦN MỀM 4.1 Lưu đồ thuật toán hệ thống Phần chương trình xử lý tín hiệu từ mạch giao tiếp bao gồm: Đọc liệu từ ADC Vi điều khiển tính tốn đưa giá trị khối lượng Hiển thị kết lên hình LCD Hình 4.1 Lưu đồ thuật tốn hệ thống cân điện tử 4.2 Chương trình đọc ADC Các bước ADC 0804 thực chuyển đổi liệu: SVTH : TRẦN TRUNG HIẾU | 18810430180 29 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Bật CS = gửi xung thấp lên cao tới chân WR để bắt đầu chuyển đổi Duy trì kiểm tra chân INTR Nếu INTR xuống thấp việc chuyển đổi hồn tất chuyển qua bước Nếu INTR cịn mức cao tiếp tục thăm dị xuống thấp Sau chân INTR xuống thấp bật chân CS=0 gửi xung cao xuống thấp đến chân RD để nhận liệu từ ADC 0804 Như vậy, ứng với giá trị 0÷5V đầu vào, ADC cho giá trị từ 0÷255( 281) để gửi lên vi điều khiển Do vậy, giá trị số Dout là: Dout = = REF = í ướ ướ với kết làm trịn xuống, Kích thước bước ≈ 19,53 mV Hoặc tính Dout = ( ) REF = với kết làm trịn lên Ví dụ, điện áp Vin = +3,74V giá trị số đầu ADC tính theo cách thứ Dout = , = 190,74 kết làm trịn lên 191D 4.3 Chương trình tính giá trị khối lượng Vi điều khiển có nhiệm vụ thực bước để ADC 0804 thực chuyển đổi tín hiệu Sau ADC đưa cổng P1 giá trị từ ÷ 255 ứng với khối lượng 0÷ 20kg vi điều khiển tiếp tục phải tín tốn giá trị khối lượng thời điểm Giá trị khối lượng M tính: M= = với Dout từ ÷ 255D Ví dụ, điện áp Vin vào ADC +3,74V giá trị Dout = 191D vi điều khiển tính theo cơng thức cho khối lượng M = = = 14,98(kg) Nhiệm vụ vi điều khiển thực phép tính để đưa giá trị 14,98 để thị LCD Các phép tính tốn vi điều khiển cần thực hiện: SVTH : TRẦN TRUNG HIẾU | 18810430180 30 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Tìm phần nguyên : thực phép chia Dout/51 trước sau nhân kết với Dout nhân bị tràn ô nhớ Phần nguyên = [(thương + thương ) x 4] + [thương é ]=3x4 = 12 + = 14 sau thực phép chia 10 để lấy chữ số hàng chục đơn vị Tìm số thập phân sau dấu phẩy: Chữ số thập phân thứ = (dư phép chia ) x 10 = 50 x10 sau chia 51 Nhưng thực nhân 10 bị tràn nên thực nhân trước sau nhân tiếp với => Chữ số thập phân thứ = [ thương 2=( )+( + thương ủ ]x )=8+1=9 Chữ số thập phân thứ tương tự chữ số thập phân thứ Chữ số thập phân thứ = (Dư ) x 10 sau chia cho 51 Nhưng chữ số thập phân làm tròn nên cần lấy Dư ( ) chia = = 4.4 Chương trình hiển thị kết cho LCD LCD 16x2 thiết bị 16 pin có chân liệu (D0-D7) chốt điều khiển (RS, RW, EN) chân lại để cung cấp đèn cho hình LCD Các chốt điều khiển giúp cấu hình hình LCD chế độ lệnh chế độ liệu Họ giúp cấu hình chế độ đọc chế độ ghi có đọc viết LCD 16x2 sử dụng chế độ bit chế độ bit tùy thuộc vào yêu cầu ứng dụng Để sử dụng nó, cần gửi lệnh định tới hình LCD chế độ lệnh hình LCD cấu hình theo nhu cầu chúng ta, gửi liệu cần thiết chế độ liệu Chế độ bit : SVTH : TRẦN TRUNG HIẾU | 18810430180 31 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 Trong chế độ bit, liệu / lệnh gửi định dạng bit Gửi 4-bit cao sau gửi 4-bit thấp liệu / lệnh Chỉ có chân liệu (D4 - D7) 16x2 LCD kết nối với vi điều khiển chốt điều khiển khác RS, RW (Đọc / ghi), E (Bật) kết nối với Chân khác điều khiển Vì vậy, kết nối vậy, chúng tơi tiết kiệm chân sử dụng cho ứng dụng khác SVTH : TRẦN TRUNG HIẾU | 18810430180 32 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 KẾT LUẬN Sau thời gian tìm hiểu thiết kế, chúng em đạt số kết sau: Hiểu biết cảm biến LOADCELL Tìm hiểu thêm vi điều khiển 8051, ADC, LCD Biết sử dụng phần mềm thiết kế Keil C, Proteus,… Biết cách lập trình vi điều khiển AT89S52 Biết cách hàn mạch, thiết kế mạch điện tử Mặc dù cố gắng tìm hiểu thực song kiến thức em hạn chế thời gian có hạn nên đề tài cịn nhiều thiếu sót Em kính mong thầy góp ý để đề tài hoàn thiện Một lần em xin gửi lời cảm ơn chân thành đến giúp đỡ tận tình thầy khoa, hướng dẫn, bảo nhiệt tình từ cô giáo Bùi Thị Duyên giúp em nắm rõ yêu cầu để hoàn thành đồ án Em xin chân thành cảm ơn ! SVTH : TRẦN TRUNG HIẾU | 18810430180 33 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 TÀI LIỆU THAM KHẢO 1, Giáo trình 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, Nhà xuất Khoa Học Kĩ Thuật SVTH : TRẦN TRUNG HIẾU | 18810430180 34 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 CHƯƠNG TRÌNH ĐIỀU KHIỂN ORG 00H LJMP MAIN ;================================================================= ORG 30H MAIN: clr p0.1 ; RW=0 ghi xuong LCD lcall init lcall prtLCD db 'Xin Chao! Toi la',0H ; khai bao bien mov A,#0C0H ;dia chi dong cua led 16x2 acall lcd_cmd acall delay lcall prtLCD db 'Tran Trung Hieu',0H acall delay lcall delay1s ; ghi xuong LCD ;================================================================== mov A,#01H acall lcd_cmd lcall DONG1 lcall DONG2 ; xoa man hinh ; hien thi dong ;==================================================================== DONG1: lcall prtLCD db ' EPU Trung Hieu ',0H ; khai bao bien ret ;======================== dong =================================== DONG2: mov A,#0C0H acall lcd_cmd acall delay lcall prtLCD db 'Weight: ',0H acall delay ;dia chi dong cua led 16x2 ; ghi chu can nang xuong LCD ;======================== chuong trinh doc ADC ========================== SetWR: SVTH : TRẦN TRUNG HIẾU | 18810430180 35 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 clr p3.6 ; WR=1 Bat dau chuyen doi setb p3.6 WaitINTR: jb p3.7,WaitINTR ; Kiem tra INTR=0 thi nhay xuong clr p3.5 ; RD=0 nhan du lieu acall CHUYENDOI setb p3.5 ; RD=1 cho len chuyen doi tiep theo lcall delay1s sjmp DONG2 ;========== Chuyen doi ADC ================================================= CHUYENDOI: mov A,P1 ; chuyen Dout vao ghi A CJNE A,#0FFH,chuaquatai LJMP quatai ljmp MAIN chuaquatai: mov B,#51d ; ADC 8bit (M = 20.Dout/255 = 4.Dout/51) DIV AB ; Dout/51 mov R7,A ; R7= thuong Dout/51 mov R6,B ; R6= du Dout/51 ;===== Can nang = (thuong x 4) + thuong[(so du x 4)/51]=============================== mov A,R7 ; thuong mov B,#4d MUL AB ; thuong x mov R0,A ; luu tai R0 mov A,R6 ; so du mov B,#4d MUL AB mov B,#51d DIV AB ; so du x /51 mov R4,A ; so du x /51 mov R3,B ; so du de tim sau dau phay ; so du x4 ;====================== Phan nguyen =========================================== mov A,R0 ;A = R0 INC A ; can nang = (thuong x 4) + thuong[(so du x 4)/51] = R0 + R4 DJNZ R4,cong ; A = R0+R4 = can nang mov B,#10d cong: SVTH : TRẦN TRUNG HIẾU | 18810430180 36 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 DIV AB mov R1,A ; hang chuc mov R2,B ;hang don vi ;======= so thap phan thu nhat = R3 x 10 / 51 =( R3 x 5/51 + du/51) x ========================== mov A,R3 mov B,#05d MUL AB mov B,#51d DIV AB ; (R3 x 5)/51 mov R5,B ; du mov B,#02d ; ((R3 x 5)/51) x MUL AB MOV R3,A ; R3 x5 ;====== so thap phan thu nhat = (R3 x 5/51 + du/51) x ==================================== mov A,R5 mov B,#02d ; du x MUL AB mov B,#51d DIV AB mov R5,A ; (du/51) x mov R6,B ; du den tim so thap phan thu INC R3 ;(R3 x 5/51) x + (du/51 x 2) DJNZ R5,Cong1 ;so thap phan thu nhat Cong1: ;==================== so thap phan thu = so du (R6) /5,1 ======================== mov A,R6 mov B,#5d DIV AB mov R4,A ;so thap phan thu ;=========== ghi can nang LCD =================================================== mov dptr,#900h ; dat tro dptr tai mang hien thi so LCD mov a,R1 ; so hang chuc phan nguyen movc a,@a + dptr lcall lcd_data lcall delay mov dptr,#900h mov a,R2 ; so hang don vi phan nguyen movc a,@a + dptr SVTH : TRẦN TRUNG HIẾU | 18810430180 37 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 lcall lcd_data lcall delay mov A,#'.' lcall lcd_data lcall delay mov dptr,#900h mov a,R3 ; dau phay ; chu so thap phan thu movc a,@a + dptr lcall lcd_data lcall delay mov dptr,#900h mov a,R4 movc a,@a + dptr lcall lcd_data lcall delay mov A,#014H acall lcd_cmd acall delay lcall prtLCD db "kg",0H lcall delay ; chu so thap phan thu ;dich phai ; ghi chu kg xuong LCD ret ;============== canh bao qua tai ================================ quatai: mov A,#01h lcall lcd_cmd lcall prtLCD db "Qua tai! Qua tai!",0H lcall delay ; xoa man hinh ; ghi chu can nang xuong LCD ret ;=========================== Khoi tao LCD ============================== init: mov p2,#20H ; Gui 20h toi LCD de dat che bit clr p0.0 ; RS =0 gui lenh setb p0.2 ;E=1 lcall delay clr p0.2 mov A,#28h SVTH : TRẦN TRUNG HIẾU | 18810430180 ; E = xung cao xuong thap cho phep chot du lieu ; Dat giao dien bit, dong 38 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 lcall lcd_cmd mov A,#0ch lcall lcd_cmd mov A,#06h lcall lcd_cmd mov A,#01h lcall lcd_cmd ; Bat hien thi va tat tro ; Dich tro sang phai ; Xoa man hinh ret ;================= Chuong trinh gui lenh xuong LCD ====================== lcd_cmd: clr p0.0 lcall tachb mov A,20H lcall dichuyen mov A,30H lcall dichuyen ; RS = gui lenh ; chuyen gia tri tai dia chi 20H vao A ; chuyen gia tri tai dia chi 20H vao A ret ;======================= Tach bit de truyen bit =========================== tachb: ; tach bit bit mov 20H,A anl 20H,#0f0h ;11110000B lay bit cao vao 20H swap A ; xoay A anl A,#0f0h ;11110000B mov 30H,A ; lay bit thap vao 30H ret ;============================================================================ dichuyen: ; chuyen lenh sang lcd mov p2,A setb p0.2 lcall delay clr p0.2 lcall delay ;E=1 ; E = xung cao xuong phap de cho phep chot du lieu ret ;=================== Chuong trinh gui du lieu xuong LCD ================================== lcd_data: setb p0.0 lcall tachb mov A,20H SVTH : TRẦN TRUNG HIẾU | 18810430180 ; RS = gui du lieu ; gui bit cao vao A 39 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 lcall dichuyen mov A,30H lcall dichuyen ; gui bit thap vao A ret ;============================================================================ delay: ; tao thoi gian tre MOV R6, #60D ; 60 lan L2: MOV R7,#60D ; 60 lan L1: DJNZ R7, L1 DJNZ R6, L2 ; 60 x (( 60x2) + 2) = Khoang 7320us RET ;====================== Gui chuoi du lieu LCD ============================ prtLCD: pop dph ; dua du lieu tu ngan xep dptr pop dpl mov A,#00H ; Dat dia chi offset =0 movc A,@A+dptr ; chep noi dung dptr cjne A,#0,check ; kiem tra gui het ki tu chua? A#0 thi nhay den check sjmp retPrtLCD ; Het ki tu nhay lcall lcd_data inc dptr ljmp prtNext prtnext: check: ; Tang tro dptr retPrtLCD: mov A,#01H jmp @A+dptr ret Delay1s: L: W: mov r1,#20D mov Tmod,#01H mov TH0,#03CH mov TL0,#0B0H setb TR0 JNB TF0,W CLR TR0 CLR TF0 ;50000us DJNZ R1,L SVTH : TRẦN TRUNG HIẾU | 18810430180 40 Đề tài: Thiết kế cân điện tử tải trọng 0-20kg sử dụng dụng vi điều khiển 89S52 ret ;==================== Mang hien thi so LCD ============================= org 900h db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ; mang char tu 0-9 ;========================================================================== END SVTH : TRẦN TRUNG HIẾU | 18810430180 41