Đồ án Thiết kế mạch đếm sản phẩm trong một dây chuyển sản xuất

Ngành cơ điện tử Việt Nam ngày nay đang phát triển rất nhanh và hòa cùng với xu thế phát triển của ngành cơ điện tử trên thế giới. Càng ngày các sản phẩm cơ điện tử xuất hiện càng nhiều trong cuộc sống của con người, trong sản xuất hay trên thị trường nhằm giúp cho con người cải thiện chất lượng cuộc sống, giúp các nhà máy hay xí nghiệp nâng cao năng suất lao động.Trong quá trình công nghiệp hóa hiện đại hóa đất nước ngày nay, vấn đề cần thiết là phải áp dụng một cách có chọn lọc các nguồn lực gồm nhân lực cũng như thiết bị sản xuất. Đặc biệt quan tâm đến vấn đề cơ giới hóa, tự động hóa sản xuất. Áp dụng các dây chuyền sản xuất hiện đại nhằm nâng cao hơn nữa năng suất làm việc của công nhân. Trên tinh thần đó nhóm chúng em chọn đề tài đồ án là THIẾT KẾ HỆ THỐNG BĂNG TẢI DẪN ĐỘNG VÀ ĐẾM SẢN PHẨM. Với đề tài này, chúng em mong là sẽ kết hợp được những kiến thức mà thầy cô đã dạy từ các môn học liên quan đến các học phần cơ khí, điện, điện tử và điều khiển lập trình, mà trọng tâm ở đây là việc lập trình Vi điều khiển, để hiện thực hóa một mô hình để có thể áp dụng trong công nghiệp ở nước ta. Nhằm góp phần nâng cao năng suất ở các nhà máy trong nước, đồng thời sẽ giảm được nhiều chi phí tốn kém khi phải nhập khẩu các hệ thống tương tự.

