Tải bản đầy đủ (.pptx) (32 trang)

ĐỒ ÁN ĐẾM SP HIỂN THỊ LCD

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.64 MB, 32 trang )

ĐỒ ÁN MÔN HỌC
VI ĐIỀU KHIỂN
ĐẾM SẢN PHẨM ỨNG DỤNG VI ĐIỀU KHIỂN 8051
HIÊN THỊ LÊN LCD ,DỪNG ĐỘNG CƠ BĂNG CHUYỀN

Sinh viên thực hiện :
Giáo viên hướng dẫn: Ths.LÊ XỨNG


1.DẪN NHẬP



Ngày nay với sự phát triển của khoa học kỹ thuật ,tự động hóa sản xuất đang là một yêu cầu cấp thiết
để nâng cao năng suất ,giảm giá thành để tăng tính cạnh tranh nên việc ứng dụng kỹ thuật vi điều
khiển ,vi xử lý vào sản xuất là đều tất yếu.



Nếu nhìn vào quy trình sản xuất từ khâu cấp liệu,sản xuất sản phẩm,đóng gói sản phẩm thì ở khâu
nào cũng ứng dụng vi điều khiển, vì vậy khi chọn đề tài yêu cầu khó nhất là chọn đề tài làm sao cho
tính ứng dụng thực tiễn lại vừa sức với kiến thức mình đã học.Cuối cùng thì đề tài em chọn mạch
đếm sản phẩm ứng dụng vi điều khiển 8051.


MỤC ĐÍCH
đích YÊU CẦU CỦA ĐỀ TÀI
2. 1.Mục

- Hệ thống lại các kiến thức đã học cho sinh viên về môn vi điều khiển đó là cách thiết kế phần cứng,
viết chương trình … để hoàn thành yêu cầu đặt ra của thực tiễn





2.Yêu cầu
-Đếm số sản phẩm di chuyển trên băng chuyền ,hiển thị chính xác số sản phẩm đi qua,có khả năng
dừng băng chuyền.

-Trong đồ án này thực hiện đếm sản phẩm bằng phương pháp đếm xung, một mạch đếm sản phẩm yêu
cầu thực tế là phải đếm sản phẩm chính xác, có khả năng chống nhiễu.Tùy theo đặc điểm của sản
phẩm như là vê hình dáng ,kích thước ,vật liệu mà có các yêu cầu khác nhau
-Tuy nhiên trong phạm vi đồ án môn học và với mức độ kiến thức mình đã học đề tài này chỉ dừng ở
mức độ đếm sản phẩm tử 0000 đến 9999 ,hiển thị ra LCD và có khả năng dừng băng chuyền


3.LÊN PHƯƠNG ÁN THIẾT KẾ



1.Chọn phương pháp đếm xung

Có rất nhiều phương án đếm xung ứng dụng vi điều khiển đó là ta có thể sử dụng một cổng bất kỳ làm
đầu vào đếm xung, sử dụng ngắt, hoặc là sử dụng bộ định thời. ở đây ta chọn phương pháp ngắt



2.Thiết kế phần cứng

-để nhận biết được sản phẩm đi qua ta dùng cảm biến,có rất nhiều loại cảm biến có thể dùng trong việc
đếm sản phẩm như cảm biến điện dung,cảm biến cảm ứng từ,cảm biến quang .Đê đơn giản trong quá
trình thiết kế ta chọn cảm biến hồng ngoại

- Để hiển thị số sản phẩm đi qua ta có thể dùng led 7 đoạn,lcd


SƠ ĐỒ KHỐI MẠCH ĐẾM SẢN PHẨM

KHỐI
KHỐI HIỂN
HIỂN THỊ
THỊ

KHỐI
KHỐI CẢM
CẢM BIẾN
BIẾN

KHỐI XỬ LÝ

BÀN
BÀN PHÍM
PHÍM

KHỐI
KHỐI CHẤP
CHẤP HÀNH
HÀNH


