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è.
                
              
                                            
                                
            
 
            
                 113 trang
113 trang | 
Chia sẻ: banmai | Lượt xem: 2065 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Mạch vi điều khiển đếm sản phẩm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
aïi cuûa coång C. Coù 3 cheá ñoä hoaït ñoäng khaùc nhau:
- Cheá ñoä 0: vaøo/ra thoâng thöôøng.
- Cheá ñoä 1: choát vaøo/ra.
- Cheá ñoä 2: bus hai chieàu.
Cheá ñoä 0: 
Töø ñieàu khieån:
1
0
0
D4
D3
0
D1
D0
Côø laäp cheá ñoä
1 = tích cöïïc
Cheá ñoä 0 xaùc laäp hai coång 8 bit (A vaø B) vaø hai coång 4 bit (nöûa cao vaø nöûa thaáp cuûa C). Baát kyø coång naøo cuõng coù theå nhaäp hoaëc xuaát döõ lieäu moät caùch ñoäc laäp tuøy theo caùc bit D4, D3, D1 vaø D0. Coù 24 = 16 khaû naêng vaøo/ra trong cheá ñoä naøy
Caáu truùc töø ñieàu khieån:
Nhoùm B
Port C (thaáp)
1 = nhaäp
0 = xuaát
Port B
1 = nhaäp
0 = xuaát
Choïn cheá ñoä
0 = cheá ñoä 0
1 = cheá ñoä 1
Côø laäp cheá ñoä
1 = tích cöïïc
Nhoùm A
Port C (cao)
1 = nhaäp
0 = xuaát
Port A
1 = nhaäp
0 = xuaát
Choïn cheá ñoä
 00 = cheá ñoä 0
01 = cheá ñoä 1
1x = cheá ñoä 2
D7 D6 D5 D4 D3 D2 D1 D0
Vì doøng ra caùc port cuûa 8255 raát nhoû (lôùn nhaát laø port A khoaûng 5mA) neân caàn coù IC ñeäm doøng ñeå naâng doøng leân ñuû keùo cho led saùng. Chuùng em choïn IC ñeäm 74245, sau ñaây laø sô ñoà chaân, baûng traïng thaùi cuûa 74245: 	
	Sô ñoà chaân vaø sô ñoà logic cuûa 74245 nhö sau:
Enable
G\
Direction
Control
DIR
Operation
L
L
H
L
H
X
Döõ lieäu töø B ñöa ra bus A
Döõ lieäu töø A ñöa ra busA
Ngaên
 Baûng söï thaät
 1
 2	2
 3
 4
 5
 6
 7
 8
 9
 10
74245
20
19
18
17
 16
15
14
13
12
11
 DIR 
 A1
A2
A3
A4
A5
A6
A7
A
8
GND
Vcc
G\
B1
B2
B3
B4
B5
B6
B7
B8
Sô ñoà chaân
Tuy nhieân doøng ra lôùn neân phaûi duøng theâm ñieän trôû haïn doøng töø moãi ngoõ ra (B1 _ B8) cuûa 74245
	4. Baøn phím:
	Vì ñaây laø maïch ñeám saûn phaåm, ñeám soá saûn phaåm trong moät thuøng, vaø soá saûn phaåm trong moät loâ, moãi loaïi nhö vaäy coù theå nhaäp vaøo soá ñeám trong phaïm vi töø 0 ñeán toái ña 9999, do ñoù chuùng em söû duïng 10 phím soá töø 0 ñeán 9. Vaø moãi laàn nhaäp soá vaøo ñeå nhaän bieát laø nhaäp maáy soá hoaëc ñaõ nhaäp xong vaø muoán bieát cho pheùp ñeám chöa hoaëc huûy boû soá vöøa nhaäp phaûi caàn söû duïng theâm caùc phím chöùc naêng, neân chuùng em duøng theâm 6 phím chöùc naêng töø A ñeán F. Do ñoù baøn phím goàm 16 phím ñöôïc keát noái vaøo port 1 cuûa 8051:
Sô ñoà khoái keát noái nhö sau:
8051
BAØN PHÍM
PORT 1
8
0
5
1
74373
ROM
CS\
RAM
CS\
8255-2
CS\
74138 Y0
Y1
Y2
Y3
Hieån thò
Rôle ÑH
8255-1
CS\
Rôle BC
Thu 
Phaùt
Port0
Data 
A0 ¸ A7
A0 ¸ A1
PortA
PortB
PortA
PortB.0
A8 ¸ A12
Port2
A13 ¸ A15
BAØN PHÍM
Port1
Address
SÔ ÑOÀ KHOÁI CHI TIEÁT CUÛA MAÏCH ÑIN
 PHAÀN II 
THIEÁT KEÁ,THI COÂNGVAØ CHÖÔNG TRÌNH 
CHÖÔNG I THIEÁT KEÁ, THI COÂNG PHAÀN CÖÙNG
Sau khi ñaõ phaân tích moät moâ hình heä thoáng vi xöû lyù baây giôø chuùng em baét ñaàu ñi vaøo tính toaùn caùc giaù trò thöïc teá ñeå cho heä thoáng hoaït ñoäng ñöôïc. Vieäc tính toaùn löïa choïn phaûi döïa treân lyù thuyeát vaø caùc linh kieän thoâng duïng treân thò tröôøng.
Maëc duø phaàn cöùng heä thoáng khoâng theå thay ñoåi ñöôïc nhöng phaàn meàm coù theå thay ñoåi laøm cho heä thoáng coù khaû naêng hoaït ñoäng moät caùch linh hoaït vì vaäy thieát keá phaàn cöùng phaûi caân ñoái sao cho phaàn meàm khoâng quaù phöùc taïp.
	I. KEÁT NOÁI 8051 VÔÙI BOÄ NHÔÙ VAØ CAÙC IC NGOAÏI VI :
	1. Keát noái boä nhôù chöông trình beân ngoaøi:
	Boä xöû lyù chính laø IC 8051 vôùi taàn soá laøm vieäc laø 12 MHz. Chaân 18, 19 cuûa 8051 ñöôïc noái vôùi thaïch anh (cuõng coù theå thay theá thaïch anh baèng tín hieäu xung clock). 
	Boä nhôù ROM ñöôïc cho pheùp bôûi tín hieäu PSEN\. Hình sau moâ taû caùch noái boä nhôù Eprom vôùi 8051:
D7 - D0
 EPROM
A7- A0
A15 -A8
0E\
Port 0 	 EA 8051
 Port2 
 PSEN
.
]
uhhdsaufy
D
74373
 Q 
G
ALE
	2. Keát noái boä nhôù döõ lieäu ngoaøi:
	Boä nhôù Ram ñöôïc cho pheùp ghi/ ñoïc baèng caùc tín hieäu ñieàu khieån WR\ vaø RD\. 8051 coù 1 leänh duy nhaát truy xuaát döõ lieäu cuûa boä nhôù döõ lieäu ngoaøi laø MOVX duøng con troû 16 bit (DPTR) hoaëc R0 vaø R1 xem nhö thanh ghi ñòa chæ.
	Keát noái bus ñòa chæ vaø bus döõ lieäu giöõa RAM vaø 8051 cuõng gioáng nhö EPROM . Ngoaøi ra, RD cuûa 8051 ñöôïc noái tôùi chaân cho pheùp xuaát (OE\ ) cuûa Ram vaø chaân WR ñöôïc noái tôùi chaân ghi (WR\) cuûa Ram.
D7 - D0
RAM
A7- A0 
A15 -A8
0E
WR
 Port 0 	 EA 
8051
 ALE
 Port2 
 RD 
 WR
.
]
uhhdsaufy
D 
 Q 
