Hệ thống vi xử lý hay còn gọi là máy tính điện tử là thiết bị xử lý thông tin, điều 
khiển các thiết bị ngoài hay các thiết bị trong công nghiệp tự động.
Phần chính của máy tính là bộ xử lý trung tâm CPU (Central Processing Unit) là nơi xảy 
ra các quá trìnhxử lý số liệu và điều khiển mọi hoạt động của máy tính. Người ta phân loại 
CPU dựa vào độ rộng Data bus như:
CPU 8 bit Z80A: Hãng Zilog
6802 : Hãng Motorola
8080/8085: Hãng Intel
CPU 16 bit 8086/8088: Hãng Intel
                
              
                                            
                                
            
 
            
                 79 trang
79 trang | 
Chia sẻ: lylyngoc | Lượt xem: 3836 | Lượt tải: 5 
              
            Bạn đang xem trước 20 trang tài liệu Luận văn Thiết kế mạch đếm sản phẩm dùng vi điều khiển 8051, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 A 
Port C (cao) 
1 = nhập 
0 = xuất 
Port A 
1 = nhập 
0 = xuất 
Chọn chế độ 
 00 = chế độ 0 
01 = chế độ 1 
1x = chế độ 2 
D7 D6 D5 D4 D3 D2 D1 D0 
Luận văn tốt nghiệp Trang 28 
GVHD Nguyễn Việt Hùng 
Tuy nhiên dịng ra lớn nên phải dùng thêm điện trở hạn dịng từ mỗi ngõ ra (B1 _ B8) của 
74245 
 4. Bàn phím: 
 Vì đây là mạch đếm sản phẩm, đếm số sản phẩm trong một thùng, và số sản phẩm 
trong một lơ, mỗi loại như vậy cĩ thể nhập vào số đếm trong phạm vi từ 0 đến tối đa 9999, 
do đĩ chúng em sử dụng 10 phím số từ 0 đến 9. Và mỗi lần nhập số vào để nhận biết là 
nhập mấy số hoặc đã nhập xong và muốn biết cho phép đếm chưa hoặc hủy bỏ số vừa nhập 
phải cần sử dụng thêm các phím chức năng, nên chúng em dùng thêm 6 phím chức năng từ 
A đến F. Do đĩ bàn phím gồm 16 phím được kết nối vào port 1 của 8051: 
Sơ đồ khối kết nối như sau: 
8051 
BÀN PHÍM PORT 1 
Luận văn tốt nghiệp Trang 1 
GVHD Nguyễn Việt Hùng 
8 
0 
5 
1 
74373 ROM 
CS\ 
RAM 
CS\ 
8255-2 
CS\ 
74138 Y0 
Y1 
Y2 
Y3 
Hiển 
thị 
Rơle 
ĐH 
8255-1 
CS\ Rơle 
BC 
Thu Phát 
Port0 Data 
A0  A7 A0  A1 
PortA 
PortB PortA 
PortB.0 
A8  A12 
Port2 A13  A15 
BÀN PHÍM Port1 
A
ddress 
SƠ ĐỒ KHỐI CHI TIẾT CỦA MẠCH 
ĐIN 
Luận văn tốt nghiệp Trang 1 
GVHD Nguyễn Việt Hùng 
 PHẦN II 
THIẾT KẾ,THI CƠNGVÀ CHƯƠNG TRÌNH 
CHƯƠNG I THIẾT KẾ, THI CƠNG PHẦN CỨNG 
Sau khi đã phân tích một mơ hình hệ thống vi xử lý bây giờ chúng em bắt đầu đi vào 
tính tốn các giá trị thực tế để cho hệ thống hoạt động được. Việc tính tốn lựa chọn phải 
dựa trên lý thuyết và các linh kiện thơng dụng trên thị trường. 
Mặc dù phần cứng hệ thống khơng thể thay đổi được nhưng phần mềm cĩ thể thay 
đổi làm cho hệ thống cĩ khả năng hoạt động một cách linh hoạt vì vậy thiết kế phần cứng 
phải cân đối sao cho phần mềm khơng quá phức tạp. 
 I. KẾT NỐI 8051 VỚI BỘ NHỚ VÀ CÁC IC NGOẠI VI : 
 1. Kết nối bộ nhớ chương trình bên ngồi: 
 Bộ xử lý chính là IC 8051 với tần số làm việc là 12 MHz. Chân 18, 19 của 8051 
được nối với thạch anh (cũng cĩ thể thay thế thạch anh bằng tín hiệu xung clock). 
 Bộ nhớ ROM được cho phép bởi tín hiệu PSEN\. Hình sau mơ tả cách nối bộ nhớ 
Eprom với 8051: 
 2. Kết nối bộ nhớ dữ liệu ngồi: 
 Bộ nhớ Ram được cho phép ghi/ đọc bằng các tín hiệu điều khiển WR\ và RD\. 
8051 cĩ 1 lệnh duy nhất truy xuất dữ liệu của bộ nhớ dữ liệu ngồi là MOVX dùng con trỏ 
16 bit (DPTR) hoặc R0 và R1 xem như thanh ghi địa chỉ. 
 Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 8051 cũng giống như EPROM . 
Ngồi ra, RD của 8051 được nối tới chân cho phép xuất (OE\ ) của Ram và chân WR được 
nối tới chân ghi (WR\) của Ram. 
D7 - D0 
 EPROM 
A7- A0 
A15 -A8 
0E\ 
Port 0 
EA 
8051 
 Port2 
PSEN 
D 
74373 
 Q 
G ALE 
Luận văn tốt nghiệp Trang 2 
GVHD Nguyễn Việt Hùng 
3.Kết nối mạch giải mã: 
*Hình thành mạch giải mã địa chỉ dựa trên bảng đồ bộ nhớ sau: 
IC A 
15 
A 
14 
A 
13 
A 
12 
A 
11 
A 
10 
A 
9 
A 
8 
A 
7 
A 
6 
A 
5 
A 
4 
A 
3 
A
2 
A 
1 
A 
0 
hex 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rom 
8K 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 
0000 H 
1FFFH 
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Ram 
8K 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
2000 H 
3FFFH 
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8255 
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 
4000 H 
4003 H 
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 8255 
2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 
6000 H 
6003 H 
 Tuy nhiên tại một thời điểm chỉ cĩ 1 IC nhớ được truy xuất nên dùng các đường địa 
chỉ A13, A14, A15 để phân biệt. Lấy A15, A13, A14 nối tới 3 đầu vào IC giải mã 74138 
(A,B,C). Các ngõ ra Y0, Y1,Y2, Y3 lần lượt được nối tới CE của Rom,Ram, CS của 8255. 
Khi Yi = 0 thì IC đĩ được chọn: 
 A13, A14, A15 = 0 chọn Rom 
 A13 = 1, A14, A15 = 0 chọn Ram 
 A13 = 0, A14 = 1, A15 = 0 chọn 82551 
 A13 =1, A14 = 1, A15 = 0 chọn 82552 
 4. Kết nối mạch chốt: 
 -Chân ALE (chân 30) của 8051 kết nối với chân G của 74373. Các đường của Port0 
nối với các đường từ Do đến D7 của 74373. Các đường tín hiệu (Q0Q7 ) của 74373 và 
các đường port 2 (P2.0 P2.7) được nối tới các đường địa chỉ của ROM và RAM (A0 A12 
) cịn các đường dữ liệu từ port 0 được nối tới các đường dữ liệu của ROM và RAM, 8255 
(D0 D 7 ). 
 -Trong mỗi chu kỳ máy sẽ cĩ 2 xung ALE. Khi ALE ở mức logic cao (G = 1) và OC\ 
= (0) thì ngõ ra Qo  Q7 tương ứng với ngõ vào D, mọi sự thay đổi ở ngõ vào đều ảnh 
hưởng đến ngõ ra, lúc này Port 0 tương ứng là đường địa chỉ Ao  A7. Khi ALE xuống 
mức thấp (G = 0), ngõ ra Q sẽ giữ nguyên trạng thái trước đĩ bất chấp ngõ vào D, lúc này 
các đường Port 0 tương ứng là các đường dữ liệu Do  D7. 
D7 - D0 
RAM 
A7- A0 
A15 -A8 
0E 
WR 
 Port 0 
EA 
8051 
 ALE 
Port2 
 RD 
D 
 Q 
74373 
G 
Luận văn tốt nghiệp Trang 3 
GVHD Nguyễn Việt Hùng 
 *Tín hiệu PSEN\ của 8051 (chân 29) nối tới 0E của Rom. Các đường (RD,WR) nối 
đến RD, WR của Rom và 8255. Do muốn xếp chồng bộ nhớ nên cho tín hiệu RD\, PSEN 
của 8051 qua cổng AND (dùng 2 cổng NAND 74132) đưa tới OE\ của Ram 
 *Hình thành cơng tắc lưạ chọn Rom A, Rom B: 
 - Sơ đồ nguyên lý của cơng tắc lựa chọn: (Sơ đồ nguyên lý mạch điều khiển) 
 - Nguyên lý hoạt động của cơng tắc lựa chọn như sau: 
 Bất cứ khi nào cho phép truy xuất Rom (ngõ vào 1 chân cổng OR xuống mức logic 
[0]) và ngõ ra cơng tắc lựa chọn A hoặc B xuống mức logic [0] thì Rom A hay B được truy 
xuất. 
 -Khi SW1 nối tới B, ngõ ra của cổng NAND (U9A) = 1 ngõ ra cổng OR (U8A) = 
1, Rom A khơng được chọn. Đồng thời khi đĩ, ngõ ra cổng NAND (U9B) = 0, nếu A13, 
A14, A15 = 0 thì ngõ ra cổng OR (U8B) = 0  Rom B được chọn. Ngược lại, cơng tắc 
chuyển sang A thì Rom A được truy xuất. 
 II. THIẾT KẾ MẠCH RESET: 
 Khi cơng tắc chuyển từ A sang B và ngược lại đều reset tồn bộ lại hệ thống để cho PC 
= 0000H. Bởi vì khi đang làm việc tại Rom A, PC khác 0000H, khi chuyển sang Rom B  
PC bắt đầu tại địa chỉ khác 0000H  làm sai chương trình. Vì vậy mạch reset trong đồ án 
này bao gồm reset từ chuyển cơng tắc chọn Rom, reset từ ngồi đưa tới (nếu như kết hợp 
với mạch khác), reset khi bắt đầu mỗi chương trình đếm sản phẩm và reset nếu như nguồn 
cung cấp yếu. Sơ đồ nguyên lý mạch reset trong sơ đồ nguyên lý mạch điều khiển. 
 1. Mạch reset từ việc chọn Rom: Mạch được tạo bởi cổng nand, IC 74221, cổng 
