DEM SAN PHAM HIEN THI TREN 2 LED
ORG 000H ; điểm nhập reset hệ thống
MOV TMOD,#05H ; chọn chế độ định thời 05h = 00000101B, bộ định thời là bộ đếm (counter), chế độ định thời 16 bit
MOV TH0,#0 ; byte cao của bộ định thời bằng 0 (dùng để lưu giá trị đếm)
MOV TL0,#0 ; byte thấp của bộ định thời bằng 0 (dung để lưu giá trị đếm)
CLR TF0 ; xĩa cờ TF0
SETB P3.4 ; cấu hình p3.4 là ngõ vào SETB TR0 ; cho timer hoat động
TD: LCALL HEX_BCD ; gọi chương trình con HEX_BCD LCALL BCD_7DOAN ; gọi chương trình con BCD_7DOAN LCALL HIEN_THI ; hiện thị ra led
JMP TD ; khi đếm chạy tới giá trị 99 thì nĩ sẽ tự chạy lại giá trị ban đầu 00
;===================================================== HEX_BCD: giải mã HEX sang BCD
MOV A,TL0 ; sao chép nội dung ơ nhớ địa chỉ TL0 vào thanh ghi A
MOV B,#10 ; nạp giá trị l0 vào thanh ghi B
DIV AB ; chia số nguyên khơng dấu 8-bít chứa trong thanh ghi A cho số nguyên khơng dấu 8-bít chứa trong thanh ghi B
MOV 10H,B ; sao nội dung của thanh ghi B vào ơ nhớ 10H MOV B,#10 ; nạp giá trị 10H vào thanh ghi B
DIV AB ;
MOV 11H,B ;sao nội dung thanh ghi B vào ơ nhớ 11H RET
;===================================================== BCD_7DOAN: giải mã BCD sang mã LED
MOV DPTR,#500H ; địa chỉ vùng mã 7 đoạn
MOV R0,#10H ; vị trí hiển thị dữ liệu trong vùng mã MOV R1,#20H ;
BC: MOV A,@R0 ; di chuyển nội dung ơ nhớ cĩ địa chỉ chứa trong thanh ghi R0 vào A
MOVC A,@A+DPTR ; lấy mã hiển thị trong vùng mã theo vị trí MOV @R1,A ; di chuyển nội dung thanh ghi A vào ơ nhớ cĩ địa chỉ chứa trong R1
INC R0 ; tăng R0 INC R1 ; tăng R1
CJNE R0,#12H,BC ; so sánh nếu R0 = 12 thì quay lại “BC” RET
HIEN_THI:
MOV R0,#20H ; địa chỉ vùng mã hiển thị MOV A,#0FDH ; mã quét
HT: MOV P0,@R0 ; xuất mã hiển thị MOV P2,A ; xuất mã quét LCALL DELAY ; gọi lệnh delay MOV P2,#0FFH ; tắt led chống lem INC R0 ; lấy mã hiển thị kế tiếp RL A ; chuyển sang LED kế tiếp CJNE A,#0F7H,HT ; kiểm tra đã quét xong chưa RET
;===================================================== DELAY: ; chương trình tạo thời gian trễ 50 us
MOV 70H,#50 ; nạp giá trị 50 vào ơ nhớ thập phân vào ơ nhớ 70H
DJNZ 70H,$ ; giảm ơ nhớ 70 đi 1 và nhảy tại chổ nếu 70H chưa bằng 0
RET
ORG 500H ; đĩa chỉ lưu mã led 7 đoạn ( 0 => 9) DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
CH
Ư ƠNG III : TỔNG KẾT
I. HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Đồ án đã xây dựng thành cơng mạch đếm sản phẩm.Cĩ thể đếm được số sản phẩm khi đi qua bộ đếm 1 cánh chính xác.phần cứng chạy tương đối ổn định ít bị nhiễu,
tuy nhiên do đây là lần đầu tiên thực hiện nên đồ án nên kinh nghiệm chưa nhiều.
Mạch mới chỉ đếm được số sản phẩm hiển thị qua hai con led 7 đoạn.trong khi số chân của vi sử lý cịn nhiều.Vì thế trong tương lai đối với 1 số yêu cầu lớn của các cơng xưởng sản xuất chúng ta cĩ thể nâng bộ đếm sản phẩm lên nhiều hơn.
Mạch đếm sản phẩm là mạch cĩ nhiều ứng dụng trong thực tế đặc biệt là ở các xí nghiệp - cơng ty,cơ quan…
Mạch cĩ đặc điểm là nhỏ gọn và dễ lắp đặt chi phí đầu tư tương đối thấp.
Mạch cĩ thể kết hợp với bộ định thời gian và bộ nhớ ngồi để hẹn giờ cấp nguồn cho các thiết bị tắt mở tự động theo thời gian làm việc của nơi yêu cầu.
II. KẾT LUẬN
Đồ án mơn học là một bài tập lớn,là một thử thách đối với sinh viên sau một quá trình học và thực hành.tuy nhiên với đồ án mơn học này giúp cho sinh viên vận dụng tốt một cánh cụ thể những gì mình đã học về những vốn kiến thức đã được giảng dạy ở trường một cánh sáng tạo và hơn thế nữa là cánh phối hợp làm việc và cùng nhiên cứu giữa các thành viên trong nhĩm với nhau một cánh hợp nhất để đưa lại một kết quả tốt.
Xin chân thành cảm ơn sự nhận xét và đánh giá của các thầy cơ khoa điện tử -viễn thơng.
III. TÀI LIỆU THAM KHẢO
www.dientuvietnam.com.vn
Giáo trình vi điều khiển 80C51: CHỦ BIÊN.THS.PHẠM HỮU LỘC KS PHẠM QUANG TRÍ
www.google.com
www.picvietnam.com
……… ……