74373
G
3.Keát noái maïch giaûi maõ: 
*Hình thaønh maïch giaûi maõ ñòa chæ döïa treân baûng ñoà boä 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
A2
A
1
A
0
hex
Rom
8K
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0000 H
1FFFH
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
Ram
8K
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
2000 H
3FFFH
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8255
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4000 H
4003 H
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
8255
2
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
6000 H
6003 H
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
	 Tuy nhieân taïi moät thôøi ñieåm chæ coù 1 IC nhôù ñöôïc truy xuaát neân duøng caùc ñöôøng ñòa chæ A13, A14, A15 ñeå phaân bieät. Laáy A15, A13, A14 noái tôùi 3 ñaàu vaøo IC giaûi maõ 74138 (A,B,C). Caùc ngoõ ra Y0, Y1,Y2, Y3 laàn löôït ñöôïc noái tôùi CE cuûa Rom,Ram, CS cuûa 8255. Khi Yi = 0 thì IC ñoù ñöôïc choïn:	
 A13, A14, A15 = 0 choïn Rom
 A13 = 1, A14, A15 = 0 choïn Ram	 
 A13 = 0, A14 = 1, A15 = 0 choïn 82551
 A13 =1, A14 = 1, A15 = 0 choïn 82552
	4. Keát noái maïch choát:
 	-Chaân ALE (chaân 30) cuûa 8051 keát noái vôùi chaân G cuûa 74373. Caùc ñöôøng cuûa Port0 noái vôùi caùc ñöôøng töø Do ñeán D7 cuûa 74373. Caùc ñöôøng tín hieäu (Q0®Q7 ) cuûa 74373 vaø caùc ñöôøng port 2 (P2.0 ®P2.7) ñöôïc noái tôùi caùc ñöôøng ñòa chæ cuûa ROM vaø RAM (A0 ®A12 ) coøn caùc ñöôøng döõ lieäu töø port 0 ñöôïc noái tôùi caùc ñöôøng döõ lieäu cuûa ROM vaø RAM, 8255 (D0 ®D 7 ). 
	-Trong moãi chu kyø maùy seõ coù 2 xung ALE. Khi ALE ôû möùc logic cao (G = 1) vaø OC\ = (0) thì ngoõ ra Qo ® Q7 töông öùng vôùi ngoõ vaøo D, moïi söï thay ñoåi ôû ngoõ vaøo ñeàu aûnh höôûng ñeán ngoõ ra, luùc naøy Port 0 töông öùng laø ñöôøng ñòa chæ Ao ® A7. Khi ALE xuoáng möùc thaáp (G = 0), ngoõ ra Q seõ giöõ nguyeân traïng thaùi tröôùc ñoù baát chaáp ngoõ vaøo D, luùc naøy caùc ñöôøng Port 0 töông öùng laø caùc ñöôøng döõ lieäu Do ® D7. 
	*Tín hieäu PSEN\ cuûa 8051 (chaân 29) noái tôùi 0E cuûa Rom. Caùc ñöôøng (RD,WR) noái ñeán RD, WR cuûa Rom vaø 8255. Do muoán xeáp choàng boä nhôù neân cho tín hieäu RD\, PSEN cuûa 8051 qua coång AND (duøng 2 coång NAND 74132) ñöa tôùi OE\ cuûa Ram
	*Hình thaønh coâng taéc löaï choïn Rom A, Rom B:
	- Sô ñoà nguyeân lyù cuûa coâng taéc löïa choïn: (Sô ñoà nguyeân lyù maïch ñieàu khieån) 
	- Nguyeân lyù hoaït ñoäng cuûa coâng taéc löïa choïn nhö sau:
	Baát cöù khi naøo cho pheùp truy xuaát Rom (ngoõ vaøo 1 chaân coång OR xuoáng möùc logic [0]) vaø ngoõ ra coâng taéc löïa choïn A hoaëc B xuoáng möùc logic [0] thì Rom A hay B ñöôïc truy xuaát.
 	-Khi SW1 noái tôùi B, ngoõ ra cuûa coång NAND (U9A) = 1® ngoõ ra coång OR (U8A) = 1, Rom A khoâng ñöôïc choïn. Ñoàng thôøi khi ñoù, ngoõ ra coång NAND (U9B) = 0, neáu A13, A14, A15 = 0 thì ngoõ ra coång OR (U8B) = 0 ® Rom B ñöôïc choïn. Ngöôïc laïi, coâng taéc chuyeån sang A thì Rom A ñöôïc truy xuaát.
	II. THIEÁT KEÁ MAÏCH RESET:
	Khi coâng taéc chuyeån töø A sang B vaø ngöôïc laïi ñeàu reset toaøn boä laïi heä thoáng ñeå cho PC = 0000H. Bôûi vì khi ñang laøm vieäc taïi Rom A, PC khaùc 0000H, khi chuyeån sang Rom B ® PC baét ñaàu taïi ñòa chæ khaùc 0000H ® laøm sai chöông trình. Vì vaäy maïch reset trong ñoà aùn naøy bao goàm reset töø chuyeån coâng taéc choïn Rom, reset töø ngoaøi ñöa tôùi (neáu nhö keát hôïp vôùi maïch khaùc), reset khi baét ñaàu moãi chöông trình ñeám saûn phaåm vaø reset neáu nhö nguoàn cung caáp yeáu. Sô ñoà nguyeân lyù maïch reset trong sô ñoà nguyeân lyù maïch ñieàu khieån.
	1. Maïch reset töø vieäc choïn Rom: Maïch ñöôïc taïo bôûi coång nand, IC 74221, coång OR7432 vaø 1 coång OR khi keát hôïp vôùi reset khaùc
sô ñoà chaân vaø baûng thaùi cuûa 74221 nhö sau:
Sô ñoà chaân SN 74221:
Baûng traïng thaùi
1A
 1B
 Clr
1Q
2Q
Cset
 Reset
GND
Vcc
Reset
Cset
1Q\
2Q\
clr
2B
2A
74221
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 baûng traïng thaùi:
	- Khi chaân clear ôû möùc logic cao, A ôû möùc logic thaáp vaø chaân B chuyeån traïng thaùi töø möùc logic 0 leân 1 ôû ngoõ ra Q (ngöôïc laïi vôùi Q\)
	- Khi chaân clear ôû möùc logic cao, B ôû möùc logic cao vaø chaân A chuyeån traïng thaùi töø möùc logic 1 xuoáng 0 thì thì 74211 taïo ra moät xung döông ôû ngoõ ra Q 	
	Quaù trình reset ñöôïc thöïc hieän nhö sau:
	Khi SW chuyeån sang B, ngoõ ra cuûa coång NAND (U9A) töø 0 leân 1® chaân B cuûa74211 (U10B) töø 0 leân 1, A = 0 ® coù moät xung ôû ngoõ ra Q ® ngoõ ra coång OR leân 1 daãn ñeán RST = 1 heä thoáng bò reset: ñeøn reset (D4 saùng). Khi chuyeån coâng taéc sang A, ngoõ ra coång nand (U9A) töø 1 xuoáng 0®chaân A cuûa 74221 töø 1 xuoáng 0, B = 1 ® coù xung ra ôû ngoõ ra Q 74211 (U10A) ® maïch bò reset.
	2. Reset baèng nuùt nhaán:
	Khi nhaán nuùt, 1 chaân cuûa coång nand U2A ñöôïc noái mass® ngoõ ra = 1, reset (RST) = 1, heä thoáng bò reset (ñoàng thôøi khi ñoù chaân coøn laïi cuûa coång nand luoân ñöôïc giöõ ôû möùc cao). Khi keát noái vôùi maïch ñieän khaùc, maïch ñieän khaùc coù theå reset maïch ñieän naøy qua header 3 (JP8). Söï taùc ñoäng thoâng qua söï ngaét daãn cuûa Q3 C828. Khi Q3 daãn (coù taùc ñoäng beân ngoaøi), ngoõ ra coång nand (U2A) = 1, ngoõ ra coång OR = 1, RST = 1, heä thoáng bò reset.
	3. Reset khi nguoàn cung caáp yeáu:
	Caùc IC soá chæ hoaït ñoäng toát khi nguoàn cung caáp oån ñònh. Khi ñieän aùp nguoàn yeáu, caùc IC hoaït ñoäng hoãn loaïn, neáu khoâng coù söï hieån thò veà nguoàn cung caáp seõ gaây ra tröôøng hôïp maïch hoaït ñoäng sai maø khoâng bieát ñöôïc nguyeân nhaân. Treân maïch ñieän naøy, ñieän yeáu thì led xanh (D 7) seõ saùng vaø luùc ñoù thì maïch seõ bò reset cho ñeán khi nguoàn cung caáp oån ñònh, coøn khi nguoàn oån ñònh thì led ñoû (D8) seõ saùng. Quaù trình reset thöïc hieän döïa treân söï ngaét daãn cuûa transistor keát hôïp vôùi coång Nand 74132. Nguyeân lyù hoaït ñoäng maïch reset nhö sau:
	- Khi ñieän yeáu (VH < 3,7 Volt), Zener (D5, D6) khoâng daãn ® Q5 khoâng daãn, ngoõ ra coång Not (coång nand 74132) = 0, Q6; khoâng daãn, Q7 daãn (led xanh saùng), Q8 daãn moät chaân cuûa coång nand (U2A) bò noái mass, maïch bò reset.
	- Khi nguoàn cung caáp ñaày ñuû, D5;D6 daãn, Q5 daãn, Q6; Q7 khoâng daãn, Q9 daãn led ñoû saùng ® maïch hoaït ñoäng bình thöôøng.