OR7432 và 1 cổng OR khi kết hợp với reset khác 
sơ đồ chân và bảng thái của 74221 như sau: 
Sơ đồ chân SN 74221: 
Bảng trạng thái 
INPUT OUTPUT 
clear A B Q Q 
L X X L H 
X H X L H 
X X L L H 
H L  
H  H 
 L H 
 Qua bảng trạng thái: 
 - Khi chân clear ở mức logic cao, A ở mức logic thấp và chân B chuyển trạng thái từ 
mức logic 0 lên 1 ở ngõ ra Q (ngược lại với Q\) 
 - Khi chân clear ở mức logic cao, B ở mức logic cao và chân A chuyển trạng thái từ 
mức logic 1 xuống 0 thì thì 74211 tạo ra một xung dương ở ngõ ra Q 
 Quá trình reset được thực hiện như sau: 
 Khi SW chuyển sang B, ngõ ra của cổng NAND (U9A) từ 0 lên 1 chân B 
của74211 (U10B) từ 0 lên 1, A = 0  cĩ một xung ở ngõ ra Q  ngõ ra cổng OR lên 1 
dẫn đến RST = 1 hệ thống bị reset: đèn reset (D4 sáng). Khi chuyển cơng tắc sang A, ngõ 
ra cổng nand (U9A) từ 1 xuống 0chân A của 74221 từ 1 xuống 0, B = 1  cĩ xung ra ở 
ngõ ra Q 74211 (U10A)  mạch bị reset. 
1A 
 1B 
Clr 
1Q 
2Q 
Cset 
 Reset 
Vcc 
Reset 
Cset 
1Q\ 
2Q\ 
clr 
2B 
2A 
74221 
Luận văn tốt nghiệp Trang 4 
GVHD Nguyễn Việt Hùng 
 2. Reset bằng nút nhấn: 
 Khi nhấn nút, 1 chân của cổng nand U2A được nối mass ngõ ra = 1, reset (RST) = 
1, hệ thống bị reset (đồng thời khi đĩ chân cịn lại của cổng nand luơn được giữ ở mức 
cao). Khi kết nối với mạch điện khác, mạch điện khác cĩ thể reset mạch điện này qua 
header 3 (JP8). Sự tác động thơng qua sự ngắt dẫn của Q3 C828. Khi Q3 dẫn (cĩ tác động 
bên ngồi), ngõ ra cổng nand (U2A) = 1, ngõ ra cổng OR = 1, RST = 1, hệ thống bị reset. 
 3. Reset khi nguồn cung cấp yếu: 
 Các IC số chỉ hoạt động tốt khi nguồn cung cấp ổn định. Khi điện áp nguồn yếu, các 
IC hoạt động hỗn loạn, nếu khơng cĩ sự hiển thị về nguồn cung cấp sẽ gây ra trường hợp 
mạch hoạt động sai mà khơng biết được nguyên nhân. Trên mạch điện này, điện yếu thì led 
xanh (D 7) sẽ sáng và lúc đĩ thì mạch sẽ bị reset cho đến khi nguồn cung cấp ổn định, cịn 
khi nguồn ổn định thì led đỏ (D8) sẽ sáng. Quá trình reset thực hiện dựa trên sự ngắt dẫn 
của transistor kết hợp với cổng Nand 74132. Nguyên lý hoạt động mạch reset như sau: 
 - Khi điện yếu (VH < 3,7 Volt), Zener (D5, D6) khơng dẫn  Q5 khơng dẫn, ngõ ra 
cổng Not (cổng nand 74132) = 0, Q6; khơng dẫn, Q7 dẫn (led xanh sáng), Q8 dẫn một 
chân của cổng nand (U2A) bị nối mass, mạch bị reset. 
 - Khi nguồn cung cấp đầy đủ, D5;D6 dẫn, Q5 dẫn, Q6; Q7 khơng dẫn, Q9 dẫn led đỏ 
sáng  mạch hoạt động bình thường. 
Tính tốn các giá trị điện trở phân cực cho transistor khi nguồn cung cấp yếu: 
Vì mạch sử dụng các transistor làm việc ở trạng thái bão hịa nên điều kiện để cho 
transistor hoạt động ở trạng thái này là: IB > ICSAT ; 
 VBESAT =0.8V ; 
 VCESAT =0.2V ; 
Trong mạch Reset này cĩ dùng 74HC132 (cổng NAND ) cĩ các thơng số như sau: 
VIH(MIN) : Điện áp ngõ vào thấp nhất ở mức [ 1]. 
VIL(MAX) : Điện áp ngõ vào cao nhất ở mức [0 ]. 
VOH(MIN) : Điện áp ngõ ra thấp nhất ở mức [ 1 ]. 
VOH(MIN) : Điện áp ngõ ra cao nhất ở mức [ 0 ]. 
VIH(MIN) = 3.5 (V) 
VIL(MAX) = 1 (V ) 
VOH(MIN) = 4.9 (V ) 
VOH(MAX) = 0.1 ( V ) 
Tính tốn các giá trị: 
1. Transistor Q1 (C828 ): 
 RB < 12,6k. Chọn RB = R5 = 10k 