4.THIẾT KẾ PHẦN CỨNG CHI TIẾT

 1.Mạch cảm biến

Dùng cảm biến hồng ngoại và LM358





Nguyên lý hoạt động
- Điện trở R10 ,R13 dùng để hạn dòng cho led,biến trở VR51 và R11 phân áp cho 2 chân đầu vào
LM358.R12 phân áp cho transitor A1015 .LM 358 có nhiệm vụ so sánh tín hiệu đầu vào.



Khi chưa có sản phẩm đi qua led thu có tín hiệu điện trở giảm xuống >tăng nên Q2 không dẫn áp tại
đầu ra
ngắt 0 ≈5V



Khi có sản phẩm đi qua do bị che nên điện trở Led thu tăng áp trên chân 6 tăng  giảm nên Q2 dẫn
áp tại đầu ra Ngat0 <0.8V ≈0V của vi điều khiển nên tạo ra một ngắt.


2.Mạch hiển thị
Sử dụng LCD 16x2


3.Mạch phím ấn

Phím ấn kết hợp cùng với tụ chống rung



* Lựa chọn cách kết nối
Có 3 cách kết nối nhận đầu vào cho vi điều khiển


* Chống rung phím
HIÊN TƯỢNG RUNG PHÍM

CÁCH KHẮC PHỤC


4. Mạch điều khiển


5.Mạch điều khiển động cơ
Để điều khiển động sử dụng mạch cầu H


5.THIẾT KẾ PHẦN MỀM


5.1 LƯU ĐỒ THUẬT TOÁN
1

a. Chương trình chính
S
BẮT
BẮT ĐẦU
ĐẦU


Đ
Start=1
Start=1

Xác
Xác lập
lập các
các thông
thông số
số ban
ban đầu:
đầu:
-Khai
-Khai báo
báo Stack,xóa
Stack,xóa các
các thanh
thanh ghi
ghi
-Định
-Định nghĩa
nghĩa cổng
cổng vào
vào ra,byte
ra,byte nhớ
nhớ
-Khai
-Khai báo
báo ngắt
ngắt ngoài

ngoài ,định
,định thời
thời

-Chạy
-Chạy Đ/C
Đ/C băng
băng chuyền
chuyền
-Cho
-Cho phép
phép ngắt
ngắt ngoài
ngoài

Khởi
Khởi động
động LCD
LCD
-Hiển
-Hiển thị
thị số
số sản
sản phẩm
phẩm đếm
đếm
Ghi
Ghi chuỗi
chuỗi


Đặt
Đặt sản
sản phẩm
phẩm
1

KẾT
KẾT THÚC
THÚC




b. Chương trình khởi động LCD

c.Chương trình con ghi chuỗi

START

START

A38H
A38H

A#0
A#0

Ghi_lệnh
Ghi_lệnh


A(A+DPTR)
A(A+DPTR)

A06H
A06H

Ghi_lệnh
Ghi_lệnh

Đ

A=
A=00 ??

S
Ghi_dữ
Ghi_dữ liệu
liệu

A0CH
A0CH

Ghi_lệnh
Ghi_lệnh

Tăng
Tăng con
con trỏ
trỏ hiển
hiển thị

thị
-DPTR=DPTR+
-DPTR=DPTR+11

A80H
A80H

Ghi_lệnh
Ghi_lệnh

RET

RET


d.Chương trình con ghi_lệnh

e.Chương trình con ghi_dữ liệu

START

-RS
-RS =0
=0

START

-RS
-RS =1
=1


-RW
-RW =0
=0

-RW
-RW =0
=0

-P0
-P0 A
A

-P0
-P0 A
A

-EN=1
-EN=1

-EN=1
-EN=1

DELAYMS
DELAYMS

EN=0
EN=0

DELAYMS

DELAYMS

RET

DELAYMS
DELAYMS

EN=0
EN=0

