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
50 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 2682 | 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 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