Thiết kế mạch đếm sản phẩm là những hộp sữa dùng vi điều khiển 8051 và cảm biến hồng ngoại
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NÔI VIỆN ĐIỆN BÁO CÁO ĐỒ ÁN I ĐỀ TÀI: Thiết kế mạch đếm sản phẩm là những hộp sữa dùng vi điều khiển 8051 và cảm biến hồng ngoại GVHD: LÊ HẢI SÂM NHÓM SINH VIÊN THỰC HIỆN: NGUYỄN SỸ TUÂN MSSV:20112719 LÊ MINH TÙNG MSSV:2011 HOÀNG HỮU TÔN MSSV: 2011 PHỤ LỤC PHẦN I LÝ THUYẾT I.ĐẶT VẤN ĐỀ: II MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI: III.GIẢI PHÁP VÀ GIỚI HẠN CỦA ĐỀ TÀI IV.XÂY DỰNG SƠ ĐỒ KHỐI V.CÁC KHỐI TRONG MẠCH ĐIỆN: Cảm biến Khối xử lí 3.Khối hiển thị Bàn phím: Kết hợp 8051 với nhớ PHẦN II THIẾT KẾ, THI CÔNG VÀ CHƯƠNG TRÌNH A.THIẾT KẾ, THI CÔNG PHẦN CỨNG I.KẾT NỐI 8051 VỚI BỘ NHỚ VÀ CÁC IC NGOẠI VI 1.Kết nối nhớ chương trình bên ngoài: 2.Kết nối nhớ liệu ngoài: 3.Kết nối mạch giải mã: Kết nối mạch chốt II THIẾT KẾ MẠCH RESET III.KẾT NỐI KÍT VI ĐIỀU KHIỂN VỚI THIẾT BỊ NGOẠI VI 1.Kết nối với bàn phím 2.Kết nối hiển thị: 3.Kết nối mạch rơle: IV.THIẾT KẾ MẠCH CẢM BIẾN 1.Khối phát 2.Khối đầu dò: B.CHƯƠNG TRÌNH ĐIỀU KHIỂN I.LƯU ĐỒ THUẬT TOÁN 1.Chương trình khởi động ngoại vi 2.Chương trình ngắt hiển thị 3.Chương trình nhấn số 4.Chương trình tăng 5.Chương trình kiểm tra phím ấn: IN –HEX 6.Chương trình dò mã phím ấn 7.Chương trình đầu dò 8.Chương trình Blank:xóa số nghĩa 9.Chươngtrình nhập hộp 10.Chương trình nhập sản phẩm 11.Chương trình delay 12.Chương trình lưu số sản phẩm số hộp ca sản xuất II.CHƯƠNG TRÌNH HỆ THỐNG PHẦN I I LÝ THUYẾT ĐẶT VẤN ĐỀ: Ngày với phát triển ngành khoa học kỹ thuật, kỹ thuật điện tử Mà kỹ thuật số đóng vai trò quan trọng lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp tự động hóa, cung cấp thông tin… phải nắm bắt vận dụng cách có hiệu nhằm góp phần vào phát triển khoa học kỹ thuật giới nói chung phát triển kỹ thuật điện tử nói riêng Từ tìm hiểu mạng thông qua thực tế, chúng em thấy nhiều khâu tự động hóa trình sản xuất Một khâu đơn giản dây chuyền sản xuất tự động hóa số lượng sản phẩm làm đếm cách tự động Tuy nhiên doanh nghiệp vừa nhỏ việc tự động hóa hoàn toàn chưa áp dụng khâu đếm sản phẩm, đóng bao bì mà sử dụng nhân công Từ điều thấy khả chúng em, chúng em muốn làm điều nhỏ để góp phần vào giúp người lao động bớt phần mệt nhọc chân tay mà cho phép tăng hiệu suất lao động lên gấp nhiều lần, đồng thời đảm bảo độ xác cao Nên chúng em định thiết kế mạch đếm sản phẩm gần gũi với thực tế thật có ý nghĩa chúng em làm phần nhỏ đóng góp cho xã hội Để làm mạch cần thiết kế hai phần là: phận cảm biến phận đếm *Bộ phận cảm biến: gồm phần phát phần thu Thông thường người ta sử dụng phần phát led hồng ngoại để phát ánh sáng hồng ngoại mục đích để chống nhiễu so với loại ánh sáng khác, phần thu transistor quang để thu ánh sáng hồng ngoại * Bộ phận đếm có nhiều phương pháp thực thi là: -Lắp mạch dùng kỹ thuật số với IC đếm, chốt, so sánh ghép lại -Lắp mạch dùng kỹ thuật vi xử lí -Lắp mạch dùng kỹ thuật vi điều khiển II MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI: Trong đồ án chúng em thực mạch đếm sản phẩm bằngphương pháp đếm xung Như sản phẩm qua băng chuyền phải có thiết bị để cảm nhận sản phẩm, thiết bị gọi cảm biến Khi sản phẩm qua cảm biến nhận tạo xung điện đưa khối xử lí để tăng dần số đếm Tại thời điểm tức thời, để xác định số đếm cần phải có phận hiển thị Tuy nhiên khu vực sản xuất hay ca sản xuất lại yêu cầu với số đếm khác phải có linh hoạt việc chuyển đổi số đếm Bộ phận chuyển đổi trực quan bàn phím Khi cần thay đổi số đếm người sử dụng cần nhập số đếm ban đầu vào mạch tự động đếm Khi số sản phẩm đếm với số đếm ban đầu mạch tự động dừng Từ suy mục đích yêu cầu đề tài: -Số đếm phải xác, thay đổi việc cài đặt số đếm ban đầu cách linh hoạt -Bộ phận hiển thị phải rõ ràng -Mạch điện không phức tạp, bảo đảm an toàn,dễ sử dụng -Giá thành không mắc III GIẢI PHÁP VÀ GIỚI HẠN CỦA ĐỀ TÀI: Giải pháp Theo đặc thù sản phẩm hộp sữa thùng sữa có kích thước sau: - Hộp sữa có chiều rộng 5cm chiều cao 10 cm rộng 2,5cm có khả che ánh sáng hồng ngoại -Thùng sữa có kích thước tương đối lớn nên che ánh sáng hồng ngoại Đặc điểm sản phẩm phân bố bang truyền phức tạp không theo hình thức Vậy nên ta phải đưa giải pháp cho hộp sữa bang truyền phải tách rời cảm biến phân biệt sản phẩm Theo tìm hiểu chúng em đưa giải pháp sau: Khi sản phẩm sản xuất băng truyên chúng năm san sát chạy băng truyền Để tách riêng sản phẩm cho cảm biến phân biệt từng sản phẩm phải cho sản phẩm chạy qua băng truyền có tốc độ khác nhau, trình chuyển giao qua băng truyền phải tạo khúc cua, băng truyền cho phép vừa đủ để sản phẩm qua Như vây sản phẩm tách riêng rẽ cẩm biến đo từng sản phẩm xác Giới hạn Vì thùng sữa chứa 24 hộp sữa nên phạm vi đếm sản phẩm thùng giới hạn từ 2->99 sản phẩm, số thùng giới hạn từ 0->9999 thùng IV XÂY DỰNG SƠ ĐỒ KHỐI V CÁC KHỐI TRONG MẠCH ĐIỆN: Cảm biến: a Giới thiệu sơ lược mạch cảm biến: Để cảm nhận lần sản phẩm qua cảm biến phải có phần phát phần thu Phần phát phát ánh sáng hồng ngoại phần thu hấp thụ ánh sáng hồng ngoại ánh sáng hồng ngoại có đặc điểm bị nhiễu so với loại ánh sáng khác Hai phậnphát thu hoạt động với tần số Khi có sản phẩm qua phần phát phần thu, ánh sáng hồng ngoại bị che phận thu hoạt động với tần số khác tần số phát tạo xung tác động tới phận xử lí Vậy phận phát phận thu phải có nguồn tạo dao động Bộ phận dao động tác động tới công tắc đóng ngắt nguồn phát nguồn thu ánh sáng Có nhiều linh kiện phát thu ánh sáng hồng ngoại chúng em chọn led hồng ngoại transitor quang linh kiện phát thu transistor quang linh kiện nhạy với ánh sáng hồng ngoại.Bộ phận tạo dao động dùng mạch LC, cổng logic, IC dao động Với việc sử dụng IC chuyên dùng tạo dao động, tạo dao động trở nên đơn giản với tần số phát thu b Các linh kiện mạch cảm biến: b1 Cấu tạo, nguyên lí hoạt động led hồng ngoại: _Led cấu tạo từ GaAs với vùng cấm có độ rộng 1.43eV tương ứng xạ 900nm Ngoài pha tạp Si với nguyên vật liệu GaAlAs, độ rộng vùng cấm thay đổi Với cách này, người ta tạo dải sóng 800 -900nm tạo điều hưởng cho led hồng ngoại phát bước sóng thích hợp cho điểm cực đại độ nhạy thu _Hoạt động: mối nối p -n phân cực thuận dòng điện qua nối lớn dẫn điện hạt tải đa số, mối nối phân cực nghịch có dòng rỉ di chuy ển hạt tải thiểu số Nhưng chiếu sáng vào mối nối, dòng điện nghịch tăng lên gần tỷ lệ với quang thông lúc dòng thuận không tăng Đặc tuyến volt –ampere led hồng ngoại sau: b2 Photon transistor Photon Transistorcũng tương tự transistor thông thường khác chỗ cực bazơ, thay cho tác dụng khống chế dòng vào cực bazơ khống chế chùm sáng dòng colector transitor có cực bazơ, khống chế tín hiệu ánh sáng.Cấu tạo transistor quang _ Ký hiệu cấu tạo: Dòng điện transistor: Vì nối thu phân cực nghịch nên có dòng rỉ Ico chạy thu –nền nối Khi chiếu ánh sáng vào miền bazơ, miền bazơ có phát xạ cặp điện tử lỗ trống làm xuất dòng IL Do ánh sáng khiến dòng thu trở thành: Ic = (β+ 1) (Ico + 𝐼𝐿 ) b3 IC dao động 555 Sơ đồ chân: Chức chân : Đây vi mạch định thời chuyên dùng, mắc thành dạng mạch đơn ổn hay bất ổn Điện áp cung cấp từ 3V đến 18V Dòng điện đến 200mA (loại vi mạch BJT) hay 100mA (loại CMOS) Chân 1: Nối với masse Chân 2: Nhận tín hiệu kích thích (trigger) Chân 3: Tín hiệu (output) Chân 4: Phục nguyên trạng thái ban đầu (preset) Chân 5: Nhận điện áp điều khiển (control voltag) Chân 6: Mức ngưỡng ( threshold ) Chân 7: Tạo đường phóng điện cho tụ Chân 8: Cấp nguồn Vcc Khối xử lí: Với khối xử lí người ta dùng IC rời khối vi xử lí Nếu sử dụng vi xử lí khối xử lý, người ta thiết kế mạch điện giao tiếp với máy tínhnên dễ dàng cho việc điều khiển từ xa việc thay đổi phần mềm mở rộng chương trình điều khiển mạch điện đếm nhiều dây chuyền thời điểm hay lưu lại số liệu ca sản xuất, lí chúng em sử dụng vi xử lí khối xử lí Cùng với thời gian, người cho đời nhiều loại vi xử lí từ bit đến 64 bit với cải tiến ngày ưu việt tùy theo mục đích sử dụng mà vi xử lí bit tồn Trong đồ án chúng em sử dụng vi điều khiển 8051 8051 vi xử lí bit có chứa nhớ bên có thêm định thời giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lí bit 8085 giao tiếp với máy tính giao tiếp song song nên cần có IC chuyển đổi liệu từ song song sang nối tiếp để giao tiếp với máy tính Với nhớ 8051 thích hợp cho chương trình có quy mô nhỏ nhiên 8051 kết hợp với nhớ cho chương trình có quy mô lớn Sau giới thiệu chúng em vi điều khiển 8051: a Giới thiệu cấu trúc phần cứng 8051 a1 Sơ đồ chân 8051 8051 IC vi điều khiển (Microcontroller) hãng Intel sản xuất IC có đặc điểm sau: - 4k byte ROM,128 byte RAM - Port I/O bit - đếm/ định thời 16 bit - Giao tiếp nối tiếp - 64k byte không gian nhớ chương trình mở rộng - 64k byte không gian nhớ liệu mở rộng - Một xử lý luận lý (thao tác bít đơn) - 210 bit địa hóa - Bộ nhân / chia Sơ lược chân 8051: a2 Chức chân 8051: Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7) Port có chức năng: thiết kế cỡ nhỏ không dùng nhớ mở rộng có chức đường IO, thiết kế lớn có nhớ mở rộng kết hợp bus địa bus liệu Port 1: từ chân đến chân (P1.0 _ P1.7) Port port IO dùng cho giao tiếp với thiết bị cần Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7) Port port có tác dụng kép dùng đường xuất nhập byte cao bus địa thiết bị dùng nhớ mở rộng Port 3: từ chân 10 đến chân 17(P3.0 _ P3.7) Port port có tác dụng kép Các chân port có nhiều chức ALE (Address Latch Enable): Khi 8051 truy xuất nhớ bên ngoài, Port có chức bus địa v liệu phải tách đường liệu địa Tín hiệu ALE chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp đường địa liệu kết nối chúng với IC chốt.Tín hiệu chân ALE xung khoảng thời gian port đóng vai trò địa thấp n ên chốt địa hoàn toàn tự động.EA\(External Access): Tín hiệu vào EA\ chân 31 thường mắc lên mức mức Nếu mức 1, 8051 thi hành chương trình từ ROM nội Nếu mức 0, 8051 thi hành chương trình từ nhớ mở rộng Chân EA\được lấy làm chân cấp nguồn 21V lập trình cho Eprom 8051 RST (Reset): Khi ngõ vào tín hiệu đưa lên mức cao chu kỳ máy, ghi bên nạp giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch phải tự động reset.Các ngõ vào dao động X1, X2: Bộ tạo dao động tích hợp bên 8051 Khi sử dụng 8051, người ta cần nối thêm tụ thạch anh tụ Tần số tụ thạch anh thường 12 Mh b Cấu trúc bên 8051 *Tổ chức nhớ: Bộ nhớ bên 8051 bao gồm ROM RAM RAM bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa hóa từng bit, bank ghi ghi chức đặc biệt 8051 có nhớ theo cấu trúc Harvard: có vùng nhớ riêng biệt cho chương trình liệu Chương trình d ữ liệu chứa bên 8051 8051 kết nối với 64 k byte nhớ chương trình 64 k byte b ộ nhớ liệu mở rộng c.Hoạt động ghi TIMER: 8051 có hai timer 16 bit, timer có bốn cách làm việc Người ta sử dụng timer để: - Định khoảng thời gian - Đếm kiện - Tạo tốc độ baud cho port nối tiếp 8051 Trong ứng dụng định khoảng thời gian, người ta lập trình timer khoảng đặn đặt cờ tràn timer Cờ dùng để đồng hóa chương trình để thực tác động kiểm tra trạng thái ngõ vào gửi kiện ngõra Các ứng dụng khác sử dụng việc tạo xung nhịp đặn timer để đo thời gian trôi qua hai kiện (ví dụ đo độ rộng xung ) Truy xuất timer 8051 dùng sáu ghi chức đặc biệt cho bảng sau: SRF TCON TMOD TL0 TL1 TH0 TH1 Mục đích Điều khiển Timer Chế độ Timer Byte thấp Timer Byte thấp Timer Byte cao Timer Byte cao Timer Địa chỉ 88H 89H 90H Địa chỉ hóa từng bit Có Không Không 91H Không 92H Không 93H không Thanh ghi chế độ timer (TMOD): Thanh ghi TMOD chứa hai nhóm bit dùng để đặt chế độ làm việc cho Timer 0, Timer Thanh ghi điều khiển timer(TCON): 100µs Dò mức điện áp khoảng thời gian 100 µs cách nạp 100 vào R3, giảm R3, R3 #0 tiếp tục dò mức Chương trình Blank:xóa số nghĩa Chương trình có ý nghĩa sau: số sản phẩm hay số hộp tới hàng đơn vị, chục, trăm số đứng trước nghĩa bị loạibỏ (không sáng ) ô nhớ có nghĩa lưu (lần lượt từ hàng đơn vị hàng ngàn) vào ô nhớ từ 70H đến77H Loại bỏ cách so sánh giá trị lớn hàng ngàn với số xóa led hiển thị hàng ngàn, tiếp tục so sánh xem ô nhớ hàng trăm với số xóa led hiển thị hàng trăm, tương tự cho hàng chục, ô nhớ hàng đơn vị giá trị led hàng đơn vị hiển thị Chươngtrình nhập hộp: Chương trình cho phép nhập số từ đến 9999 Nếu số nhấn từ A đến F yêu cầu nhập lại Khi số nhấn lưu vào ghi A từ đến 9: chấp nhận số bit 7D, 7E = bit 7D = yêu cầu nhập lại hộp, bit 7E = 1, thoát khỏi chương trình Các giá trị nhập lưu vào ô nhớ từ (74H) đến (77H) 7C (LƯUHOPL:lưu hộp byte thấp), 7D (LƯUHOPH: lưu hộp byte cao) Nếu đồng ý với số nhập nhấn A ngược lại B (xóa số nhập) 10 Chương trình nhập sản phẩm: Chương trình cho phép nhập số từ đến 99 Số nhập bit 7D, 7E = bit 7D = yêu cầu nhập lại Các giá trị nhập lưu vào ô nhớ từ (74H) đến (77H) 7C (LƯUSPL: lưu sản phẩm byte thấp), 7D (LƯUSPH: lưu sản phẩm byte cao) Nếu đồng ý với số nhập nhấn A ngược lại B (xóa số nhập) 11 Chương trình delay: Để khống chế thời gian delay nạp giá trị ban đầu cho timer Set cho timer chạy Khi timer đếm thời gian nạp cờ báo tràn set lên [1] Muốn thời gian delay lớn nạp giá trị cho R4, giảm R4 sau lần tràn timer Như thời gian delay là: t = (R4) x count0 Khi R4 = hết thời gian delay 12 Chương trình lưu số sản phẩm số hộp ca sản xuất: Chương trình lưu kết ca sản xuất Số hộp,số sản phẩm lưu vào ô nhớ từ 30H đến 53H Xét nội dung ô nhớ 2EH, nội dung ô nhớ 2EH = sau đếm xong băng chuyền báo hiệu ngưng đếm nội dung ô nhớ 2EH trao cho ghi A lưu kết vào ca Nếu ca sau cho phép hoạt động nội dung ô nhớ 2EH tăng lên tương tự đươc lưu vào ca tương ứng ( ca = ca trước + 1) 13 Chương trình cho phép xem số liệu ca sản xuất: Chương trình xem kết ca sản xuất, cụ thể xem nội dung số hộp số sản phẩm ca sản xuất Ở đề tài chúng em viết chương trình xem tối đa ca Tức muốn kiểm tra ca nhập cụ thể ca ca thứ thông qua bàn phím cách nhấn số Trước số hộp, số sản phẩm lưu vào ô nhớ từ 30H đến 53H Khi ro-le băng chuy ền ngưng hoạt động sau ca tiếp tụcmuốn nhập số liệu vào để đếm cho ca nh ấn phím khác phím E Còn nhấn phím E tức cho phép xem số liệu ca, cần nhấn phím có loại trừ phím chứcnăng mã phím nhấn lưu vào ghi A Nếu A đưa nội dung ô nhớ lưu số liệu ca phận hiển thị Và muốn xem tiếp ca nhấn phím cho phép xem E nhập số liệu vào Còn muốn lưu số ca nhiều tối đa từ tu99 hay từ đến 999 hay từ đén 99 tương tự khác nhập số liệu vào gọi nhấn tối đa số , 3số, hay số chương trình nh ập số lại giống chương trình nhập số sản phẩm số hộp, nhiều ca lưu số ô nhớ phải tăng theo II CHƯƠNG TRÌNH HỆ THỐNG ;CHUONG TRINH DEM SAN PHAM VA DONG HOP ; -KHAI BAO CAC BIEN HANG CWR4 EQU 4003H ;CWR4 ROLE_BC EQU 4000H ;PORTA4 CAMBIEN EQU 4001H ;PORTB4 NGO_DP1 EQU 4002H ;PORTC4 CWR6 EQU 6003H ;CWR6 HIENTHI EQU 6000H ;PORTA6 ROLE_DH EQU 6001H ;PORTB6 CHONLED EQU 6002H ;PORTC6 LED70 EQU 70H LED71 EQU 71H LED72 EQU 72H LED73 EQU 73H LED74 EQU 74H LED75 EQU 75H LED76 EQU 76H LED77 EQU 77H LUU_SPL EQU 78H ;Luu san pham (byte thap) LUU_SPH EQU 79H ;Luu san pham (byte cao) DEM_SPL EQU 7AH ;Dem san pham (byte thap) DEM_SPH EQU 7BH ;Dem san pham (byte cao) LUUHOPL EQU 7CH LUUHOPH EQU 7DH DEMHOPL EQU 7EH DEMHOPH EQU 7FH COUNT0 EQU -10000 DELAY1 EQU 50 DELAY2 EQU 20 TOCDO1 EQU COUNT1 EQU -250 BLK EQU 0FH START EQU 0CH NO BIT 7DH YES BIT 7EH LUU_CY BIT 7FH ; -CHUONG TRINH CHINH ORG 00H LJMP BAT_DAU0 ORG 1BH LJMP NGAT_T1 ORG 30H BAT_DAU0: MOV R1,#LED77 MOV R2,#TOCDO1 MOV TMOD,#21H MOV TH1,#COUNT1 LCALL KD_NV SETB TR1 SETB ET1 SETB EA BAT_DAU1: MOV 2EH,#00H MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#00H MOV 37H,#00H MOV 38H,#00H MOV 39H,#00H MOV 3AH,#00H MOV 3BH,#00H MOV 3CH,#00H MOV 3DH,#00H MOV 3EH,#00H MOV 3FH,#00H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV 48H,#00H MOV 49H,#00H MOV 4AH,#00H MOV 4BH,#00H MOV 4CH,#00H MOV 4DH,#00H MOV 4EH,#00H MOV 4FH,#00H MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 56H,#00H MOV 57H,#00H BAT_DAU: MOV DEMHOPL,#00H MOV DEMHOPH,#00H MOV DEM_SPL,#00H MOV DEM_SPH,#00H INC 2EH MOV 77H,2EH MOV 76H,#BLK MOV 75H,#BLK MOV 74H,#BLK MOV 73H,#BLK MOV 72H,#BLK MOV 71H,#0AH MOV 70H,#10H MOV R4,#250 LCALL DELAY MOV LED70,#0DH ;'N' MOV LED71,#0BH ;'H' MOV LED72,#0AH ;'A' MOV LED73,#0EH ;'P' LCALL NHAPHOP LCALL NHAP_SP MOV DPTR,#ROLE_BC MOV A,#0FFH ;Cho phep bang chuyen hoat dong MOVX @DPTR,A DEM: LCALL BLANK LCALL DAUDO MOV A,DEM_SPL LCALL TANG_1 MOV DEM_SPL,A JNC DU_SP? MOV A,DEM_SPH LCALL TANG_1 MOV DEM_SPH,A DU_SP?: MOV A,DEM_SPH CJNE A,LUU_SPH,DEM MOV A,DEM_SPL CJNE A,LUU_SPL,DEM LCALL BLANK MOV R4,#DELAY1 LCALL DELAY MOV A,#00H MOV DPTR,#ROLE_DH MOVX @DPTR,A MOV R4,#DELAY2 LCALL DELAY MOV A,#0FFH MOVX @DPTR,A MOV DEM_SPL,#00H MOV DEM_SPH,#00H MOV A,DEMHOPL LCALL TANG_1 MOV DEMHOPL,A JNC DUHOP? MOV A,DEMHOPH LCALL TANG_1 MOV DEMHOPH,A DUHOP?: MOV A,DEMHOPH CJNE A,LUUHOPH,DEM MOV A,DEMHOPL CJNE A,LUUHOPL,DEM LCALL BLANK KETTHUC: MOV DPTR,#ROLE_BC MOV A,#00H MOVX @DPTR,A MOV A,2EH LCALL LUU L14: LCALL IN_HEX CJNE A,#0EH,L12 MOV 77H,#BLK MOV 76H,#BLK MOV 75H,#BLK MOV 74H,#BLK MOV 73H,#BLK MOV 72H,#BLK MOV 71H,#0AH MOV 70H,#10H L13: LCALL IN_HEX PUSH ACC CLR C SUBB A,#0AH POP ACC JNC L13 MOV 77H,A LCALL DELAY LCALL XEM MOV 74H,#0CH MOV DEMHOPL,LUUHOPL MOV DEMHOPH,LUUHOPH MOV DEM_SPL,LUU_SPL MOV DEM_SPH,LUU_SPH LCALL BLANK LCALL DELAY LJMP L14 L12: MOV A,2EH CJNE A,#09H,L15 LJMP BAT_DAU1 L15: LJMP BAT_DAU ; KHAI BAO CHUONG TRINH CON -; CHUONG TRINH CON LUU SO HOP, SO SAN PHAM LUU: NOP L0: CJNE A,#01H,L1 MOV 30H,LUUHOPL MOV 31H,LUUHOPH MOV 32H,LUU_SPL MOV 33H,LUU_SPH LJMP L10 L1: CJNE A,#02H,L2 MOV 34H,LUUHOPL MOV 35H,LUUHOPH MOV 36H,LUU_SPL MOV 37H,LUU_SPH LJMP L10 L2: CJNE A,#03H,L3 MOV 38H,LUUHOPL MOV 39H,LUUHOPH MOV 3AH,LUU_SPL MOV 3BH,LUU_SPH LJMP L10 L3: CJNE A,#04H,L4 MOV 3CH,LUUHOPL MOV 3DH,LUUHOPH MOV 3EH,LUU_SPL MOV 3FH,LUU_SPH LJMP L10 L4: CJNE A,#05H,L5 MOV 40H,LUUHOPL MOV 41H,LUUHOPH MOV 42H,LUU_SPL MOV 43H,LUU_SPH LJMP L10 L5: CJNE A,#06H,L6 MOV 44H,LUUHOPL MOV 45H,LUUHOPH MOV 46H,LUU_SPL MOV 47H,LUU_SPH LJMP L10 L6: CJNE A,#07H,L7 MOV 48H,LUUHOPL MOV 49H,LUUHOPH MOV 4AH,LUU_SPL MOV 4BH,LUU_SPH LJMP L10 L7: CJNE A,#08H,L8 MOV 4CH,LUUHOPL MOV 4DH,LUUHOPH MOV 4EH,LUU_SPL MOV 4FH,LUU_SPH LJMP L10 L8: CJNE A,#09H,L10 MOV 50H,LUUHOPL MOV 51H,LUUHOPH MOV 52H,LUU_SPL MOV 53H,LUU_SPH L10: RET ; -;CHUONG TRINH CON XEM XEM: NOP CJNE MOV MOV MOV MOV A,#00H,H0 LUUHOPL,#0FFH LUUHOPH,#0FFH LUU_SPL,#0FFH LUU_SPH,#0FFH H0: H1: H2: H3: H4: H5: H6: H7: LJMP H9 CJNE A,#01H,H1 MOV LUUHOPL,30H MOV LUUHOPH,31H MOV LUU_SPL,32H MOV LUU_SPH,33H LJMP H9 CJNE A,#02H,H2 MOV LUUHOPL,34H MOV LUUHOPH,35H MOV LUU_SPL,36H MOV LUU_SPH,37H LJMP H9 CJNE A,#03H,H3 MOV LUUHOPL,38H MOV LUUHOPH,39H MOV LUU_SPL,3AH MOV LUU_SPH,3BH LJMP H9 CJNE A,#04H,H4 MOV LUUHOPL,3CH MOV LUUHOPH,3DH MOV LUU_SPL,3EH MOV LUU_SPH,3FH LJMP H9 CJNE A,#05H,H5 MOV LUUHOPL,40H MOV LUUHOPH,41H MOV LUU_SPL,42H MOV LUU_SPH,43H LJMP H9 CJNE A,#06H,H6 MOV LUUHOPL,44H MOV LUUHOPH,45H MOV LUU_SPL,46H MOV LUU_SPH,47H LJMP H9 CJNE A,#07H,H7 MOV LUUHOPL,48H MOV LUUHOPH,49H MOV LUU_SPL,4AH MOV LUU_SPH,4BH LJMP H9 CJNE A,#08H,H8 MOV LUUHOPL,4CH MOV LUUHOPH,4DH MOV LUU_SPL,4EH MOV LUU_SPH,4FH LJMP H9 H8: CJNE A,#09H,H9 MOV LUUHOPL,50H MOV LUUHOPH,51H MOV LUU_SPL,52H MOV LUU_SPH,53H LJMP H9 H9: RET ; ; CHUONG TRINH CON CHO HIEN THI NGAT_T1: MOV LUU_CY,C DJNZ R2,THOATT1 MOV R2,#TOCDO1 PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#CHONLED MOV A,R1 SWAP A MOVX @DPTR,A MOV DPTR,#HIENTHI MOV A,@R1 LCALL TRABANG MOVX @DPTR,A DEC R1 POP DPL POP DPH POP ACC CJNE R1,#LED70-1,THOATT1 MOV R1,#LED77 THOATT1: MOV C,LUU_CY RET ; -;CHUONG TRINH CON KHOI DONG THIET BI NGOAI VI KD_NV: MOV DPTR,#CWR4 MOV A,#82H ;PORTB4:INPUT MOVX @DPTR,A MOV DPTR,#ROLE_BC MOV A,#00H ;Dung bang chuyen MOVX @DPTR,A MOV DPTR,#NGO_DP1 MOV A,#0FFH MOVX @DPTR,A MOV DPTR,#CWR6 MOV A,#80H MOVX @DPTR,A MOV A,#0FFH MOV DPTR,#HIENTHI MOVX @DPTR,A MOV DPTR,#ROLE_DH MOVX @DPTR,A MOV DPTR,#CHONLED MOVX @DPTR,A RET ; -;CHUONG TRINH CON DELAY DELAY: MOV TH0,#HIGH COUNT0 MOV TL0,#LOW COUNT0 SETB TR0 CHO: JNB TF0,CHO CLR TF0 CLR TR0 DJNZ R4,DELAY RET ; -;CHUONG TRINH CON NHAN SO NHANSO: CLR YES CLR NO LCALL IN_HEX CJNE A,#0AH,XOASO? SETB YES CLR A LJMP THOAT0 XOASO?: CJNE A,#0BH,LOAITRU SETB NO LJMP THOAT0 LOAITRU: PUSH ACC CLR C SUBB A,#0AH POP ACC JNC NHANSO THOAT0: RET ; -;CHUONG TRINH CON TANG TANG_1: CLR AC CLR C ADD A,#1 DA A RET ; -;CHUONG TRINH CON DAU DO DAUDO: MOV DPTR,#CAMBIEN DO1: MOV R3,#110 DO2: MOV R4,#200 DOMUC_L: MOVX A,@DPTR JB ACC.0,DO1 DJNZ R4,DOMUC_L DJNZ R3,DO2 DOTIEP1: MOV R3,#34 DOTIEP2: MOV R4,#200 DOMUC_H: MOVX A,@DPTR JNB ACC.0,DOTIEP1 DJNZ R4,DOMUC_H DJNZ R3,DOTIEP2 RET ; -CHUONG TRINH CON XOA SO KHONG CO NGHIA BLANK: MOV A,DEMHOPH SWAP A ANL A,#0FH MOV LED70,A MOV A,DEMHOPH ANL A,#0FH MOV LED71,A MOV A,DEMHOPL SWAP A ANL A,#0FH MOV LED72,A MOV A,DEMHOPL ANL A,#0FH MOV LED73,A MOV A,DEM_SPH ANL A,#0FH MOV LED75,A MOV A,DEM_SPL SWAP A ANL A,#0FH MOV LED76,A MOV A,DEM_SPL ANL A,#0FH MOV LED77,A MOV A,LED70 JNZ THOAT3 MOV LED70,#BLK MOV A,LED71 SOHOP1: SOHOP2: SOHOP3: JNZ THOAT3 MOV LED71,#BLK MOV A,LED72 JNZ THOAT3 MOV LED72,#BLK THOAT3: MOV A,LED75 JNZ THOAT4 MOV LED75,#BLK MOV A,LED76 JNZ THOAT4 MOV LED76,#BLK THOAT4: RET ; -;CHUONG TRINH CON NHAP HOP NHAPHOP: MOV LED74,#BLK MOV LED75,#BLK MOV LED76,#BLK MOV LED77,#00H MOV LUUHOPL,#00H MOV LUUHOPH,#00H LCALL NHANSO JZ SOHOP1 JBC NO,NHAPHOP MOV LED77,A MOV LUUHOPL,A LCALL NHANSO JBC YES,THOAT1 JBC NO,NHAPHOP MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUUHOPL,A LCALL NHANSO JBC YES,THOAT1 JBC NO,NHAPHOP MOV LED75,LED76 MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUUHOPL,A MOV LUUHOPH,LED75 SOHOP4: LCALL NHANSO JBC YES,THOAT1 JBC NO,NHAPHOP MOV LED74,LED75 MOV LED75,LED76 MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUUHOPL,A MOV A,LED74 SWAP A ORL A,LED75 MOV LUUHOPH,A KT_NHAPHOP: LCALL IN_HEX CJNE A,#0AH,XOANHAPHOP? LJMP THOAT1 XOANHAPHOP?: CJNE A,#0BH,KT_NHAPHOP LJMP NHAPHOP THOAT1: RET ; -;CHUONG TRINH CON NHAP SAN PHAM NHAP_SP: MOV LED74,#0CH MOV LED75,#BLK MOV LED76,#BLK MOV LED77,#00H MOV LUU_SPL,#00H MOV LUU_SPH,#00H SO_SP1: LCALL NHANSO JZ SO_SP1 JBC NO,NHAP_SP MOV LED77,A MOV LUU_SPL,A SO_SP2: LCALL NHANSO JBC YES,KT_NHAP_SP JBC NO,NHAP_SP MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUU_SPL,A SO_SP3: LCALL NHANSO JBC YES,KT_NHAP_SP JBC NO,NHAP_SP MOV LED75,LED76 MOV LED76,LED77 MOV LED77,A MOV A,LED76 SWAP A ORL A,LED77 MOV LUU_SPL,A MOV LUU_SPH,LED75 KT_NHAP_SP: LCALL IN_HEX CJNE A,#START,XOA_NHAP_SP? LJMP THOAT2 XOA_NHAP_SP?: CJNE A,#0BH,KT_NHAP_SP LJMP NHAP_SP THOAT2: RET ; -;CHUONG TRINH CON KIEM TRA CO PHIM NHAN ? IN_HEX: MOV R3,#50 BACK1: LCALL GET_KEY JNC IN_HEX DJNZ R3,BACK1 PUSH ACC BACK2: MOV R3,#50 BACK3: LCALL GET_KEY JC BACK2 DJNZ R3,BACK3 POP ACC RET ; -; CHUONG TRINH CON DO AN PHIM GET_KEY: MOV A,#0FEH MOV R6,#4 TEST_NEXT: MOV P1,A MOV R7,A MOV A,P1 ANL A,#0F0H CJNE A,#0F0H,KEY_BIT MOV A,R7 RL A DJNZ R6,TEST_NEXT CLR C SJMP EXIT KEY_BIT: MOV R7,A MOV A,#4 CLR C SUBB A,R6 MOV R6,A MOV A,R7 SWAP A MOV R5,#4 AGAIN: RRC A JNC DONE INC R6 INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C MOV A,R6 EXIT: RET ; -CHUONG TRINH CON TRA BANG TRABANG: ADD A,#11 MOVC A,@A+PC RET DB 'DEFINEBYTE' DB 0C0H ; '0' DB 0F9H ; '1' DB 0A4H ; '2' DB 0B0H ; '3' DB 099H ; '4' DB 092H ; '5' DB 082H ; '6' DB 0F8H ; '7' DB 080H ; '8' DB 090H ; '9' DB 088H ; 'A' DB 089H ; 'H' DB 09CH ; 'o' DB 0C8H ; 'N' DB 08CH ; 'P' DB 0FFH ; 'BLANK' DB 0C6H ; 'C' ; -KET THUC CHUONG TRINH -END [...]... liệu nên phải có mạch giải mã để chọn led Chúng em sử dụng IC giải mã 74LS138.Vì vậy sơ đồ khối của mạch hiển thị như sau: 4 Bàn phím: Vì đây là mạch đếm sản phẩm, đếm số sản phẩm trong một thùng, và số sản phẩm trong một lô, mỗi loại như vậy có thể nhập vào số đếm trong phạm vi từ 0 đến tối đa 9999, do đó chúng em sử dụng 10 phím số từ 0 đến 9 Và mỗi lần nhập số vào để nhận biết là nhập mấy số hoặc... sẽ là: t = (R4) x count0 Khi R4 = 0 là hết thời gian delay 12 Chương trình con lưu số sản phẩm số hộp trong mỗi ca sản xuất: Chương trình này lưu kết quả của mỗi ca sản xuất Số hộp, số sản phẩm được lưu vào các ô nhớ từ 30H đến 53H Xét nội dung ô nhớ 2EH, nếu nội dung ô nhớ 2EH = 1 và sau khi đếm xong và băng chuyền báo hiệu ngưng đếm thì nội dung ô nhớ 2EH trao cho thanh ghi A và lưu kết quả vào... nhớ, muốn làm được vi c này người ta phải cung cấp cho mỗi ô nhớ và thiết bị ngoại vi tầm địa chỉ cho thiết bị đó Vì vậy cần có mạch giải mã địa chỉ trong mạch điện Người ta thường dùng IC giải mã 74HC138 với các ngõ ra được nối tới các ngõ vào chọn chip (CS\) trên các IC nhớ Sau đây là sơ đồ chân, bảng sự thật và đặc điểm của 74138 -Ngõ vào A,B,C là các chân ngõ vào số nhị phân 3 bit C là bit có trọng... ền hoạt động (đóng role BC) Đọc dữ liệu từ cảm biến (đầu dò) Nếu có sản phẩm đi qua thì gọi chương trình đếm Nếu đủ sản phẩm một hộp thì gọi role đóng hộp đồng thời gọi chương trình đếm hộp Nếu đủ số hộp thì băng chuy ền ngưng hoạt động và chờ cho ca tiếp theo Khi đã hoàn thành 9 ca sản phẩm thì quay lại làm từ ca 1 CHƯƠNG TRÌNH CHÍNH Nạp giá trị đầu vào các ô nhớ No Ca 0 Yes Ca=9 Ca Ca +1 Gọi chương... 1 sau đó được đưa qua cổng đảo nên ngõ ra là mức logic 0) được đưa vào bit 0 của port B1 sẽ làm thay đổi mức logic từ 1 xuống 0 thì ô nhớ dùng cho vi c đếm sản phẩm sẽ được tăng lên một đơn vị thông qua vi c gọi chương trình con tăng 1, và khi đủ số sản phẩm thì ô nhớ dùng cho vi c đếm số hộp cũng được tăng lên một đơn vị thông qua ch ương trình con tăng 1, và cứ mỗi lần như vậy sự thay đổi số liệu... được thiết lập khi CE \và OE\ ở mức thấp, PGM ở mức cao Có hai ngõ vào điều khiển dùng để truy xuất Data từ ROM là CE \và OE \dùng để kiểm soát ngõ ra Data, đưa Data lên Data bus + Chế độ chờ (Stanby Mode ): Chế độ này làm giảm công suất tiêu thụ được thiết lập khi CE\ ở mức cao, ở chế độ này Data ở trạng thái trở kháng cao độc lập c.Giải mã địa chỉ: Do 8051 thiết kế cần quản lý nhiều thiết bị ngoại vi, ... con nhập số sản phẩm Cho phép băng truyền hoạt động Chương trình xem số liệu lưu bất kỳ Yes No Phím E Gọi chương trình con đo Đếm sản phẩm No Đủ sản phẩm Yes Gọi chương trình kiểm tra phím bấm Cho phép chương trình ngừng hoạt động Gọi chương trình lưu số hộp và số sản phẩm No Yes Gọi chương trình con rơ le đóng hộp Đếm hôp Đủ hộp II CÁC CHƯƠNG TRÌNH CON: 1 Chương trình con khởi động ngoại vi 8255 chỉ... liệu đã nhập vào thì nhấn phím A tức là đặt bit YES = 1 (7E = 1) để kết thúc quá trình nhập số liệu Còn đang nhập nếu muốn bỏ số liệu vừa nhập vào thì nhấn phím phím B tức là đặt bit NO = 1 (7D = 1) Khi nhập xong số sản phẩm và số hộp thông qua chương trình con nhấn số này thì nhấn phím C tức là cho phép sản phẩm từ lúc này đi qua đầu dò và bắt đầu đếm 4 Chương trình tăng 1: Cứ có một sản phẩm đi qua... led để hiển thị Vì đếm sản phẩm đến tối đa là 99 và đếm số hộp tối đa là 9999 nên phải sử dụng 2 byte để đếm sản phẩm từ hàngđơn vị đến h àng chục sử dụng byte thấp, còn hàng trăm và hàng ngàn sử dụng byte cao Nên khi so sánh số liệu đang đếm với số liệu đã lưu ban đầu xem đã bằng chưa thì ph ải so sánh lần lượt byte cao trước tức là hàng ngàn, hàng trăm sau đó tới byte thấp tứclà hàng ch ục hàng... với 8051 2 Kết nối bộ nhớ dữ liệu ngoài: Bộ nhớ Ram được cho phép ghi đọc bằng các tín hiệu điều khiển WRvà RD 8051 có 1 lệnh duy nhất truy xuất dữ liệu của bộ nhớ dữ liệu ngoài là MOVX dùng con trỏ 16 bit (DPTR) hoặc R0 và R1 xem như thanh ghi địa chỉ Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 8051 cũng giống như EPROM Ngoài ra, RD của 8051 được nối tới chân cho phép xuất (OE\) của Ram và chân ... án chúng em thực mạch đếm sản phẩm bằngphương pháp đếm xung Như sản phẩm qua băng chuyền phải có thiết bị để cảm nhận sản phẩm, thiết bị gọi cảm biến Khi sản phẩm qua cảm biến nhận tạo xung điện...1.Kết nối nhớ chương trình bên ngoài: 2.Kết nối nhớ liệu ngoài: 3.Kết nối mạch giải mã: Kết nối mạch chốt II THIẾT KẾ MẠCH RESET III.KẾT NỐI KÍT VI ĐIỀU KHIỂN VỚI THIẾT BỊ NGOẠI VI 1.Kết... thiết kế mạch đếm sản phẩm gần gũi với thực tế thật có ý nghĩa chúng em làm phần nhỏ đóng góp cho xã hội Để làm mạch cần thiết kế hai phần là: phận cảm biến phận đếm *Bộ phận cảm biến: gồm phần