DELAYMS
DELAYMS

RET


f.Chương trình con Đặt sản phẩm

START

S
Phím

S

Phím

ngàn=0?

Đ


S

R2 =R2+1

S

R0=10?

Đ

R3 =R3+1

S

R1=10?

Đ

Phím đvi=0?

Đ

R1 =R1+1

S

Phím
chục=0?


Đ

R0 =R0+1

R0 =0

S

trăm=0?

Đ

Đ

S

R2=10?

R3=10?

R2 =0

R3 =0

Đ
R1 =0

RET



g.Chương trình Ngắt ngoài_1

h.Chương trình con tạo trễ

START

START
R4
R4 =R4+1
=R4+1

S
-Khởi
-Khởi tạo
tạo THx,TLx
THx,TLx

R4
R4 =99?
=99?

-- SETB
SETB TRx
TRx

Đ
-- R5
R5 =R5+1
=R5+1
-- R4

R4 =0
=0

S

S

TFx=1?
TFx=1?

R4
R4 =Bytelow?
=Bytelow?

Đ
Đ
R5
R5 =Bytecao?
=Bytecao?

-

TRx
TRx =0
=0
TFx
TFx =0
=0

-Dừng

-Dừng DC
DC
-Dừng
-Dừng đếm
đếm
-Xóa
-Xóa R4,R5
R4,R5
-Call
-Call DELAY15s
DELAY15s

RETI

RET


i.Thuật toán lưu số Đặt sản phẩm

-A
-A R1
R1
-- B
B #10
#10
-- MUL
MUL AB
AB
-ADD
-ADD A,R0

A,R0
-- Bytelowdat
Bytelowdat 
A
A
-A
-A R3
R3
-- B
B #10
#10
-- MUL
MUL AB
AB
-ADD
-ADD A,R2
A,R2
-- Bytehighdat
Bytehighdat 
A
A

k.Thuật toán xử lý số đếm để hiển thị

-A
-A R4
R4
-- B
B #10
#10

-- DIV
DIV AB
AB
-CHUC
-CHUC 
 A
A
-- A
A B
B
-DONVI
-DONVI A
A
-A
-A R5
R5
-- B
B #10
#10
-- DIV
DIV AB
AB
-NGAN
-NGAN 
 A
A
-- A
A B
B
-TRAM

-TRAM A
A


5.2 .CHƯƠNG TRÌNH ĐIỀU KHIỂN
;********************ĐỊNH NGHĨA CÁC CỔNG VÀO RA,BYTE DỮ LIỆU DÙNG***
RS

BIT

P2.5

RW

BIT

P2.6

EN

BIT

P2.7

START

BIT

P2.0


B_NGAN

BIT

P2.1

B_TRAM

BIT

P2.2

B_CHUC

BIT

P2.3

B_DONVI

BIT

P2.4

DONG_CO

BIT

P3.5


BYTECAODAT

DATA

31H

BYTELOWDAT

DATA

32H

DONVI

DATA

33H

CHUC

DATA

34H

TRAM

DATA

NGAN


DATA

35H
36H

;*************************************************
ORG

0000H

JMP

MAIN

ORG

0003H

LJMP NGAT0
ORG

0030H

MAIN:
MOV

SP,#5FH

MOV


TMOD,#11H

CLR

DONG_CO


MOV

R0,#0;THANH GHI HANG DON VI LUC DAT

MOV

R1,#0;THANH GHI HANG CHUC LUC DAT

MOV

R2,#0;THANH GHI HANG TRAM LUC DAT

MOV

R3,#0;THANH GHI HANG NGAN LUC DAT

MOV

R4,#0;BYTE THAP SO DEM TUC THI

MOV

R5,#0;BYTE CAO SO DEM TUC THI


LCALL

KHOI_TAO

LCALL DELAYMS
MOV

A,#01H

LCALL GHI_LENH
LCALL DELAYMS
MOV

A,#80H