Tính toaùn caùc giaù trò ñieän trôû phaân cöïc cho transistor khi nguoàn cung caáp yeáu:
Vì maïch söû duïng caùc transistor laøm vieäc ôû traïng thaùi baõo hoøa neân ñieàu kieän ñeå cho transistor hoaït ñoäng ôû traïng thaùi naøy laø: bIB > ICSAT ; 
 VBESAT =0.8V ; 
 VCESAT =0.2V ;
Trong maïch Reset naøy coù duøng 74HC132 (coång NAND ) coù caùc thoâng soá nhö sau:
VIH(MIN) : Ñieän aùp ngoõ vaøo thaáp nhaát ôû möùc [ 1].
VIL(MAX) : Ñieän aùp ngoõ vaøo cao nhaát ôû möùc [0 ].
VOH(MIN) : Ñieän aùp ngoõ ra thaáp nhaát ôû möùc [ 1 ].
VOH(MIN) : Ñieän aùp ngoõ ra cao nhaá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 toaùn caùc giaù trò:
1. Transistor Q1 (C828 ):
+ Choïn doøng qua LED laø 10mA
+ Choïn RC = 220 W 	
10
.
13
40
).
8
,
0
9
.
4
(
3
-
-
<
Û
-
<
Þ
B
B
BESAT
OH
CSAT
R
R
V
V
x
I
b
+ Choïn b = 40 
Þ RB < 12,6kW. Choïn RB = R5 = 10kW
2. Transistor Q2 (A564 ):
+ Choïn doøng qua led laø 10mA
Þ Choïn RC = 220 W 	
+ Choïn b = 40 , ñieàu kieän baûo hoøa: Þ bIB > ICSAT
	ÞChoïn RB = R7 = 10KW	
3.Transistor Q4: (C828 )
+ ChoÏn b = 40
+ Choïn doøng qua led laø 10mA
Þ ChoÏn RC = 220W
Maø ñieàu kieän baõo hoøa laø: bIB > IcSAT
Þ Choïn RB = R19 = 10kW
4. Transistor Q5 (C828):
+ ChoÏn b = 40
+ Choïn doøng IC =10mA
Þ Rc =1KW
+ b IB > IcSAT
Þ Choïn RB < 4.17KW, laáy RB (R21) laØ bieán trôû 20KW ñeå ñieàu chænh cho chính xaùc
5. Transistor Q6 (C828 ):
 +Choïn b = 40
 +Maø ñieàu kieän baõo hoøa laø: bIB > IcSAT , choïn Rc = 1KW
Choïn RB = R24 = 10 kW
6.Transistor Q7 ( A 564 ): 
 +Choïn b = 40
	+ Choïn doøng qua led laø 10mA
Þ ChoÏn RC =330W 
	+ Maø ñieàu kieän baõo hoøa laø: bIB > IcSAT
Choïn RB = R25 = 7,5 KW
7.Transistor Q8 (C828 ):
 Choïn b = 40
+ Maø ñieàu kieän baõo hoøa laø: bIB > IcSAT
+ Choïn RC = 1kW.
ChoÏn RB = R27 = 15 KW
8.Transistor Q9 ( A 564 ): 
 +Choïn b = 40
 + Choïn doøng qua led laø 10mA
Þ ChoÏn RC =220W
Vaäy doøng qua led thöïc teá laø:
+ Maø ñieàu kieän baõo hoøa laø: bIB > IcSAT
Choïn R28 = RB =10 kW
4. Caùch tính taàn soá queùt LED
Goïi n: soá LED caàn hieån thò
Goïi t: thôøi gian phaùt saùng cuûa moãi LED (s )
Goïi T laø chu kyø hieån thò cuûa n LED: T = n. t ( s )
Goïi f : taàn soá queùt
t = tN : chu kì ngaét cuûa moãi LED (s ) 
Moái lieân heä giöõa chieàu daøi saûn phaåm (cm ) vôùi vaän toác baêng chuyeàn (m/s): 
Ñaàu doø: Baét ñaàu Keát thuùc
T
TL
: Thôøi gian doø möùc thaáp (ms )
- Goïi
-Goïi T: chu kì queùt ñaàu doø (ms )
Ñieàu kieän ñeå cho ñaàu doø phaùt hieän saûn phaåm
Chieàu daøi nhoû nhaát cuûa saûn phaåm:
Vaän toác toái ña cuûa baêng chuyeàn:
III. KEÁT NOÁI KÍT VI ÑIEÀU KHIEÅN VÔÙI THIEÁT BÒ NGOAÏI VI:
	1. Keát noái vôùi baøn phím:
	Baøn phím goàm 16 phím keát noái vôùi kít vi ñieàu khieån thoâng qua Port 1 cuûa 8051. Sô ñoà keát noá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 	
	BAÛNG MAÕ PHÍM
Phím
Maõ queùt
Maõ Hex
Phím
Maõ queùt
Maõ 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. Keát noái hieån thò:
	Phaàn hieån thò bao goàm 8 Led 7 ñoaïn chung anod. Bus döõ lieäu xuaát ra hieån thò ñöôïc noái tôùi PortA cuûa 82552. Vì doøng ra taïi moãi chaân caùc Port cuûa 8255 chæ coù khoaûng 4mA, maø moãi Led saùng thì phaûi cung caáp doøng khoaûng 8 – 10mA neân phaûi duøng IC ñeäm neân PortA cuûa 8255 noái tôùi caùc ngoõ vaøo A1 _ A8 cuûa 74245, bus döõ lieäu ngoõ ra noái qua ñieän trôû haïn doøng ñeán caùc thanh cuûa Led 7 ñoaïn. Vôùi maïch giaûi maõ choïn Led: ba ngoõ vaøo A, B, C cuûa 74138 seõ ñöôïc noái tôùi PC5 – PC7 cuûa 8255, chaân cho pheùp G2 noái tôùi PC4 cuûa 8255. Khi PC4 xuoáng möùc thaáp, G2 = [0], cho pheùp Led saùng. Baûng traïng thaùi choïn Led nhö sau:
Ngoõ vaøo
Choïn Led
Cho pheùp
Caùc chaân löïa choïn
G1
G2
C
B
A
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
Tính toaùn ñieän trôû trong maïch hieån thò:
Vcc
Led
R2 :ñieän trôû haïn doøng
	R1
Ñieän trôû phaân cöïc
	Ñeå cho moät thanh led ñuû saùng thì doøng ñieän qua noù laø 10 mA, do ñoù ñeå caû led 7 ñoaïn saùng thì doøng cung caáp cho led laø: I = 7 x 10 = 70 mA. Ñaây cuõng chính laø doøng Ic cuûa transistor. Vaäy choïn transistor loaïi A1266 vôùi heä soá khuyeách ñaïi b laø 60
 	Vaäy doøng IB laø: 
	Ñieän trôû phaân cöïc R1 laø:
	Choïn R1 = 3,3 kW, nhoû hôn giaù trò tính toaùn ñeå doøng lôùn transistor nhanh baõo hoøa. Vaäy doøng IB thöïc teá laø:
	Tính R2 (ñieän trôû haïn doøng cho led):
Khi transistor baõo hoøa, ñieän aùp VCESAT = 0,2 V vaø ñieän aùp rôi treân led laø 2V do ñoù:
	VR2 = Vcc – VCESAT – VLED = 5 – 0,2 – 2 = 2,8V
Vaäy 
Choïn R2 = 270 (W). Choïn R2 lôùn hôn tính toaùn ñeå transistor nhanh baõo hoaø
	c. Keát noái maïch rôle:
	Tín hieäu ñieàu khieån rôle ñöôïc laáy ra töø PortA cuûa 82551. Rôle seõ taùc ñoäng khi ñeám xong soá löôïng saûn phaåm caøi ñaët tröôùc. ÔÛ ñaây chuùng em giaû ñònh söï taùc ñoäng cuûa rôle baèng ñeøn Led hieån thò. Khi led saùng töông öùng vôùi taùc ñoäng cuûa rôle. Gioáng nhö maïch hieån thò, tín hieäu laáy ra ñieàu khieån rôle ñuôïc ñöa qua boä ñeäm 74245 vaø haïn doøng baèng ñieän trôû.
	Tính ñieän trôû haïn doøng R: 
Ñeå cho moãi led saùng thì doøng cung caáp cho noù laø 10mA. Vaäy ñieän trôû caàn gaén theâm vaøo ñeå haïn doøng cho led laø: 	
	Choïn R1 treân thöïc teá laø 330 (W). Vôùi vieäc choïn R1 lôùn hôn tính toaùn nhöng doøng qua led giaûm khoâng ñaùng keå neân vaãn chaáp nhaän	
Vaäy doøng thöïc teá qua led laø:
	III. THIEÁT KEÁ VAØ TÍNH TOAÙN MAÏCH CAÛM BIEÁN
RA
RB
C
2 1 5
8 4
3
C1
7
6
Ngoõ ra
 VCC 
Tính toaùn ñieän trôû vaø tuï treân maïch dao ñoäng 555
 	1. Khoái phaùt
	- Daïng soùng: 
2/3Vcc
1/3 Vcc
 Vcc
 0V
 T
tc td
Ñieän aùp ra
Ñieän aùp treân tuï
t
t
tc =0,69(RA + RB).C
RA ,RB [ohm] C[F] ®t[s]
td =0,69RBC ÞT= tc + td =0,69(RA  +2RB).C
* Neáu choïn ñôn vò R[KW] , C[mF] ® t[ms] ,f0[KHz]
 Choïn
ñeå xung taïo ra gaàn nhö ñeàu nhau ñeå kích thích cho AÏ564 daãn maïnh, laøm doøng IB lôùn suy ra doøng qua LED lôùn, tín hieäu phaùt ra töø LED maïnh thì beân khoái ñaàu doø môùi nhaän ñöôïc tín hieäu.
	2. Khoái ñaàu doø:
	Taàn soá dao ñoäng rieâng cuûa maïch:
- Choïn R15 = 10K
 	 C10 =0,1mF
 	 2K £ R £ 20K
vì f cho pheùp: 0,01Hz £ f £ 500Khz® f0 thoûa ñieàu kieän cho pheùp.
-Choïn C8 =1mF ,C9 =2,2 mF.
*ÔÛ khoái phaùt tia hoàng ngoaïi:
	Choïn tuï C6 = 0,001mF
Taàn soá cuûa maïch thieát keá = taàn soá f0 cuûa ñaàu doø
Neân f = f0 =1,1kHz
 	Choïn RA, RB sao cho thoûa ñieàu kieän treân 
Laáy theo giaù trò thöông maïi suy ra:
Choïn RB=620KW, RA =78KW
Vì duøng RA laø moät bieán trôû ñieàu chænh neân choïn RA=100KW
-Transistor Q1 : A564 choïn heä soá khueách ñaïi b =200
-Khi Led hoàng ngoaïi daãn thì VLED =2V
	-Choïn doøng qua Led hoàng ngoaïi khoaûng 50mA (ñeå tín hieäu phaùt ra maïnh vì vaäy maø khoái ñaàu doø môùi nhaän ñöôïc).
 Þ Choïn R11= 120W
 Þ Doøng thöïc teá qua LED khi R11=120W
	ICsat ==56,67mA
-Ñeå cho Q1 daãn baûo hoøa:
	bIB >ICsat 
Maø VEbsat »0,8V
Vout taïi chaân 3 (ngoõ ra 555 )»0,2V
® Choïn R10 =10KW
* ÔÛ khoái ñaàu doø IC LM 324 : IC laøm vieäc vôùi loaïi nguoàn ñôn, choïn ñoä lôïi 100dB.
	Choïn R14=100KW
R13 =1KW
R12 thöôøng töø 0KW ¸ 56KW, choïn R12 =56KW
C7 =0,1mF (tuï lieân laïc)
	c. Hoaït ñoäng cuûa khoái phaùt vaø khoái ñaàu doø:
- Do khoái phaùt vaø khoái ñaàu doø ñöôïc thieát keá: f= f0 =1,1Khz
Trong ñoù f: taàn soá phaùt ra cuûa khoái phaùt tia hoàng ngoaïi.
 f0: taàn soá trung taâm cuûa khoái ñaàu doø.
Khi chöa coù saûn phaåm naøo ñi qua led hoàng ngoaïi phaùt tín hieäu qua photo Q2 ,photo Q2 nhaän tín hieäu. Qua boä khueách ñaïi, khueách ñaïi tín hieäu lôùn leân ñeå IC 567ø nhaän bieát ñöôïc vì ôû led hoàng ngoaïi doøng ra khoaûng 56,67mA noù phaùt ra tín hieäu maïnh vaø coù khaû naêng truyeàn ñi xa, khi qua photo Q2 tín hieäu bò suy yeáu neân phaûi khueách ñaïi leân.
Vì do thieát keá f=f0 =1,1Khz töùc laø taàn soá vaøo phuø hôïp vôùi taàn soá trung taâm thì ngoõ ra chaân 8 ôû möùc thaáp [0]. Coøn khi cho saûn phaåm ñi qua che led hoàng ngoaïi thì tín hieäu töø led hoàng ngoaïi phaùt ra khoâng truyeàn qua ñöôïc photo Q2. Keát quaû laø taàn soá vaøo (f¹f0 =1,1Khz) khaùc vôùi taàn soá trung taâm neân ngoõ ra 8 ôû möùc cao [1], coù xung kích tôùi ngoõ vaøo (7) ® ñieän aùp chaân 8 leân möùc cao
CHÖÔNG II. CHÖÔNG TRÌNH ÑIEÀU KHIEÅN
A. THUAÄT GIAÛI
I. Chöông trình chính:
Ñeå caùc thieát bò hoaït ñoäng ñöôïc ñaàu tieân phaûi khôûi ñoäng caùc thieát bò ngoaïi vi, khôûi ñoäng Timer cho pheùp ngaét. Sau ñoù goïi chöông trình nhaäp soá hoäp, nhaäp soá saûn phaåm. Neáu ñoàng yù soá ñeám ñaõ nhaäp vaøo thì cho pheùp baêng chuyeàn hoaït ñoäng (ñoùng role BC). Ñoïc döõ lieäu töø caûm bieán (ñaàu doø). Neáu coù saûn phaåm ñi qua thì goïi chöông trình ñeám. Neáu ñuû saûn phaåm moät hoäp thì goïi role ñoùng hoäp ñoàng thôøi goïi chöông trình ñeám hoäp.. Neáu ñuû soá hoäp thì baêng chuyeàn ngöng hoaït ñoäng vaø chôø cho ca tieáp theo. Khi ñaõ hoaøn thaønh 9 ca saûn phaåm thì quay laïi laøm töø ca 1.
-Naïp giaù trò ñaàu #00H vaøo caùc oâ nhôù
-Khôûi ñoäng thieát bò ngoaïi vi
-Khôûi ñoäng thanh ghi Timer, cho pheùp ngaét
Ca: =Ca + 1
Ca: = 0
- Goïi chöông trình con nhaäp hoäp
- Goïi chöông trình con nhaäp saûn phaåm
- Cho pheùp baêng truyeàn hoaït ñoäng
 Ñuû SP
Ro-le ñoùng hoäp, ñeám hoäp (RL – ÑH)
 Goïi chöông trình con ñaàu doø (DAUDO)
 Ñeám saûn phaåm
Ñ
S
- Goïi chöông trình con doø phím (IN – HEX)
 Ñuû hoäp
 Phím E
 Ca = 9
S
- Cho pheùp baêng chuyeàn ngöng hoaït ñoäng
- Goïi chöông trình löu soá hoäp, soá saûn phaåm
- Goïi chöông trình xem soá lieäu löu baát kì ca naøo
Ñ
Ñ
S
Ñ
S
- Goïi chöông trình xem soá lieäu löu trong caùc ca
- Cho pheùp baêng truyeàn ngöng hoaït ñoäng
- Goïi chöông trình löu soá hoäp, soá saûn phaåm
- Ro-le ñoùng hoäp, ñeám hoäp
- Ñeám saûn phaåm
- Goïi chöông trình con ñaàu doø
Löu ñoà thuaät giaûi chöông trình chính
II. CAÙC CHÖÔNG TRÌNH CON:
1. Chöông trình con khôûi ñoäng ngoaïi vi:
8255 chæ hoaït ñoäng khi naïp cho noù töø ñieàu khieån vì vaäy ñeå giao tieáp vôùi caùc thieát bò ngoaïi vi caàn khôûi ñoäng cho caùc oâ nhôù cuûa 8255
Ret
Naïp giaù trò ban ñaàu ñeå môû role ñoùng hoäp
Naïp giaù trò ban ñaàu xoùa 8 led 7 ñoaïn
Khôûi ñoäng 8255 - 2
Naïp giaù trò ban ñaàu cho ngoõ döï phoøng
Naïp giaù trò ban ñaàu cho role baêng truyeàn
Khôûi ñoäng 8255 - 1
Naïp giaù trò ban ñaàu ñeå choïn led saùng
Baét ñaàu
2. Chöông trình ngaét hieån thò:
Trong chöông trình ngaét, thôøi gian ngaét ñöôïc xaùc ñònh baèng côø traøn timer. Nhö vaäy cöù sau 250 ms caùc led laïi ñöôïc queùt. Vôùi thôøi gian ngaét nhoû, döõ lieäu ra khoù coù theå quan saùt ñöôïc vì vaäy delay sau moãi laàn hieån thò baèng vieäc giaûm thanh ghi R2. Khi R2 = 0 cho pheùp xuaát döõ lieäu ra hieån thò. Caùc Led seõ ñöôïc queùt lieân tuïc töø Led 77ñeán Led 70, vôùi döõ lieäu xuaát ra hieån thò töø oâ nhôù 77H ñeán oâ nhôù 70H. 
Löu ñoà thuaät giaûi nhö sau:
Cho pheùp ngaét
Ñ
 R1 = # 69H
 R2 = 0
R2 - 1
TOÁC ÑOÄ 1 ® R2
Choïn led hieån thò
Xuaát döõ lieäu ra led
R1 - 1
R1 ¬ # 77H
Thoaùt 1
Ret
S
Baét ñaàu
S
Ñ
3. Chöông trình con nhaán soá
Chöông trình naøy cho pheùp nhaäp soá thaäp phaân. Neáu phím nhaán töø 0 ñeán 9 thì nhaän soá coøn phím töø A ñeán F thì xoùa soá. Soá nhaän thì bit 7D = [0], 7E = [0]. Sau khi nhaäp soá lieäu xong neáu thaáy qua led hieån thò ñuùng soá lieäu ñaõ nhaäp vaøo thì nhaán phím A töùc laø ñaët bit YES = 1 (7E = 1) ñeå keát thuùc quaù trình nhaäp soá lieäu. Coøn ñang nhaäp neáu muoán boû soá lieäu vöøa nhaäp vaøo thì nhaán phím phím B töùc laø ñaët bit NO = 1 (7D = 1). Khi nhaäp xong soá saûn phaåm vaø soá hoäp thoâng qua chöông trình con nhaán soá naøy thì nhaán phím C töùc laø cho pheùp saûn phaåm töø luùc naøy ñi qua ñaàu doø vaø baét ñaàu ñeám.
Baét ñaàu
 C = 1
A = # 0AH
S
Xoùa bit YES
Xoaù bit NO
Goïi chöông trình doø phím
 Ñ
Ñaët bit YES
 Xoùa A
A = # 0BH
Ñaët bit NO
Xoùa côø C
A - # 0AH
RET
Ñ
S
 Ñ
S
4. Chöông trình taêng 1:
Cöù coù moät saûn phaåm ñi qua ñaàu doø (chuù yù ngoõ ra chaân 8 cuûa IC567 töø nöùc logic 0 leân möùc 1 sau ñoù ñöôïc ñöa qua coång ñaûo neân ngoõ ra laø möùc logic 0) ñöôïc ñöa vaøo bit 0 cuûa port B1 seõ laøm thay ñoåi möùc logic töø 1 xuoáng 0 thì oâ nhôù duøng cho vieäc ñeám saûn phaåm seõ ñöôïc taêng leân moät ñôn vò thoâng qua vieäc goïi chöông trình con taêng 1, vaø khi ñuû soá saûn phaåm thì oâ nhôù duøng cho vieäc ñeám soá hoäp cuõng ñöôïc taêng leân moät ñôn vò thoâng qua chöông trình con taêng 1, vaø cöù moãi laàn nhö vaäy söï thay ñoåi soá lieäu trong caùc oâ nhôù ñöôïc ñaåy lieân tuïc ra led ñeå hieån thò. Vì ñeám saûn phaåm ñeán toái ña laø 999 vaø ñeám soá hoäp toái ña laø 9999 neân phaûi söû duïng 2 byte ñeå ñeám saûn phaåm töø haøng ñôn vò ñeán haøng chuïc söû duïng byte thaáp, coøn haøng traêm vaø haøng ngaøn söû duïng byte cao. Neân khi so saùnh soá lieäu ñang ñeám vôùi soá lieäu ñaõ löu ban ñaàu xem ñaõ baèng chöa thì phaûi so saùnh laàn löôït byte cao tröôùc töùc laø haøng ngaøn, haøng traêm sau ñoù tôùi byte thaáp töùc laø haøng chuïc haøng ñôn vò.
RET
Xoùa côø traøn phuï AC
Xoùa côø traøn C
A ¬ A +1
Hieäu chænh thaäp phaân thanh ghi A
Baét ñaàu
 5. Chöông trình con kieåm tra phím aán: IN – HEX
Neáu nhö coù phím ñöôïc aán thì bit C = 0. Vì coù khoaûng thôøi gian nhaán phím neân goïi chöông trình doø tìm maõ phím aán 50 laàn baèng vieäc naïp 50 vaøo R3 vaø giaûm R3. Khi R3 = 0 thì caát maõ phím vaøo ngaên xeáp. Trong luùc ñôïi phím ñöôïc nhaû ra goïi chöông trình doø tìm maõ phím aán 50 laàn ñeå xem phím coù coøn ñöôïc nhaán nöõa hay khoâng. Khi R3 = 0 thì laáy maõ phím trao cho thanh ghi A.
Baét ñaàu
RET
 Khoâng coù phím aán
#50® (R3)
#50® (R3)
#50® (R3)
Goïi CT doø maõ phím 
 C= 0
S
Ñ
R3 - 1
Coù phím aán
Caát ACC
R3= 0
Ñ
Goïi CT doø maõ phím
C = 1
 S
 S
R3 - 1
R3= 0
Ñ
Laáy ACC
Löu ñoà thuaät giaûi kieåm tra phím aán
S
Ñ
6. Chöông trình doø maõ phím aán: 
8051 luoân ñoïc döõ lieäu töø Port 1 ñeå doø tìm maõ phím. Khi coù moät phím ñöôïc aán thì côø C = 1 vaø maõ cuûa phím aán ñöôïc löu taïm thôøi vaøo thanh ghi R6. Sau ñoù taêng daàn R6 leân 4 ñôn vò ñeå doø maõ phím tieáp theo, (maõ phím )® (A)
 R6 =0
#FE ® A
# 4 ® R6
A ® R7
#4 ® A
XOÙA C
A –R6
A ® R6
R7 ® A
R7 ® A
Xoay A
R6 - 1
Baét ñaàu
A ® R7
A ® P1
Ñoïc port 1
A AND #0F0H
XOAY A
Xoay phaûi A qua C
XOÙA C
A = # 0F0H
R6 + 4
R5 - 1
Ñaët côø c
R6 ® A
Ñ
S
 C = 0
 Ñ (3)
S
S
(3)
Ñ
(3)
 R5 = 0
S
RET
Ñ
Ñ
7. Chöông trình ñaàu doø:
 8051 luoân luoân ñoïc döõ lieäu töø ñaàu doø (Port B4) neân noäi dung thanh ghi A baèng noäi dung oâ nhôù 4001H. Cöù moãi saûn phaåm ñi tôùi caûm bieán, caûm bieán seõ taïo ra möùc logic ñieän aùp cao 5 volt, luùc ñoù Port B.0 = 1 = ACC.0 . Vì coù khoaûng thôøi gian saûn phaåm ñi qua neân möùc logic ñieän aùp phaûi toàn taïi ít nhaát khoaûng 100ms do ñoù phaûi lieân tuïc kieåm tra döõ lieäu töø ñaàu doø. Khi möùc logic ñieän aùp chuyeån töø 1 xuoáng 0 (töông öùng vôùi 1 saûn phaåm ñaõ ñi qua caûm bieán). thì phaûi coù khoaûng thôøi gian ít nhaát ñeå chôø saûn phaåm tieáp theo ñi tôùi neân möùc logic thaáp cuõng phaûi toàn taïi ít nhaát 100ms. Doø möùc ñieän aùp trong khoaûng thôøi gian 100 ms baèng caùch naïp 100 vaøo R3, giaûm R3, khi R3 ¹ 0 vaãn tieáp tuïc doø möùc. Löu ñoà thuaät giaûi doø möùc ñieän aùp nhö sau:
Baét ñaàu
DPTR ¬ # CAÛM BIEÁN
R3 ¬ #100
A ¬ @DPTR 
S
Ñ
ACC. 0 =1 1
 R3 = 0
R3 - 1
Ñ
S
R3 ¬ #100
A ¬ @DPTR (ñoïc port B1)
ACC.0 = 0
Ñ
S
S
R3 - 1
RET
 R3 = 0
Ñ
8. Chöông trình Blank: xoùa soá 0 khoâng coù nghóa
Chöông trình naøy coù yù nghóa nhö sau: khi soá saûn phaåm hay soá hoäp chæ tôùi haøng ñôn vò, chuïc, traêm thì nhöõng soá 0 ñöùng tröôùc noù khoâng coù nghóa bò loaïi boû (khoâng saùng ) vaø caùc oâ nhôù coù nghóa ñöôïc löu (laàn löôït töø haøng ñôn vò ® haøng ngaøn) vaøo caùc oâ nhôù töø 70H® 77H. Loaïi boû baèng caùch so saùnh giaù trò lôùn nhaát haøng ngaøn vôùi soá 0 neáu ñuùng laø 0 thì xoùa led hieån thò haøng ngaøn, tieáp tuïc so saùnh xem oâ nhôù haøng traêm vôùi soá 0 neáu ñuùng laø 0 thì xoùa led hieån thò haøng traêm, töông töï cho haøng chuïc, coøn oâ nhôù haøng ñôn vò giaù trò baèng bao nhieâu thì led haøng ñôn vò cuõng hieån thò. 
Baté ñaàu
A ¬ DEMHOP H
LED 70 ¬ NGAN
LED 71 ¬ TRAM
A ¬ DEMHOP L
LED 72 ¬ CHUC
LED 73 ¬ DONVI
A ¬ DEM_ SPL
LED 76 ¬ CHUC
LED 77 ¬ DONVI
A ¬ DEM_SP H
LED 75 ¬ TRAM
A ¬ LED 70
( 1 )
( 1)
A =0
S
 Xoùa LED 72
A ¬ LED 75
Ñ
S
Xoùa LED 70
A ¬ LED 71
A =0
Ñ
S
Xoùa LED 71
A ¬ LED 72
A = 0
Ñ
Xoùa LED 75
A ¬ LED 76
A = 0
Ñ
S
 Xoùa LED 76
RET
A =0
Ñ
S
Chöông trình blank
9. Chöông trình nhaäp hoäp: 
Baét ñaàu
A = 0
Ñ
S
BIT 7D = 1
Ñ
 S
HIEÅN THÒ “nhaäp 0”
LÖU HOP L ¬ # 00H
LÖU HOP H ¬ # 00H
Goïi nhaán soá thöù nhaát
A ® ÑÔN VÒ
ÑÔN VÒ® LÖU HOP L
Goïi nhaán soá thöù 2
BIT 7E = 1
Ñ
S
BIT 7D = 1
Ñ
RET
(1)
	Chöông trình cho pheùp nhaäp caùc soá töø 1 ñeán 9999. Neáu soá ñöôïc nhaán töø A ñeán F thì yeâu caàu nhaäp laïi. Khi soá ñöôïc nhaán löu vaøo thanh ghi A töø 1 ñeán 9: neáu chaáp nhaän soá thì caùc bit 7D, 7E = 0 vaø khi bit 7D = 1 thì yeâu caàu nhaäp laïi hoäp, bit 7E = 1, thì thoaùt khoûi chöông trình. Caùc giaù trò ñöôïc nhaäp naøy ñöôïc löu vaøo caùc oâ nhôù töø (74H) ñeán (77H) vaø 7C (LÖUHOPL:löu hoäp byte thaáp), 7D (LÖUHOPH: löu hoäp byte cao). Neáu ñoàng yù vôùi soá ñaõ nhaäp thì nhaán A ngöôïc laïi laø B (xoùa soá ñaõ nhaäp)
 S
 (2) 
ÑÔN VÒ ® CHUÏC
A ® ÑÔN VÒ
CHUÏC + ÑÔN VÒ ® LÖU HOP L
Goïi nhaán soá thöù 3
(2)
BIT 7E = 1
Ñ
S
 Ñ
BIT 7E = 1
S
TRAÊM ® NGAØN
CHUÏC ® TRAÊM
ÑÔN VÒ ® CHUÏC
A ® ÑÔN VÒ
CHUÏC, ÑÔN VÒ ® LÖU HOP L
NGAØN,TRAÊM ® LÖU HOPH
RET
A = # 0AH
S
S
A = # 0BH
Ñ
Goïi chöông trình doø phím
BIT 7D = 1
S
CHUÏC ® TRAÊM
ÑÔN VÒ ® CHUÏC
A ® ÑÔN VÒ
CHUÏC + ÑÔN VÒ ® LÖU HOP L
LÖU HOPH® TRAÊM
Goïi nhaán soá thöù 4
Ñ	(1)
BIT 7D = 1
Ñ	 (1)
S
Löu ñoà chöông trình nhaäp hoäp
10. Chöông trình nhaäp saûn phaåm:
Chöông trình cho pheùp nhaäp caùc soá töø 1 ñeán 999. Soá chæ ñöôïc nhaäp khi caùc bit 7D, 7E = 0 vaø khi bit 7D = 1 thì yeâu caàu nhaäp laïi. Caùc giaù trò ñöôïc nhaäp naøy ñöôïc löu vaøo caùc oâ nhôù töø (74H) ñeán (77H) vaø 7C (LÖUSPL: löu saûn phaåm byte thaáp), 7D (LÖUSPH: löu saûn hpaåm byte cao). Neáu ñoàng yù vôùi soá ñaõ nhaäp thì nhaán A ngöôïc laïi laø B (xoùa soá ñaõ nhaäp)
Baét ñaàu
A = 0
Ñ
S
S
Hieån thò “Nhaäp O 0”
LÖU – SPL ¬ # 00H
LÖU – SPH ¬ # 00H
Goïi nhaán soá thöù nhaát
BIT 7D = 1
Ñ
ÑÔN VÒ ¬ A
LÖU – SPL ¬ ÑÔNVÒ
Goïi nhaán soá thöù 2
Ñ
BIT 7E = 1
Ñ
S
BIT 7D = 1
CHUÏC ¬ ÑÔN VÒ
ÑÔN VÒ ¬ A
LÖU – SPL ¬ CHUÏC,ÑÔNVÒ
Goïi nhaán soá thöù 3
 (2)
(3)
S
`
 (2)
Ñ
S
BIT 7E = 1
BIT 7D = 1
TRAÊM ¬ CHUÏC
CHUÏC ¬ ÑÔN VÒ
ÑÔN VÒ ¬ A
LÖU – SPL ¬ CHUÏC,ÑÔNVÒ
LÖU – SPH ¬ TRAÊM
Goïi chöông trình doø phím
A = # 0CH
A = # 0BH
Ñ
S
RET
Ñ
S
 (1)
(3)
Chöông trình con nhaäp saûn phaåm
11. Chöông trình delay:
Ñeå khoáng cheá thôøi gian delay naïp giaù trò ban ñaàu cho timer. Set cho timer chaïy. Khi timer ñeám baèng thôøi gian naïp thì côø baùo traøn ñöôïc set leân [1]. Muoán thôøi gian delay lôùn naïp giaù trò cho R4, giaûm R4 sau moãi laàn traøn timer. Nhö theá thôøi gian delay seõ laø:
 t = (R4) x count0. Khi R4 = 0 laø heát thôøi gian delay.
Baét ñaàu
TH0 ¬ # HIGHT COUNT0
TL0 ¬ # LOW COUNT0
TR0 = 1
 COUNT 0
Xoùa côø traøn
R4 - 1
Chaïy 
timer
 S
 Ñ
 R4 = 0
 Ñ
 S
Ret
(FFFF ® 0000)
	12. Chöông trình con löu soá saûn phaåm soá hoäp trong moãi ca saûn xuaát:
Chöông trình naøy löu keát quaû cuûa moãi ca saûn xuaát. Soá hoäp, soá saûn phaåm ñöôïc löu vaøo caùc oâ nhôù töø 30H ® 53H. Xeùt noäi dung oâ nhôù 2EH, neáu noäi dung oâ nhôù 2EH = 1 vaø sau khi ñeám xong vaø baêng chuyeàn baùo hieäu ngöng ñeám thì noäi dung oâ nhôù 2EH trao cho thanh ghi A vaø löu keát quaû vaøo ca 1. Neáu ca sau cho pheùp hoaït ñoäng thì noäi dung oâ nhôù 2EH taêng leân 1 vaø töông töï ñöôc löu vaøo ca töông öùng ( ca = ca tröôùc + 1). 
	13. Chöông trình con cho pheùp xem soá lieäu cuûa ca saûn xuaát:
Chöông trình naøy xem keát quaû cuûa moãi ca saûn xuaát, cuï theå laø xem noäi dung soá hoäp soá saûn phaåm trong moãi ca saûn xuaát. ÔÛ ñeà taøi naøy chuùng em chæ vieát chöông trình xem toái ña laø 9 ca. Töùc laø khi muoán kieåm tra ca naøo thì nhaäp cuï theå ca ñoù laø ca thöù maáy thoâng qua baøn phím baèng caùch nhaán moät soá. Tröôùc ñoù soá hoäp, soá saûn phaåm ñöôïc löu vaøo caùc oâ nhôù töø 30H ® 53H. Khi ro-le baêng chuyeàn ñaõ ngöng hoaït ñoäng sau moät ca naøo ñoù neáu tieáp tuïc muoán nhaäp soá lieäu vaøo ñeå ñeám cho ca tieáp theo thì nhaán moät phím baát kyø khaùc phím E . Coøn neáu nhaán phím E töùc laø cho pheùp xem soá lieäu cuûa caùc ca, chæ caàn nhaán phím coù loaïi tröø phím chöùc naêng thì maõ phím nhaán ñoù ñöôïc löu vaøo thanh ghi A. Neáu A baèng maáy thì seõ ñöa noäi dung oâ nhôù löu soá lieäu ca ñoù ra boä phaän hieån thò. Vaø neáu muoán xem tieáp ca naøo nöõa thì cöù nhaán phím cho pheùp xem E roài nhaäp soá lieäu vaøo.
Coøn khi muoán löu soá ca nhieàu hôn nöõa nhö toái ña laø töø 0 ®99 hay töø 0 ® 999 hay töø 0 ® 999 thì töông töï nhö treân chæ khaùc laø khi nhaäp soá lieäu vaøo thì goïi nhaán toái ña 2 soá , 3soá, hay 4 soá thì chöông trình nhaäp soá laïi gioáng nhö trong chöông trình con nhaäp soá saûn phaåm vaø soá hoäp, vaø nhieàu ca ñöôïc löu thì soá oâ nhôù cuõng phaûi ñöôïc taêng theo.
Soá saûn phaåm, hoäp cuûa caùc ca ñöôïc löu vaøo oâ nhôù töông öùng
Ñöa soá lieäu cuûa caùc ca trong oâ nhôù ra hieån thò
A ¬ 2EH
A =#01H
A =#02H
A =#03H
A =#04H
A =#05H
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
3CH ¬ LUUHOPL
3DH ¬ LUUHOPH
3EH ¬ LUU_SPL
3FH ¬ LUU_SPH
40H ¬ LUUHOPL
41H ¬ LUUHOPH
42H ¬ LUU_SPL
43H ¬ LUU_SPH
( 1 )
Ñ
( 2 )
S
Ñ
S
Ñ
S
S
Ñ
S
Ñ
 LÖU:
RET
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
52H ¬ LUU_SPL
53H ¬ LUU_SPH
Ñ
S
Ñ
S
S
Ñ
S
Ñ
( 2 )
Löu ñoà chöông trình löu soá lieäu
Goïi chöông trình con doø phím
A =#00H
A =#01H
A =#02H
A =#03H
A =#04H
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
 LUUHOPL ¬ 3CH
 LUUHOPH ¬ 3DH
 LUU_SPL ¬ 3EH
 LUU_SPH ¬ 3FH
( 1 )
Ñ
( 2 )
S
Ñ
S
Ñ
S
S
Ñ
S
Ñ
XEM:
Löu ñoà chöông trình cho pheùp xem soá lieäu
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 )
RET
Goïi chöông trình blank
(1)
Ñ
S
Ñ
S
S
Ñ
S
Ñ
S
( 2 )
Ñ
( 1 )
40H ¬ LUUHOPL
41H ¬ LUUHOPH
42H ¬ LUU_SPL
43H ¬ LUU_SPH
3CH ¬ LUUHOPL
3DH ¬ LUUHOPH
3EH ¬ LUU_SPL
3FH ¬ LUU_SPH
38H ¬ LUUHOPL
39H ¬ LUUHOPH
3AH ¬ LUU_SPL
3BH ¬ LUU_SPH
34H ¬ LUUHOPL
35H ¬ LUUHOPH
36H ¬ LUU_SPL
37H ¬ LUU_SPH
30H ¬ LUUHOPL
31H ¬ LUUHOPH
32H ¬ LUU_SPL
33H ¬ LUU_SPH
A =#05H
A =#04H
A =#03H
A =#02H
A =#01H
B. CHÖÔNG TRÌNH HEÄ THOÁ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
	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
	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
	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
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
	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
	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
;------------------------------------------------------------
	;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
	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
	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
	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
	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 
	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
LÔØI GIÔÙI THIEÄU
	Trong quaù trình hieän nay maùy tính ñieän töû ñaõ goùp phaàn khoâng nhoû ñoái vôùi söï phaùt trieån xaõ hoäi. Do yeâu caàu cuûa con ngöôøi ngaøy caøng cao, caùc theá heä maùy tính ñaõ lieân tuïc phaùt trieån khoâng ngöøng. Ngay trong giai ñoaïn ñaàu caùc theá heä vi xöû lyù 8 bit ñöôïc duøng laø Z80,8085, sau ñoù laø caùc heä vi xöû lyù 16 bit nhö 8086, 8088…
Caùc heä vi xöû lyù naøy ñaõ goùp phaàn quan troïng trong vieäc chöông trình hoùa caùc hoaït ñoäng cuûa maùy moùc trong coâng nghieäp nhôø vaøo caùc phaàn meàm öùng duïng. Moät khi trong coâng nghieäp ñaõ öùng duïng nhieàu vaøo vi xöû lyù thì caùc nhaø cheá taïo khoâng boû lôõ cô hoäi cho ra ñôøi caùc hoï vi ñieàu khieån ngaøy caøng tieán boä hôn.
Vi ñieàu khieån ñöôïc söû duïng nhieàu trong caùc thieát bò coâng nghieäp, trong maùy giaët, trong ñieàu khieån ñeøn giao thoâng, trong caùc ñoà chôi giaûi trí…
Taïi Vieät nam vieäc chöông trình hoùa caùc heä thoáng ñang ñöôïc aùp duïng ngaøy caøng nhieàu trong caùc nhaø maùy coâng nghieäp.
Ñeå tìm hieåu veà vi ñieàu khieån vaø tìm hieåu moät öùng duïng cuï theå cuûa noù nhoùm chuùng em xin thöïc hieän ñeà taøi goàm hai phaàn chính:
	PHAÀN1: Khaûo saùt vi ñieàu khieån 8051, vi maïch giao tieáp ngoaïi vi 8255, cuøng vôùi boä nhôù baùn daãn, caûm bieán.
	PHAÀN 2: Thieát keá vaø thi coâng maïch ñeám saûn phaåm duøng vi ñieàu khieån 8051.
 Chöông trình heä thoáng vaø öùng duïng.
Nhôø coù söï giuùp ñôõ cuûa quyù thaày coâ vaø baïn beø, nhoùm chuùng em ñaõ coá gaéng thöïc hieän ñeà taøi ñöôïc giao nhöng do kieán thöùc vaø thôøi gian coù haïn neân ñeà taøi khoâng theå traùnh khoûi thieáu soùt neân raát mong söï ñoùng goùp cuûa quyù thaày coâ vaø baïn beø.
 	 	 	Sinh vieân thöïc hieän
 	 Ñinh Thò Kha
 	 Leâ Hoaøng Minh 
LÔØI CAÛM ÔN
	Trong quaù trình boán naêm röôõi hoïc taïi tröôøng Ñaïi hoïc Sö phaïm kyõ thuaät TP.HCM. Chuùng em ñaõ ñöôïc söï höôùng daãn taän tình cuûa quí thaày coâ veà nhöõng kieán thöùc chuyeân moân cuõng nhö kieán thöùc trong cuoäc soáng. Töø nhöõng kieán thöùc neàn taûng ñoù ñaõ giuùp chuùng em hoaøn thaønh taäp luaän vaên toát nghieäp trong thôøi gian cho pheùp.
Chuùng em xin chaân thaønh caûm ôn thaày coâ trong khoa ñieän ñaõ giaûng daïy cho chuùng em nhöõng kieán thöùc veà chuyeân moân vaø ñònh höôùng ñi theo söï hieåu bieát, khaû naêng cuûa chuùng em ñeå chuùng em thöïc hieän toát luaän vaên toát nghieäp vaø taïo ñieàu kieän thuaän lôïi cho chuùng em hoaøn taát khoùa hoïc.
Chuùng em xin chaân thaønh caûm ôn thaày NGUYEÃN VIEÄT HUØNG vaø coâ TRAÀN THANH MAI ñaõ taän tình giuùp ñôõ chuùng em hoaøn thaønh taäp luaän aùn naøy.
Chuùng em xin chaân thaønh caûm ôn anh BUØI ÑÖÙC MINH, NGUYEÃN KIM HUY, cuøng caùc baïn sinh vieân ñaõ taän tình giuùp ñôõ chuùng em hoaøn thaønh toát maïch.
 	 	 Sinh vieân thöïc hieän
 	 ÑINH THÒ KHA 
 	 LEÂ HOAØNG MINH
DAÃN NHAÄP
	Heä thoáng vi xöû lyù hay coøn goïi laø maùy tính ñieän töû laø thieát bò xöû lyù thoâng tin, ñieàu khieån caùc thieát bò ngoaøi hay caùc thieát bò trong coâng nghieäp töï ñoäng.
Phaàn chính cuûa maùy tính laø boä xöû lyù trung taâm CPU (Central Processing Unit) laø nôi xaûy ra caùc quaù trình xöû lyù soá lieäu vaø ñieàu khieån moïi hoaït ñoäng cuûa maùy tính. Ngöôøi ta phaân loaïi CPU döïa vaøo ñoä roäng Data bus nhö:
CPU 8 bit Z80A: Haõng Zilog
: Haõng Motorola
	 8080/8085: Haõng Intel
CPU 16 bit 8086/8088: Haõng Intel
Vi xöû lyù laø moät heä thoáng soá döïa treân cô sôû linh kieän chuû yeáu laø boä vi xöû lyù (CPU ). Tuøy thuoäc vaøo caáu truùc cuûa boä vi xöû lyù rieâng bieät vaø phaàn ñieàu khieån maø noù coù theå bao goàm nhieàu loaïi vi maïch. Döôùi söï ñieàu khieån baèng chöông trình moät boä vi xöû lyù thöïc hieän caùc pheùp tính soá hoïc vaø logic, ñoàng thôøi taïo ra nhöõng tín hieäu ñieàu khieån cho boä nhôù vaø thieát bò vaøo ra.
Nhöõng meänh leänh naøy goïi laø chöông trình nguoàn vaø ñöôïc chöùa trong boä nhôù chæ ñoïc (ROM)
 Chöông trình con kieåm tra phím aán 
RET
IN _HEX
#50® (R3)
#50® (R3)
#50® (R3)
Call: getkey 
 C= 0
S
Ñ
R3 - 1
Coù phím aán
Caát ACC
R3= 0
Ñ
Call: getkey 
C = 1
 S
 S
R3 - 1
R3= 0
Ñ
Laáy ACC
 Khoâng coù phím aán
            Các file đính kèm theo tài liệu này:
 MACH_VDK_DEM_SAN_PHAM.DOC MACH_VDK_DEM_SAN_PHAM.DOC