Professional Documents
Culture Documents
vieäc chuyeån ñoåi soá ñeám. Boä phaän chuyeån ñoåi tröïc quan nhaát laø baøn phím. Khi caàn thay
ñoåi soá ñeám ngöôøi söû duïng chæ caàn nhaäp soá ñeám ban ñaàu vaøo vaø maïch seõ töï ñoäng ñeám.
Khi soá saûn phaåm ñöôïc ñeám baèng vôùi soá ñeám ban ñaàu thì maïch seõ töï ñoäng döøng. Töø ñaây
suy ra muïc ñích yeâu caàu cuûa ñeà taøi:
-Soá ñeám phaûi chính xaùc, vaø thay ñoåi vieäc caøi ñaët soá ñeám ban ñaàu moät caùch linh
hoaït.
-Boä phaän hieån thò phaûi roõ raøng
-Maïch ñieän khoâng quaù phöùc taïp, baûo ñaûm ñöôïc söï an toaøn,deã söû duïng.
-Giaù thaønh khoâng quaù maéc
IV. GIÔÙI HAÏN CUÛA ÑEÀ TAØI:
-Caùc saûn phaåm raát ña daïng vôùi nhieàu chuûng loaïi: ñaëc; roãng, kích côõ khaùc nhau.
Nhöng vôùi khaû naêng cuûa thieát bò laép thì maïch chæ coù theå ñeám ñoái vôùi saûn phaåm coù khaû
naêng che ñöôïc aùnh saùng vaø coù kích thöôùc töø 10cm 3 ñeán 30cm3.
-Ñeám soá saûn phaåm trong moät thuøng phaïm vi thay ñoåi töø 2 999. Coøn soá thuøng
saûn phaåm phaïm vi thay ñoåi töø 19999.
-Löu soá saûn phaåm, soá hoäp sau moãi ca saûn xuaát vaø cho pheùp xem soá saûn phaåm vaø soá
hoäp trong caùc ca saûn xuaát.
Töø muïc ñích yeâu caàu cuûa ñeà taøi chuùng em ñöa ra sô ñoà khoái toång quaùt cuûa maïch
ñieän nhö sau:
V. XAÂY DÖÏNG SÔ ÑOÀ KHOÁI TOÅNG QUAÙT:
KHOÁI KHOÁI
DAO TRANSITOR KHUYEÁCH
DAO
ÑOÄNG THU ÑAÏI
ÑOÄNG
I(A) =4
=3
=2
=1
=0
U(V)
b2. Photon transistor.
Photon Transistor cuõng töông töï nhö transistor thoâng thöôøng nhöng chæ khaùc ôû choã
noù khoâng coù cöïc bazô, thay cho taùc duïng khoáng cheá cuûa doøng vaøo cöïc bazô laø söï khoáng
cheá cuûa chuøm saùng ñoái vôùi doøng colector cuûa transitor hoaëc coù cöïc bazô, nhöng khoáng
cheá tín hieäu laø aùnh saùng.
Caáu taïo cuûa transistor quang
_ Kyù hieäu vaø caáu taïo: C Cöïc thu (colecter)
Cöïc neàn B N P N
C
(base) E
Cöïc phaùt (emiter) B
E
Kyù hieäu Caáu taïo
_Hình thöùc beân ngoaøi cuûa noù khaùc vôùi transistor thoâng thöôøng ôû choã treân voû cuûa coù
cöûa soå trong suoát cho aùnh saùng chieáu vaøo. AÙnh saùng qua cöûa soå naøy chieáu leân mieàn bazô
cuûa transistor. Chuyeån tieáp PN emitor ñöôïc cheá taïo nhö caùc transistor thoâng thöôøng,
nhöng chuyeån tieáp PN colector, thì do mieàn bazô caàn ñöôïc chieáu saùng, cho neân noù coù
nhieàu hình daïng khaùc nhau, cuõng coù daïng hình troøn naèm giöõa taâm mieàn bazô. Khi söû
duïng transistor quang maéc maïch töông töï nhö transistor maéc chung emitor (CE). Chuyeå n
tieáp emitor ñöôïc phaân cöïc thuaän coøn chuyeån tieáp colector ñöôïc phaân cöïc nghòch. Coù
nghóa laø transistor quang ñöôïc phaân cöïc ôû cheá ñoä khuyeách ñaïi.
Doøng ñieän trong transistor:
Vì noái thu ñöôïc phaân cöïc nghòch neân coù doøng ræ Ico chaïy giöõa thu – neàn vaø vì noái neàn -
phaùt ñöôïc phaân cöïc thuaän neân doøng thu laø ( + 1)Ico ñaây laø doøng toái cuûa quang
transistor. Khi chieáu aùnh saùng vaøo mieàn bazô, trong mieàn bazô coù söï phaùt xaï caëp ñieän töû
loã troáng laøm xuaát hieän doøng IL. Do aùnh saùng khieán doøng thu trôû thaønh:
Ic = ( + 1) .(Ico + IL)
H=9
I(A)
H=7
8
H=5
6
H=4
4
H=1
2
0 5 10 15 20 1 U(V)
GND VCC
8 6 4 7
TRI DIS
OUT THR
RES CN
5
FLIP
FLOP
14 13 12 11 10 9 8
GND
4 +3
+
1+
+2
+3 - 30V
1 2 3 4 5 6 7
LM 324 IC coù 4 taàng khueách ñaïi thuaät toaùn, IC laøm vieäc vôùi loaïi nguoàn ñôn.
Ñoä lôïi treân 100dB, tuy nhieân baêng thoâng heïp hôn LM 3900.
Chuù yù: khoâng ñeå ngaõ ra chaïm vaøo nguoàn V+ hay chaïm thaúng vaøo masse, ñieàu naøy seõ
laøm hö IC.
IC 567 (TONE DECODER):
IC 567 Boä giaûi maõ aâm saéc.
IC chöùa moät voøng khoùa pha. Khi taàn soá phuø hôïp vôùi taàn soá trung taâm thì chaân 8 coù möùc
aùp thaáp. Do ñoù tín hieäu töø transistor qua taàng khuyeách ñaïi ñöa ñeán ngoõ vaøo cuûa IC 567.
Taàn soá hieän nay ñöôïc xaùc laäp theo maïch ñònh thôøi R vaø C hay 1,1(RC). R laáy khoaûng
2K ñeán 20K. 567 coù theå taùch doø taàn soá ngaõ vaøo töø 0,01Hz ñeán 500KHz.
Tuï ngoõ ra 1
8 Ngoõ ra
Tuï loïc thoângthaáp 2 567 7 GND
3
Đào Thanh Mai Ngoõvaøo 4
6 Tuï ñònh thôøi
0906773728
+4,75-9,0V 5 Ñieän trôû ñònh thôøi
Luaän vaên toát nghieäp Trang 8
Ghi chuù: caùc ngaõ vaøo trong maïch loïc thaáp qua tính theo F seõ ñöôïc xaùc ñònh bôûi n/F0.
Trong ñoù n trong khoaûng 1300 ñeán 62000. Tuï ngaõ ra laáy trò soá gaáp ñoâi tuï trong maïch loïc
thaáp qua ôû ngaõ vaøo.
2. Khoái xöû lí:
Vôùi khoái xöû lí ngöôøi ta coù theå duøng IC rôøi hoaëc khoái vi xöû lí. Neáu söû duïng vi xöû lí
trong khoái xöû lyù, ngöôøi ta coù theå thieát keá maïch ñieän giao tieáp ñöôïc vôùi maùy tính neân deã
daøng cho vieäc ñieàu khieån töø xa vaø baèng vieäc thay ñoåi phaàn meàm coù theå môû roäng chöông
trình ñieàu khieån maïch ñieän ñeám nhieàu daây chuyeàn trong cuøng moät thôøi ñieåm hay löu laïi
caùc soá lieäu trong caùc ca saûn xuaát, ñoù laø lí do chuùng em söû duïng vi xöû lí trong khoái xöû lí.
Cuøng vôùi thôøi gian, con ngöôøi ñaõ cho ra ñôøi nhieàu loaïi vi xöû lí töø 8 bit ñeán 64 bit vôùi caûi
tieán ngaøy caøng öu vieät nhöng tuøy theo muïc ñích söû duïng maø vi xöû lí 8 bit vaãn coøn toàn taïi.
Trong ñoà aùn naøy chuùng em söû duïng vi ñieàu khieån 8051. 8051 cuõng laø vi xöû lí 8 bit nhöng
coù chöùa boä nhôù beân trong vaø coù theâm 2 boä ñònh thôøi ngoaøi ra noù coù theå giao tieáp noái tieáp
tröïc tieáp vôùi maùy tính maø vi xöû lí 8 bit nhö 8085 cuõng giao tieáp ñöôïc vôùi maùy tính nhöng
laø giao tieáp song song neân caàn coù IC chuyeån ñoåi döõ lieäu töø song song sang noái tieáp ñeå
giao tieáp vôùi maùy tính. Vôùi boä nhôù trong 8051 thích hôïp cho nhöõng chöông trình coù quy
moâ nhoû,tuy nhieân 8051 coù theå keát hôïp ñöôïc vôùi boä nhôù ngoaøi cho chöông trình coù quy
moâ lôùn. Sau ñaây laø giôùi thieäu cuûa chuùng em veà vi ñieàu khieån 8051:
a. Giôùi thieäu caáu truùc phaàn cöùng 8051
a1. Sô ñoà chaân 8051
8051 laø IC vi ñieàu khieån (Microcontroller) do haõng Intel saûn xuaát. IC naøy coù ñaëc ñieåm
nhö sau:
- 4k byte ROM,128 byte RAM
- 4 Port I/O 8 bit.
- 2 boä ñeám/ ñònh thôøi 16 bit.
- Giao tieáp noái tieáp.
- 64k byte khoâng gian boä nhôù chöông trình môû roäng.
- 64k byte khoâng gian boä nhôù döõ lieäu môû roäng.
- Moät boä xöû lyù luaän lyù (thao taùc treân caùc bít ñôn).
- 210 bit ñöôïc ñòa chæ hoùa.
- Boä nhaân / chia 4.
Sô löôïc veà caùc chaân cuûa 8051:
1 40
2 P1.0 VCC 39
3 P1.1 P0.0 38
4 P1.2 P0.1 37
5 P1.3 P0.2 36
6 P1.4 P0.3 35
7 P1.5 P0.4 34
8 P1.6 P0.5 33
P1.7 P0.6 32
9 P0.7
RESET 31
10 EA/VP
11 P3.0 30
12 P3.1 ALE/P
13 P3.2 29
14 P3.3 PSEN
15 P3.4 28
16 P3.5 P2.7 27
17 P3.6 P2.6 26
P3.7 P2.5 25
18 P2.4 24
19 X2 P2.3 23
X1 P2.2 22
20 P2.1 21
VSS P2.0
8031
a2. Chöùc naêng cuûa caùc chaân 8051:
Port 0: töø chaân 32 ñeán chaân 39 (P0.0 _P0.7). Port 0 coù 2 chöùc naêng: trong caùc
thieát keá côõ nhoû khoâng duøng boä nhôù môû roäng noù coù chöùc naêng nhö caùc ñöôøng IO, ñoái vôùi
thieát keá lôùùn coù boä nhôù môû roäng noù ñöôïc keát hôïp giöõa bus ñòa chæ vaø bus döõ lieäu.
Port 1: töø chaân 1 ñeán chaân 9 (P1.0 _ P1.7). Port 1 laø port IO duøng cho giao tieáp vôùi
thieát bò ngoaøi neáu caàn.
Port 2: töø chaân 21 ñeán chaân 28 (P2.0 _P2.7). Port 2 laø moät port coù taùc duïng keùp
duøng nhö caùc ñöôøng xuaát nhaäp hoaëc laø byte cao cuûa bus ñòa chæ ñoái vôùi caùc thieát bò duøng
boä nhôù môû roäng.
Port 3: töø chaân 10 ñeán chaân 17 (P3.0 _ P3.7). Port 3 laø port coù taùc duïng keùp. Caùc
chaân cuûa port naøy coù nhieàu chöùc naêng, coù coâng duïng chuyeån ñoåi coù lieân heä ñeán caùc ñaëc
tính ñaëc bieät cuûa 8051 nhö ôû baûng sau :
Bit Teân Chöùc n
aêng chuyeån ñoåi
P3.0 RXD Ngoõ vaøo döõ lieäu noái tieáp.
P3.1 TXD Ngoõ xuaát döõ lieäu noái tieáp.
P3.2 INT0\ Ngoõ vaøo ngaét cöùng thöù 0.
P3.3 INT1\ Ngoõ vaøo ngaét cöùng thöù 1.
P3.4 T0 Ngoõ vaøo TIMER/ COUNTER thöù 0.
INT1
INT0
Timer 2
Timer 1
Timer 0
Port noái tieáp
T2
Caùc thanh
Timer 2
Ñieàu khieån 128 EX
T1
MRO noäi Timer 1
ngaét ghi khaùc byte RAM TE
Timer 0 T0
RN
AL
CPU
Oscillator Ñieàu khieån bus Caùc port I/O Port noái tieáp
EA
RST
P0 P2 P1 P3 TxD RxD
PSEN
ALE
7F F0 F7 F6 F5 F4 F3 F2 F1 F0
RAM ÑA DUÏNG
E0 E7 E6 E5 E4 E3 E2 E1 E0
30
D0 D7 D6 6D 6C 6B 6A 69 68
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B8 - - - BC BB BA B9 B8
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60
B0 B7 B6 B5 B4 B3 B2 B1 B0
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48 A8 AF AE AD AC AB AA A9 A8
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38 A0 A7 A6 A5 A4 A3 A2 A1 A0
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
99 Khoâng coù ñòa chæ hoùa töøng bit
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18
98 9F 9E 9D 9C 9B 9A 99 98
22 17 16 15 14 13 12 11 10
21 0F 0E 0D 0C 0B 0A 09 08 90 97 96 95 94 93 92 91 90
20 07 06 05 04 03 02 01 00
1F 8D Khoâng ñöôïc ñòa chæ hoùa töøng bit
BANK 3 8C Khoâng ñöôïc ñòa chæ hoùa töøng bit
18 8B Khoâng ñöôïc ñòa chæ hoùa töøng bit
17
8A Khoâng ñöôïc ñòa chæ hoùa töøng bit
BANK 2
10 89 Khoâng ñöôïc ñòa chæ hoùa töøng bit
88 8F 8 8D 8C 8B 8A 89 88
0F
E
BANK 1
87 Khoâng ñöôïc ñòa chæ hoùa töøng bit
08
07
83 Khoâng ñöôïc ñòa chæ hoùa töøng bit
Bank thanh ghi 0 ( maëc ñònh cho R0-R7) 82 Khoâng ñöôïc ñòa chæ hoùa töøng bit
00 81 Khoâng ñöôïc ñòa chæ hoùa töøng bit
80 87 86 8 84 83 82 81 80
5
CAÁU TRUÙC RAM NOÄI THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT
Boä nhôù beân trong 8051 bao goàm ROM vaø RAM. RAM bao goàm nhieàu thaønh phaàn:
phaàn löu tröõ ña duïng, phaàn löu tröõ ñòa chæ hoùa töøng bit, caùc bank thanh ghi vaø caùc thanh
ghi chöùc naêng ñaëc bieät.
8051 coù boä nhôù theo caáu truùc Harvard: coù nhöõng vuøng nhôù rieâng bieät cho chöông
trình vaø döõ lieäu. Chöông trình vaø döõ lieäu coù theå chöù a beân trong 8051 nhöng 8051 vaãn coù
theå keát noái vôùi 64 k byte boä nhôù chöông trình vaø 64 k byte boä nhôù döõ lieäu môû roäng.
Ram beân trong 8051 ñöôïc phaân chia nhö sau:
- Caùc bank thanh ghi coù ñòa chæ töø 00H ñeán 1Fh.
- Ram ñòa chæ hoùa töøng bit coù ñòa chæ töø 20H ñeán 2FH.
- Ram ña duïng töø 30H ñeán 7FH.
- Caùc thanh ghi chöùc naêng ñaëc bieät töø 80H ñeán FFH.
-Ram ña duïng:
Moïi ñòa chæ trong vuøng ram ña duïng ñeàu coù theå ñöôïc truy xuaát töï do duøng kieåu
ñòa chæ tröïc tieáp hay giaùn tieáp. Ví duï ñeå ñoïc noäi dung oâ nhôù ôû ñòa chæ 5FH cuûa ram noäi
vaøo thanh ghi tích luõy A : MOV A,5FH.
Hoaëc truy xuaát duøng caùch ñòa chæ giaùn tieáp qua R0 hay R1. Ví duï 2 leänh sau seõ thi haønh
cuøng nhieäm vuï nhö leänh ôû treân:
MOV R0, #5FH
MOV A , @R0
-Ram coù theå truy xuaát töøng bit:
8051 chöùa 210 bit ñöôïc ñòa chæ hoùa töøng bit, trong ñoù 128 bit chöùa ôû caùc byte coù
ñòa chæ töø 20H ñeán 2FH, caùc bit coøn laïi chöùa trong nhoùm thanh ghi chöùc naêng ñaëc bieät.
YÙtöôûng truy xuaát töøng bit baèng phaàn meàm laø moät ñaëc tính maïnh cuûa vi ñieàu
khieån noùi chung. Caùc bit coù theå ñöôïc ñaët, xoùa, and, or,… vôùi 1 leänh ñôn. Ngoaøi ra caùc
port cuõng coù theå truy xuaát ñöôïc töøng bít laøm ñôn giaûn phaàn meàm xuaát nhaäp töøng bit.
Ví duï ñeå ñaët bit 67H ta duøng leänh sau: SETB 67H.
-Caùc bank thanh ghi:
Boä leänh 8051 hoã trôï 8 thanh ghi coù teân laø R0 ñeán R7 vaø theo maëc ñònh (sau khi
reset heä thoáng), caùc thanh ghi naøyôû caùc ñòa chæ 00H ñeán 07H. leänh sau ñaây seõ ñoïc noäi
dung ôû ñòa chæ 05H vaøo thanh ghi tích luõy: MOV A, R5.
Ñaây laø leänh 1 byte duøng ñòa chæ thanh ghi. Tuy nhieân coù theå thi haønh baèng leänh 2
byte duøng ñòa chæ tröïc tieáp naèm trong byte thöù 2: MOV A, 05H.
Leänh duøng caùc thanh ghi R0 ñeán R7 thì seõ ngaén hôn vaø nhanh hôn nhieàu so vôùi
leänh töông öùng duøng ñòa chæ tröïc tieáp.
Bank thanh ghi tích cöïc baèng caùch thay ñoåi caùc bit trong töø traïng thaùi chöông
trình (PSW). Giaû suû thanh ghi thöù 3 ñang ñöôïc truy xuaát, leänh sau ñaây seõ di chuyeån noäi
dung cuûa thanh ghi A vaøo oâ nhôù ram coù ñòa chæ 18H: MOV R0, A.
* Caùc thanh ghi coù chöùc naêng ñaëc bieät:
8051 coù 21 thanh ghi chöùc naêng ñaëc bieät (SFR: Special Funtion Register) ôû vuøng treân
cuûa RAM noäi töø ñòa chæ 80H ñeán FFH.
Chuù yù: taát caû 128 ñòa chæ töø 80H ñeán FFH khoâng ñöôïc ñònh nghóa, chæ coù 21 thanh ghi
chöùc naêng ñaëc bieät ñöôïc ñònh nghóa saün caùc ñòa chæ.
-Thanh ghi traïng thaùi chöông trình:
Thanh ghi traïng thaùi chöông trình PSW (Program Status Word ) ôû ñòa chæ DOH chöùa caùc
bít traïng thaùi nhö baûng sau:
Bit Kyù hieäu Ñòa chæ YÙ nghóa
PSW.7 CY D7H Côø nhôù
PSW.6 AC D6H Côø nhôù phuï
PSW.5 F0 D5H Côø 0
PSW.4 RS1 D4H Bit 1 choïn bank thanh ghi
PSW.3 RS0 D3H Bit 0 choïn bank thanh ghi
00=bank 0: ñòa chæ 00H – 07H
01=bank 1: ñòa chæ 08H – 0FH
10=bank 2: ñòa chæ 10H – 1FH
11=bank 3: ñòa chæ 18H –1FH
PSW.2 0V D2H Côø traøn
PSW.1 _ D1H Döï tröõ
PSW.0 P D0H Côø parity chaün leõ.
+ Côø nhôù:
C = 1 neáu pheùp toaùn coäng coù traøn hoaëc pheùp toaùn tröø coù möôïn vaø ngöôïc laïi C = 0.
Ví duï neáu thanh ghi A coù giaù trò FF thì leänh sau:
ADD A, #1
Pheùp coäng naøy coù traøn neân bit C = 1 vaø keát quaû trong thanh ghi A = 00H
Côø nhôù coù theå xem laø thanh ghi 1 bit cho caùc leänh luaän lyù thi haønh treân bit.
ANL C, 25H
+ Côù nhôù phuï:
Khi coäng caùc soá BCD, côø nhôù phuï AC = 1 neáu keát quaû 4 bit thaáp trong khoaûng 0AH ñeán
0FH. Ngöôïc laïi AC = 0.
+ Côø 0:
Côø 0 laø moät bit côø ña duïng daønh cho caùc öùng duïng cuûa ngöôøi duøng.
+ Caùc bit choïn bankthanh ghi truy xuaát:
Caùc bit choïn bank thanh ghi (RS0 vaø RS1) xaùc ñònh bank thanh ghi ñöôïc truy xuaát.
Chuùng ñöôïc xoùa sau khi reset heä thoáng vaø ñöôïc thay ñoåi baèng phaàn meàm neáu caàn. Ví duï
leänh sau cho pheùp bank thanh ghi 3 vaø di chuyeån noäi dung cuûa bank thanh ghi R7 (ñòa
chæ bye 1FH) vaøo thanh ghi A:
SETB RS1
SETB RS0
MOV A,R7
-Thanh ghi B:
Thanh ghi B ôû ñòa chæ F0H ñöôïc duøng cuøng vôùi thanh ghi tích luõy A cho caùc pheùp
toaùn nhaân vaø chia. Leänh MUL AB seõ nhaân caùc giaù trò khoâng daáu 8 bit trong A vaø B roài
traû keát quaû veà 16 bit trong A (byte thaáp) vaø B (byte cao). Leänh DIV AB seõ chia A cho B
roài traû keát quaû nguyeân trong A vaø phaàn dö trong B. thanh ghi cuõng coù theå xem nhö thanh
ghi ñeäm ña duïng.
-Con troû ngaên xeáp:
Con troû ngaên xeáp SP laø moät thanh ghi 8 bit ôû ñòa chæ 18H. Noù chöùa ñòa chæ cuûa
byte döõ lieäu hieän haønh treân ñænh cuûa ngaên xeáp. Caùc leänh treân ngaên xeáp bao goàm caùc
leänh caát döõ lieäu vaøo ngaên xeáp vaø laáy döõ lieäu ra khoûi ngaên xeáp. Leänh caát döõ lieäu vaøo
ngaên xeáp seõ laøm taêng SP tröôùc khi ghi döõ lieäu vaø leänh laáy döõ lieä u ra khoûi ngaên xeáp seõ
laøm giaûm SP. Ngaên xeáp cuûa 8051 ñöôïc giöõ trong ram noäi vaø giôùi haïn caùc ñòa chæ coù theá
truy xuaát baèng ñòa chæ giaùn tieáp, chuùng laø 128 byte ñaàu cuûa 8051
Ñeå khôûi ñoäng SP vôùi ngaên xeáp baét ñaàu taïi ñòa chæ 60 H, caùc leänh sau ñaây ñöôïc duøng:
MOV SP,#5FH
Khi reset 8051, SP seõ mang giaù trò maëc ñònh laø 07H vaø döõ lieäu ñaàu tieân seõ ñöôïc caát vaøo
oâ nhôù ngaên xeáp coù ñòa chæ laø 08 H. Ngaên xeáp ñöôïc truy xuaát tröïc tieáp baèng caùc leänh
PUSH vaø POP ñeå löu tröõ taïm thôøi vaø laáy laïi döõ lieäu hoaëc truy xuaát ngaàm baèng leänh goïi
chöông trình con ACALL,LCALL vaø caùc leänh trôû veà (RET. RETI) ñeå löu tröõ giaù trò cuûa
boä ñeám chöông trình khi baét ñaàu thöïc hieän chöông trình con vaø laáy laïi khi keát thuùc
chöông trình con.
-Con troû döõ lieäu
Con troû döõ lieäu DPTR ñöôïc duøng ñeå truy xuaát boä nhôù ngoaøi laø moät thanh ghi 16
bit ôû ñòa chæ 82H (DPL: byte thaáp) vaø 83H (DPH: byte cao). 3 leänh sau seõ ghi 55H vaøo
ram ngoaøi ôû ñòa chæ 1000H:
MOV A,#55H
MOV DPTR, #1000H
MOVX @DPTR,A
-Caùc thanh ghi port xuaát nhaäp:
Caùc port cuûa 8051 bao goàm port 0 ôû ñòa chæ 80H, port 1 ôû ñòa chæ 90H, port 2 ôû ñòa chæ
A0H, vaø port3 ôû ñòa chæ B0H. taát caû caùc port naøy ñeàu coù theå truy xuaát töøng bit neân raát
thuaän tieän trong khaû naêng giao tieáp.
-Caùc thanh ghi timer:
8051 coù chöùa 2 boä ñònh thôøi/ ñeám 16 bit ñöôïc duøng cho vieäc ñònh thôøi hoaëc ñeám
söï kieän. Timer 0 ôû ñòa chæ 8AH (TL0: byte thaáp) vaø 8CH (TH0: byte cao). Timer 1 ôû ñòa
chæ 8BH (TL1: byte thaáp) vaø 8DH (TH1: byte cao). Vieäc khôûi ñoäng timer ñöôïc Set bôûi
Timer Mode (TMOD) ôû ñòa chæ 89H vaø thanh ghi ñieàu khieån timer (TCON) ôû ñòa chæ
88H, chæ coù TCON ñöôïc ñòa chæ hoùa töøng bit.
-Caùc thanh ghi port noái tieáp:
8051 chöùa moät port noái tieáp daønh cho vieäc trao ñoåi thoâng tin vôùi caùc thieát bò noái
tieáp nhö maùy tính, modem hoaëc giao tieáp noái tieáp vôùi caùc IC khaùc. Moät thanh ghi goïi laø
boä ñeäm döõ lieäu noái tieáp (SBUF) ôû ñòa chæ 99H seõ giöõ caû 2 döõ lieäu truyeàn vaø döõ lieäu nhaän.
Khi truyeàn döõ lieäu thì ghi leân SBUF, khi nhaän döõ lieäu thì ñoïc SBUF. Caùc mode vaän haønh
khaùc nhau ñöôïc laäp trình qua thanh ghi ñieàu khieån port noái tieáp SCON ôû ñòa chæ 98H.
-Caùc thanh ghi ngaét:
8051 coù caáu truùc 5 nguoàn ngaét, 2 möùc öu tieân. Caùc ngaét bò caám sau khi reset heä
thoáng vaø seõ ñöôïc cho pheùp baèng vieäc ghi thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ A8H, caû
2 thanh ghi ñöôïc ñòa chæ hoùa töøng bit.
-Thanh ghi ñieàu khieån coâng suaát:
Thanh ghi ñieàu khieån coâng suaát (PCON) ôû ñòa chæ 87H chöùa caùc bit ñieàu khieån.
-Tín hieäu Reset:
8051 coù ngoõ vaøo reset RST taùc ñoäng ôû möùc cao trong khoaûng thôøi gian 2 chu kyø,
sau ñoù xuoáng möùc thaáp ñeå 8051 baét ñaàu laøm vieäc. RST coù theå kích baèng tay baèng moät
phím nhaán thöôøng môû, sô ñoà maïch reset nhö hình treân (hình a)
sau khi reset heä thoáng ñöôïc toùm taét nhö sau:
Thanh ghi Noäi dung
Ñeám chöông trình PC 0000H
Thanhghi tích luõy A 00H
Thanh ghi B 00H
Thanh ghi traïng thaùi 00H
SP 07H
DPTR 0000H
Port 0 ñeán Port 3 FFH
IP XXX0000 B
IE 0XX00000 B
Caùc thanh ghi ñònh thôøi 00H
Thanh ghi quan troïng nhaát laø thanh ghi boä ñeám chöông trình PC ñöôïc Reset taïi
ñòa chæ 0000H. Khi ngoõ vaøo RST xuoáng möùc thaáp, chöông trình luoân baét ñaàu taïi ñòa chæ
0000H cuûa boä nhôù chöông trình. Noäi dung cuûa Ram trong chip khoâng bò hay ñoåi bôûi taùc
ñoäng cuûa ngoõ vaøo Reset
c.Hoaït ñoäng thanh ghi TIMER
8051 coù hai timer 16 bit, moãi timer coù boán caùch laøm vieäc. Ngöôøi ta söû duïng caùc timer
ñeå:
- Ñònh khoaûng thôøi gian.
- Ñeám söï kieän.
- Taïo toác ñoä baud cho port noái tieáp trong 8051.
Trong caùc öùng duïng ñònh khoaûng thôøi gian, ngöôøi ta laäp trình timer ôû nhöõng khoaûng ñeàu
ñaën vaø ñaët côø traøn timer. Côø ñöôïc duøng ñeå ñoàng boä hoùa chöông trình ñeå thöïc hieän moät
taùc ñoäng nhö kieåm tra traïng thaùi cuûa caùc ngoõ vaøo hoaëc göûi söï kieän ra caùc ngoõra. Caùc öùng
duïng khaùc coù theå söû duïng vieäc taïo xung nhòp ñeàu ñaën cuûa timer ñeå ño thôøi gian troâi qua
giöõa hai söï kieän (ví duï ño ñoä roäng xung ).
Truy xuaát caùc timer cuûa 8051 duøng saùu thanh ghi chöùc naêng ñaëc bieät cho trong baûng sau:
SFR Muïc Ñích Ñòa chæ Ñòa chæ hoùa töøng bit
Thanh ghi TMOD chöùa hai nhoùm 4 bit duøng ñeå ñaët cheá ñoä laøm vieäc cho Timer 0,
vaø Timer 1.
7 GATE 1 Bit môû coång, khi leân 1 timer chæ chaïy khi INT1 ôû möùc cao
3 GATE 0 Bit môû coång, khi leân 1 timer chæ chaïy khi INT0 ôû möùc cao
Bit choïn cheá ñoä Count/Timer
2 C/T 0
TCON.7 TF1 8FH Côø baùo traøn timer 1. Ñaët bôûi phaàn cöùng khi traøn,
ñöôïc xoùa bôûi phaàn meàm, hoaëc phaàn cöùng khi boä
xöû lyù chæ ñeán chöông trình phuïc vuï ngaét.
TCON.6 TR1 8EH Bit ñieàu khieån timer 1 chaïy ñaët xoùa baèng phaàn
meàm ñeå cho timer chaïy ngöng.
TCON.3 IE1 8BH Côø caïnh ngaét 1 beân ngoaøi. Ñaët bôûi phaàn cöùng khi
phaùt hieän moät caïnh xuoáng ôû INT1 xoùa baèng phaàn
meàm hoïaêc phaàn cöùng khi CPU chæ ñeán chöông
trình phuïc vuï ngaét.
TCON.2 IT1 8AH Côø kieåu ngaét 1 beân ngoaøi. Ñaët xoùa baèng phaàn
meàm ñeå ngaét ngoaøi tích cöïc caïnh xuoáng /möùc
thaáp.
Thoâng thöôøng caùc thanh ghi ñöôïc khôûi ñoäng moät laàn ñaàu ôû chöông trình ñeå ñaët ôû
cheá ñoä laøm vieäc ñuùng. Sau ñoù, trong thaân chöông trình, caùc thanh ghi timer ñöôïc cho
chaïy, döøng, caùc bit ñöôïc kieåm tra vaø xoùa, caùc thanh ghi timer ñöôïc ñoïc vaø caäp nhaät….
theo ñoøi hoûi caùc öùng duïng.
TMOD laø thanh ghi thöù nhaát ñöôïc khôûi ñoäng vì noù ñaët cheá ñoä hoaït ñoäng. Ví duï,
caùc leänh sau khôûi ñoäng Timer 1 nhö timer 16 bit (cheá ñoä 1) coù xung nhòp töø boä dao ñoäng
teân chip cho vieäc ñònh khoaûng thôøi gian:
MOV TMOD, #1B
Leänh naøy seõ ñaët M1 = 1 vaø M0 = 0 cho cheá ñoä 1, C/ T= 0 vaø GATE = 0 cho xung
nhòp noäi vaø xoùa caùc bit cheá ñoä Timer 0. Dó nhieân, timer khoâng thaät söï baét ñaàu ñònh thôøi
cho ñeán khi bit ñieàu khieån chaïy TR1 ñöôïc ñaët leân 1.
Neáu caàn soá ñeám ban ñaàu, caùc thanh ghi TL1/TH1 cuõng phaûi ñöôïc khôûi ñoäng. Moät
khoaûng 100s coù theå ñöôïc khôûi ñoäng baèng caùch khôûi ñoäng giaù trò cho TH1/TL1 laø
FF9CH:
MOV TL1, #9CH
MOV TH1, #0FFH
Roài timer ñöôïc cho chaïy baèng caùch ñaët bit ñieàu khieån chaïy nhö sau:
SETB TR1
Côø baùo traøn ñöôïc töï ñoäng ñaët leân 1 sau 100s. Phaàn meàm coù theå ñôïi trong 100 s baèng
caùch duøng leänh reõ nhaùnh coù ñieàu kieän nhaûy ñeán chính noù trong khi côø baùo traøn chöa
ñöôïc ñaët leân 1:
WAIT: JNB TF1, WAIT
Khi timer traøn, caàn döøng timer vaø xoùa côø baùo traøn trong phaàn meàm:
CLR TR1
CLR TF1
d. Ngaét ( INTERRUPT)
Moät ngaét laø söï xaûy ra moät ñieàu kieän, moät söï kieän maø noù gaây ra treo taïm thôøi thôøi
chöông trình chính trong khi ñieàu kieän ñoù ñöôïc phuïc vuï bôûi moät chöông trình khaùc.
Caùc ngaét ñoùng moät vai troø quan troïng trong thieát keá vaø caøi ñaët caùc öùng duïng vi
ñieàu khieån. Chuùng cho pheùp heä thoáng ñaùp öùng baát ñoàng boä vôùi moät söï kieän vaø giaûi quyeát
söï kieän ñoù trong khi moät chöông trình khaùc ñang thöïc thi.
Toå chöùc ngaét cuûa 8051:
Coù 5 nguoàn ngaét ôû 8031: 2 ngaét ngoaøi, 2 ngaét töø timer vaø 1 ngaét port noái tieáp.
Taát caû caùc ngaét theo maëc nhieân ñeàu bò caám sau khi reset heä thoáng vaø ñöôïc cho pheùp
töøng caùi moät baèng phaàn meàm.
Khi coù hai hoaëc nhieàu ngaét ñoàng thôøi, hoaëc moät ngaét xaûy ra khi moät ngaét khaùc
ñang ñöôïc phuïc vuï, coù caû hai söï tuaàn töï hoûi voøng vaø sô ñoà öu tieân hai möùc duøng ñeå xaùc
ñònh vieäc thöïc hieän caùc ngaét. Vieäc hoûi voøng tuaàn töï thì coá ñònh nhöng öu tieân ngaét thì coù
theå laäp trình ñöôïc.
Timer 2 002BH
Vector reset heä thoáng (RST ôû ñòa chæ 0000H) ñöôïc ñeå trong baûng naøy vì theo nghóa naøy,
noù gioáng ngaét : noù ngaét chöông trình chính vaø naïp cho PC giaù trò môùi.
e. Keát hôïp 8051 vôùi boä nhôù ngoaøi
Vi xöû lyù (Microprocessor) laø IC chuyeân duïng veà xöû lyù döõ lieäu, ñieàu khieån theo moät
chöông trình, muoán Microprocessor thöïc hieän moät coâng vieäc gì ngöôøi söû duïng phaûi laäp
trình hay vieát chöông trình. Chöông trình phaûi löö tröõ ôû ñaâu ñeå Microprocessor nhaän
leänh vaø thi haønh, ñoâi khi trong luùc xöû lyù chöông trình Microprocessor caàn nôi löö tröõ taïm
thôøi caùc döõ lieäu sau ñoù laáy ra ñeå tieáp tuïc xöû lyù. Nôi löu tröõ chöông trình cho
Microprocessor thöïc hieän vaø nôi löu tröõ taïm thôøi döõ lieäu chính laø boä nhôù. Caùc boä nhôù
cuûa Microprcessor laø caùc IC, caùc IC nhôù naøy coù theå ñoïc döõ lieäu ra, ghi döõ lieäu vaøo hoaëc
chæ ñoïc döõ lieäu ra. Ñoâi khi boä nhôù cuûa Microprocessor khoâng ñuû ñeå löu tröõ nhöõng thoâng
tin caàn thieát khi chaïy chöông trình, khi ñoù phaûi duøng kyõ thuaät môû roäng boä nhôù. 8051 coù
khaû naêng môû roäng boä nhôù ñeán 64k byte boä nhôù chöông trình vaø 64k byte boä nhôù döõ lieäu
beân ngoaøi. Boä nhôù chöông trình laø boä nhôù Rom coøn boä nhôù döõ lieäu laø boä nhôù Ram.
_ Boä nhôù Ram chia ra laøm 2 loaïi Sram vaø Dram. Dram ñöôïc cheá taïo duøng kyõ thuaät
MOS, coù dung löôïng boä nhôù lôùn, coâng xuaát tieâu taùn thaáp vaø toác ñoä hoaït ñoäng trung bình.
Ôû Sram döõ lieäu löu tröõ vaøo caùc Flip- Flop coøn Dram döõ lieäu löu tröõ möùc 0 vaø 1 töông
ñöông vôùi quaù trình naïp vaø xaû cuûa moät tuï ñieän khoaûng vaøi pF. Bôûi vì ñieän aùp cuûa tuï seõ
suy giaûm daàn do ñoù Dram ñoøi hoûi chu kyø naïp laïi neáu khoâng muoán maát döõ lieäu vaø ñöôïc
goïi laø quaù trình laøm töôi Ram, ñaây chính laø khuyeát ñieåm cuûa Dram so vôùi Sram. Boä nhôù
Rom coù nhieàu loaïi: PROM, EPROM, EEPROM nhöng EPROM coù theå laäp trình bôûi
ngöôøi duøng, coù theå xoùa vaø laäp trình laïi nhieàu laàn neân trong ñoà aùn naøy chuùng em duøng
EPROM 2764 vaø duøng SRAM 6264. Ñaëc ñieåm, sô ñoà chaân vaø baûng söï thaät cuûa 2764 vaø
6264 ôû hình döôùi ñaây
SRAM 6264: laø boä nhôù ñöôïc cheá taïo theo coâng ngheä CMOS, coù dung löôïng
65536 bit ñöôïc toå chöùc thaønh 8192x8 bit (8KByte), ñieän aùp cung caáp laø +5V, thôøi gian
truy caäp khoaûng 150ns. Ngoõ vaøo/ra döõ lieäu ñöôïc duøng chung, caùc ngoõ vaøo/ra naøy töông
thích TTL. Coâng suaát tieâu taùn ôû traïng thaùi chôø raát thaáp chæ khoaûng 0,1mW so vôùi khi
hoaït ñoäng bình thöôøng laø 200mW.
Sô ñoà chaân vaø sô ñoà logic cuûa 6264 nhö sau:
N.C Vcc
A12 WE\
A7 CE2
A8
A6
A5 A9
A0-A12
A4 A11
A3
A2
6264 OE\
A10
CE1\
6264 DQ0-DQ7
A1 CE1\
A0 DQ7 CE2
DQ0 DQ6
DQ1 DQ5 OE\
DQ2 DQ4
Vss DQ3 WE\
Töø sô ñoà chaân cho ta thaáy caù chaân ñöôïc chia thaønh 4 nhoùm:
+ Vcc, GND : chaân nguoàn
+ Do ñeán D7 : chaân döõ lieäu
+ Ao ñeán A12 : chaân ñòa chæ
EPROM 2764: laø boä nhôù chæ ñoïc ñöôïc cheá taïo theo coâng ngheä NMOS, duøng moät
nguoàn ñôn +5V, dung löôïng boä nhôù laø 65536 bit, ñöôïc toå chöùc thaønh 8192x8 bit
(8KByte). 2764 laø loaïi EPROM coù theå xoùa baèng tia cöïc tím vaø coù theå ghi laïi ñöôïc nhieàu
laàn. Coù hai kieåu hoïat ñoäng: bình thöôøng vaø chôø. ÔÛ traïng thaùi chôø, coâng suaát tieâu thuï laø
132mW so vôùi 525mW khi ôû traïng thaùi ñoïc döõ lieäu, thôøi gian truy xuaát laø 200ns. Sô ñoà
chaân vaø sô ñoà logic cuûa 2764 nhö sau:
Vpp Vcc
A12 PGM\
A7 N.C
A6 A8 A0-A12
A5 A9
A4 A11 D0-D7
A3
A2
2764 OE\
A10 2764
A1 CE\
A0 O7 CE\
O0 O6
O1 O5 OE\
O2 O4
GND O3 VPP
- EPROM coù theå ñöôïc laäp bôûi ngöôøi laäp trình söû duïng vaø noù cuõng coù theå xoùa ñeå laäp trình
laïi khi naøo muoán.
-EPROM duøng trong maïch ñöôïc chöùa saün chöông trình ñieàu khieån, töùc laø chæ xuaát Data
moãi khi CPU tham khaûo ñeán, do ñoù ta chæ quan taâm ñeán cheá ñoä ñoïc vaø chôø. Döïa vaøo caùc
Mode hoaït ñoäng treân thì EPROM ñöôïc ñieàu khieån caùc chaân sau:
- PGM = 5 Volt (Vcc )
- OE\ noái chaân PSEN cuûa CPU
- CE\ noái xuoáng CSO
+ Cheá ñoä ñoïc (Read Mode ): Cheá ñoä naøy ñöôïc thieát laäp khi CE\ vaø OE\ ôû möùc thaáp,
PGM ôû möùc cao. Coù hai ngoõ vaøo ñieàu khieån duøng ñeå truy xuaát Data töø ROM laø CE\ vaø
OE\ duøng ñeå kieåm soaùt ngoõ ra Data, ñöa Data leân Data bus.
+ Cheá ñoä chôø (Stanby Mode ): Cheá ñoä naøy laøm giaûm coâng suaát tieâu thuï ñöôïc thieát laäp
khi CE\ ôû möùc cao, ôû cheá ñoä naøy Data ôû traïng thaùi trôû khaùng cao ñoäc laäp.
*Giaûi maõ ñòa chæ:
Do 8051 thieát keá caàn quaûn lyù nhieàu thieát bò ngoaïi vi, nhieàu oâ nhôù, muoán laøm ñöôïc
vieäc naøy ngöôøi ta phaûi cung caáp cho moãi oâ nhôù vaø thieát bò ngoaïi vi taàm ñòa chæ cho thieát
bò ñoù. Vì vaäy caàn coù maïch giaûi maõ ñòa chæ trong maïch ñieän. Ngöôøi ta thöôøng duøng IC
giaûi maõ 74HC138 vôùi caùc ngoõ ra ñöôïc noái tôùi caùc ngoõ vaøo choïn chip (CS\) treân caùc IC
nhôù. Sau ñaây laø sô ñoà chaân, baûng söï thaät vaø ñaëc ñieåm cuûa 74138:
A
A Vcc
B
B Y0
C
C
G2A
74138 Y1
Y2
74138
Y0 ...Y7
G2B Y3
G1 Y4 G2A\
Y7 Y5
GND Y6 G2B
G1
Sô ñoà chaân
INPUTS OUTPUTS
ENABLE SELECT
G1 G2 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
x H x x x H H H H H H H H
L x x x x H H H H H H H H
H L L L L L H H H H H H H
H L L L H H L H H H H H H
H L L H L H H L H H H H H
H L L H H H H H L H H H H
H L H L L H H H H L H H H
H L H L H H H H H H L H H
H L H H L H H H H H H L H
H L H H H H H H H H H H L
G2 = G2A + G2 Baûng traïng thaùi
*Giaûi ña hôïp caùc ñöôøng döõ lieäu vaø ñöôøng ñòa chæ:
Khi duøng boä nhôù ngoaøi, port 0 khoâng coøn laø port IO thuaàn tuùy. Noù ñöôïc keát hôïp
giöõa bus ñòa chæ vaø bus döõ lieäu neân duøng tín hieäu ALE vaø IC choát ñeå choát byte thaáp cuûa
bus ñòa chæ khi baét ñaàu moãi chu kyø boä nhôù. Port2 cho byte cao cuûa bus ñòa chæ. Ôû ñaây
chuùng em duøng IC choát 74373. Sô ñoà chaân, ñaëc ñieåm vaø baûng traïng thaùi cuûa 74373
OE\ Vcc
D0 Q0
D1 Q1
D2 Q2 D0-D7
D3 74373 Q3 74373 Q0-Q7
D4 Q4
D5 Q5
D6 Q6 OC \
D7 Q7
GND G G
Sô ñoà chaân
Baûng traïng thaùi
_ 74LS373 goàm 8 D-FF coù ngoõ ra 3 traïng thaùi ñöôïc ñieàu khieån choát vaø xuaát döõ
lieäu baèng chaân G vaø OC. Trong öùng duïng naøy chaân G ñöôïc noái vôùi chaân ALE cuûa 8051,
chaân OC noái mass.
_ laø IC choát 8 bit
_ Caùc boä ñeäm ngoõ ra 3 traïng thaùi
_ Tín hieäu ñieàu khieån ngoõ ra 3 traïng thaùi chung.
*Xeáp choàng caùc vuøng nhôù chöông trình vaø döõ lieäu beân ngoaøi:
Vì boä nhôù chöông trình laø Rom neân xaûy ra vaán ñeà baát tieän khi phaùt trieån phaàn
meàm cho 8051 laø toå chöùc boä nhôù nhö theá naøo ñeå coù theå söûa ñoåi chöông trình vaø coù theå
ghi trôû laïi khi noù ñöôïc chöùa trong boä nhôù Rom. Caùch giaûi quyeát laø xeáp choàng caùc vuøng
döõ lieäu vaø chöông trình. Moät boä nhôù Ram coù theå chöùa caû chöông trình vaø döõ lieäu baèng
caùch noái ñöôøng OE\ cuûa Ram ñeán ngoõ ra coång AND coù 2 ngoõ vaøo laø PSEN\ vaø RD\. Sô
ñoà maïch nhö hình sau cho pheùp boä nhôù Ram coù 2 chöùc naêng vöøa laø boä nhôù chöông trình
vöøa laø boä nhôù döõ lieäu.
Vaäy 1 chöông trình coù theå ñöôïc taûi vaøo Ram (baèng caùch ghi noù nhö boä nhôù döõ lieäu)
vaø thi haønh chöông trình (baèng caùch truy xuaát noù nhö boä nhôù chöông trình)
WR
WR
RAM
Đào Thanh Mai RD
0906773728
OE\
PSEN
Luaän vaên toát nghieäp Trang 26
Giaûi maõ
Port CH 74138
Port0
8051 8255
Ñeäm
PortA 74245 LED
Port2
PA3 PA4
PA2 PA5
PA1 PA6
D0-D7 PA0-PA7
PA0 PA7
RD\ WR\
CS\ RESET
GND D0
A1 D1
A0 D2 PB0-PB7
RD\
PC7
PC6 8255A D3
D4
WR\ 8255A
PC5 D5
PC4 D6 RESET
PC0 D7 PC0-PC3
PC1 Vcc
PC2
PC3
PB7
PB6
CS\
PB0 PB5 A0
PB1 PB4
PB2 PB3 A1 PC4-PC7
CS\
Sô ñoà chaân vaø sô ñoà logic
Tính linh hoaït cuûa vi maïch theå hieän ôû khaû naêng laäp trình. Qua moät thanh ghi ñieàu
khieån, ngöôøi söû duïng xaùc ñònh cheá ñoä hoaït ñoäng vaø coång naøo caàn ñöôïc söû duïng nhö laø
loái vaøo hoaëc loái ra. Caùc chaân ra D0 D7 taïo neân bus döõ lieäu hai chieàu coù ñoä roäng laø 8
bit. 8255 ñöôïc choïn bôûi tín hieäu möùc thaáp ôû ngoõ vaøo choïn chíp CS\. Khi 8255 khoâng
ñöôïc choïn, boä ñeäm bus döõ lieäu noái 8255 vôùi heä thoáng ñöôïc thaû noåi. Khi ñöôïc choïn, caùc
ngoõ vaøo A0 vaø A1 ñöôïc duøng ñeå choïn thanh ghi ñieàu khieån hoaëc moät trong caùc coång
vaøo/ra ñeå trao ñoåi döõ lieäu. Caùc hoaït ñoäng cô baûn cuûa 8255 ñöôïc toùm taét trong baûng sau:
1 0 0 D4 D3 0 D1 D0
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
D7 D6 D5 D4 D3 D2 D1 D0
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
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
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:
DIR 1 20 Vcc
A1 2 19 G\ Enable Direction Operation
G\ Control
A22 3 18 B1 DIR
A3 4 17 B2 L L Döõ lieäu töø B ñöa ra
A4 5 74245 16 B3 bus A
L H Döõ lieäu töø A ñöa ra
A5 6 15 B4 busA
A6 7 14 B5 H X Ngaên
A7 8 13 B6
A 9 12 B7
Baûng söï thaät
10 11 B8
8
GND 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
PORT 1 BAØN PHÍM
Port0 Data
A0 A7 A0 A1
Address Hieån
PortB.0
Thu Phaùt
74373 ROM RAM 8255-2 PortA 8255-1
8
thò
5 A8 A12
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:
Port 0 D7 - D0
EA D EPROM
8051 74373
A7- A0
Q
ALE G
D7 - D0
Port 0
EA D RAM
8051 Q A7- A0
74373
ALE G
A15 -A8
Port2 0E
WR
RD
WR
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 A A A A A A A A A A A A A A A hex
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Rom 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 H
8K 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH
Ram 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000 H
8K 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3FFFH
8255 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4000 H
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 4003 H
8255 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6000 H
2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 6003 H
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 8255 1
A13 =1, A14 = 1, A15 = 0 choïn 8255 2
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 (Q 0Q7 ) 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:
H H
L H
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ø: IB > 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 ].
VBESAT
+ Choïn = 40 I CSAT x VOH RB (4.9 0,8).
3
40
RB 13.10
2. Transistor Q2 (A564 ):
VCC VLED VECSAT
I CSAT
RC
5 2 0.2
+ Choïn doøng qua led laø 10mA RC 280
10.10 3
5 2 0.2
Choïn RC = 220 I CSATtt I LEDtt 0.013A 13mA 15mA
220
Choïn RB = R7 = 10K
5 2 0.2
I CSATtt 13mA
220 103
VOH VBESAT
I CSAT RB 40
4.9 0.8 12 ,61K
RB 13
4. Transistor Q5 (C828):
+ ChoÏn = 40
+ Choïn doøng IC =10mA
VCC VCE 5 0 .2
RC 480
IC 10 .10 3
Rc =1K
+ IB > IcSAT
RB
VCC VD 5 VD 6 RC
VCC VCESAT
40
5 0.7 3 0,8 1
5 0.2
4.17 K
Choïn RB < 4.17K, laáy RB (R21) laØ bieán trôû 20K ñeå ñieàu chænh cho chính xaùc
5. Transistor Q6 (C828 ):
+Choïn = 40
+Maø ñieàu kieän baõo hoøa laø: IB > IcSAT , choïn Rc = 1K
VOH VBESAT VCC VCESAT
RB RC
Đào Thanh Mai 0906773728
Luaän vaên toát nghieäp Trang 7
ChoÏn RC =330
VCC VLED VECSAT 5 2 0.2
I LEDtt 8.5mA
RC 330.10 3
7.Transistor Q8 (C828 ):
Choïn = 40
+ Maø ñieàu kieän baõo hoøa laø: IB > IcSAT
VCC VBESAT VCC VCESAT
RB RC
+ Choïn RC = 1k.
5 0.8 5 0.2
40
RB 1
40 4.2
RB 35 K
4.8 1
ChoÏn RB = R27 = 15 K
8.Transistor Q9 ( A 564 ):
+Choïn = 40
+ Choïn doøng qua led laø 10mA
ChoÏn RC =220
VCC VLED VECSAT 5 2 0.2
Vaäy doøng qua led thöïc teá laø: I LEDtt 13 mA
RC RC
1 1
f ( Hz )
T n. N
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):
TL
Đào Thanh Mai 0906773728
T
Luaän vaên toát nghieäp Trang 9
Ñieàu kieän ñeå cho ñaàu doø phaùt hieän saûn phaåm
10 d v.T 10 .d m
TL (ms ) d L (cm) v ( )
v 10 TL s
v.TL
d MIN (cm)
10
10 .d m
vMAX ( )
TL s
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
0 1 2 3
P0.4 4 5 6 7
P0.5 8 9 A B
P0.6
C D E F
P0.7
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
R1
Ñieän trôû
phaân cöïc Led
R2 :ñieän trôû
haïn doøng
Ñ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 laø 60
Vaäy doøng IB laø:
IC 70
IB 1,1mA
60
Choïn R1 = 3,3 k, 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ø:
5 0,7
I B 1,3mA
3,3
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
VR 2 2,8
Vaäy R2 251
I CMAX 1,3.60.10 3
7 7
Choïn R2 = 270 (). Choïn R2 lôùn hôn tính toaùn ñeå transistor nhanh baõo hoaø
5 2 0,2
I LEDtt 11,1mA
251 103
VCC VLED 5 2
R1 0,3k
I LED 10
Choïn R1 treân thöïc teá laø 330 (). 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ø: VCC V LED 52
I LEDtt 9,09 mA
R1 330 10 3
Tính toaùn ñieän trôû vaø tuï treân maïch dao ñoäng 555
VCC
RA
8 4
7 3
Ngoõ ra
6
RB 2 1 5
C C1
- Daïng soùng:
Ñieän aùp ra T
Vcc
0V
Ñieän aùp treân tuï t
tc td
2/3Vcc
1/3 Vcc
t
tc =0,69(RA + RB).C
RA ,RB ohm CF ts
td =0,69RBC T= tc + td =0,69(RA +2RB).C
* Neáu choïn ñôn vò RK , CF tms ,f0KHz
1 1,45
fo
T RA 2 RB C
Choïn RA 1 1
RB 8 10
ñ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 I B 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:
1,1 1,1
fo 1,1Khz
R15C10 10 .0,1
- Choïn R15 = 10K
C10 =0,1F
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 =1F ,C9 =2,2 F.
8
R10 28,23 K
0,28335
* ÔÛ 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=100K
R14
AV 100
R13
R13 =1K
R12 thöôøng töø 0K 56K, choïn R12 =56K
C7 =0,1F (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= f 0 =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 Q 2
,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 Q 2. Keát quaû laø taàn soá vaøo (ff0
=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
Ca: = 0
Ca: =Ca + 1
S
Ñuû SP
Ñ
Ro-le ñoùng hoäp, ñeám hoäp (RL – ÑH)
S
Ñuû hoäp
Ñ
- 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
S S
Phím E Ca = 9
Ñ
Ñ
- Goïi chöông trình xem soá lieäu löu baát kì ca naøo
Baét ñaàu
Ret
Baét
ñaàu
Cho
pheùp ngaét
R2 - 1
R2 = 0
S
Ñ
TOÁC ÑOÄ 1 R2
Choïn led hieån thò
Xuaát döõ lieäu ra led
R1 - 1
R1 = # 69H S
R1 # 77H
Thoaùt 1
Ret
Baét
ñaàu
Ñ
A = # 0AH Ñaët bit YES
Xoùa A
S
Ñ
A = # 0BH Ñaët bit
S NO
Xoùa côø C
A - # 0AH
C=1
S
Ñ
RET
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ò.
Baét ñaàu
A A +1
RET
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
#50
#50 (R3)
(R3)
C= 0
Ñ
Khoâng coù phím aán
S Coù phím aán
R3 - 1
R3= 0
S
Ñ
Caát ACC
#50 (R3)
Goïi CT doø
maõ phím
Ñ
C=1
S
R3 - 1
S
R3= 0
Ñ
Laáy ACC
RET
Đào Thanh Mai 0906773728
Luaän vaên toát nghieäp Trang 24
Baét ñaàu
#FE A
# 4 R6
A R7
A P1
Ñoïc port 1
A AND #0F0H
S
R7 A
A = # Xoay A R6 =0
0F0H
S Ñ R6 - 1
Ñ
A R7
#4 A
XOÙ
XOÙA C
A –R6
AC
A R6
R7 A
XOAY A
C
=0 Ñ (3)
S (3)
R6 + 4 Ñaët côø c
R5 - 1 R6 A
R5 = 0 RET
S
Ñ
(3)
Đào Thanh Mai 0906773728
Luaän vaên toát nghieäp Trang 25
Baét ñaàu
DPTR # CAÛM
BIEÁN
R3 #100
A @DPTR
ACC. 0 =1
1Ñ
S
R3 - 1
R3 = 0
Ñ
S
R3 #100
ACC.0 = 0
Ñ
S
R3 - 1
R3 = 0
Ñ S
Đào Thanh Mai RET 0906773728
Luaän vaên toát nghieäp Trang 26
Baté ñaàu
A DEMHOP H
LED 70 NGAN
LED 71 TRAM
A DEMHOP L
LED 72 CHUC
LED 73 DONVI
A DEM_SP H
LED 75 TRAM
A DEM_ SPL
LED 76 CHUC
LED 77 DONVI
A LED 70
(1)
( 1)
S
A =0
Ñ
Xoùa LED 70
A LED 71
S
A =0
Ñ
Xoùa LED 71
A LED 72
S
A=
0 Ñ
Xoùa LED 72
A LED 75
S
A=
0 Ñ
Xoùa LED 75
A LED 76
S
A
=0 Ñ
Xoùa LED 76
RET
A=0
Ñ
S
BIT 7D = 1
Ñ
S
A ÑÔN VÒ
ÑÔN VÒ LÖU HOP L
Goïi nhaán soá thöù 2
RET BIT 7E = 1
Ñ
S
BIT 7D = 1
Ñ
(2)
(2)
ÑÔN VÒ CHUÏC
A ÑÔN VÒ
CHUÏC + ÑÔN VÒ LÖU HOP L
Goïi nhaán soá thöù 3
BIT 7E = 1
Ñ
S
BIT 7D = 1
Ñ (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
BIT 7E = 1
S
Ñ
BIT 7D = 1
Ñ (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
S
Luaän vaên toát nghieäp Trang 30
Baét ñaàu
Ñ
A=0
S
BIT 7D = 1 Ñ
S
ÑÔN VÒ A
LÖU – SPL ÑÔNVÒ
Goïi nhaán soá thöù 2
BIT 7E = 1
Ñ
S
(3)
BIT 7D = 1
Ñ
S
CHUÏC ÑÔN VÒ
Đào Thanh Mai ÑÔN VÒ A
0906773728
LÖU – SPL CHUÏC,ÑÔNVÒ
Goïi nhaán soá thöù 3
Luaän vaên toát nghieäp Trang 31
(2)
BIT 7E = 1
Ñ
S (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
RET
Baét ñaàu
Chaïy
timer
S COUNT 0 (FFFF 0000)
Ñ
R4 = 0
S
Ñ
Ret
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.
A 2EH
30H LUUHOPL
LÖU: Ñ 31H LUUHOPH
A =#01H
32H LUU_SPL
33H LUU_SPH
S
34H LUUHOPL
A =#02H Ñ 35H LUUHOPH
36H LUU_SPL
S 37H LUU_SPH
38H LUUHOPL
39H LUUHOPH
A =#03H Ñ
3AH LUU_SPL
3BH LUU_SPH
S
3CH LUUHOPL
Ñ 3DH LUUHOPH
A =#04H
3EH LUU_SPL
3FH LUU_SPH
S
40H LUUHOPL
Đào Thanh Mai Ñ 41H LUUHOPH
0906773728
A =#05H
42H LUU_SPL
43H LUU_SPH
S (2) (1)
Luaän vaên toát nghieäp Trang 35
(2)
44H LUUHOPL
45H LUUHOPH
A =#06H Ñ
46H LUU_SPL
47H LUU_SPH
S
48H LUUHOPL
Ñ 49H LUUHOPH
A =#07H
4AH LUU_SPL
4BH LUU_SPH
S
4CH LUUHOPL
4DH LUUHOPH
Ñ
A =#08H 4EH LUU_SPL
4FH LUU_SPH
S
50H LUUHOPL
Ñ 51H LUUHOPH
A =#09H 52H LUU_SPL
53H LUU_SPH
S
RET
Luaän vaên toát nghieäp Trang 36
LUUHOPL #FFH
Ñ LUUHOPH #FFH
XEM: A =#00H
LUU_SPL #FFH
LUU_SPH #FFH
S
LUUHOPL 30H
Ñ LUUHOPH 31H
A =#01H
LUU_SPL 32H
S LUU_SPH 33H
LUUHOPL 34H
Ñ LUUHOPH 35H
A =#02H
LUU_SPL 36H
LUU_SPH 37H
S
LUUHOPL 38H
Ñ LUUHOPH 39H
A =#03H
LUU_SPL 3AH
LUU_SPH 3BH
S
(2)
LUUHOPL 40H
Ñ LUUHOPH 41H
A =#05H LUU_SPL 42H
LUU_SPH 43H
S
LUUHOPL 44H
Ñ LUUHOPH 45H
A =#06H
LUU_SPL 46H
S LUU_SPH 47H
LUUHOPL 48H
Ñ LUUHOPH 49H
A =#07H
LUU_SPL 4AH
LUU_SPH 4BH
S
LUUHOPL 4CH
Ñ LUUHOPH 4DH
A =#08H
LUU_SPL 4EH
LUU_SPH 4FH
S
LUUHOPL 50H
Ñ LUUHOPH 51H
Đào Thanh Mai A =#09H 0906773728
LUU_SPL 52H
LUU_SPH 53H
S
Luaän vaên toát nghieäp Trang 38
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
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ø.
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ö:
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)
IN _HEX
#50 (R3)
Call: getkey
R3= 0
Caát ACC
#50 (R3)
Call: getkey
Ñ
C=1
R3 - 1
S
S
R3= 0
Ñ
Laáy ACC
RET
Đào Thanh Mai 0906773728
Luaän vaên toát nghieäp Trang 55