LCALL GHI_LENH
LCALL DELAYMS
MOV

DPTR,#CHUOI1

LCALL GHI_CHUOI
MOV
LCALL

A,#0C0H
GHI_LENH

LCALL DELAYMS

MOV

DPTR,#CHUOI2

LCALL GHI_CHUOI
LCALL
MOV
LCALL

DELAYMS
A,#01H
GHI_LENH

LCALL DELAYMS
MOV
LCALL

A,#80H
GHI_LENH

LCALL DELAYMS


MOV

DPTR,#CHUOI3

LCALL GHI_CHUOI
MOV


A,#0C0H

LCALL GHI_LENH
LCALL DELAYMS
MOV

DPTR,#CHUOI4

LCALL GHI_CHUOI
LCALL
MOV

DELAYMS
A,#01H

LCALL GHI_LENH
LCALL DELAYMS
MOV

A,#80H

LCALL GHI_LENH
LCALL DELAYMS
MOV

DPTR,#CHUOI5

LCALL GHI_CHUOI
LOOP:
CALL


DAT_SP

MOV

A,#88H

LCALL GHI_LENH
MOV

DPTR,#MA_LCD

MOV

A,R3

MOVC A,@A+DPTR
LCALL GHI_DULIEU
MOV

A,#89H

LCALL GHI_LENH
MOV

A,R2

MOVC A,@A+DPTR



LCALL GHI_DULIEU
MOV

A,#8AH

LCALL GHI_LENH
MOV

A,R1

MOVC A,@A+DPTR
LCALL GHI_DULIEU
MOV

A,#8BH

LCALL GHI_LENH
MOV

A,R0

MOVC A,@A+DPTR
LCALL GHI_DULIEU
JB

START,LOOP

;************************* KHỞI TẠO NGẮT ****************************
SETB


EA

SETB

EX0

SETB

IT0

;*****************************************************
CLR

DONG_CO

MOV

A,R1

MOV

B,#10

MUL

AB

ADD

A,R0


MOV

BYTELOWDAT,A

MOV

A,R3

MOV

B,#10

MUL

AB

ADD

A,R2

MOV

BYTECAODAT,A


;*****************************************************
MOV

A,#0C0H


LCALL GHI_LENH
MOV

DPTR,#CHUOI6

LCALL GHI_CHUOI
LOOP9:
LCALL XU_LY
MOV

A,#0C8H

LCALL GHI_LENH
MOV

DPTR,#MA_LCD

MOV

A,NGAN

MOVC A,@A+DPTR
LCALL GHI_DULIEU
MOV

A,#0C9H

LCALL GHI_LENH
MOV


A,TRAM

MOVC A,@A+DPTR
LCALL GHI_DULIEU
MOV

A,#0CAH

LCALL GHI_LENH
MOV

A,CHUC

MOVC A,@A+DPTR
LCALL GHI_DULIEU
MOV

A,#0CBH

LCALL GHI_LENH
MOV

A,DONVI

MOVC A,@A+DPTR
LCALL GHI_DULIEU
LJMP

LOOP9



;******************XỬ LÝ SỐ LIỆU XUẤT RA LCD****************************
XU_LY: MOV
MOV
DIV

A,R5

B,#10
AB

MOV

NGAN,A

MOV

A,B

MOV

TRAM,A

MOV

A,R4

MOV


B,#10

DIV

AB

MOV

CHUC,A

MOV

A,B

MOV

DONVI,A

RET
;*******************DAT SAN PHAM ****************************
DAT_SP:
JB
INC

B_NGAN,NEXT
R3

CJNE

R3,#10,NEXT


MOV

R3,#0

NEXT:
JB

B_TRAM,NEXT1

INC

R2

CJNE

R2,#10,NEXT1

MOV

R2,#0

NEXT1:
JB
INC

B_CHUC,NEXT2
R1

CJNE


R1,#10,NEXT2

MOV

R1,#0


×