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" .
50 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2441 | Lượt tải: 2
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:
- 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.pdf