+ Chọn  = 40 
10 . 13 
40 ). 8 , 0 9 . 4 ( 
3 - 
- < - < Þ B 
B 
BESAT OH 
CSAT R R 
V V 
x I b 
+ Chọn RC = 220  
mAmAICSAT 13013.0220
2.025
280
10.10
2.025
3CR
+ Chọn dịng qua LED là 10mA 
Luận văn tốt nghiệp Trang 5 
GVHD Nguyễn Việt Hùng 
2. Transistor Q2 (A564 ): 
 Chọn RB = R7 = 10K 
3.Transistor Q4: (C828 ) 
Mà điều kiện bão hịa là: IB > IcSAT 
 Chọn RB = R19 = 10k 
4. Transistor Q5 (C828): 
+ Chon  = 40 
+ Chọn dịng IC =10mA 
 Rc =1K 
+  IB > IcSAT 
+ Chọn dịng qua led là 10mA 
280
10.10
2.025
3CR
 Chọn RC = 220  
mAmAAII LEDttCSATtt 1513013.0220
2.025 
+ Chon  = 40 
+ Chọn dịng qua led là 10mA 
C
CESATLEDCC
CSAT R
VVVI 
C
ECSATLEDCC
CSAT R
VVVI 
+ Chọn  = 40 , điều kiện bảo hịa:  IB > ICSAT 
280
10.10
2.025
3CR  Chon RC = 220 
mAICSATtt 1310220
2.025
3 
 
 KRI
R
VV
BCSAT
B
BESATOH 61,12
13
8.09.440
480
10.10
2.05
3
C
CECC
C I
VVR
C
CESATCC
B
BESATDDCC
R
VV
R
VVVV 
 65
 
CESATCC
CDDCC
B VV
RVVVR
 65
 
K17.4
2.05
18,037.0540
SATtt
B
OLEBSATtCC I
R
VVV
 
 K
I
VVV
R
SATtt
OLEBSATtCC
B 5,1213
)1,08,05(40)(
Luận văn tốt nghiệp Trang 6 
GVHD Nguyễn Việt Hùng 
5. Transistor Q6 (C828 ): 
 +Chọn  = 40 
 +Mà điều kiện bão hịa là: IB > IcSAT , chọn Rc = 1K 
 Chọn RB = R24 = 10 k 
6.Transistor Q7 ( A 564 ): 
 +Chọn  = 40 
 + Chọn dịng qua led là 10mA 
 + Mà điều kiện bão hịa là: IB > IcSAT 
 Chọn RB = R25 = 7,5 K 
7.Transistor Q8 (C828 ): 
 Chọn  = 40 
+ Mà điều kiện bão hịa là: IB > IcSAT 
+ Chọn RC = 1k. 
 
 
 KRB 16,342.05
18.09.4.40
C
CESATCC
B
BESATOH
R
VV
R
VV 
 
LED
ECSATLEDCC
C I
VVVR    28010.10
2.025
3
 Chon RC =330 
C
ECSATLEDCC
LEDtt R
VVVI 
C
CESATCC
B
BESATCC
R
VV
R
VV 
KR
R
B
B
35
18.4
2.440
1
2.058.0540
C
ECSATLEDCC
B
EBSATOLCC
R
VVV
R
VVV 
 
 K
VVV
RVVVR
ECsatLEDCC
COLEBsatCC
B 325,192,025
330)1,08,05(40)(
Luận văn tốt nghiệp Trang 7 
GVHD Nguyễn Việt Hùng 
Chon RB = R27 = 15 K 
8.Transistor Q9 ( A 564 ): 
 +Chọn  = 40 
 + Chọn dịng qua led là 10mA 
+ Mà điều kiện bão hịa là: IB > IcSAT 
Chọn R28 = RB =10 k 
4. Cách tính tần số quét LED 
- Gọi n: số LED cần hiển thị 
- Gọi : thời gian phát sáng của mỗi LED (s ) 
- Gọi T là chu kỳ hiển thị của n LED: T = n.  ( s ) 
- Gọi f : tần số quét 
 = N : chu kì ngắt của mỗi LED (s ) 
Mối liên hệ giữa chiều dài sản phẩm (cm ) với vận tốc băng chuyền (m/s): 
Đầu dị: Bắt đầu Kết thúc 
 Chon RC =220 
Vậy dịng qua led thực tế là: 
mA
RR
VVVI
CC
ECSATLEDCC
LEDtt 13
2.025
 Kx 57,12
2,025
220)2,08,05(40
C
ECsatLEDCC
B
OLEBsatCC
R
VVV
R
VVV 
 )(
280
1010
22,05)(
3
LED
LEDCESATCC
C I
VVVR
)(
.
11 Hz
nT
f
)(
.
11 Hz
nT
f
N
T 
TL 
Luận văn tốt nghiệp Trang 8 
GVHD Nguyễn Việt Hùng 
-Gọi T: chu kì quét đầu dị (ms ) 
 Điều kiện để cho đầu dị phát hiện sản phẩm 
 Chiều dài nhỏ nhất của sản phẩm: 
 Vận tốc tối đa của băng chuyền: 
III. KẾT NỐI KÍT VI ĐIỀU KHIỂN VỚI THIẾT BỊ NGOẠI VI: 
 1. Kết nối với bàn phím: 
 Bàn phím gồm 16 phím kết nối với kít vi điều khiển thơng qua Port 1 của 8051. Sơ 
đồ kết nối như sau: 
P0.0 
P0.1 
P0.2 
P0.3 
8051 
P0.4 
P0.5 
P0.6 
P0.7 
0 1 2 3 
 4 5 6 7 
 8 9 A B 
C D E F 
2
TTL  : Thời gian dị mức thấp (ms ) - Gọi 
)(.10)(
10
.)(10
s
m
T
dvcmTvdms
v
dT
L
L
L 
)(
10
. cmTvd LMIN 
)(.10
s
m
T
dv
L
MAX 
Luận văn tốt nghiệp Trang 9 
GVHD Nguyễn Việt Hùng 
 BẢNG MÃ PHÍM 
Phím Mã quét Mã Hex Phím Mã quét Mã Hex 
0 00 0CH 8 08 80H 
1 01 F9H 9 09 90H 
2 02 A4H A 10 88H 
3 03 B0H B 11 83H 
4 04 99H C 12 C6H 
5 05 92H D 13 A1H 
6 06 82H E 14 86H 
7 07 F8H F 15 8EH 
 2. Kết nối hiển thị: 
 Phần hiển thị bao gồm 8 Led 7 đoạn chung anod. Bus dữ liệu xuất ra hiển thị được 
nối tới PortA của 82552. Vì dịng ra tại mỗi chân các Port của 8255 chỉ cĩ khoảng 4mA, 
mà mỗi Led sáng thì phải cung cấp dịng khoảng 8 – 10mA nên phải dùng IC đệm nên 
PortA của 8255 nối tới các ngõ vào A1 _ A8 của 74245, bus dữ liệu ngõ ra nối qua điện trở 
hạn dịng đến các thanh của Led 7 đoạn. Với mạch giải mã chọn Led: ba ngõ vào A, B, C 
của 74138 sẽ được nối tới PC5 – PC7 của 8255, chân cho phép G2 nối tới PC4 của 8255. 
Khi PC4 xuống mức thấp, G2 = [0], cho phép Led sáng. Bảng trạng thái chọn Led như sau: 
Tính tốn điện trở trong mạch hiển thị: 
Ngõ vào 
Cho phép Các chân lựa chọn 
G1 G2 C B A 
Chọn Led 
H 
H 
H 
H 
H 
H 
H 
H 
L 
L 
L 
L 
L 
L 
L 
L 
L 
L 
L 
L 
H 
H 
H 
H 
L 
L 
H 
H 
L 
L 
H 
H 
L 
H 
L 
H 
L 
H 
L 
H 
Led 1 
Led 2 
Led 3 
Led 4 
Led 5 
Led 6 
Led 7 
Led 8 
cc 
Led 
 R1 
Điện trở 
phân cực 
Luận văn tốt nghiệp Trang 10 
GVHD Nguyễn Việt Hùng 
 Để cho một thanh led đủ sáng thì dịng điện qua nĩ là 10 mA, do đĩ để cả led 7 
đoạn sáng thì dịng cung cấp cho led là: I = 7 x 10 = 70 mA. Đây cũng chính là dịng Ic 
của transistor. Vậy chọn transistor loại A1266 với hệ số khuyếch đại  là 60 
 Vậy dịng IB là: 
 Điện trở phân cực R1 là: 
 Chọn R1 = 3,3 k, nhỏ hơn giá trị tính tốn để dịng lớn transistor nhanh bão hịa. 
Vậy dịng IB thực tế là: 
 Tính R2 (điện trở hạn dịng cho led): 
Khi transistor bão hịa, điện áp VCESAT = 0,2 V và điện áp rơi trên led là 2V do đĩ: 
 VR2 = Vcc – VCESAT – VLED = 5 – 0,2 – 2 = 2,8V 
Chọn R2 = 270 (). Chọn R2 lớn hơn tính tốn để transistor nhanh bão hồ 
 c. Kết nối mạch rơle: 
 Tín hiệu điều khiển rơle được lấy ra từ PortA của 82551. Rơle sẽ tác động khi đếm 
xong số lượng sản phẩm cài đặt trước. Ở đây chúng em giả định sự tác động của rơle bằng 
đèn Led hiển thị. Khi led sáng tương ứng với tác động của rơle. Giống như mạch hiển thị, 
tín hiệu lấy ra điều khiển rơle đuợc đưa qua bộ đệm 74245 và hạn dịng bằng điện trở. 
 Tính điện trở hạn dịng R: 
Để cho mỗi led sáng thì dịng cung cấp cho nĩ là 10mA. Vậy điện trở cần gắn thêm vào để 
hạn dịng cho led là: 
mAII CB 1,160
70
)(90,3
1,1
7,051
1 
 K
I
VV
I
UR
B
BECC
B
R
mAI B 3,13,3
7,05
mAILEDtt 1,1110251
2,025
3 
251
7
10.60.3,1
8,2
7
3
2
2
CMAX
R
I
VRVậy 
Luận văn tốt nghiệp Trang 11 
GVHD Nguyễn Việt Hùng 
 Chọn R1 trên thực tế là 330 (). Với việc chọn R1 lớn hơn tính tốn nhưng dịng 
qua led giảm khơng đáng kể nên vẫn chấp nhận 
 III. THIẾT KẾ VÀ TÍNH TỐN MẠCH CẢM BIẾN 
 1. Khối phát 
 k
I
VVR
LED
LEDCC 3,0
10
25
1
RA 
RB 
C 
2 1 5 
8 4 
3 
C1 
7 
6 
Ngõ ra 
 VCC 
Tính tốn điện trở và tụ trên mạch dao động 555 
Vậy dịng thực tế qua led là: 
Luận văn tốt nghiệp Trang 12 
GVHD Nguyễn Việt Hùng 
 - Dạng sĩng: 
tc =0,69(RA + RB).C 
RA ,RB ohm CF ts 
td =0,69RBC T= tc + td =0,69(RA +2RB).C 
* Nếu chọn đơn vị RK , CF  tms ,f0KHz 
để xung tạo ra gần như đều nhau để kích thích cho Ạ564 dẫn mạnh, làm dịng IB lớn suy ra 
dịng qua LED lớn, tín hiệu phát ra từ LED mạnh thì bên khối đầu dị mới nhận được tín 
hiệu. 
 2. Khối đầu dị: 
 Tần số dao động riêng của mạch: 
- Chọn R15 = 10K 
 C10 =0,1F 
 2K  R  20K 
vì f cho phép: 0,01Hz  f  500Khz f0 thỏa điều kiện cho phép. 
-Chọn C8 =1F ,C9 =2,2 F. 
 CRRT
fo
BA 2
45,11 
Khz
CR
fo 1,1
1,0.10
1,11,1
1015
 Chọn 
2/3Vcc 
1/3 Vcc 
 Vcc 
 0V 
 T 
tc td 
Điện áp ra 
Điện áp trên tụ t 
t 
Luận văn tốt nghiệp Trang 13 
GVHD Nguyễn Việt Hùng 
*Ở khối phát tia hồng ngoại: 
 Chọn tụ C6 = 0,001F 
Tần số của mạch thiết kế = tần số f0 của đầu dị 
Nên f = f0 =1,1kHz 
 Chọn RA, RB sao cho thỏa điều kiện trên 
Lấy theo giá trị thương mại suy ra: 
Chọn RB=620K, RA =78K 
Vì dùng RA là một biến trở điều chỉnh nên chọn RA=100K 
-Transistor Q1 : A564 chọn hệ số khuếch đại  =200 
-Khi Led hồng ngoại dẫn thì VLED =2V 
 -Chọn dịng qua Led hồng ngoại khoảng 50mA (để tín hiệu phát ra mạnh vì vậy mà 
khối đầu dị mới nhận được). 
  Chọn R11= 120 
  Dịng thực tế qua LED khi R11=120 
 ICsat ==56,67mA 
-Để cho Q1 dẫn bảo hịa: 
 IB ICsat 
Mà VEbsat 0,8V 
Vout tại chân 3 (ngõ ra 555 )0,2V 
 Chọn R10 =10K 
* Ở khối đầu dị IC LM 324 : IC làm việc với loại nguồn đơn, chọn độ lợi 100dB. 
 Chọn R14=100K 
 CRbRaT
fof
.2
45,11
mA
R
VVVI LEDECSATccCsat 67,5612,0
8,6
12,0
22,09
11
 136136,0
50
22,09
11 KI
VVVR
CSAT
LEDECSATcc
CsatoutSATEBcc
B
I
R
VVV
I 
10
 mA
R
IB 28335,0200
67,562,08,09
10
 
 KR 23,28
28335,0
8
10 
100
13
14 
R
RAV
Luận văn tốt nghiệp Trang 14 
GVHD Nguyễn Việt Hùng 
R13 =1K 
R12 thường từ 0K  56K, chọn R12 =56K 
C7 =0,1F (tụ liên lạc) 
 c. Hoạt động của khối phát và khối đầu dị: 
- Do khối phát và khối đầu dị được thiết kế: f= f0 =1,1Khz 
Trong đĩ f: tần số phát ra của khối phát tia hồng ngoại. 
 f0: tần số trung tâm của khối đầu dị. 
Khi chưa cĩ sản phẩm nào đi qua led hồng ngoại phát tín hiệu qua photo Q2 ,photo 
Q2 nhận tín hiệu. Qua bộ khuếch đại, khuếch đại tín hiệu lớn lên để IC 567 nhận biết được 
vì ở led hồng ngoại dịng ra khoảng 56,67mA nĩ phát ra tín hiệu mạnh và cĩ khả năng 
truyền đi xa, khi qua photo Q2 tín hiệu bị suy yếu nên phải khuếch đại lên. 
Vì do thiết kế f=f0 =1,1Khz tức là tần số vào phù hợp với tần số trung tâm thì ngõ 
ra chân 8 ở mức thấp 0. Cịn khi cho sản phẩm đi qua che led hồng ngoại thì tín hiệu từ 
led hồng ngoại phát ra khơng truyền qua được photo Q2. Kết quả là tần số vào (ff0 
=1,1Khz) khác với tần số trung tâm nên ngõ ra 8 ở mức cao 1, cĩ xung kích tới ngõ vào 
(7)  điện áp chân 8 lên mức cao 
Luận văn tốt nghiệp Trang 15 
GVHD Nguyễn Việt Hùng 
CHƯƠNG II. CHƯƠNG TRÌNH ĐIỀU KHIỂN 
A. THUẬT GIẢI 
I. Chương trình chính: 
Để các thiết bị hoạt động được đầu tiên phải khởi động các thiết bị ngoại vi, khởi 
động Timer cho phép ngắt. Sau đĩ gọi chương trình nhập số hộp, nhập số sản phẩm. Nếu 
đồng ý số đếm đã nhập vào thì cho phép băng chuyền hoạt động (đĩng role BC). Đọc dữ 
liệu từ cảm biến (đầu dị). Nếu cĩ sản phẩm đi qua thì gọi chương trình đếm. Nếu đủ sản 
phẩm một hộp thì gọi role đĩng hộp đồng thời gọi chương trình đếm hộp.. Nếu đủ số hộp 
thì băng chuyền ngưng hoạt động và chờ cho ca tiếp theo. Khi đã hồn thành 9 ca sản 
phẩm thì quay lại làm từ ca 1. 
Luận văn tốt nghiệp Trang 16 
GVHD Nguyễn Việt Hùng 
II. CÁC CHƯƠNG TRÌNH CON: 
1. Chương trình con khởi động ngoại vi: 
8255 chỉ hoạt động khi nạp cho nĩ từ điều khiển vì vậy để giao tiếp với các thiết bị 
ngoại vi cần khởi động cho các ơ nhớ của 8255 
-Nạp giá trị đầu #00H vào các ơ nhớ 
Ca: =Ca + 1 
Ca: = 0 
- Gọi chương trình con nhập hộp 
- Gọi chương trình con nhập sản phẩm 
- Cho phép băng truyền hoạt động 
 Đủ SP 
Ro-le đĩng hộp, đếm hộp (RL – ĐH) 
 Gọi chương trình con đầu dị (DAUDO) 
 Đếm sản phẩm 
S 
- Gọi chương trình con dị phím (IN – HEX) 
 Đủ hộp 
 Phím E Ca = 9 S 
- Cho phép băng chuyền ngưng hoạt động 
- Gọi chương trình lưu số hộp, số sản phẩm 
- Gọi chương trình xem số liệu lưu bất kì ca nào
S 
S 
Lưu  ồ thuật giải chương trình chính 
Luận văn tốt nghiệp Trang 17 
GVHD Nguyễn Việt Hùng 
Ret 
Nạp giá trị ban đầu để mở role đĩng hộp 
Nạp giá trị ban đầu xĩa 8 led 7 
đo n 
Khởi động 8255 - 2 
Nạp giá trị ban đầu cho ngõ dự 
phịng 
Nạp giá trị ban đầu cho role 
b ng truy n 
Khởi động 8255 - 1 
Nạp giá trị ban đầu để chọn led 
sáng 
Bắt đầu 
Luận văn tốt nghiệp Trang 18 
GVHD Nguyễn Việt Hùng 
2. Chương trình ngắt hiển thị: 
Trong chương trình ngắt, thời gian ngắt được xác định bằng cờ tràn timer. Như vậy 
cứ sau 250 s các led lại được quét. Với thời gian ngắt nhỏ, dữ liệu ra khĩ cĩ thể quan sát 
được vì vậy delay sau mỗi lần hiển thị bằng việc giảm thanh ghi R2. Khi R2 = 0 cho phép 
xuất dữ liệu ra hiển thị. Các Led sẽ được quét liên tục từ Led 77đến Led 70, với dữ liệu 
xuất ra hiển thị từ ơ nhớ 77H đến ơ nhớ 70H. 
Lưu đồ thuật giải như sau: 
3. Chương trình con nhấn số 
Chương trình này cho phép nhập số thập phân. Nếu phím nhấn từ 0 đến 9 thì nhận số 
cịn phím từ A đến F thì xĩa số. Số nhận thì bit 7D = [0], 7E = [0]. Sau khi nhập số liệu 
xong nếu thấy qua led hiển thị đúng số liệu đã nhập vào thì nhấn phím A tức là đặt bit YES 
= 1 (7E = 1) để kết thúc quá trình nhập số liệu. Cịn đang nhập nếu muốn bỏ số liệu vừa 
nhập vào thì nhấn phím phím B tức là đặt bit NO = 1 (7D = 1). Khi nhập xong số sản phẩm 
Cho phép 
ng t 
Đ 
 R1 = # 69H 
 R2 = 0 
R2 - 1 
TỐC ĐỘ 1  R2 
Chọn led hiển thị 
Xuất dữ liệu ra led 
R1 - 1 
R1  # 77H 
Thốt 1 
Ret 
S 
Bắt 
đ u 
S 
Đ 
Luận văn tốt nghiệp Trang 19 
GVHD Nguyễn Việt Hùng 
và số hộp thơng qua chương trình con nhấn số này thì nhấn phím C tức là cho phép sản 
phẩm từ lúc này đi qua đầu dị và bắt đầu đếm. 
4. Chương trình tăng 1: 
Cứ cĩ một sản phẩm đi qua đầu dị (chú ý ngõ ra chân 8 của IC567 từ nức logic 0 lên mức 
1 sau đĩ được đưa qua cổng đảo nên ngõ ra là mức logic 0) được đưa vào bit 0 của port B1 
sẽ làm thay đổi mức logic từ 1 xuống 0 thì ơ nhớ dùng cho việc đếm sản phẩm sẽ được 
tăng lên một đơn vị thơng qua việc gọi chương trình con tăng 1, và khi đủ số sản phẩm thì 
ơ nhớ dùng cho việc đếm số hộp cũng được tăng lên một đơn vị thơng qua chương trình 
con tăng 1, và cứ mỗi lần như vậy sự thay đổi số liệu trong các ơ nhớ được đẩy liên tục ra 
led để hiển thị. Vì đếm sản phẩm đến tối đa là 999 và đếm số hộp tối đa là 9999 nên phải 
sử dụng 2 byte để đếm sản phẩm từ hàng đơn vị đến hàng chục sử dụng byte thấp, cịn 
hàng trăm và hàng ngàn sử dụng byte cao. Nên khi so sánh số liệu đang đếm với số liệu đã 
lưu ban đầu xem đã bằng chưa thì phải so sánh lần lượt byte cao trước tức là hàng ngàn, 
hàng trăm sau đĩ tới byte thấp tức là hàng chục hàng đơn vị. 
Bắt 
đầu 
 C = 1 
A = # 0AH 
S 
Xĩa bit YES 
Xố bit NO 
Gọi chương trình dị phím 
 Đ 
Đặt bit YES 
 Xĩa A 
A = # 0BH Đặt bit 
NO 
Xĩa cờ C 
A - # 0AH 
RET 
Đ 
S 
 Đ 
S 
Luận văn tốt nghiệp Trang 20 
GVHD Nguyễn Việt Hùng 
 5. Chương trình con kiểm tra phím ấn: IN – HEX 
Nếu như cĩ phím được ấn thì bit C = 0. Vì cĩ khoảng thời gian nhấn phím nên gọi chương 
trình dị tìm mã phím ấn 50 lần bằng việc nạp 50 vào R3 và giảm R3. Khi R3 = 0 thì cất mã 
phím vào ngăn xếp. Trong lúc đợi phím được nhả ra gọi chương trình dị tìm mã phím ấn 
50 lần để xem phím cĩ cịn được nhấn nữa hay khơng. Khi R3 = 0 thì lấy mã phím trao cho 
thanh ghi A. 
RET 
Xĩa cờ tràn phụ AC 
Xĩa cờ tràn C 
A  A +1 
Hiệu chỉnh thập phân thanh ghi A 
Bắt đầu 
Luận văn tốt nghiệp Trang 21 
GVHD Nguyễn Việt Hùng 
6. Chương trình dị mã phím ấn: 
8051 luơn đọc dữ liệu từ Port 1 để dị tìm mã phím. Khi cĩ một phím được ấn thì cờ 
C = 1 và mã của phím ấn được lưu tạm thời vào thanh ghi R6. Sau đĩ tăng dần R6 lên 4 
đơn vị để dị mã phím tiếp theo, (mã phím ) (A) 
Bắt đầu 
RET 
 Khơng cĩ phím ấn 
#50 (R3) #50 (R3) 
#50 (R3) 
Gọi CT dị mã 
phím 
 C= 0 
S 
Đ 
R3 - 1 
Cĩ phím ấn 
Cất ACC 
R3= 0 
Đ 
Gọi CT dị 
mã phím 
C = 1 
 S 
 S 
R3 - 1 
R3= 0 
Đ
Lấy ACC
Lưu  ồ thuật giải kiểm tra phím ấn 
S 
Đ 
#FE  A 
# 4  R6 
Bắt đầu 
Luận văn tốt nghiệp Trang 22 
GVHD Nguyễn Việt Hùng 
7. Chương trình đầu dị: 
 8051 luơn luơn đọc dữ liệu từ đầu dị (Port B4) nên nội dung thanh ghi A bằng nội 
dung ơ nhớ 4001H. Cứ mỗi sản phẩm đi tới cảm biến, cảm biến sẽ tạo ra mức logic điện áp 
cao 5 volt, lúc đĩ Port B.0 = 1 = ACC.0 . Vì cĩ khoảng thời gian sản phẩm đi qua nên mức 
logic điện áp phải tồn tại ít nhất khoảng 100s do đĩ phải liên tục kiểm tra dữ liệu từ đầu 
dị. Khi mức logic điện áp chuyển từ 1 xuống 0 (tương ứng với 1 sản phẩm đã đi qua cảm 
biến). thì phải cĩ khoảng thời gian ít nhất để chờ sản phẩm tiếp theo đi tới nên mức logic 
thấp cũng phải tồn tại ít nhất 100s. Dị mức điện áp trong khoảng thời gian 100 s bằng 
cách nạp 100 vào R3, giảm R3, khi R3  0 vẫn tiếp tục dị mức. Lưu đồ thuật giải dị mức 
điện áp như sau: 
Bắt đầu 
DPTR  # CẢM 
BIẾN 
Luận văn tốt nghiệp Trang 23 
GVHD Nguyễn Việt Hùng 
8. Chương trình Blank: xĩa số 0 khơng cĩ nghĩa 
Chương trình này cĩ ý nghĩa như sau: khi số sản phẩm hay số hộp chỉ tới hàng đơn 
vị, chục, trăm thì những số 0 đứng trước nĩ khơng cĩ nghĩa bị loại bỏ (khơng sáng ) và các 
ơ nhớ cĩ nghĩa được lưu (lần lượt từ hàng đơn vị  hàng ngàn) vào các ơ nhớ từ 70H 
77H. Loại bỏ bằng cách so sánh giá trị lớn nhất hàng ngàn với số 0 nếu đúng là 0 thì xĩa 
led hiển thị hàng ngàn, tiếp tục so sánh xem ơ nhớ hàng trăm với số 0 nếu đúng là 0 thì xĩa 
led hiển thị hàng trăm, tương tự cho hàng chục, cịn ơ nhớ hàng đơn vị giá trị bằng bao 
nhiêu thì led hàng đơn vị cũng hiển thị. 
Bat đầu 
A  DEMHOP H 
LED 70  NGAN 
LED 71  TRAM 
A  DEMHOP L 
LED 72  CHUC 
LED 73  DONVI 
Luận văn tốt nghiệp Trang 24 
GVHD Nguyễn Việt Hùng 
( 1) 
A =0 
S 
 Xĩa LED 72 
A  LED 75 
Đ 
Xĩa LED 70 
A  LED 71 
A =0 
S 
Xĩa LED 71 
A  LED 72 
A = 
Đ 
A = 
S 
Luận văn tốt nghiệp Trang 25 
GVHD Nguyễn Việt Hùng 
9. Chương trình nhập hộp: 
 Chương trình cho phép nhập các số từ 1 đến 9999. Nếu số được nhấn từ A đến F thì 
yêu cầu nhập lại. Khi số được nhấn lưu vào thanh ghi A từ 1 đến 9: nếu chấp nhận số thì 
các bit 7D, 7E = 0 và khi bit 7D = 1 thì yêu cầu nhập lại hộp, bit 7E = 1, thì thốt khỏi 
chương trình. Các giá trị được nhập này được lưu vào các ơ nhớ từ (74H) đến (77H) và 7C 
(LƯUHOPL:lưu hộp byte thấp), 7D (LƯUHOPH: lưu hộp byte cao). Nếu đồng ý với số đã 
nhập thì nhấn A ngược lại là B (xĩa số đã nhập) 
Bắt  ầu 
A = 0 
BIT 7D = 1 
HIỂN THỊ “nhập 0” 
LƯU HOP L  # 00H 
LƯU HOP H  # 00H 
Gọi nhấn số thứ nhất 
A  ĐƠN VỊ 
ĐƠN VỊ LƯU HOP L 
Gọi nhấn số thứ 2 
(1) 
Luận văn tốt nghiệp Trang 26 
GVHD Nguyễn Việt Hùng 
 S 
 (2) 
ĐƠN VỊ  CHỤC 
A  ĐƠN VỊ 
CHỤC + ĐƠN VỊ  LƯU HOP L 
Gọi nhấn số thứ 3 
(2) 
BIT 7E = 1 
Đ 
S 
Đ 
BIT 7E = 1 
S 
TRĂM  NGÀN 
CHỤC  TRĂM 
ĐƠN VỊ  CHỤC 
A  ĐƠN VỊ 
CHỤC, ĐƠN VỊ  LƯU HOP L 
NGÀN,TRĂM  LƯU HOPH 
S 
Gọi chương trình 
BIT 7D = 1 
S 
CHỤC  TRĂM 
ĐƠN VỊ  CHỤC 
A  ĐƠN VỊ 
CHỤC + ĐƠN VỊ  LƯU HOP L 
LƯU HOPH TRĂM 
Gọi nhấn số thứ 4 
Đ (1) 
BIT 7D = 1 
Đ (1) S 
Luận văn tốt nghiệp Trang 27 
GVHD Nguyễn Việt Hùng 
10. Chương trình nhập sản phẩm: 
Chương trình cho phép nhập các số từ 1 đến 999. Số chỉ được nhập khi các bit 7D, 
7E = 0 và khi bit 7D = 1 thì yêu cầu nhập lại. Các giá trị được nhập này được lưu vào các ơ 
nhớ từ (74H) đến (77H) và 7C (LƯUSPL: lưu sản phẩm byte thấp), 7D (LƯUSPH: lưu 
sản hpẩm byte cao). Nếu đồng ý với số đã nhập thì nhấn A ngược lại là B (xĩa số đã nhập) 
 
Bắt  ầu 
A = 0 
Đ 
S 
S 
Hiển thị “Nhập O 0” 
LƯU – SPL  # 00H 
LƯU – SPH  # 00H 
Gọi nhấn số thứ nhất 
BIT 7D = 1 Đ 
ĐƠN VỊ  A 
LƯU – SPL  ĐƠNVỊ 
Gọi nhấn số thứ 2 
Đ 
BIT 7E = 1 
Đ 
S 
BIT 7D = 1 
CHỤC  ĐƠN VỊ 
ĐƠN VỊ  A 
LƯU – SPL  CHỤC,ĐƠNVỊ 
Gọi nhấn số thứ 3 
 (2) 
(3) 
S 
Luận văn tốt nghiệp Trang 28 
GVHD Nguyễn Việt Hùng 
11. Chương trình delay: 
Để khống chế thời gian delay nạp giá trị ban đầu cho timer. Set cho timer chạy. Khi 
timer đếm bằng thời gian nạp thì cờ báo tràn được set lên [1]. Muốn thời gian delay lớn 
nạp giá trị cho R4, giảm R4 sau mỗi lần tràn timer. Như thế thời gian delay sẽ là: 
 t = (R4) x count0. Khi R4 = 0 là hết thời gian delay. 
 (2) 
Đ 
S 
BIT 7E = 1 
BIT 7D = 1 
TRĂM  CHỤC 
CHỤC  ĐƠN VỊ 
ĐƠN VỊ  A 
LƯU – SPL  CHỤC,ĐƠNVỊ 
LƯU – SPH  TRĂM 
Gọi chương trình dị phím 
A = # 0CH A = # 0BH 
Đ 
S 
RET 
Đ 
S 
 (1) 
(3) 
Chương trình con nhập sản phẩm 
Luận văn tốt nghiệp Trang 29 
GVHD Nguyễn Việt Hùng 
 12. Chương trình con lưu số sản phẩm số hộp trong mỗi ca sản xuất: 
Chương trình này lưu kết quả của mỗi ca sản xuất. Số hộp, số sản phẩm được lưu vào các ơ 
nhớ từ 30H  53H. Xét nội dung ơ nhớ 2EH, nếu nội dung ơ nhớ 2EH = 1 và sau khi đếm 
xong và băng chuyền báo hiệu ngưng đếm thì nội dung ơ nhớ 2EH trao cho thanh ghi A và 
lưu kết quả vào ca 1. Nếu ca sau cho phép hoạt động thì nội dung ơ nhớ 2EH tăng lên 1 và 
tương tự đươc lưu vào ca tương ứng ( ca = ca trước + 1). 
 13. Chương trình con cho phép xem số liệu của ca sản xuất: 
Chương trình này xem kết quả của mỗi ca sản xuất, cụ thể là xem nội dung số hộp số sản 
phẩm trong mỗi ca sản xuất. Ở đề tài này chúng em chỉ viết chương trình xem tối đa là 9 
ca. Tức là khi muốn kiểm tra ca nào thì nhập cụ thể ca đĩ là ca thứ mấy thơng qua bàn 
phím bằng cách nhấn một số. Trước đĩ số hộp, số sản phẩm được lưu vào các ơ nhớ từ 
30H  53H. Khi ro-le băng chuyền đã ngưng hoạt động sau một ca nào đĩ nếu tiếp tục 
Bắt đầu 
TH0  # HIGHT COUNT0 
TL0  # LOW COUNT0 
TR0 = 1 
 COUNT 0 
Xĩa cờ tràn 
R4 - 1 
Chạy 
timer 
 S 
 Đ 
 R4 = 0 
 Đ 
 S 
Ret 
(FFFF  0000) 
Luận văn tốt nghiệp Trang 30 
GVHD Nguyễn Việt Hùng 
muốn nhập số liệu vào để đếm cho ca tiếp theo thì nhấn một phím bất kỳ khác phím E . 
Cịn nếu nhấn phím E tức là cho phép xem số liệu của các ca, chỉ cần nhấn phím cĩ loại trừ 
phím chức năng thì mã phím nhấn đĩ được lưu vào thanh ghi A. Nếu A bằng mấy thì sẽ 
đưa nội dung ơ nhớ lưu số liệu ca đĩ ra bộ phận hiển thị. Và nếu muốn xem tiếp ca nào nữa 
thì cứ nhấn phím cho phép xem E rồi nhập số liệu vào. 
Cịn khi muốn lưu số ca nhiều hơn nữa như tối đa là từ 0 99 hay từ 0  999 hay từ 0  
999 thì tương tự như trên chỉ khác là khi nhập số liệu vào thì gọi nhấn tối đa 2 số , 3số, hay 
4 số thì chương trình nhập số lại giống như trong chương trình con nhập số sản phẩm và số 
hộp, và nhiều ca được lưu thì số ơ nhớ cũng phải được tăng theo. 
A  2EH 
A =#01H 
A =#02H 
A =#03H
30H  LUUHOPL 
31H  LUUHOPH 
32H  LUU_SPL 
33H  LUU_SPH 
34H  LUUHOPL 
35H  LUUHOPH 
36H  LUU_SPL 
37H  LUU_SPH 
38H  LUUHOPL 
39H  LUUHOPH 
3AH  LUU_SPL 
3BH  LUU_SPH 
Đ
S 
S 
Đ
S 
Đ LƯU: 
Số sản phẩm, hộp của các ca 
được lưu vào ơ nhớ tương 
Đưa số liệu của các ca trong ơ 
nhớ ra hiển thị 
Luận văn tốt nghiệp Trang 31 
GVHD Nguyễn Việt Hùng 
A =#06H 
A =#07H 
A =#08H 
A =#09H 
44H  LUUHOPL 
45H  LUUHOPH 
46H  LUU_SPL 
47H  LUU_SPH 
48H  LUUHOPL 
49H  LUUHOPH 
4AH  LUU_SPL 
4BH  LUU_SPH 
4CH  LUUHOPL 
4DH  LUUHOPH 
4EH  LUU_SPL 
4FH  LUU_SPH 
50H  LUUHOPL 
51H  LUUHOPH Đ 
Đ 
S 
S 
Đ 
S 
Đ 
( 2 ) 
Luận văn tốt nghiệp Trang 32 
GVHD Nguyễn Việt Hùng 
Gọi chương trình con dị phím 
A =#00H 
A =#01H 
A =#02H 
A =#03H 
LUUHOPL  #FFH 
 LUUHOPH  #FFH 
 LUU_SPL  #FFH 
 LUU_SPH  #FFH 
 LUUHOPL  30H 
LUUHOPH  31H 
 LUU_SPL  32H 
 LUU_SPH  33H 
 LUUHOPL  34H 
 LUUHOPH  35H 
 LUU_SPL  36H 
 LUU_SPH  37H 
 LUUHOPL  38H 
 LUUHOPH  39H 
 LUU_SPL  3AH 
 LUU_SPH  3BH 
Đ 
S 
Đ 
S 
S 
Đ 
S 
Đ 
XEM: 
Lưu đồ chương trình cho phép xem số liệu 
Luận văn tốt nghiệp Trang 33 
GVHD Nguyễn Việt Hùng 
A =#05H 
A =#06H 
A =#07H 
A =#08H 
A =#09H 
LUUHOPL  40H 
 LUUHOPH  41H 
 LUU_SPL  42H 
 LUU_SPH  43H 
 LUUHOPL  44H 
LUUHOPH  45H 
 LUU_SPL  46H 
 LUU_SPH  47H 
 LUUHOPL  48H 
 LUUHOPH  49H 
 LUU_SPL  4AH 
 LUU_SPH  4BH 
 LUUHOPL  4CH 
 LUUHOPH  4DH 
 LUU_SPL  4EH 
 LUU_SPH  4FH 
 LUUHOPL  50H 
 LUUHOPH  51H 
 LUU_SPL  52H 
 LUU_SPH  53H 
Đ 
S 
Đ 
S 
Đ 
S 
S 
Đ 
S 
Đ 
( 2 ) 
Luận văn tốt nghiệp Trang 34 
GVHD Nguyễn Việt Hùng 
B. CHƯƠNG TRÌNH HỆ THỐNG 
 ;CHUONG TRINH DEM SAN PHAM VA DONG HOP 
;-----------------KHAI BAO CAC BIEN HANG--------------------- 
 CWR4 EQU 4003H ;CWR4 
 ROLE_BC EQU 4000H ;PORTA4 
 CAMBIEN EQU 4001H ;PORTB4 
 NGO_DP1 EQU 4002H ;PORTC4 
 CWR6 EQU 6003H ;CWR6 
 HIENTHI EQU 6000H ;PORTA6 
 ROLE_DH EQU 6001H ;PORTB6 
 CHONLED EQU 6002H ;PORTC6 
 LED70 EQU 70H 
 LED71 EQU 71H 
 LED72 EQU 72H 
 LED73 EQU 73H 
 LED74 EQU 74H 
 LED75 EQU 75H 
 LED76 EQU 76H 
 LED77 EQU 77H 
 LUU_SPL EQU 78H ;Luu san pham (byte thap) 
 LUU_SPH EQU 79H ;Luu san pham (byte cao) 
 DEM_SPL EQU 7AH ;Dem san pham (byte thap) 
 DEM_SPH EQU 7BH ;Dem san pham (byte cao) 
 LUUHOPL EQU 7CH 
 LUUHOPH EQU 7DH 
 DEMHOPL EQU 7EH 
 DEMHOPH EQU 7FH 
 COUNT0 EQU -10000 
 DELAY1 EQU 50 
 DELAY2 EQU 20 
 TOCDO1 EQU 9 
 COUNT1 EQU -250 
 BLK EQU 0FH 
 START EQU 0CH 
 NO BIT 7DH 
 YES BIT 7EH 
 LUU_CY BIT 7FH 
;-------------------------CHUONG TRINH CHINH----------------- 
 ORG 00H 
 LJMP BAT_DAU0 
 ORG 1BH 
Luận văn tốt nghiệp Trang 35 
GVHD Nguyễn Việt Hùng 
 LJMP NGAT_T1 
 ORG 30H 
BAT_DAU0: MOV R1,#LED77 
 MOV R2,#TOCDO1 
 MOV TMOD,#21H 
 MOV TH1,#COUNT1 
 LCALL KD_NV 
 SETB TR1 
 SETB ET1 
 SETB EA 
BAT_DAU1: MOV 2EH,#00H 
 MOV 30H,#00H 
 MOV 31H,#00H 
 MOV 32H,#00H 
 MOV 33H,#00H 
 MOV 34H,#00H 
 MOV 35H,#00H 
 MOV 36H,#00H 
 MOV 37H,#00H 
 MOV 38H,#00H 
 MOV 39H,#00H 
 MOV 3AH,#00H 
 MOV 3BH,#00H 
 MOV 3CH,#00H 
 MOV 3DH,#00H 
 MOV 3EH,#00H 
 MOV 3FH,#00H 
 MOV 40H,#00H 
 MOV 41H,#00H 
 MOV 42H,#00H 
 MOV 43H,#00H 
 MOV 44H,#00H 
 MOV 45H,#00H 
 MOV 46H,#00H 
 MOV 47H,#00H 
 MOV 48H,#00H 
 MOV 49H,#00H 
 MOV 4AH,#00H 
 MOV 4BH,#00H 
 MOV 4CH,#00H 
 MOV 4DH,#00H 
 MOV 4EH,#00H 
 MOV 4FH,#00H 
 MOV 50H,#00H 
 MOV 51H,#00H 
 MOV 52H,#00H 
 MOV 53H,#00H 
 MOV 54H,#00H 
 MOV 55H,#00H 
Luận văn tốt nghiệp Trang 36 
GVHD Nguyễn Việt Hùng 
 MOV 56H,#00H 
 MOV 57H,#00H 
BAT_DAU: MOV DEMHOPL,#00H 
 MOV DEMHOPH,#00H 
 MOV DEM_SPL,#00H 
 MOV DEM_SPH,#00H 
 INC 2EH 
 MOV 77H,2EH 
 MOV 76H,#BLK 
 MOV 75H,#BLK 
 MOV 74H,#BLK 
 MOV 73H,#BLK 
 MOV 72H,#BLK 
 MOV 71H,#0AH 
 MOV 70H,#10H 
 MOV R4,#250 
 LCALL DELAY 
 MOV LED70,#0DH ;'N' 
 MOV LED71,#0BH ;'H' 
 MOV LED72,#0AH ;'A' 
 MOV LED73,#0EH ;'P' 
 LCALL NHAPHOP 
 LCALL NHAP_SP 
 MOV DPTR,#ROLE_BC 
 MOV A,#0FFH ;Cho phep bang chuyen hoat dong 
 MOVX @DPTR,A 
DEM: LCALL BLANK 
 LCALL DAUDO 
 MOV A,DEM_SPL 
 LCALL TANG_1 
 MOV DEM_SPL,A 
 JNC DU_SP? 
 MOV A,DEM_SPH 
 LCALL TANG_1 
 MOV DEM_SPH,A 
DU_SP?: MOV A,DEM_SPH 
 CJNE A,LUU_SPH,DEM 
 MOV A,DEM_SPL 
 CJNE A,LUU_SPL,DEM 
 LCALL BLANK 
 MOV R4,#DELAY1 
 LCALL DELAY 
 MOV A,#00H 
 MOV DPTR,#ROLE_DH 
 MOVX @DPTR,A 
 MOV R4,#DELAY2 
 LCALL DELAY 
 MOV A,#0FFH 
 MOVX @DPTR,A 
Luận văn tốt nghiệp Trang 37 
GVHD Nguyễn Việt Hùng 
 MOV DEM_SPL,#00H 
 MOV DEM_SPH,#00H 
 MOV A,DEMHOPL 
 LCALL TANG_1 
 MOV DEMHOPL,A 
 JNC DUHOP? 
 MOV A,DEMHOPH 
 LCALL TANG_1 
 MOV DEMHOPH,A 
DUHOP?: MOV A,DEMHOPH 
 CJNE A,LUUHOPH,DEM 
 MOV A,DEMHOPL 
 CJNE A,LUUHOPL,DEM 
 LCALL BLANK 
KETTHUC: MOV DPTR,#ROLE_BC 
 MOV A,#00H 
 MOVX @DPTR,A 
 MOV A,2EH 
 LCALL LUU 
L14: LCALL IN_HEX 
 CJNE A,#0EH,L12 
 MOV 77H,#BLK 
 MOV 76H,#BLK 
 MOV 75H,#BLK 
 MOV 74H,#BLK 
 MOV 73H,#BLK 
 MOV 72H,#BLK 
 MOV 71H,#0AH 
 MOV 70H,#10H 
L13: LCALL IN_HEX 
 PUSH ACC 
 CLR C 
 SUBB A,#0AH 
 POP ACC 
 JNC L13 
 MOV 77H,A 
 LCALL DELAY 
 LCALL XEM 
 MOV 74H,#0CH 
 MOV DEMHOPL,LUUHOPL 
 MOV DEMHOPH,LUUHOPH 
 MOV DEM_SPL,LUU_SPL 
 MOV DEM_SPH,LUU_SPH 
 LCALL BLANK 
 LCALL DELAY 
 LJMP L14 
L12: MOV A,2EH 
 CJNE A,#09H,L15 
 LJMP BAT_DAU1 
Luận văn tốt nghiệp Trang 38 
GVHD Nguyễn Việt Hùng 
L15: LJMP BAT_DAU 
;------------------KHAI BAO CHUONG TRINH CON----------------- 
 ;CHUONG TRINH CON LUU SO HOP, SO SAN PHAM 
LUU: NOP 
 L0: CJNE A,#01H,L1 
 MOV 30H,LUUHOPL 
 MOV 31H,LUUHOPH 
 MOV 32H,LUU_SPL 
 MOV 33H,LUU_SPH 
 LJMP L10 
 L1: CJNE A,#02H,L2 
 MOV 34H,LUUHOPL 
 MOV 35H,LUUHOPH 
 MOV 36H,LUU_SPL 
 MOV 37H,LUU_SPH 
 LJMP L10 
 L2: CJNE A,#03H,L3 
 MOV 38H,LUUHOPL 
 MOV 39H,LUUHOPH 
 MOV 3AH,LUU_SPL 
 MOV 3BH,LUU_SPH 
 LJMP L10 
 L3: CJNE A,#04H,L4 
 MOV 3CH,LUUHOPL 
 MOV 3DH,LUUHOPH 
 MOV 3EH,LUU_SPL 
 MOV 3FH,LUU_SPH 
 LJMP L10 
 L4: CJNE A,#05H,L5 
 MOV 40H,LUUHOPL 
 MOV 41H,LUUHOPH 
 MOV 42H,LUU_SPL 
 MOV 43H,LUU_SPH 
 LJMP L10 
 L5: CJNE A,#06H,L6 
 MOV 44H,LUUHOPL 
 MOV 45H,LUUHOPH 
 MOV 46H,LUU_SPL 
 MOV 47H,LUU_SPH 
 LJMP L10 
 L6: CJNE A,#07H,L7 
 MOV 48H,LUUHOPL 
 MOV 49H,LUUHOPH 
 MOV 4AH,LUU_SPL 
 MOV 4BH,LUU_SPH 
 LJMP L10 
 L7: CJNE A,#08H,L8 
 MOV 4CH,LUUHOPL 
 MOV 4DH,LUUHOPH 
Luận văn tốt nghiệp Trang 39 
GVHD Nguyễn Việt Hùng 
 MOV 4EH,LUU_SPL 
 MOV 4FH,LUU_SPH 
 LJMP L10 
 L8: CJNE A,#09H,L10 
 MOV 50H,LUUHOPL 
 MOV 51H,LUUHOPH 
 MOV 52H,LUU_SPL 
 MOV 53H,LUU_SPH 
 L10: RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON XEM 
XEM: NOP 
 CJNE A,#00H,H0 
 MOV LUUHOPL,#0FFH 
 MOV LUUHOPH,#0FFH 
 MOV LUU_SPL,#0FFH 
 MOV LUU_SPH,#0FFH 
 LJMP H9 
 H0: CJNE A,#01H,H1 
 MOV LUUHOPL,30H 
 MOV LUUHOPH,31H 
 MOV LUU_SPL,32H 
 MOV LUU_SPH,33H 
 LJMP H9 
 H1: CJNE A,#02H,H2 
 MOV LUUHOPL,34H 
 MOV LUUHOPH,35H 
 MOV LUU_SPL,36H 
 MOV LUU_SPH,37H 
 LJMP H9 
 H2: CJNE A,#03H,H3 
 MOV LUUHOPL,38H 
 MOV LUUHOPH,39H 
 MOV LUU_SPL,3AH 
 MOV LUU_SPH,3BH 
 LJMP H9 
 H3: CJNE A,#04H,H4 
 MOV LUUHOPL,3CH 
 MOV LUUHOPH,3DH 
 MOV LUU_SPL,3EH 
 MOV LUU_SPH,3FH 
 LJMP H9 
 H4: CJNE A,#05H,H5 
 MOV LUUHOPL,40H 
 MOV LUUHOPH,41H 
 MOV LUU_SPL,42H 
 MOV LUU_SPH,43H 
 LJMP H9 
 H5: CJNE A,#06H,H6 
Luận văn tốt nghiệp Trang 40 
GVHD Nguyễn Việt Hùng 
 MOV LUUHOPL,44H 
 MOV LUUHOPH,45H 
 MOV LUU_SPL,46H 
 MOV LUU_SPH,47H 
 LJMP H9 
 H6: CJNE A,#07H,H7 
 MOV LUUHOPL,48H 
 MOV LUUHOPH,49H 
 MOV LUU_SPL,4AH 
 MOV LUU_SPH,4BH 
 LJMP H9 
 H7: CJNE A,#08H,H8 
 MOV LUUHOPL,4CH 
 MOV LUUHOPH,4DH 
 MOV LUU_SPL,4EH 
 MOV LUU_SPH,4FH 
 LJMP H9 
 H8: CJNE A,#09H,H9 
 MOV LUUHOPL,50H 
 MOV LUUHOPH,51H 
 MOV LUU_SPL,52H 
 MOV LUU_SPH,53H 
 LJMP H9 
 H9: RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON CHO HIEN THI 
NGAT_T1: MOV LUU_CY,C 
 DJNZ R2,THOATT1 
 MOV R2,#TOCDO1 
 PUSH ACC 
 PUSH DPH 
 PUSH DPL 
 MOV DPTR,#CHONLED 
 MOV A,R1 
 SWAP A 
 MOVX @DPTR,A 
 MOV DPTR,#HIENTHI 
 MOV A,@R1 
 LCALL TRABANG 
 MOVX @DPTR,A 
 DEC R1 
 POP DPL 
 POP DPH 
 POP ACC 
 CJNE R1,#LED70-1,THOATT1 
 MOV R1,#LED77 
THOATT1: MOV C,LUU_CY 
 RETI 
;------------------------------------------------------------ 
Luận văn tốt nghiệp Trang 41 
GVHD Nguyễn Việt Hùng 
 ;CHUONG TRINH CON KHOI DONG THIET BI NGOAI VI 
KD_NV: MOV DPTR,#CWR4 
 MOV A,#82H ;PORTB4:INPUT 
 MOVX @DPTR,A 
 MOV DPTR,#ROLE_BC 
 MOV A,#00H ;Dung bang chuyen 
 MOVX @DPTR,A 
 MOV DPTR,#NGO_DP1 
 MOV A,#0FFH 
 MOVX @DPTR,A 
 MOV DPTR,#CWR6 
 MOV A,#80H 
 MOVX @DPTR,A 
 MOV A,#0FFH 
 MOV DPTR,#HIENTHI 
 MOVX @DPTR,A 
 MOV DPTR,#ROLE_DH 
 MOVX @DPTR,A 
 MOV DPTR,#CHONLED 
 MOVX @DPTR,A 
 RET 
;------------------------------------------------------------ 
;------------------------------------------------------------ ;CHUONG 
TRINH CON DELAY 
DELAY: MOV TH0,#HIGH COUNT0 
 MOV TL0,#LOW COUNT0 
 SETB TR0 
CHO: JNB TF0,CHO 
 CLR TF0 
 CLR TR0 
 DJNZ R4,DELAY 
 RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON NHAN SO 
NHANSO: CLR YES 
 CLR NO 
 LCALL IN_HEX 
 CJNE A,#0AH,XOASO? 
 SETB YES 
 CLR A 
 LJMP THOAT0 
XOASO?: CJNE A,#0BH,LOAITRU 
 SETB NO 
 LJMP THOAT0 
LOAITRU: PUSH ACC 
 CLR C 
 SUBB A,#0AH 
 POP ACC 
Luận văn tốt nghiệp Trang 42 
GVHD Nguyễn Việt Hùng 
 JNC NHANSO 
THOAT0: RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON TANG 1 
TANG_1: CLR AC 
 CLR C 
 ADD A,#1 
 DA A 
 RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON DAU DO 
DAUDO: MOV DPTR,#CAMBIEN 
DO1: MOV R3,#110 
DO2: MOV R4,#200 
DOMUC_L: MOVX A,@DPTR 
 JB ACC.0,DO1 
 DJNZ R4,DOMUC_L 
 DJNZ R3,DO2 
DOTIEP1: MOV R3,#34 
DOTIEP2: MOV R4,#200 
DOMUC_H: MOVX A,@DPTR 
 JNB ACC.0,DOTIEP1 
 DJNZ R4,DOMUC_H 
 DJNZ R3,DOTIEP2 
 RET 
;------------------------------------------------------------ 
 CHUONG TRINH CON XOA SO 0 KHONG CO NGHIA 
BLANK: MOV A,DEMHOPH 
 SWAP A 
 ANL A,#0FH 
 MOV LED70,A 
 MOV A,DEMHOPH 
 ANL A,#0FH 
 MOV LED71,A 
 MOV A,DEMHOPL 
 SWAP A 
 ANL A,#0FH 
 MOV LED72,A 
 MOV A,DEMHOPL 
 ANL A,#0FH 
 MOV LED73,A 
 MOV A,DEM_SPH 
 ANL A,#0FH 
 MOV LED75,A 
 MOV A,DEM_SPL 
 SWAP A 
 ANL A,#0FH 
 MOV LED76,A 
 MOV A,DEM_SPL 
Luận văn tốt nghiệp Trang 43 
GVHD Nguyễn Việt Hùng 
 ANL A,#0FH 
 MOV LED77,A 
 MOV A,LED70 
 JNZ THOAT3 
 MOV LED70,#BLK 
 MOV A,LED71 
 JNZ THOAT3 
 MOV LED71,#BLK 
 MOV A,LED72 
 JNZ THOAT3 
 MOV LED72,#BLK 
THOAT3: MOV A,LED75 
 JNZ THOAT4 
 MOV LED75,#BLK 
 MOV A,LED76 
 JNZ THOAT4 
 MOV LED76,#BLK 
THOAT4: RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON NHAP HOP 
NHAPHOP: MOV LED74,#BLK 
 MOV LED75,#BLK 
 MOV LED76,#BLK 
 MOV LED77,#00H 
 MOV LUUHOPL,#00H 
 MOV LUUHOPH,#00H 
SOHOP1: LCALL NHANSO 
 JZ SOHOP1 
 JBC NO,NHAPHOP 
 MOV LED77,A 
 MOV LUUHOPL,A 
SOHOP2: LCALL NHANSO 
 JBC YES,THOAT1 
 JBC NO,NHAPHOP 
 MOV LED76,LED77 
 MOV LED77,A 
 MOV A,LED76 
 SWAP A 
 ORL A,LED77 
 MOV LUUHOPL,A 
SOHOP3: LCALL NHANSO 
 JBC YES,THOAT1 
 JBC NO,NHAPHOP 
 MOV LED75,LED76 
 MOV LED76,LED77 
 MOV LED77,A 
 MOV A,LED76 
 SWAP A 
 ORL A,LED77 
Luận văn tốt nghiệp Trang 44 
GVHD Nguyễn Việt Hùng 
 MOV LUUHOPL,A 
 MOV LUUHOPH,LED75 
SOHOP4: LCALL NHANSO 
 JBC YES,THOAT1 
 JBC NO,NHAPHOP 
 MOV LED74,LED75 
 MOV LED75,LED76 
 MOV LED76,LED77 
 MOV LED77,A 
 MOV A,LED76 
 SWAP A 
 ORL A,LED77 
 MOV LUUHOPL,A 
 MOV A,LED74 
 SWAP A 
 ORL A,LED75 
 MOV LUUHOPH,A 
KT_NHAPHOP: LCALL IN_HEX 
 CJNE A,#0AH,XOANHAPHOP? 
 LJMP THOAT1 
XOANHAPHOP?: CJNE A,#0BH,KT_NHAPHOP 
 LJMP NHAPHOP 
THOAT1: RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON NHAP SAN PHAM 
NHAP_SP: MOV LED74,#0CH 
 MOV LED75,#BLK 
 MOV LED76,#BLK 
 MOV LED77,#00H 
 MOV LUU_SPL,#00H 
 MOV LUU_SPH,#00H 
SO_SP1: LCALL NHANSO 
 JZ SO_SP1 
 JBC NO,NHAP_SP 
 MOV LED77,A 
 MOV LUU_SPL,A 
SO_SP2: LCALL NHANSO 
 JBC YES,KT_NHAP_SP 
 JBC NO,NHAP_SP 
 MOV LED76,LED77 
 MOV LED77,A 
 MOV A,LED76 
 SWAP A 
 ORL A,LED77 
 MOV LUU_SPL,A 
SO_SP3: LCALL NHANSO 
 JBC YES,KT_NHAP_SP 
 JBC NO,NHAP_SP 
 MOV LED75,LED76 
Luận văn tốt nghiệp Trang 45 
GVHD Nguyễn Việt Hùng 
 MOV LED76,LED77 
 MOV LED77,A 
 MOV A,LED76 
 SWAP A 
 ORL A,LED77 
 MOV LUU_SPL,A 
 MOV LUU_SPH,LED75 
KT_NHAP_SP: LCALL IN_HEX 
 CJNE A,#START,XOA_NHAP_SP? 
 LJMP THOAT2 
XOA_NHAP_SP?: CJNE A,#0BH,KT_NHAP_SP 
 LJMP NHAP_SP 
THOAT2: RET 
;------------------------------------------------------------ 
 ;CHUONG TRINH CON KIEM TRA CO PHIM NHAN ? 
IN_HEX: MOV R3,#50 
BACK1: LCALL GET_KEY 
 JNC IN_HEX 
 DJNZ R3,BACK1 
 PUSH ACC 
BACK2: MOV R3,#50 
BACK3: LCALL GET_KEY 
 JC BACK2 
 DJNZ R3,BACK3 
 POP ACC 
 RET 
;------------------------------------------------------------ 
 ; CHUONG TRINH CON DO AN PHIM 
GET_KEY: MOV A,#0FEH 
 MOV R6,#4 
TEST_NEXT: MOV P1,A 
 MOV R7,A 
 MOV A,P1 
 ANL A,#0F0H 
 CJNE A,#0F0H,KEY_BIT 
 MOV A,R7 
 RL A 
 DJNZ R6,TEST_NEXT 
 CLR C 
 SJMP EXIT 
KEY_BIT: MOV R7,A 
 MOV A,#4 
 CLR C 
 SUBB A,R6 
 MOV R6,A 
 MOV A,R7 
 SWAP A 
 MOV R5,#4 
AGAIN: RRC A 
Luận văn tốt nghiệp Trang 46 
GVHD Nguyễn Việt Hùng 
 JNC DONE 
 INC R6 
 INC R6 
 INC R6 
 INC R6 
 DJNZ R5,AGAIN 
DONE: SETB C 
 MOV A,R6 
EXIT: RET 
;------------------------------------------------------------ CHUONG TRINH 
CON TRA BANG 
TRABANG: ADD A,#11 
 MOVC A,@A+PC 
 RET 
 DB 'DEFINEBYTE' 
 DB 0C0H ; '0' 
 DB 0F9H ; '1' 
 DB 0A4H ; '2' 
 DB 0B0H ; '3' 
 DB 099H ; '4' 
 DB 092H ; '5' 
 DB 082H ; '6' 
 DB 0F8H ; '7' 
 DB 080H ; '8' 
 DB 090H ; '9' 
 DB 088H ; 'A' 
 DB 089H ; 'H' 
 DB 09CH ; 'o' 
 DB 0C8H ; 'N' 
 DB 08CH ; 'P' 
 DB 0FFH ; 'BLANK' 
 DB 0C6H ; 'C' 
;-----------------KET THUC CHUONG TRINH---------------------- 
END 
Luận văn tốt nghiệp Trang 47 
GVHD Nguyễn Việt Hùng 
LỜI GIỚI THIỆU 
 Trong quá trình hiện nay máy tính điện tử đã gĩp phần khơng nhỏ đối với sự phát 
triển xã hội. Do yêu cầu của con người ngày càng cao, các thế hệ máy tính đã liên tục 
phát triển khơng ngừng. Ngay trong giai đoạn đầu các thế hệ vi xử lý 8 bit được dùng là 
Z80,8085, sau đĩ là các hệ vi xử lý 16 bit như 8086, 8088… 
Các hệ vi xử lý này đã gĩp phần quan trọng trong việc chương trình hĩa các hoạt động 
của máy mĩc trong cơng nghiệp nhờ vào các phần mềm ứng dụng. Một khi trong cơng 
nghiệp đã ứng dụng nhiều vào vi xử lý thì các nhà chế tạo khơng bỏ lỡ cơ hội cho ra đời 
các họ vi điều khiển ngày càng tiến bộ hơn. 
Vi điều khiển được sử dụng nhiều trong các thiết bị cơng nghiệp, trong máy giặt, trong 
điều khiển đèn giao thơng, trong các đồ chơi giải trí… 
Tại Việt nam việc chương trình hĩa các hệ thống đang được áp dụng ngày càng nhiều 
trong các nhà máy cơng nghiệp. 
Để tìm hiểu về vi điều khiển và tìm hiểu một ứng dụng cụ thể của nĩ nhĩm chúng em 
xin thực hiện đề tài gồm hai phần chính: 
 PHẦN1: Khảo sát vi điều khiển 8051, vi mạch giao tiếp ngoại vi 8255, cùng với bộ 
nhớ bán dẫn, cảm biến. 
 PHẦN 2: Thiết kế và thi cơng mạch đếm sản phẩm dùng vi điều khiển 8051. 
 Chương trình hệ thống và ứng dụng. 
Nhờ cĩ sự giúp đỡ của quý thầy cơ và bạn bè, nhĩm chúng em đã cố gắng thực hiện đề 
tài được giao nhưng do kiến thức và thời gian cĩ hạn nên đề tài khơng thể tránh khỏi 
thiếu sĩt nên rất mong sự đĩng gĩp của quý thầy cơ và bạn bè. 
 Sinh viên thực hiện 
 Đinh Thị Kha 
 Lê Hồng Minh 
Luận văn tốt nghiệp Trang 48 
GVHD Nguyễn Việt Hùng 
LỜI CẢM ƠN 
 Trong quá trình bốn năm rưỡi học tại trường Đại học Sư phạm kỹ thuật TP.HCM. 
Chúng em đã được sự hướng dẫn tận tình của quí thầy cơ về những kiến thức chuyên mơn 
cũng như kiến thức trong cuộc sống. Từ những kiến thức nền tảng đĩ đã giúp chúng em 
hồn thành tập luận văn tốt nghiệp trong thời gian cho phép. 
Chúng em xin chân thành cảm ơn thầy cơ trong khoa điện đã giảng dạy cho chúng em 
những kiến thức về chuyên mơn và định hướng đi theo sự hiểu biết, khả năng của chúng 
em để chúng em thực hiện tốt luận văn tốt nghiệp và tạo điều kiện thuận lợi cho chúng em 
hồn tất khĩa học. 
Chúng em xin chân thành cảm ơn thầy NGUYỄN VIỆT HÙNG và cơ TRẦN THANH 
MAI đã tận tình giúp đỡ chúng em hồn thành tập luận án này. 
Chúng em xin chân thành cảm ơn anh BÙI ĐỨC MINH, NGUYỄN KIM HUY, cùng các 
bạn sinh viên đã tận tình giúp đỡ chúng em hồn thành tốt mạch. 
 Sinh viên thực hiện 
 ĐINH THỊ KHA 
 LÊ HỒNG MINH 
Luận văn tốt nghiệp Trang 49 
GVHD Nguyễn Việt Hùng 
DẪN NHẬP 
 Hệ thống vi xử lý hay cịn gọi là máy tính điện tử là thiết bị xử lý thơng tin, điều 
khiển các thiết bị ngồi hay các thiết bị trong cơng nghiệp tự động. 
Phần chính của máy tính là bộ xử lý trung tâm CPU (Central Processing Unit) là nơi xảy 
ra các quá trình xử lý số liệu và điều khiển mọi hoạt động của máy tính. Người ta phân loại 
CPU dựa vào độ rộng Data bus như: 
CPU 8 bit Z80A: Hãng Zilog 
6802 : Hãng Motorola 
 8080/8085: Hãng Intel 
CPU 16 bit 8086/8088: Hãng Intel 
Vi xử lý là một hệ thống số dựa trên cơ sở linh kiện chủ yếu là bộ vi xử lý (CPU ). Tùy 
thuộc vào cấu trúc của bộ vi xử lý riêng biệt và phần điều khiển mà nĩ cĩ thể bao gồm 
nhiều loại vi mạch. Dưới sự điều khiển bằng chương trình một bộ vi xử lý thực hiện các 
phép tính số học và logic, đồng thời tạo ra những tín hiệu điều khiển cho bộ nhớ và thiết bị 
vào ra. 
Những mệnh lệnh này gọi là chương trình nguồn và được chứa trong bộ nhớ chỉ đọc 
(ROM) 
Luận văn tốt nghiệp Trang 50 
GVHD Nguyễn Việt Hùng 
 Chương trình con kiểm tra phím ấn 
 Khơng cĩ phím ấn 
RET 
IN _HEX 
#50 (R3) 
#50 (R3) 
Call: getkey 
 C= 0 
S 
Đ 
R3 - 1 
Cĩ phím ấn 
Cất ACC 
R3= 0 
Đ 
Call: getkey 
C = 1 
 S S 
R3 - 1 
R3= 0 
Đ 
Lấy ACC 
            Các file đính kèm theo tài liệu này:
 thiet_ke_mach_dem_san_pham_dung_vi_dieu_khien_8051_8614.pdf thiet_ke_mach_dem_san_pham_dung_vi_dieu_khien_8051_8614.pdf