Đề tài Thiết kế hệ thống băng tải đóng gói sản phẩm điều khiển bằng bàn phím và giao tiếp máy tính

Nền công nghiệp điện tử và sản phẩm của nó là nền tảng cơ bản nhất cho việc ra đời của máy tính và sâu xa hơn chính là nền sản xuất hiện đại ngày nay. Các sản phẩm của công nghiệp điện tử đã đi sâu vào đời sống của mỗi quốc gia, vùng lãnh thổ và mỗi con người chúng ta. Công nghiệp điện tử là lĩnh vực không thể thiếu đối với tất cả các khía cạnh trong cuộc sống hiện đại nhân loại ngày nay. Nằm trong chương trình đào tạo kĩ sư chuyên ngành cơ điện tử của khoa cơ khí - DHBK đà nẵng, tôi trình bày đề tài "thiết kế hệ thống băng tải đóng gói sản phẩm điều khiển bằng bàn phím và giao tiếp máy tính" .

pdf50 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2441 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế hệ thống băng tải đóng gói sản phẩm điều khiển bằng bàn phím và giao tiếp máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Báo Cáo Thực Tập Công Nhân Trang 1 LỜI NÓI ĐẦU Ngày nay, trong công cuộc công nghiệp hóa và hiện đại hóa cũng như tiến trình hội nhập sâu vào nền kinh tế thế giới nói chung và các quốc gia trong tố chức WTO nói riêng đặt ra cho nền kinh tế và sản xuất của chúng ta cần phải đáp ứng được các yêu cầu chung của thế giới. Có thể nhận thấy một điều là nền sản xuất của chúng ta hiện tại mang tính thủ công và hết sức lạc hậu, do đó điều kiện cần và đủ để quá trình hội nhập thành công là phải hiện đại hóa nền kinh tế, hiện đại hóa và tự động quá trình sản xuất. Lịch sử nhân loại đã chứng kiến những cuộc cách mạng về khoa học kĩ thuật và gần đây nhất là cuộc cách mạng về công nghệ thông tin. Với sự trợ giúp của máy tính và hệ thống máy tính, con người đã nâng cao năng suất và tự động hóa ngày một hiệu quả hơn. Tuy nhiên, nói đến máy tính thì trước hết phải nói đến một lĩnh vực quan trọng gấp bội, đó chính là nền công nghiệp điện tử. Nền công nghiệp điện tử và các sản phẩm của nó là nền tảng cơ bản nhất cho việc ra đời của máy tính và sâu xa hơn chính là nên sản xuất hiện đại ngày nay. Các sản phẩm của công nghiệp điện tử đã đi sâu vào đời sống của mỗi quốc gia, vùng lãnh thổ và mỗi con người chúng ta. Công nghiệp điện tử là lĩnh vực không thể thiếu đối với tất cả các khía cạnh trong cuộc sống hiện đại nhân loại ngày nay. Nằm trong chương trình đào tạo kĩ sư chuyên ngành cơ điện tử của khoa cơ khí- trường đại học bách khoa đà nẵng, tôi đươc tham gia vào đợt thực tập công nhân tại xưởng điện tử của trường. Với mục đích bổ sung kiến thức và kĩ năng nghề nghịệp làm tiền đề cho quá trình công tác sau này cũng như có thể đáp ứng yêu cầu của nền sản xuất nước nhà, nhóm Báo Cáo Thực Tập Công Nhân Trang 2 chúng tôi đã chọn đề tài: Thiết kế hệ thống băng tải đóng gói sản phẩm điều khiển bằng bàn phím và giao tiếp máy tính. Đây là một đề tài có khối lượng công việc khá lớn, bao gồm cả cơ khí và điện tử và lập trình điều khiển, đòi hỏi sự chính xác cao và có thể ứng dụng trong nhiều lĩnh vực mang lại hiệu quả cao. Trong quá trình thực hiện đề tài, nhóm đã 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 nên mô hình vẫn gặp những vấn đề chưa thể khắc phục. Nhóm cũng xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Lê Hồng Nam và các thầy cô trong khoa Điện Tử Viễn Thông và Cơ Khí đã giúp nhóm hoàn thành đề tài một cách tốt nhất. Kính mong quý thầy cô đóng góp những ý kiến để những đợt thực tập sau chúng tôi sẽ hoàn thành nhiệm vụ tốt nhất. Trân trọng và chân thành cảm ơn! Nhóm thực hiện đề tài Báo Cáo Thực Tập Công Nhân Trang 3 CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài Thiết kế hệ thống gồm hai băng tải đóng gói sản phẩm điều khiển bằng bàn phím và giao tiếp máy tính 1.2 Sơ đồ khối của đề tài. 1.3 Chức năng các khối : • Giao tiếp máy tính : Dùng giao diện phần mềm lập trình bằng delphi trên máy tính để giao tiếp với mạch điều khiển qua đó điều khiển và kiểm soát số sản phẩm và số thùng. • Mạch điều khiển : Điều khiển tất cả hoạt động của máy, nhận tín hiệu điều khiển từ bàn phím và máy tính để xử lý rồi đưa ra tín hiệu điều khiển cho cơ cấu chấp hành. Kiểm tra tín hiệu trả về của cảm biến để giám sát hoạt động của máy, đưa số liệu ra mạch hiển thị và đưa về máy tính. Đồng thời xử lý tính toán dựa vào các dữ liệu thu về từ cảm biến và các tín hiệu điều khiển để xuất tín hiệu điều khiển cơ cấu chấp hành cho phù hợp với yêu cầu. CẢM BIẾN BÀN PHÍM KHỐI ĐIỀU ĐIỀU KHIỂN HIỂN THỊ CƠ CẤU CHẤP HÀNH MÁY TÍNH Báo Cáo Thực Tập Công Nhân Trang 4 • Cảm biến : Gồm 2 cảm biến quang trở được bố theo hành trình của sản phẩm và thùng để đếm số thùng và số sản phẩm có đủ hay không. • Bàn phím : Để nhập số sản phẩm và số thùng đồng thời thực hiện một số chức năng điều khiển cụ thể (sẽ được làm rõ ở phần sau). • Hiển thị : Để hiển thị số sản phẩm và số thùng • Cơ cấu chấp hành : Gồm các cơ cấu cơ khí ( 2 băng tải) và 2 động cơ DC để truyền động cho các cơ cấu cơ khí ( 2 băng tải). Một băng tải mang sản phẩm và một băng tải mang thùng. Báo Cáo Thực Tập Công Nhân Trang 5 CHƯƠNG II : LÝ THUYẾT VI ĐIỀU KHIỂN 8951 1. Kiến trúc của vi điều khiển 8951 IC vi điều khiển 8951 thuộc họ MCS51 có các đặc điểm sau : + 4 kbyte Flash. + 128 byte RAM + 4 port I/0 8 bit + Hai bộ định thời 16 bits + Giao tiếp nối tiếp + 64KB không gian bộ nhớ chương trình ngoài + 64 KB không gian bộ nhớ dữ liệu ngoài a.Port0: là port có 2 chức năng, ở trên chân từ 32 đến 39 của MC 8951. Trong các thiết kế cỡ nhỏ không dùng bộ nhớ ngoài, P0 được sử dụng như là những cổng I/O. Còn trong các thiết kế lớn có yêu cầu một số lượng đáng kể bộ nhớ ngoài thì P0 trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ. b. Port1: là một port I/O chuyên dụng, trên các chân 1-8 của MC8951. Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài khi cần thiết. U1 AT89C51 9 18 19 29 30 31 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 PSEN ALE/PROG EA/VPP P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 AT89C51 Báo Cáo Thực Tập Công Nhân Trang 6 c. Port2: là một cổng có công dụng kép trên các chân 21 – 28 của MC 8951. Ngoài chức năng I/O, các chân này dùng làm 8 bit cao của bus địa chỉ cho những mô hình thiết kế có bộ nhớ chương trình ROM ngoài hoặc bộ nhớ dữ liệu RAM có dung lượng lớn hơn 256 byte. d. Port3: là một cổng có công dụng kép trên các chân 10 – 17 của MC 8951. Ngoài chức năng là cổng I/O, những chân này kiêm luôn nhiều chức năng khác nữa liên quan đến nhiều tính năng đặc biệt của MC 8951, được mô tả trong bảng sau: B ả n g 2 . 1 Chức năng của các chân trên port 3 e. PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển, PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép truy xuất bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho phép đọc các byte mã lệnh của chương trình. Tín hiệu PSEN ở mức thấp trong suốt phạm vi quá trình của một lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8951 để giải mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức cao. f. ALE (Address Latch Enable ): Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý 8585, 8088. 8951 dùng ALE để giải đa hợp bus địa chỉ và dữ liệu, khi port 0 được dùng làm bus địa chỉ/dữ liệu đa hợp: vừa là bus dữ liệu vừa là byte thấp của địa chỉ 16 bit . ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường Port 0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của chu kỳ bộ nhớ. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8951 là 12MHz thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8951. Bit Tên Chức năng chuyển đổi P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RxD TxD 0INT 1INT T0 T1 WR RD Ngõ vào dữ liệu nối tiếp. Ngõ xuất dữ liệu nối tiếp. Ngắt ngoài 0. Ngắt ngoài 1. Ngõ vào TIMER 0. Ngõ vào của TIMER 1. Điều khiển ghi dữ liệu lên bộ nhớ ngoài. Điều khiển đọc bộ nhớ dữ liệu ngoài. Báo Cáo Thực Tập Công Nhân Trang 7 g. EA (External Access): Tín hiệu vào EA trên chân 31 thường được nối lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8951. h. RST (Reset): Ngõ vào RST trên chân 9 là ngõ reset của 8951. Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8951 được đưa vào những giá trị thích hợp để khởi động hệ thống. i.OSC: 8951 có một bộ dao động trên chip, nó thường được nối với thạch anh giữa hai chân 18 và 19. Tần số thạch anh thông thường là 12MHz. j. POWER: 8951 vận hành với nguồn đơn +5V ( 20%. Vcc được nối vào chân 40 và Vss (GND) được nối vào chân 20. 2. Tìm hiểu về tập lệnh của 89C51. Một số lệnh thường gặp. ACALL addr11 : Gọi chương trình con(gọi đến địa chỉ tuyệt đối). Mô tả: ACALL gọi không điều kiện một chương trình con đặt tại địa chỉ được chỉ ra trong lệnh. Lệnh này tăng nội dung của PC bởi 2 để PC chứa địa chỉ của lệnh kế lệnh ACALL, sau đó cất nội dung 16 bit của PC vào stack(Byte thấp cất trước) và tăng con trỏ stack SP bởi 2. Do vậy chương trình con được gọi phải được bắt đầu trong cùng khối 2K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau lệnh ACALL. Các cờ khong bị ảnh hưởng. LCALL addr16 : Gọi chương trình con. Chương trình con được gọi phải được bắt đầu trong cùng khối 64K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau lệnh LCALL. Các cờ khong bị ảnh hưởng. ADD A,: Cộng Mô tả: ADD Cộng nội dung của một byte ở địa chỉ được chỉ ra trong lệnh với nội dung thanh chứa và đặt kết quả vào thanh chứa. ADD có 4 kiểu định địa chỉ cho toán hạn nguồn: thanh ghi, trực tiếp, thanh ghi gián tiếp hoặc tức thời. AJMP addr11: Nhảy đến địa chỉ tuyệt đối. Đích nhảy đến phải trong cùng khối 2K của bộ nhớ chương trình với byte đầu tiên của lệnh theo sau lệnh AJMP. ANL ,: thực hiện phép toán AND từng bít giữa hai toán hạng được chỉ ra trong lệnh và lưu kết quả vào toán hạn đích. Các cờ không bị ảnh hưởng. CJNE ,,rel : So sánh và nhảy nếu không bằng. Cờ nhớ được set bằng 1 nếu giá trị nguyên không dấu của toán hạn trước nhỏ hơn giá trị nguyên không dấu của toán hạn sau. Ngược lại cờ nhớ bị xoá. Báo Cáo Thực Tập Công Nhân Trang 8 CLR bit: Xoá bít. CPL bit: Lấy bù bit. DEC byte: Byte chỉ ra trong lệnh được giảm đi 1, cờ nhớ không bị anhư hưởng. DIV AB: chia số nguyên không dấu 8 bit chứa. SETB : Set bit bằng 1. Báo Cáo Thực Tập Công Nhân Trang 9 CHƯƠNG III : SƠ ĐỒ MẠCH VÀ TÍNH CHỌN LINH KIỆN Đề tài: Mạch giám sát và điều khiển đếm sản phẩm có giao tiếp máy tính 1.Sơ đồ khối và phân tích hoạt động: 1.1 Sơ đồ khối: 1.2 Nguyên lý chung: Thông qua hệ thống cảm biến thu phát hồng ngoại sẽ đưa tín hiệu đầu vào vào 89S52,sau khi được xử lý tại vi điều khiển(chương trình được lập trình bằng ASM) sẽ đưa tín hiệu đầu ra điều khiển 2 hệ thống băng chuyền thực hiện việc đếm số thùng trong 1 ca và số sản phẩm trong 1 thùng. Song song với quá trình hoạt động của mạch,máy tính sẽ thực hiện giám sát và điều khiển thông qua dữ liệu được gởi xuống vi điều khiển bằng cổng COM 1.3 Cụ thể: 1.3.1 Khối cảm biến: Trên mỗi băng chuyền thùng và sản phẩm,sẽ đặt 1 hệ thống cảm biến gồm 1 led hồng ngoại phát và 1 photodiode thu,khi có sản phẩm(thùng) đi qua,hệ thống sẽ gởi tín hiệu mức 0 báo cho VĐK biết, căn cứ vào chương trình đã được nạp,VĐK sẽ đưa ra chỉ thị điều khiển dừng hay khởi động băng chuyền để thực hiện việc đếm số sản phẩm(thùng). 1.3.2 Khối băng chuyền: KHỐI XỬ LÍ TRUNG TÂM (89S52) Bàn phím Máy tính Hiển thị Cảm biến Băng chuyền Báo Cáo Thực Tập Công Nhân Trang 10 Gồm 2 băng chuyền: một băng chuyền cho thùng chạy,và một cho sản phẩm chạy 1.3.3 Khối hiển thị: Gồm 4 led 7 đoạn (2 led cho số thùng và 2 led cho số sản phẩm)sẽ hiển thị số sản phẩm và thùng cài đặt,cũng như số sản phẩm và số thùng trong quá trình đếm. 1.3.4 Khối bàn phím: Phím 0- 9: nhập số sản phẩm(thùng) cài đặt Phím 10: Start Phím 11: Cài đặt Phím 12: Thoát khỏi cài đặt Phím 13: Stop Phím 14: Bắt đầu cài đặt thùng 1.3.5 Điều khiển từ PC: Chương trình điều khiển được viết bằng Delphi. Máy tính sẽ gởi tín hiệu khởi động, gởi số sản phẩm và thùng cài đặt xuống VĐK thông qua cổng COM. Song song với quá trình gởi dữ liệu thì PC cũng sẽ nhận dữ liệu đếm từ VĐK và hiển thị lên màn hình điều khiển. 2.Tính toán thiết kế: 2.1. Mạch công suất cho động cơ: Mục đích là tạo ra dòng lớn để cung cấp cho động cơ ULN2803 có nhiệm vụ đệm dòng cho mạch công suất 12V 12V 12V C PWM3 C PWM4 C PWM1 PWM1 PWM4 PWM2C PWM2 PWM3 RULNS 1K 2 3 4 5 6 7 8 1 9 RN6 4k7 2 3 4 5 6 7 8 1 9 U9 ULN2803 10 9 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM GND IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 Tính chọn điện trở: ULN2803 có Iin = 25 mA Chọn Vin = 12V Vậy RN6 =4k7 Chọn RULNS = 1K Báo Cáo Thực Tập Công Nhân Trang 11 12V 12V 12V 12V 24V 24V 24V 24V PWM1 PWM3 PWM4 PWM2 Q13 D468 R24 330 2W R25 330 2W R26 330 2W R27 330 2W M4DC4 IRF540 Q9 D468 M2DC2 IRF540 Q7 D468 Q14 B562 D21 4007 Q11 D468 D24 4007 D27 4007 D30 4007 M3DC3 IRF540 M1 IRF540 J29 DC4 1 2 J28 DC2 1 2 J27 DC2 1 2 J26 DC1 1 2 Q10 B562 Q12 B562 Q8 B562 Fet IRN540 : đóng mở động cơ Chọn 2bjt là 2sd468 và 2sb562 mạch mắc Darlington :khuếch đại dòng 2.1.1 Mạch cảm biến R330 Báo Cáo Thực Tập Công Nhân Trang 12 Mạch gồm hai khối cảm biến dùng để đếm số sản phẩm và số thùng. Khi không có sản phẩm đi qua LED thu nhận được tín hiệu từ LED phát, điện trở của LED phát R=330,led thu có R= 1 2.2. Mạch hiển thị : Title Size Document Number Rev Date: Sheet of A 1 1Thursday , January 10, 2008 U4 led 7 seg 1 2 3 4 5 678910 Q1 2SC1815 Q4 2SC1815 Q3 2SC1815 Q2 2SC1815 R37 R R35 R R33 R U8 SN7447 17 21 42 8 6 BI/RBO 4 RBI 5 LT 3 A 13 B 12 C 11 D 10 E 9 F 15 G 14 V C C 16 G N D 8 U7 led 7 seg 1 2 3 4 5 678910U6 led 7 seg 1 2 3 4 5 678910 U5 led 7 seg 1 2 3 4 5 678910 R32 R R38 R R36 R R34 R A4 A2 A3 A5 A1 A7 A6 5V R39 R P2.0 P2.3 P2.2 P2.1 A3A4A5 A5 A2A1A6A7 A1A6A7 A3A4 A7 A3A4A5 A2 A4A5 A2A1A6 A3 A1A7A6 A2 P2.6P2.7 P2.4P2.5 R31 R 0 5V J1 CON8 1 2 3 4 5 6 7 8 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 Chọn trở R39( đưa áp vào các chân 3,4,5 của 7447) là 1k. Để tính chính xác ta coi Led như một động cơ một chiều và sử dụng công thức Ihd= dmon T dm I T T dtI T on ***1 0 2 =∫ Để đơn giản hơn ta xem led 7 đoạn gồm 7 led đơn sử dụng dòng 10 mA. Vậy dòng cần cung cấp cho led là IC=7*10=70mA Chọn BJT là 2SA1015 với β =70 Dòng IB = IC/ β = 70/70 = 1mA R32 = Vcc-VCES-V LED / IC / 7 = 5 -2 -0.1/70/7 = 270Ω . Chọn R32=R34=R36=R38=270Ω Ngõ ra P2.7 ở mức thấp thì Q1 dẫn lúc đó VOl=0.45V(mức thấp) R31=Vcc-VO1-VBEQ1-VR32/IBQ1=5-0.45-0.7-70/7*0.27/1mA Ta chọn R31=R33=R35=R37=1 K 2.3 Mạch bàn phím - Ma trận phím Báo Cáo Thực Tập Công Nhân Trang 13 1 4 2 3 1 4 2 3 1 4 2 3 C3 1 4 2 3 71 4 2 3 P1.3 1 H2 2 C 3 F1 4 2 3 H0 P1.1 1 4 2 3 5 P1.0 1 4 2 3 1 4 2 3 P1.5 E P1.4 1 4 2 3 D 1 4 2 3 64 1 4 2 3 98 0 1 4 2 3 C0 H1 1 4 2 3 P1.6 J1 CON8 1 2 3 4 5 6 7 8 C1 P1.7 1 4 2 3 H3 A C2 1 4 2 3 P1.2 B Để 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 vi. 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ương trình hiển thị bàn phím. #include phim equ 30h ORG 0000H MAIN: ACALL IN_HEX MOV A,PHIM ACALL HT SJMP MAIN ;......................................... IN_HEX: MOV R3,#50 BACK1: ACALL GET_KEY JNB 10,EXP1 DJNZ R3,BACK1 BACK2: MOV R3,#50 BACK3: ACALL GET_KEY JB 10,BACK2 DjNZ R3,BACK3 SETB 11 MOV PHIM,R6 EXP1: NOP RET ;---------------------------------------------------------------------------- Báo Cáo Thực Tập Công Nhân Trang 14 GET_KEY: MOV A,#0FEH MOV R2,#0 SCAN_ROW: MOV P0,A MOV R4,A ;luu gia tri cua A vao R4 ;chuan bi quet cac cot va nhay JNB P0.4,ROW_0 JNB P0.5,ROW_1 JNB P0.6,ROW_2 JNB P0.7,ROW_3 ;khong co phim an thi chuyen den cot tiep theo MOV A,R4 ;lay lai ma lan truoc tu r4 RL A ;quay trai 1 bit de chuyen den cot ke tiep INC R2 ;tang so lan quet len 1 CJNE R2,#4,SCAN_ROW ;khong du 4 cot thi quay lai quet SETB P2.6 SJMP NO_CODE ROW_0: MOV A,R2 ADD A,#0 SETB 10 MOV R6,A SJMP EXIT ROW_1: MOV A,R2 ADD A,#4 SETB 10 MOV R6,A SJMP EXIT ROW_2: MOV A,R2 ADD A,#8 SETB 10 MOV R6,A SJMP EXIT ROW_3: MOV A,R2 ADD A,#12 SETB 10 MOV R6,A Báo Cáo Thực Tập Công Nhân Trang 15 SJMP EXIT NO_CODE: ;NEU KHONG CO PHIM AN THI XOA BIT 10 CLR 10 EXIT: RET HT: MOV B,#10 DIV AB ADD A,#10H MOV P2,A ACALL DELAY MOV A,B ADD A,#00 MOV P2,A ACALL DELAY RET DELAY: MOV R0,#200 DJNZ R0,$ RET END Khi mạch không cần nhiều phím thì ta có thể dùng phím như sau: Vcc R1 R 1 4 2 3 p1.0 Báo Cáo Thực Tập Công Nhân Trang 16 2.4. Mạch giao tiếp máy tính 5V VCC5V GND P0.3 P1.1 DK PWM1 P1.0 P1.4 P0.1 DK PWM2 P3.3 DK PWM3 P0.4 P1.2 P3.5 P1.5 DK PWM4 P3.4 P0.5 RXD P1.6 P0.2 P0.7 P0.6 P0.0 P1.3 TXD P3.2 P1.7 VCC5V VCC5V v cc5v VCC5V VCC5V GND D20 LED D23 LED D26 LED D22 LED D28 LED D31 LED D38 LED D33 LED D34 LED D36 LED D37 LED D39 LED D35 LED D42 LED D41 LED D40 LED D43 LED D44 LED R19 R D46 LED R17 R D45 LED R16 R R15 R R20 R R21 R R22 R R18 R23 R R28 R R29 R R30 R R31 R R32 R R33 R R34 R R35 R R36 R R37 R R38 R Y1 ZTA J3 NGUON 5V 1 2 Q16 2SA1015 3 2 1 J2 NAP PHILLIP 1 2 3 4 C6 30P U4 8051 29 30 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE EA X1 X2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD R14 10K +C5 10UF SW1 RESET C7 30P R39 560 J25 COIBIP 1 2 R40 330 5v TXD RXD R3 330 D1 LED do J1 CON2 1 2 U5 MAX232 13 8 11 10 1 3 4 5 2 6 12 914 7 R1IN R2IN T1IN T2IN C+ C1- C2+ C2- V +V- R1OUT R2OUTT1OUT T2OUT P1 CONNECTOR DB9 5 9 4 8 3 7 2 6 1 C7 10u C6 10u C8 10u có nhiệm vụ thực hiện kết nối giữa vi điều khiển và máy tính Tác dụng của các linh kiện trong mạch: 2.4.1 max232: MAX232 đóng vai trò trung gian giao tiếp giữa cổng COM và chip AT89C52. Tín hiệu từ chân 3 cổng COM được đưa đến đầu vào thu R1IN của MAX232, đầu ra bộ thu R1OUT của MAX232 nối với chân ngõ vào dữ liệu nối tiếp RxD của AT89C52. Tín hiệu từ ngõ xuất dữ liệu nối tiếp TxD của chip AT89C52 đưa đến đầu vàobộ phát T1IN của MAX232, đầu ra bộ phát T2OUT của chip AT89C52 được nối đến chân 3 của cổng COM. Bảng trạng thái: T1IN T1OUT Báo Cáo Thực Tập Công Nhân Trang 17 R1IN R1OUT 0 1 1 0 2.4.2. Chip 89S52: - Nhập dữ liệu bàn phím qua Port 0. - Xuất dữ liệu ra LED qua Port 2. - Khối giao tiếp cổng COM ( sử dụng MAX 232) qua P3.0, P3.1 - Khối cảm biến, động cơ qua Port1. 2.4.3. Tính toán và chọn linh kiện: Chip 89S52 hoạt động với tốc độ xung đồng hồ 12MHz, nên chọn thạch anh Y1 =12M, chọn C1=C2=33pF. Mạch Reset: Tính điện trở mạch Reset hệ thống: Ngõ vào Reset (RST) – Mức cao trên chân này trong hai chu kì máy trong khi bộ dao động đang hoạt động sẽ Reset AT89C51: VIHmin= 0.7*VCC=0.7*5=3.5(V) VIHmax=VCC+0.5=5+0.5=5.5(V), ITL=0.65(mA) R1= )K(46.865.0 5.5 = Suy ra ta chọn R1=8.2(K) Để Reset chip cần đặt vào chân 89C51 ít nhất hai chu kì máy ở mức cao và sau đó trả về mức thấp.Do sử dụng mạch tạo dao động thạch anh bên ngoài 12MHz nên mỗi chu kì máy mất 1 sμ , RST ở mức cao trên sμ2 cần R1*C3 sμ2≥ nFC 24.03 ≥⇒ . Chọn C3 =10 Fμ Tính toán điện trở kéo lên ở các port0, port1, port2: + VOL=0.45(V),IOL=1.6(mA), IIL=0.05 mA RPmin= )K(87.205.06.1 45.05 =− − + VOH=2.4(V), IOH=0.8(mA), IIH=0.65(mA) 0 1 1 0 Báo Cáo Thực Tập Công Nhân Trang 18 RPmax= )K(3.1765.08.0 4.25 =− − Vậy điều kiện chọn điện trở kéo lên: 2.87(K) ≤ RP ≤ 17.3(K) Chọn điện trở kéo lên: RP=10(K) Suy ra: RRST= )K(46.865.0 5.5 = Chọn RRST=8.2(K) Sơ Đồ Toàn Mạch: 24V 12V 12V 12V 12V 12V 12V 12V 5V 12V PWM2 PWM3 PWM4 PWM1 24V C PWM1 C PWM2 C PWM4 C PWM3 PWM4 VCC5V GND 24V 24V 24V 24V P0.3 P1.1 DK PWM1 P1.0 P1.4 P0.1 DK PWM2 P3.3 DK PWM3 P0.4 P1.2 P3.5 P1.5 DK PWM4 P3.4 P0.5 RXD P1.6 P0.2 P0.7 P0.6 P0.0 P1.3 TXD P3.2 P1.7 VCC5V VCC5V v cc5v VCC5V VCC5V GND PWM3 PWM2 PWM1 DK PWM1 DK PWM2 DK PWM3 DK PWM4 C PWM2 C PWM3 C PWM4 C PWM1 VCC5V VCC5V VCC5V VCC5V P1.3 P0.6 P1.1 P3.4P0.5 P1.0 P3.2 P1.6 P0.4 P1.5 P1.2 P0.0 P0.2 P0.7 P0.3 P1.7 P0.1 P3.3P1.4 P3.5 Q13 D468 R24 330 2W R25 330 2W Q10 B562 R26 330 2W R27 330 2W M4DC4 IRF540 RULNS 1K 2 3 4 5 6 7 8 1 9 ROPTO1 560 OPTO1 1 2 4 3 Q9 D468 LED1 LED D20 LED D23 LED D26 LED D22 LED D28 LED D31 LED D38 LED D33 LED D34 LED D36 LED D37 LED D39 LED D35 LED D42 LED D41 LED D40 LED M2DC2 IRF540 Q12 B562 J12V 12VDC 1 2 R24V 2.2K D12V DIODE 5A F1 CAU CHI LED24V LED BAO NGUON J24V 24VDC 1 2 D43 LED D44 LED R19 R D46 LED R17 R D45 LED R16 R R15 R R20 R R21 R R22 R R18 ROPTO4 560 R23 R R28 R R29 R R30 R R31 R R32 R R33 R R34 R R35 R R36 R R37 R R38 R LED4 LED Y1 ZTA OPTO4 1 2 4 3 J3 NGUON 5V 1 2 Q16 2SA1015 3 2 1 Q7 D468 Q14 B562 Q8 B562 D21 4007 J2 NAP PHILLIP 1 2 3 4 Q11 D468 D24 4007 D27 4007 D30 4007 C6 30P U4 8051 29 30 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE E A X 1 X 2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD M3DC3 IRF540 U9 ULN2803 10 9 1 2 3 4 5 6 7 8 18 17 16 15 14 13 12 11 COM GND IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 + C12V 4700UF R14 10K M1 IRF540 +C5 10UF SW1 RESET C7 30P ROPTO2 560 RN6 4k7 2 3 4 5 6 7 8 1 9 LED2 LED OPTO2 1 2 4 3 R39 560 J25 COIBIP 1 2 R40 330 J29 DC4 1 2 J28 DC2 1 2 J27 DC2 1 2 J26 DC1 1 2 ROPTO3 560 LED3 LED OPTO3 1 2 4 3 J4 CON8 1 2 3 4 5 6 7 8 J5 CON8 1 2 3 4 5 6 7 8 J7 CON4 1 2 3 4 Báo Cáo Thực Tập Công Nhân Trang 19 2.5 Xác định chân của một số linh kiện điện tử 1. Điện trở: 2. Công dụng điện trỡ: Dùng để cản trở dòng điện. Điện trở ép trên mạch in: Điện trỡ này có cấu tạo bằng than ép, màn thang, dây quấn. R Ký hiệu và hình dạng của điện trở Đối với những điện trỡ có công suất bé người ta phân biệt trị số và sai số theo vạch màu. Cách đọc giá trị điện trỡ theo vạch màu được qui định theo bảng sau. Màu Trị số Sai số Đen 0 0% Nâu 1 1% Đỏ 2 2% Cam 3 3% Vàng 4 4% Xanh lá 5 5% Xanh lơ 6 6% Tím 7 7% Xám 8 8% Trắng 9 9% Vàng kim -1 -5% Bạc kim -2 -10% Cách đọc: Vạch màu cuối cùng là vạch sai số. Đối với mạch điện tử dân dụng thì ta không quang tâm tới vạch này. Nhưng đối với mạch có độ chính xác cao thì cần chú ý tới vạch này. Báo Cáo Thực Tập Công Nhân Trang 20 Vạch cạnh vạch cuối là vạch là vạch lũy thừa 10 Vạch còn lại là vạch có nghĩa. Ví dụ: Điện trở có 4 vạch màu Điện trở có 5 vạch màu: Điện trở có công suất lớn thì người ta thường nghi giá trị điện trở và công suất trên thân điện trở. Những hư hỏng thường gặp ở điện trở. - Cháy do làm việc quá công xuất. - Tăng trị số thường gặp ở điện trở bột thang, do lau ngày hoạt tính bột than biến chất làm thay đổi trị số. - Giảm trị số thường xảy ra ở điện trở dây quấn do bị chập vòng. Biến trở. Dùng để thay đổi giá trị điện trở Loại chỉnh có độ thay đổi rộng: loại này thiết kế dùng cho người sử dụng Loại tinh chỉnh: loại này dùng để chỉnh lại chính xác hoạt động của mạch Ñoû Naâ Cam Vaøng kim Ñieän trôû coù giaù trò: R = 21.103Ω R R Ñoû Naâ Cam Vaøng kim Ñieän trôû coù giaù trò: R = 217.103Ω ± TímĐỏ Nâu Báo Cáo Thực Tập Công Nhân Trang 21 3. TỤ ĐIỆN. Dùng để tích phóng điện ứng dụng trong rật nhiều các lĩnh vực khác nhau. Tụ điện biến đổi Ký hiệu. C3 Dùng để điều chỉnh giá trị điện dung theo ý muốn, dùng để vi chỉnh tần số của các mạch dao động, mạch cộng hưởng mạch lọc. - Tụ điện có cực tính, thường là các tụ hoá học. C2 - Tụ điện không có cực tính thường là các tụ gốm, tụ thuỷ tinh có ký hiệu như sau: C1 Khi sử dụng tụ điện cần chú ý: Điện dung: Cho biết khả năng chứa điện của tụ. Điện áp: Cho biết khả năng chiệu đựng của tụ. Khi dùng tụ có cực tính thì phải đặt cực tính dương của tụ ở điện áp cao còn cực tính âm ở nơi điện áp thấp. Cách đọc giá trị của tụ. Trường hợp trên tụ có ghi giá trị, ký hiệu mà tận cùng là một chữ cái, đơn vị đo tính bằng pF (pico farad), phương pháp xác định giá trị thực hiện như sau: - Hai chữ số đầu chỉ trị số cho điện dung của tụ 203 25 200 50WV 0.1 25 C= 20.103PF U = 25V C= 200PF U = 50V C= 0.1μF U = 25V Báo Cáo Thực Tập Công Nhân Trang 22 - Chữ số thứ ba (kế tiếp) xác định hệ số nhân - Chữ cái cuối cùng xác định sai số Bảng 3.4 Các chữ cái xác định sai số tuân theo quy ước sau đây: F G J K M 1% 2% 5% 10% 20% Ví dụ: trên tụ điện ceramic, ta đọc được giá trị như sau: 473J hay 104k. Giá trị của tụ được xác định như sau: 473J ≈ 47. 103 pF ± 5% ≈ 0,047mF ± 5% 104K ≈ 10 .104 pF ± 10% ≈ 0,1mF ± 10% Cách đo và kiểm tra tụ: Ta bật đồng hồ VOM để đo kiểm tra tụ hoạt động tốt hay xấu. Tuỳ theo giá trị của tụ mà ta bật thang đo khác nhau để kiểm tra. - Đo hai lần có đổi que: Nếu kim vọt lên và trả về hết thì kha năng nạp xã của tụ còn tốt. Nếu kim vọt lên thì tụ bị đánh thủng. Nếu kim vọt lên nhưng tra về không hết thì tụ bị rĩ. Nếu kim vọt lên và kim trả về lờ đờ thì tụ bị khô. Nếu kim không lên thì tụ đứt. Khi sử dụng cuộn dây cần chú ý sự chiệu đựng dòng điện đi qua nó: nếu tiết diện dây lớn thì dòng điện chiệu đựng cao hơn. Cách kiểm tra hư hỏng của cuộn dây: Ta vặn thang đo Rx1 hoặc R x 10 để xác định cuộn dây có bị đức hay không. Khi chạm cuộn dây thì ta chỉ có kiểm tra bằng thực tế. 4. DIODE. Điode nắn điện. Diode chỉ hoạt động dẫn dòng điện từ cực A sang cực K ( Khi tiếp xúc PN được phân cực thuận). Khi phân cực nghịch vược điện áp chịu đựng P N Báo Cáo Thực Tập Công Nhân Trang 23 thì sẻ phá vở mối liên kết, diode bị nối tắt. Do đó khi lắp ráp mạch sử dụng diode ta nên chú ý đến điện áp ngược và dòng tải của diode. Diode zener. Diode luôn làm việc ở chế độ phân cực ngược. Để diode zener tốt ta phải có điện trở định thiên để cho diode làm việc ở dòng trung bình. Khi sử dụng ta chú ý tới áp chiệu đựng và dòng tải. Cách kiểm tra hư hỏng: Ở thang đo Rx1 ta tiến hành do hai lần có đảo que đo. - Nếu quan sát thấy kim đồng hồ một lần kim lên hết. Một lần kim không lên thì Diode hoạt động tốt. - Nếu quan sát thấy kim đồng hồ một lần kim lên hết. Một lần kim lên 1/3 vạch thì Diode bị rỉ. - Nếu quang sát hai lần đo kim đều lên hết thì diode bị thủng. - Nếu quang sát hai lần đo kim đều không lên hết thì diode bị đứt. 5. BJT ( Transistor hai mối nối). Cấu tạo bênh trong và ký hiệu: BJT thuận(PNP). BJT nghịch(NPN). Xác định chân BJT. Dựa vào cấu tạo bênh trong của BJT mà suy ra cách xác định chân của BJT Ta đặt đồng hồ VOM ở thang đo 1k hoặc100. Ta đặt que đo vào một chân cố định, còn que còn lại đảo gữa hai chân còn lại nếu kim lên đều thì ta đảo hai que đo với nhau và đo như trên thì kim không lên thì chân cố định là chân B. Ở trường hợp que còn lại đảo gữa hai chân còn lại nếu kim lên đều, que ở chân cố định là que đen thì BJT loại NPN, nếu que đỏ ở chân cố định thì đó là loại PNP. BJT(NPN): Ta đặt hai que đo vào hai chân còn lại(Không đặt ở chân B), dùng điện trở(hoặc ngón tay) để nối gữa que đen với cực B nếu P N P EC B C B Q E N P N EC B C B Q E Báo Cáo Thực Tập Công Nhân Trang 24 kim lên thì chân tương ứng với que đen là chân c chân còn lại là chân E. Khi kim không lên thi ta đảo ngược que lại và kiểm tra như trên. BJT(PNP): Ta đặt hai que đo vào hai chân còn lại(Không đặt ở chân B), dùng điện trở(hoặc ngón tay) để nối gữa que đen với cực B nếu kim lên thì chân tương ứng với que đen là chân E chân còn lại là chân C. Khi kim không lên thi ta đảo ngược que lại và kiểm tra như trên. Đối với BJT công suất thì khi chế tạo người ta đã có điên trở lót hoặc điện trở và diode lót bênh trong thì khi đo cần chú ý. 6. Phương pháp nhận diện chân của IC. Muốn nhận dạng vị trí chân IC ta đều phải dựa vào sổ tay của IC. Tuy nhiên, ta cần phải biết phương pháp xác định vị trí cho chân số 1 của IC. Khi nhìn thẳng từ trên xuống IC, ta nhận thấy trên IC ở một phía trên thân sẽ khuyết ở một đầu một phần bán nguyệt, đôi khi ở phía này có thể in vạch thẳng sơn trắng, hoặc có điểm một chấm trắng phía trái. Vị trí chân phía chấm trắng bên trái xác định chân số 1, sau đó tuần tự đếm ngược chiều kim đồng hồ ta sẽ tìm được các chân còn lại. Tùy thuộc vào các tính năng kỹ thuật ghi trong sổ tay, chức năng của mỗi chân tương ứng với số thứ tự của chân đó. Trong hướng dẫn thực tập này, chúng tôi chỉ trình bày các dạng chân ra cho một số IC thông dụng như IC LM555 và IC741. Dạng chân ra của IC LM555 Chân 1: Ground (GND) Chân 2: Trigger (TRG): kích khởi Chân 3: Output (OUT): ngõ ra Chân 4: Reset Chân 5: Cont E R1 R Q R1 C DR2 B Q C C R R2 Q B E E B Q D E C B Báo Cáo Thực Tập Công Nhân Trang 25 Chân 6: Threshold (THRES) Chân 7: Discharge (DISCH) Chân 8: VCC (nguồn) Dạng chân ra của IC LM741 Chân 1: Offset null: điều chỉnh 0 Chân 2: Inverting input: ngõ vào đảo Chân 3: Non-Inverting input: ngõ vào không đảo Chân 4: V- Chân 5: Offset null Chân 6: Output: ngõ ra Chân 7: V+ Chân 8: NC (Normal close): chân bỏ trống 7.phương pháp vẽ mạch in: Đầu tiên ta chọn các linh kiện như hình vẽ Sau đó nối dây Báo Cáo Thực Tập Công Nhân Trang 26 Sau khi nối dây ta kiểm tra xem có lỗi gì không Nếu không có lỗi ta tạo Netlist Báo Cáo Thực Tập Công Nhân Trang 27 Trong phần vẽ mạch in ta chọn file Default như hình vẽ Sau đó chọn file .MNL như hình Báo Cáo Thực Tập Công Nhân Trang 28 Lưu lại với tên tùy ý Sau đó chọn chân linh kiện, ta được các linh kiện như hình vẽ, sau đó ta sắp xếp sao cho hợp lý Báo Cáo Thực Tập Công Nhân Trang 29 Cuối cùng ta được như hình vẽ Báo Cáo Thực Tập Công Nhân Trang 30 CHƯƠNG IV: CHƯƠNG TRÌNH 1 chương trình Asembly: 1.1.Sơ đồ thuật toán: Start Start COM Hiển thị Có DL từ PC? Nhận DL Start? NhậnDL cài đặt Đếm SP N Y Y Có phím Start? N Có phím Cài đặt? Y N N Cài đặt Stop? N End Y Start M Hiển thị Nhậ L Nhậ L cài đặt Đếm SP Cài đặt Báo Cáo Thực Tập Công Nhân Trang 31 1.2. Chương trình nhận dữ liệu cài đặt: Có DL? Nhận DL MOV th cd,A Có DL? MOV sp cd,A Nhận DL N Y N Y Đếm sản phẩm Nhận DL Nhận DL Báo Cáo Thực Tập Công Nhân Trang 32 1.3.Chương trình đếm sản phẩm: Khởi động BC thùng Có thùng? Khởi động BC sp Đếm sp Tăng thùng Hiển thị Phát DL Đủ thùng? Main N Y N Y Báo Cáo Thực Tập Công Nhân Trang 33 1.4, Thuật toán cài đặt 1.4.1 Thuật toán cài đặt sản phẩm Kiểm tra phím A=14 Nhập SP Lưu SP Hiển thị SP Y N N Cài đặt thùng i t ị Hiển thị SP Cài đặt thùng Báo Cáo Thực Tập Công Nhân Trang 34 1.4.2 Thuật toán cài đặt thùng Kiểm tra phím A=14 Nhập TH Lưu TH Hiển thị TH END Y N N Y hập T Lưu TH Hiển thị TH Báo Cáo Thực Tập Công Nhân Trang 35 2. chương trình delphi: Giao diện delphi được tạo như hình vẽ: Nhấn vào tab thông tin hiển thi : Nhấn vào cài đặt: Báo Cáo Thực Tập Công Nhân Trang 36 Báo Cáo Thực Tập Công Nhân Trang 37 CHƯƠNG V: KẾT LUẬN VÀ TÀI LIỆU THAM KHẢO Sau quá trình thực tập cũng như thiết kế và thi công các mạch và mô hình mô phỏng theo thực tế. Kết quả thu được của nhóm gần như đáp ứng được các yêu cầu đề ra. Về mặt ổn định và hiệu quả làm việc mạch hoạt động tốt tuy nhiên vẫn còn một số điểm mắc phải do yếu tố về mặt thời gian, kinh nghiệm của nhóm làm đồ án và mức độ tin cậy trong hoạt động và ổn định của linh kiện. Trong thời gian thực tập và thực hiện những công việc nhóm đã nhận được sự giúp đỡ tận tình của thầy Lê Hồng Nam cũng như các thầy cô trong khoa Điện Tử Viễn Thông, khoa Cơ Khí. Quá trình thực tập của nhóm đã đạt được các mục đích đề ra, làm tiền đề cho các đợt thực tập sau này cũng như nâng cao được kĩ năng về mặt lý thuyết và thực hành cho các thành viên của nhóm. 1.3 Tài liệu tham khảo 1: Họ vi điều khiển 8051 - Tống Văn On 2: Cầu trúc - điều khiển - lập trình sử dụng vi điều khiển 1,2 Nguyễn Mạnh Giang 3: Cơ sở thiết kế máy 4: Kĩ thuật xung cơ bản và nâng cao - Nguyễn Tấn Phước 5: Cảm biến công nghiệp - Hoàng Minh Công Báo Cáo Thực Tập Công Nhân Trang 38 3. Chương trình Assembly: #include phim equ 50h so_sp equ 51h sp_cd equ 52h so_th equ 53h th_cd equ 54h chuc_sp equ 55h dvi_sp equ 56h chuc_th equ 57h dvi_th equ 58h cb_thung bit P1.2 cb_sp bit P1.3 org 00h ljmp setup org 30h setup: mov so_sp,#0h ;cai dat cac thong so ban dau mov sp_cd,#03h mov so_th,#0h mov th_cd,#03h mov chuc_sp,#00 mov dvi_sp ,#00 mov chuc_th,#00 mov dvi_th ,#00 acall startcom main: acall hthi_dem begin: jnb RI,kiem_tra_tiep_1 acall nhan_dl cjne A,#41H,kiem_tra_tiep_0 ; ktra co start ko? ajmp dem_san_pham kiem_tra_tiep_0: acall nhan_dl_cai_dat ajmp dem_san_pham kiem_tra_tiep_1: acall kt_phim jnb 17,main clr 17 Báo Cáo Thực Tập Công Nhân Trang 39 mov A,phim cjne A,#10,ktr_cd ajmp dem_san_pham ;neu ko co cai dat thi kiem tra cong COM ktr_cd: cjne A,#11,main acall caidat ajmp dem_san_pham nhan_dl_cai_dat: acall nhan_dl mov sp_cd,A jnb RI,$ acall nhan_dl mov th_cd,A ret dem_san_pham: acall demsanpham acall stop ajmp main ;chuong trinh dem san pham ;goi chuong trinh con kiem tra stop, ;neu stop thi quay ve chuong trinh chinh, ;neu ko thi tiep tuc demsanpham: mov so_th,#0 mov so_sp,#0 demsanpham_1: acall kd_thung kiemtr_thung: clr 13 jnb cb_thung,tieptuc1 kt_1: LCALL KTR_STOP acall hthi_dem jb cb_thung,kt_1 setb 13 tieptuc1: LCALL KTR_STOP acall hthi_dem Báo Cáo Thực Tập Công Nhân Trang 40 jnb 13,kiemtr_thung acall kd_sp inc so_th mov so_sp,#0 acall phat_dl acall dem_sp mov A,so_th cjne A,th_cd,demsanpham_1 ret dem_sp: clr 11 jnb cb_sp,tieptuc21 kt_2: LCALL KTR_STOP acall hthi_dem jb cb_sp,kt_2 setb 11 tieptuc21: LCALL KTR_STOP acall hthi_dem jnb 11,dem_sp inc so_sp acall phat_dl mov A,so_sp cjne A,sp_cd,dem_sp ret kd_thung: setb P1.1 clr P1.0 ret kd_sp: clr P1.1 setb P1.0 ret stop: setb P1.1 setb P1.0 Báo Cáo Thực Tập Công Nhân Trang 41 AJMP BEGIN ret ;CHUONG TRINH CON CAI DAT caidat: caidat_sp: ;cai dat san pham acall kt_phim jnb 17,ht_sp clr 17 mov a,phim cjne a,#14,nhap_sp sjmp caidat_th nhap_sp: cjne a,#12,luu_sp sjmp exit1 luu_sp: mov chuc_sp,dvi_sp mov dvi_sp,phim mov b,#10 mov a,chuc_sp mul ab add a,dvi_sp ;sp=ch_sp*10+dv_sp mov sp_cd,a ht_sp: acall hthi sjmp caidat_sp caidat_th: ;cai dat thung acall kt_phim jnb 17,ht_th clr 17 mov a,phim cjne a,#14,nhap_th sjmp caidat_th nhap_th: cjne a,#12,luu_th sjmp exit1 luu_th: mov chuc_th,dvi_th mov dvi_th,phim mov b,#10 mov a,chuc_th mul ab add a,dvi_th ;sp=ch_th*10+dv_th mov th_cd,a Báo Cáo Thực Tập Công Nhân Trang 42 ht_th: acall hthi sjmp caidat_th exit1: nop ret ;CHUONG TRINH CON BAN PHIM kt_phim: ;chuong trinh con chong nhieu mov r3,#50 L1: acall qphim jnb 10,toi djnz r3,L1 L2: mov r3,#50 L3: acall qphim jb 10,L2 djnz r3,L3 setb 17 mov phim,r6 toi: ret qphim: ;chuong trinh con quet phim mov A,#0FEh mov r1,#0 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 R1 cjne R1,#4,scan_row clr 10 ajmp exit_qp row_0: mov a,R1 add a,#0 setb 10 mov R6,a ajmp exit_qp row_1: mov a,R1 Báo Cáo Thực Tập Công Nhân Trang 43 add a,#4 setb 10 mov R6,a ajmp exit_qp row_2: mov a,R1 add a,#8 setb 10 mov R6,a ajmp exit_qp row_3: mov a,R1 add a,#12 setb 10 mov R6,a ajmp exit_qp exit_qp: ret ;chuong trinh con hien thi hthi: mov a,dvi_sp add a,#0E0h mov P2,a acall delay mov a,chuc_sp add a,#0D0h mov P2,a acall delay mov a,dvi_th add a,#0B0h mov P2,a acall delay mov a,chuc_th add a,#70h mov P2,a acall delay ret ;chuong trinh con tao tre delay: mov r0,#200 djnz r0,$ ret ;chuong trinh hien thi dem hthi_dem: mov a,so_sp mov b,#10 Báo Cáo Thực Tập Công Nhân Trang 44 div ab mov chuc_sp,a mov dvi_sp,b mov a,so_th mov b,#10 div ab mov chuc_th,a mov dvi_th,b acall hthi ret ;chuong trinh startcom startcom: MOV TMOD,#20H MOV TH1,#-3 MOV SCON,#52H SETB TR1 RET ;chuong trinh nhan du lieu nhan_dl: ;JNB RI,$ CLR RI MOV A,SBUF RET ;chuong trinh phat du lieu phat_dl: JNB TI,$ CLR TI MOV A,SO_TH MOV SBUF,A JNB TI,$ CLR TI MOV A,SO_SP MOV SBUF,A RET ;CTRINH KTR STOP ktr_stop: JNB RI,KTR_PHIM ACALL NHAN_DL CJNE A,#42H,EXIT ACALL STOP KTR_PHIM: acall kt_phim jnb 17,EXIT clr 17 mov A,phim CJNE A,#13,EXIT Báo Cáo Thực Tập Công Nhân Trang 45 ACALL STOP EXIT: RET end Chương trình Delphi: unit dsp; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus, CPort, jpeg, MPlayer; type TForm1 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; cdth: TEdit; Label2: TLabel; cdsp: TEdit; Báo Cáo Thực Tập Công Nhân Trang 46 Buttonsend: TButton; GroupBox2: TGroupBox; Label3: TLabel; sothung: TEdit; Label4: TLabel; sosanpham: TEdit; GroupBox3: TGroupBox; GroupBox4: TGroupBox; thoigian: TEdit; GroupBox5: TGroupBox; Memo1: TMemo; Buttonclear: TButton; Buttonsetting: TButton; Buttonopen: TButton; GroupBox6: TGroupBox; MainMenu1: TMainMenu; File1: TMenuItem; Exit1: TMenuItem; Help1: TMenuItem; About1: TMenuItem; Help2: TMenuItem; Timer1: TTimer; ComPort: TComPort; ngaythang: TEdit; gio: TLabel; ngay: TLabel; Image1: TImage; Buttonstart: TButton; Buttonstop: TButton; procedure Timer1Timer(Sender: TObject); procedure ButtonsettingClick(Sender: TObject); procedure ButtonopenClick(Sender: TObject); procedure ButtonclearClick(Sender: TObject); procedure ButtonsendClick(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure comportRxChar(Sender: TObject; Count: Integer); procedure About1Click(Sender: TObject); procedure Help2Click(Sender: TObject); procedure ButtonstartClick(Sender: TObject); procedure ButtonstopClick(Sender: TObject); private Báo Cáo Thực Tập Công Nhân Trang 47 { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // THOI GIAN procedure TForm1.Timer1Timer(Sender: TObject); var ngay: Tdate; begin thoigian.Text:=timetostr(now()); ngay:=now(); ngaythang.Text:= datetostr(ngay); end; // THIET LAP THONG SO CONG COM procedure TForm1.ButtonsettingClick(Sender: TObject); begin comport.ShowSetupDialog; if messagedlg('Chon thong so moi roi nhap Ok.Chon Cancel de lay lai thong so cu',mtConfirmation,[mbok,mbcancel],0)=mrok then begin Buttonopenclick(Sender); memo1.Text:='Cong COM da duoc mo voi thong so da thiet lap'; end end; // MO CONG COM procedure TForm1.ButtonopenClick(Sender: TObject); begin if comport.Connected then begin messagedlg('Cong COM dang mo'+ chr(13) +'Nhan Ok de dong cong COM va mo lai cong COM.',mtwarning,[mbok],0); comport.Close; end; comport.Open; end; // XOA GHI CHU procedure TForm1.ButtonclearClick(Sender: TObject); Báo Cáo Thực Tập Công Nhân Trang 48 begin memo1.Text:=''; cdth.Text:=''; cdsp.Text:=''; end; // GUI DU LIEU procedure TForm1.ButtonsendClick(Sender: TObject); var i:byte; th,sp:integer; begin messagebeep(0); if (cdth.Text='')or(strtoint(cdth.Text)>99)or (strtoint(cdth.Text)<1) then begin messagedlg('Ban can nhap so thung(1- 99)vao.',mtwarning,[mbok],0); exit; end else begin th:=strtoint(cdth.Text); if (cdsp.Text='')or(strtoint(cdsp.Text)>99)or(strtoint(cdsp.Text)<1) then begin messagedlg('Ban can nhap so san pham(1-99) vao.',mtwarning,[mbok],0); exit; end else begin sp:=strtoint(cdsp.Text); end ; end ; comport.Write(th,1); comport.Write(sp,1); end; // THOAT procedure TForm1.Exit1Click(Sender: TObject); begin comport.Close; close; end; // NHAN DU LIEU Báo Cáo Thực Tập Công Nhân Trang 49 procedure TForm1.comportRxChar(Sender: TObject; Count: Integer); var dlieu:string; begin comport.ReadStr(dlieu,count); sothung.Text:=inttostr(ord(dlieu[1])); sosanpham.Text:=inttostr(ord(dlieu[2])); end; // GIOI THIEU procedure TForm1.About1Click(Sender: TObject); begin messagedlg('MACH DIEU KHIEN VA GIAM SAT DEM SAN PHAM CO GIAO TIEP VOI MAY TINH '+ chr(13)+' BANG CONG COM'+ chr(13)+ chr(13)+ ' Thuc hien: Nhom 3_04DT1'+ chr(13)+ chr(13)+''+' Danh sach nhom:'+ chr(13)+''+ chr(13)+ ' Le Minh Tuan'+ chr(13)+ ' Nguyen Dinh Trung'+chr(13)+ ' Tran Nguyen Cam Tu' +chr(13)+ ' Nguyen Thi Quynh Trang' +chr(13)+' Le Anh Quoc Khanh'+chr(13)+' Phonepasert Boualavong',mtinformation,[mbok],0); end; // PHU LUC procedure TForm1.Help2Click(Sender: TObject); begin memo1.Text:='Chuong trinh dieu khien va giam sat mach dem san pham. 1. Gui du lieu chon SEND.' + ' 2. Cai dat chon SETTING. 3. Mo cong COM chon OPEN. 4. Dong cong COM va thoat khoi chuong trinh chon File/EXIT. ' + ' 5. Xoa vung ghi chu chon CLEAR.'+' 6. Gioi thieu de tai & nhom thuc tap chon Help/About. ' +' 7. Chuc nang cua 1 so phim chon Help. 8. Khoi dong bang chuyen chon START.' +' 9. Dung bang chuyen chon STOP.' end; // KHOI DONG procedure TForm1.ButtonstartClick(Sender: TObject); begin if messagedlg('Ban muon khoi dong bang chuyen?',mtconfirmation,[mbok,mbcancel],0)=mrok then Begin Báo Cáo Thực Tập Công Nhân Trang 50 comport.WriteStr(chr($41)); memo1.Text:='Bang chuyen da duoc khoi dong'; end end; //DUNG procedure TForm1.ButtonstopClick(Sender: TObject); begin if messagedlg('Ban muon dung bang chuyen?',mtconfirmation,[mbok,mbcancel],0)=mrok then begin comport.WriteStr(chr($42)); memo1.Text:='bang chuyen da dung hoat dong'; end end; end.

Các file đính kèm theo tài liệu này:

  • pdfThiết kế hệ thống băng tải đóng gói sản phẩm điều khiển bằng bàn phím và giao tiếp máy tính.pdf