doc36 trang | Chia sẻ: tuandn | Lượt xem: 2534 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế mạch đếm sản phẩm trong một dây chuyển sản xuất, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỒ  ÁN KT VI ĐIỀU KHIỂN & GHÉP NỐI NGOẠI VI Đề tài: Thiết kế mạch đếm sản phẩm trong một dây chuyền sản xuất Nhóm thực hiện gồm:  Nguyễn Quốc Vũ  06CDT2 Huỳnh Nhật Minh 06CDT2 Trần Phước Thọ   06CDT1 MỤC LỤC LỜI MỞ ĐẦU Trang 3 CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI ------- 4 1.1 Ứng dụng đề tài ------- 4 1.2 Mô tả hệ thống ------- 4 1.3 Mô hình hệ thống ------- 4 1.4 Phân công nhiệm vụ ------- 5 CHƯƠNG 2 GIỚI THIỆU TỔNG THỂ NGUYÊN LÝ VÀ CHỨC NĂNG CÁC KHỐI TRONG MẠCH ------- 6 2.1 Sơ đồ khối và chức năng hoạt động của từng khối ------- 6 2.2 Sơ đồ nguyên lý và phương thức hoạt dộng từng khối ------- 7 2.3 Bản vẽ Layout các mạch ------- 15 CHƯƠNG 3 LẬP TRÌNH CHO HỆ THỐNG ------- 18 3.1 Lưu đồ thuật toán ------- 18 3.2 Chương trình Assembly ------- 25 TÀI LIỆU THAM KHẢO LỜI MỞ ĐẦU Ngành cơ điện tử Việt Nam ngày nay đang phát triển rất nhanh và hòa cùng với xu thế phát triển của ngành cơ điện tử trên thế giới. Càng ngày các sản phẩm cơ điện tử xuất hiện càng nhiều trong cuộc sống của con người, trong sản xuất hay trên thị trường nhằm giúp cho con người cải thiện chất lượng cuộc sống, giúp các nhà máy hay xí nghiệp nâng cao năng suất lao động.Trong quá trình công nghiệp hóa hiện đại hóa đất nước ngày nay, vấn đề cần thiết là phải áp dụng một cách có chọn lọc các nguồn lực gồm nhân lực cũng như thiết bị sản xuất. Đặc biệt quan tâm đến vấn đề cơ giới hóa, tự động hóa sản xuất. Áp dụng các dây chuyền sản xuất hiện đại nhằm nâng cao hơn nữa năng suất làm việc của công nhân. Trên tinh thần đó nhóm chúng em chọn đề tài đồ án là THIẾT KẾ HỆ THỐNG BĂNG TẢI DẪN ĐỘNG VÀ ĐẾM SẢN PHẨM. Với đề tài này, chúng em mong là sẽ kết hợp được những kiến thức mà thầy cô đã dạy từ các môn học liên quan đến các học phần cơ khí, điện, điện tử và điều khiển lập trình, mà trọng tâm ở đây là việc lập trình Vi điều khiển, để hiện thực hóa một mô hình để có thể áp dụng trong công nghiệp ở nước ta. Nhằm góp phần nâng cao năng suất ở các nhà máy trong nước, đồng thời sẽ giảm được nhiều chi phí tốn kém khi phải nhập khẩu các hệ thống tương tự. Trong quá trình thực hiện đề tài, nhóm chúng em đã thiết kế và tính toán sao cho quá trình làm việc của mô hình là tốt nhất, ổn định nhất, công năng nhiều nhất. Tuy nhiên, nhóm cũng đã gặp nhiều khó khăn do vấn đề thời gian và kinh nghiệm của nhóm cũng hạn chế nên mô hình vẫn gặp những vấn đề chưa thể khắc phục. Kính mong quý thầy cô cùng các bạn đóng góp những ý kiến để những đồ án sau này của nhóm sẽ hoàn thành tốt hơn nữa . Chân thành cảm ơn thầy Lê Xứng đã tận tình hướng dẫn cũng như các thầy cô ở khoa Điện tử viễn thông cũng như khoa Cơ khí đã giúp đỡ chúng em trong quá trình làm đồ án. Đà Nẵng, ngày 15 tháng 06 năm 2010 Nhóm SV thực hiện : Nguyễn Quốc Vũ Huỳnh Nhật Minh Trần Phước Thọ CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1.1/ Ứng dụng của đề tài Hệ thống này có  thể được sử dụng trong các nhà máy sản xuất tự động hoặc bán tự động, nhằm giám sát được số sản phẩm sản xuất được, từ đó biết được năng suất làm việc trong một giai đoạn nào đó. Hệ thống cũng nhằm giảm bớt số lượng nhân công làm công việc xếp sản phẩm vào thùng, từ đó chi phí thuê nhân công cũng giảm bớt. 1.2/ Mô  tả hệ thống Hệ thống gồm một dây chuyền gồm có 2 băng tải, một băng tải phân phối sản phẩm và một băng tải phân phối thùng chứa. Sản phẩm chạy trên băng tải đến đoạn cuối của băng tải thì được chuyển vào thùng (sau đó đi  đến nơi khác để đóng gói hay làm các nhiệm vụ khác tùy thuộc vào từng mô hình sản xuất ). Số sản phẩm và số thùng được đóng gói được đếm và hiển thị lên Led 7 đoạn. Người điều khiển sẽ điều khiển hệ  thống thông qua tổ hợp các phím nhấn, qua đó có  thể đóng, mở hệ thống ;điều chỉnh số  sản phẩm trong mỗi thùng là 3, 5, hay 10… sản phẩm. 1.3/ Mô  hình hệ thống  1.4/ Phân công nhiệm vụ Nguyễn Quốc Vũ : Khối mạch công suất, khối bàn phím Trần Phước Thọ : Khối cảm biến, khối điều khiển trung tâm Huỳnh Nhật Minh : Khối hiển thị, khối điều khiển trung tâm CHƯƠNG 2 GIỚI THIỆU TỔNG THỂ NGUYÊN LÝ VÀ CHỨC NĂNG CÁC KHỐI TRONG MẠCH 2.1/ Sơ đồ khối và chức năng hoạt động của từng khối 2.1.1/ Sơ đồ khối 2.1.2/ Chức năng của từng khối 2.1.2.1/ Khối xử lý trung tâm Dùng trong xử lý các tín hiệu vào (Ở đây nhận tín hiệu từ cảm biến, ma trận bàn phím) để xuất tín hiệu ra phù hợp (hiển thị ra led, điều khiển động cơ băng chuyền sản phẩm và động cơ băng chuyền thùng). Vai trò trung tâm do chip Atmel 89C51 đảm nhiệm, cấu tạo và sơ đồ được trình bày ở phần dưới. 2.1.2.2/ Khối hiển thị Hiển thị : dùng 4 led 7 đoạn, trong đó 2 led để hiện số thùng và 2 led để hiện số sản phẩm. Khi người sử dụng cài đặt số sản phẩm trong 1 thùng và số thùng trong 1 ca thì khối hiển thị sẽ hiển thị các số liệu được nhập vào; hiển thị số sản phẩm và thùng mà cảm biến đếm được. Đồng thời trong quá trình hoạt động, khi số sản phẩm và số thùng tăng lên tương ứng thì cũng được hiển thị ra led để người công nhân có thể nhận biết mà dễ dàng điều chỉnh. 2.1.2.3/ Khối cảm biến Để cảm nhận số lượng sản phẩm đi qua thì cảm biến phải có phần phát và phần thu. Ở đây ta dùng cảm biến hồng ngoại (2 led: một phát và một thu) ,với khoảng cách tối đa là 20cm. Sau mỗi lần có sản phẩm đi qua thì bộ đếm của chip vi điều khiển 8051 sẽ đếm lên 1, đồng thời vi điều khiển sẽ điều khiển hiển thị ra led. 2.1.2.4/ Khối bàn phím Là một ma trận phím gồm 4 hàng và 4 cột (16 phím) . Gồm khối các phím số từ 0 đến 9 dùng để cài đặt số lượng thùng và số lượng sản phẩm và Khối các phím dùng trong điều khiển ( đánh số từ A đến F) như cài đặt sản phẩm, khởi động băng chuyền, dừng băng chuyền… 2.1.2.5/ Khối công suất Hoạt động nhờ có 2 động cơ DC 12V được điều khiển bởi vi điều khiển. Khi bit nối với động cơ được tích cực (mức 0) thì động cơ sẽ được kích hoạt. Băng chuyền được động cơ dẫn động sẽ tự động chuyển sản phẩm hay thùng đến nơi cần thiết. Để cách ly phần điều khiển và phần công suất (chống nhiễu ) thì trong mạch có sử dụng các opto như ở phần nguyên lý được trình bày ở dưới đây. 2.2/ Sơ đồ nguyên lý và phương thức hoạt động của từng khối 2.2.1/ Khối trung tâm  Sử dụng bộ vi điều khiển AT89C51 Đây là nơi lưu giữ chương trình điều khiển chính và dữ liệu cho các mạch giãi mã hàng và cột. AT89C51 là một hệ vi tính 8 bit đơn chip CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp và có 4Kbyte bộ nhớ ROM Flash xóa được và lập trình được. Chip nà được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao. AT89C51 có các đặc trưng chuẩn sau: 4Kbyte Flash, 128 byte RAM, 32 đường xuất nhập, hai bộ đình thời và đếm 16 bit, một cấu trúc ngắt hai mức ưu tiên và 5 nguyên nhân ngắt, một port nối tiếp song công, mạch tạo dao động và tạo xung Clock trên Chip. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ đình thời và đếm, Port nối tiếp và hệ thống ngắt hoạt động. - Mô tả các chân của IC89C51 Vcc: Chân cung cấp điện GND: chân nối đất Port 0: là port xuất nhập 8 but 2 chiều cực D hở. Port 0 còn được cấu hình làm bus địa chỉ (byte thấp) và làm bus dữ liệu đa hợp trong khi truy xuất bộ nhwos dữ liệu ngoài và bộ nhớ chương tình ngoài. Port 0 cũng nhận các byte mã trong khi lập trình cho Flash và xuất các byte mã trong khi kiểm tra chương trình. Port 1: là port xuất nhập 8 but hai chiều có các điện trở kéo lên bên tỏng. Khi các logic 1 được ghi lên các chân của port 1, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên tỏng và có thể được sử dụng như là các nghõ vào. Khi làm nhiệm vụ là các port nhập, các chân của port 1 đagn được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong Port 2: là port xuất nhập 8 but hai chiều có các điện trở kéo lên bên trong. Khi các logic 1 được ghi lên các chân của port 2, các chân này được sử dụng như là các ngõ vào. Khi làm nhiệm vụ port nhập, các chân của port 2 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện tở kéo lên bên tỏng. Port 2 tạo ra byte cao của bus địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài, và tỏng thời gian truy xuất bộ nhở dữ liệu ngoài sử dụng các địa chỉ 16 but. Port 3: là port xuất nhập 8 bit hai chiều có các điện trở kéo lên bên trong. Khi các logic 1 được ghi lên các chân của port 3, các chân này được kéo lên mức cao bởi các điện trở kéo lên bên trong và có thể được sử dụng như là các ngõ vào. Khi làm nhiệm vụ port nhập, các chân của port 3 đang được kéo xuống mức thấp do tác động bên ngoài sẽ cấp dòng do có các điện trở kéo lên bên trong. Port 3 còn được sử dụng làm các chức năng khác của AT89C51. Chân  Chức năng   P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7  Ngõ vào Port nối tiếp Ngõ ra Port nối tiếp Ngõ vào ngắt ngoài 0 Ngõ vào ngắt ngoài 1 Ngõ và bên ngoài của bộ định thời 1 Ngõ vào bên ngoài của bộ định thời 0 Điều khiển ghi bộ nhớ dữ liệu ngoài Điều khiển đọc bộ nhớ dữ liệu ngoài   RST: ngõ vào Reset. Mức cao trên chân này trong 2 chu kỳ máy trong khi bộ dao động đang hoạt động sẽ Reset AT89C51.  Mạch Reset tự động khi khởi động máy (Với bài này thực hiện Reset bằng cách nối chân 9 của 8951 với nguồn 5V) ALE: là một xung ngõ ra cho phép chốt địa chỉ ALE (Address Latch Enable) cho phép chốt byte thấp của địa chỉ trong thời gian truy xuất bộ nhớ ngoài. Hcaan này cũng được dùng làm ngõ vào xung lập trình () trong thời gian lập trình cho Flash. Khi hoạt động bình thường, xung của ngõ ra ALE luôn có tần số bằng 1/6 tần số của mạch dao động trên chip, có thể được sử dụng cho các mục đích định thời từ bên ngoài và tạo xugn Clock. Tuy nhiên cần luwu ý là một xung ALE sẽ bị bỏ qua trong mỗi chu kỳ truy xuất của bộ nhwos dữ liệu ngoài. Khi cần, hoạt động cho phép chốt byte thấp của địa chỉ sẽ được vô hiệu hóa bằng cách set but 0 của thanh ghi chức năng đặc biệt có địa chỉ byte là 8Eh. Khi bit này được set, ALE chỉ tích cực trong thời gian thực thi lệnh MOVX hoặc MOVC. Ngược lại chân này sẽ được kéo lên mức cao. Việc set but không cho phép hoạt động chốt byte thấp của địa chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế đọ thực thi chương trình ngoài. XTAL1: ngõ vào đến mạch khuếch đại đảo của mạch dao động và ngõ và đến mạch tạo xung Clock bên trong chip. XTAL2: ngõ ra từ mạch khuếch đại đảo của mạch dao động. Để tạo mạch dao động cho vi điều khiển 8951 hoạt động, chọn mạch tạo dao động như hình vẽ dưới, với các giá trị của linh kiện: C1 = C2 = 30pF Thạch anh dao động có tần số 12MHz.  Sơ đồ chân của IC AT89C51:  2.2.2/ Khối hiển thị  Bộ phận hiển thị gồm 4 led 7 đoạn được nối Anot chung, ta dùng phương pháp quét led trong trường hợp này với việc sử dụng IC 74LS47 để giải mã. Các chân từ P2.0 đến P2.3 của VĐK gởi mã hiển thị đến IC74LS47, các chân từ P2.4 đến P2.7 dùng để quét led. BJT dùng để quét led là A1015. Để led sáng bình thường thì dòng qua mỗi led Iđm = 5mA. Mỗi led 7 đoạn có 7 led đơn nên dòng hiệu dụng đi qua cực C của BJT cấp cho led là: ICđm = 7.5 = 35mA. Thời gian trễ 1 lần quét led là 0,2ms, thời gian quét toàn bộ 4 led led là 0,8ms. Dòng hiệu dụng qua chân C của BJT là: . Chọn ICs = 18mA, áp rơi trên mỗi led là 2V. RE = (5-2-0,2)/18 =0,155KΩ. Chọn RE = 150Ω. IB = IC/β = 18/50 = 0,36mA.  Chọn RB = 4,7KΩ. 2.2.3/ Khối cảm biến:  - Nguyên lý làm việc: LM324 hoạt động như 1 con Op-am, dùng để so sánh mức điện áp. Khi không có sản phầm đi qua, led thu nhận được ánh sáng nên dẫn, lúc đó điện áp trên chân 2 của LM324 thấp hơn ở chân 3 nên tín hiệu đưa ra chân 1 ở mức cao. Khi có sản phẩm đi qua, led thu không dẫn, điện áp ở chân 2 cao hơn chân 3, tín hiệu đưa ra ở chân 1 ở mức thấp. Tương tự cho mạch cảm biến còn lại. - Tính chọn trở: Chọn dòng qua R20, R21, R22 là 10mA, áp ghim trên led và led thu phát hồng ngoại là 2V. R20 = R21 = R22 = ( Vcc - Vled)/I = (5 – 2 )/10 = 0,3kΩ. Chọn R20 = R21 = R22 = 330Ω. Chọn dòng đi qua R23, R24 là 0,3mA. R23 + R24 = 5/0,3 = 16,7kΩ. Chọn R23 = 6,8KΩ và biến trở tinh chỉnh R24 = 10KΩ. Mạch cảm biến số thùng giống như mạch cảm biến sản phẩm nên ở đây ta chỉ tính 1 lần. 2.2.4/ Khối bàn phím Để thực hiện ma trận bàn phím ta dùng phương pháp quét phím. Quét cột và đọc dữ liệu tại hàng hoặc ngược lại. Theo hình vẽ thì các cột cách nhau 1 đơn vị, các hàng cách nhau 4 đơn vị. Khi mạch cần nhiều phím thì ta mới tổ chức ma trận phím để giảm số lượng cổng sử dụng cho bàn phím. - Chức năng của phím: Các phím số 0-9: là các phím số thông thường dùng để nhập lại giá trị cho số thúng và số sản phẩm. Phím A: nhập số sản phẩm, khi vào cài đặt ta nhấn phím này để cài đặt số sản phẩm trong một thùng. Phím B: nhập số thùng, khi vào cài đặt ta nhấn phím này để cài đặt số thùng. Phím C: Phím nhập, ta nhấn phím này khi hoàn thành quá trình cài đặt. Phím D: Phím cài đặt, ta nhấn phím này khi muốn cài đặt lại số thùng và số sản phẩm khác. Phím E: phím start, ta nhấn phím này khi muốn khởi động chương trình, hay tiếp tục chương trình khi đang bị tạm dừng. Phím Stop/Pause: ta nhấn phím này khi muốn kết thúc hoạc tạm dừng chương trình. 2.2.5/ Khối công suất  Chọn động cơ MG1 và MG2 có các thông số sau: Vđm = 24V ,R = 5Ω Như vậy , dòng cực đại qua MG1 và MG2 là : Imax = Vđm / R = 24 / 5 = 4.8 ( A ) Để động cơ hoạt động ổn định và không quá nóng ta cho dòng qua 2 động cơ I =1 ( A)và nguồn cung cấp cho động cơ V =12 ( V ) Công suất tiêu tán trên 2 động cơ : Ptt = I2 * R = 12 *5 = 5 ( W ) Vậy ta chọn Q2 và Q4 có các thông số kĩ thuật như sau: IcQ1 ≥ 2 * I =2 ( A ) Ptt Q1 ≥ 2 Ptt = 2.5 =10 ( W ) VCEO ≥ 2 * VCC = 2 *12 = 24 ( V ) Vậy ta chọn Q1 và Q2 là : 2SD718 (NPN) Ptt ( W )  VCEO ( V )  VCBO ( V )  IC ( A )  VCesat  ( V )   80  120  120  8  0.2   Dựa vào đặc tuyến của 2SD718 ta có : Tại Ic = 1 A , Vce = 0.2 V → Ib2 = 100 ( mA ) , Vbe2= 0.8 ( V ) Dòng Ib2 = Ic1 = 100 ( mA ) Ta chọn Q1 mắc darlington với Q2 với các thông số kĩ thuật sau : IcQ1 ≥ Ib2 =100 ( mA ) VCEO ≥ VCC 5 ( V ) Vậy ta chọn Q3 và Q4 là : TIP42C (PNP) Ptt ( W )  VCEO ( V )  VCBO ( V )  IC ( A )  VCesat ( V )   65  100  100  6  0.2   * Tính chọn R9 và R11 : Ta có : VCC = VBE2 + VCE1sat + VR9 → VR9 = VCC – ( VCE1sat + VBE2 ) = 5 - (0.2 + 0.8) = 4 (V ) → R9 = VR9 / IC2 = 4 / (100 * 10-3 ) = 40 (Ω) Công suất tiêu tán trên hai điện trở R9 và R11 : PttR9 = I2C1 * R9 = (100 * 10-3 ) * 47 = 0.47 ( W Vậy ta chọn R9 và R11 là : 47 Ω / 2 W * Tính chọn R8 và R10 : Ta có VR8 = VB1 – VLOGIC 0 = VE1 - VEB1 - VLOGIC 0 = 0.9 – 0.7 – 0 = 0.2 ( V) Ta chọn dòng qua 2 chân P3.0 và P3.1 là IPIN = 5 ( mA ) → R9 = VR9 / IPIN = 0.2 / ( 5 * 10-3 ) = 40 (Ω ) Vậy ta chọn R8 và R10 là 47 Ω 2.3/ Bản vẽ Layout các mạch 2.3.1/ Mạch trung tâm  2.3.2/ Mạch hiển thị  2.3.3/ Mạch cảm biến  2.3.4/ Mạch bàn phím  2.3.5/ Mạch công suất  CHƯƠNG 3 LẬP TRÌNH CHO HỆ THỐNG 3.1/ Lưu đồ thuật toán 3.1.1/ Chương trình chính: 3.1.2/ CT CON CHAY_CT 3.1.3/ Chương trình cài đặt từ bàn phím:  3.1.4/ Chương trình con cài đặt số sản phẩm, số thùng:   3.1.5/ Chương trình con quét phím: 3.1.6/Chương trình con hiển thị:   3.1.7/ Chương trình con biến đổi số thùng, số sản phẩm ra phần chục và phần đơn vị: Các chương trình con chạy và dừng động cơ:    3.2/ Chương trình Assembly SP_DV DATA 21H SP_CHUC DATA 22H TH_DV DATA 23H TH_CHUC DATA 24H SO_TH DATA 25H SO_SP DATA 26H PHIM DATA 27H CB_SP BIT P1.0 CB_TH BIT P1.1 DC_SP BIT P1.2 DC_TH BIT P1.3 B_PHIM BIT 01 ORG 00H LJMP MAIN ORG 000BH LJMP NGAT_T0 ORG 0030H MAIN: MOV SO_TH,#10 MOV SO_SP,#5 LCALL BIENDOI_SP LCALL BIENDOI_TH MOV TMOD,#11H MOV IE,#10000010B SETB TF0 KT_PHIM: LCALL QUET_PHIM JNB B_PHIM, KT_PHIM MOV A, PHIM CLR B_PHIM KT_START: CJNE A,#14,KT_RESET LCALL CHAY_CT LJMP KT_PHIM KT_RESET: CJNE A,#13,KT_STOP LCALL CAIDATLAI LJMP KT_PHIM KT_STOP: CJNE A,#15,KT_PHIM LCALL KETTHUC ;*************************CHUONG_TRINH_CON_CAI _DAT_LAI_SO_THUNG_VA_ SO_SAN_PHAM****************************** CAIDATLAI: MOV SO_SP,#5 MOV SO_TH,#5 LCALL BIENDOI_SP LCALL BIENDOI_TH CAIDAT: LCALL QUET_PHIM JNB B_PHIM, CAIDAT MOV A,PHIM CLR B_PHIM RESET_SP: CJNE A,#10, RESET_THUNG LCALL NHAP_SP RESET_THUNG: CJNE A,#11, THOAT_RESET LCALL NHAP_TH THOAT_RESET: CJNE A,#12, CAIDAT RET ;****************************NHAP_THUNG, SAN PHAM******************************* NHAP_SP: PUSH ACC MOV A,#0H NHAP_SP_CHUC: LCALL QUET_PHIM JNB B_PHIM, NHAP_SP_CHUC MOV A,PHIM MOV SP_CHUC,A CLR B_PHIM NHAP_SP_DV: LCALL QUET_PHIM JNB B_PHIM, NHAP_SP_DV MOV A, PHIM MOV SP_DV,A CLR B_PHIM MOV A, SP_CHUC MOV B, #10 MUL AB ADD A, SP_DV MOV SO_SP, A POP ACC RET NHAP_TH: PUSH ACC MOV A,#0H NHAP_TH_CHUC: LCALL QUET_PHIM JNB B_PHIM, NHAP_TH_CHUC MOV A,PHIM MOV TH_CHUC,A CLR B_PHIM NHAP_TH_DV: LCALL QUET_PHIM JNB B_PHIM,NHAP_TH_DV MOV A, R6 MOV TH_DV, A CLR B_PHIM MOV A, TH_CHUC MOV B, #10 MUL AB ADD A, TH_DV MOV SO_TH, A LCALL BIENDOI_TH POP ACC RET ;************************************************QUET_PHIM******************************************************* QUET_PHIM: MOV R3,#50 LOOP1: LCALL GET_KEY JNB 00, EX_QP DJNZ R3, LOOP1 LOOP2: MOV R3,#50 LOOP3: LCALL GET_KEY JB 00, LOOP2 DJNZ R3,LOOP3 MOV PHIM,R6 SETB B_PHIM EX_QP: RET GET_KEY: MOV A,#0FEH MOV R2,#0H SCAN_ROW: MOV P0,A MOV R4,A JNB P0.4, ROW_0 JNB P0.5, ROW_1 JNB P0.6, ROW_2 JNB P0.7, ROW_3 MOV A,R4 RL A INC R2 CJNE R2,#4, SCAN_ROW SJMP NO_CODE ROW_0: MOV A,R2 ADD A,#0 SETB 00 MOV R6,A SJMP EX_GK ROW_1: MOV A,R2 ADD A,#4 SETB 00 MOV R6,A SJMP EX_GK ROW_2: MOV A,R2 ADD A,#8 SETB 00 MOV R6,A SJMP EX_GK ROW_3: MOV A,R2 ADD A,#12 SETB 00 MOV R6,A SJMP EX_GK NO_CODE: CLR 00 EX_GK: RET ;*******************CHUONG TRINH CON DEM SAN PHAM VA DK DCO************** CHAY_CT: PUSH ACC MOV R1,SO_SP MOV R2,SO_TH MOV SO_SP,#0 MOV SO_TH,#0 LCALL BIENDOI_SP LCALL BIENDOI_TH LOOPA: LCALL START_DCTH JB CB_TH,$ LOOPB: LCALL STOP_DCTH LCALL START_DCSP JB CB_SP,$ INC SO_SP LCALL BIENDOI_SP MOV A,R1 CJNE A,SO_SP,LOOPB LCALL STOP_DCSP INC SO_TH LCALL BIENDOI_TH MOV SO_SP,#0H LCALL BIENDOI_SP MOV A,R2 CJNE A,SO_TH,LOOPA LCALL START_DCTH LCALL STOP_DCTH MOV A,R1 MOV SO_SP,A MOV A,R2 MOV SO_TH,A LCALL BIENDOI_SP LCALL BIENDOI_TH POP ACC RET START_DCSP: CLR DC_SP JNB CB_SP,$ ; DOI CHO SP DANG CO DI QUA KHOI TAM CUA CB RET STOP_DCSP: JNB CB_SP,$ SETB DC_SP RET START_DCTH: CLR DC_TH JNB CB_TH,$ ; RET STOP_DCTH: JNB CB_TH,$ SETB DC_TH RET ;*************** CHUONG TRINH BIEN DOI SO SP VA THUNG RA 2 PHAN CHUC VA DV****** BIENDOI_SP:
Luận văn liên quan