Tải bản đầy đủ (.pdf) (94 trang)

Thiết kế và thi công mạch quang báo kết hợp hiển thị nhiệt độ và thời gian

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 94 trang )

TRNG I HC M THÀNH PH H CHÍ MINH KHOA
XÂY DNG VÀ IN



 ÁN TT NGHIP
K S NGÀNH IN - IN T



THIT K VÀ THI CÔNG MCH QUANG
BÁO KT HP HIN TH NHIT  VÀ
THI GIAN







GVHD : ThS.TNG THANH NHÂN
SVTH : NGUYN HI PHNG
MSSV : 20662075











TP. H Chí Minh, tháng 3 nm 2011
 án tt nghip k s đin- đin t GVHD : ThS. Tng Thanh Nhân

SVTH : Nguyn Hi Phng MSSV : 20662075


LI M U



Nh chúng ta đã bit hin nay vic qung cáo bng led đã tr nên rt ph bin,
hu nh khp mi ni t các ca hàng, quán xá, siêu th, ngân hàng, sân bay, các
bng thông báo… tt c đu s dng bng led.
u đim ca các bng led mà ta d thy nht là màu sc rt sinh đng, chúng có
th hin th các hiu ng rt đp mt rt d làm thu hút ánh m
t ca mi ngi, hin
th rõ ràng ngay c ban ngày, và càng thêm rc r khi đêm xung. u đim na là
các bng led còn có th hin th đc các hình nh đng, nhiu màu sc, nhiu hiu
ng chuyn đng vì vy nó luôn là la chn ca nhiu ngi khi làm bng qung cáo.
Mt ng dng na ca bng led đó là dùng đ hin th thông tin, ng dng này thì
chúng ta thng thy  các ngân hàng, các sân bay, sàn giao dch chng khoán, bnh
vin, siêu th hay các bng thông báo trên đng giao thông…chúng có th kt ni
vi các thit b khác đ thay đi ni dung thông tin cn hin th mt cách t đng ví
d máy tính, đng h s, mch đo nhit đ…Và vi ng dng này ca bng led nên
em đi đn ý tng làm đ án v đ tài “thit k và thi công mch quang báo kt h
p
hin th nhit đ và thi gian”.
Phm vi ca đ án xoay quanh vic đo đc thu thp d liu t các b phn cm

bin nhit, bin đi và đng h s, bàn phím sau đó hin th lên led ma trn, nu m
rng ra thêm thì ta có th kt hp vi máy tính đ có th hin th thêm nhiu thông tin
khác làm cho vic hin th thêm phong phú hn.



 án tt nghip k s đin- đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075


LI CM N



 hoàn thành đc đ án này trc tiên em xin chân thành cám n giáo viên
hng dn ThS. Tng Thanh Nhân, thy đã truyn đt nhng kin thc cn thit, gii
đáp nhng thc mc, tn tình hng dn giúp đ em hoàn thành đc đ án này.
Bên cnh đó em cng xin cám n các bn, các anh trong các din đàn đin t cng
đã h tr giúp đ em rt nhiu v lý thuyt đ giúp em hiu rõ h
n v lp trình quang
báo.
Do thi gian và kin thc v vi x lý cha tht s tt nên trong quá trình làm đ
án còn mc nhiu thiu sót nên em cng mong các thy cô xem xét b qua và có
nhng ý kin đ giúp em hoàn thin hn. Hy vng vi đ án này s là bc đà đu
tiên đ em có th thành công hn khi ri khi gh nhà trng.





 án tt nghip k s đin- đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075



MC LC

LI M U
LI CM N
MC LC
CHNG 1: GII THIU TNG QUAN V B VI IU KHIN 1
I. B VI IU KHIN 8051 1
II.GII THIU V VI X LÝ 8051 1
III.T CHC B NH 6
IV.CÁC THANH GHI CHC NNG C BIT
(SFRs – SPECIAL FUNCTION REGISTERS) 9
V. B NH CHNG TRÌNH NGOÀI 14
VI.B NH D LIU NGOÀI 15
VII.HOT NG RESET 17
VIII.TIMER 18
IX. PORT NI TIP 25
X.NGT (Interrupt) 29
XI.CÁC PHNG PHÁP NH A CH 31
XII.TP LNH 34
CHNG 2: CHUYN I TNG T- S ADC 38
I.KHÁI NIM CHUNG 38
II.NGUYÊN TC THC HIN CHUYN I 38

III.CÁC PHNG PHÁP CHUYN I ADC 39
IV.IC CHUYN I TÍN HIU TNG T SANG TÍN HIU S
ADC 0804 40
CHNG 3: O NHIT  46
I. H THNG O LNG 46
II.CÁC PHNG PHÁP O NHIT  48
III.CM BIN LM35 57
CHNG 4: NG H S 59
I.GIAO THC I2C 59
II.IC THI GIAN THC DS1307 63
III.BÀN PHÍM 68
CHNG 5: QUANG BÁO 69
I.LED MATRIX 69
II.IC GHI DCH 74HC595 71
CHNG 6: THIT K PHN CNG 76
I.S  KHI 76
II.S LC V CÁC KHI 77
III.S  CHI TIT TNG KHI 77
KT LUN 89
TÀI LIU THAM KHO 90
PH LC
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 1


CHNG I: GII THIU TNG QUAN V B VI IU KHIN



I.B VI IU KHIN 8051

8051 là vi điu khin đu tiên ca h vi điu khin MCS51 đc Intel sn xut vào nm
1980. H vi điu khin 8051 là h 8 bit có kh nng đnh đa ch 64K b nh chng trình và
64K b nh d liu.
So sánh các vi điu khin trong h 8051

II.GII THIU V VI X LÝ 8051:

8051 là IC vi điu khin (Microcontroller) do hãng Atmel sn xut. IC này có đc đim
nh sau:
• 4 KB ROM ni.
• 128 byte RAM ni.
• 4 Port nhp/xut 8 bit (I/O port).
• 2 b đm/đnh thi 16 bit (timer).
• Mch giao tip truyn d liu ni tip (serial port).
• 64 KB b nh bên ngoài dung đ lu chng trình điu khin.
• 64 KB b nh bên ngoài dung đ lu d liu.
• 210 bit có th truy xut tng bit.
• Có các lnh x lý bit.
• B nhân/chia 4µs.




 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075

Trang 2

1.S đ chân ca 8051:
S đ chân 8051

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 3

2.Cu trúc bên trong ca 8051
S đ khi 8051:

Cu trúc bên trong ca vi điu khin





 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 4


3.Chc nng các chân vi điu khin:

a.Port 0: T chân 32 đn chân 39 (P0.0 - P0.7). Port 0 có 2 chc nng: trong các thit k c

nh không dùng b nh m rng nó có chc nng nh các đng I/O, đi vi thit k ln có
b nh m rng nó đc dn kênh gia bus đa ch và bus d liu.
b.Port 1: T chân 1 đn chân 8 (P1.0 - P1.7). Port 1 ch có chc nng dùng làm các đng
điu khin xut nhp I/O
c.Port 2: T chân 21 đn chân 28 (P2.0 - P2.7). Nu không dùng b nh m rng bên ngoài
thì port 2 dùng làm các đng điu khin I/O. Nu dùng b nh m rng bên ngoài thì port 2
có chc nng là byte cao ca bus đa ch (A8 - A15).
d.Port 3: T chân 10 đn chân 17 (P3.0 - P3.7). Port 3 là port có 2 chc nng. Các chân ca
port này va có chc nng là các đng I/O va có chc nng riêng khác tùy tng chân.

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 5




Bng sau mô t các chc nng riêng l ca tng chân:
Bit Tên a ch bit Chc nng chuyn đi
P3.0 RXD B0H D liu nhn cho port ni tip
P3.1 TXD B1H D liu phát cho port ni tip
P3.2
/INT0
B2H Ngt ngoài 0
P3.3
/INT0
B3H Ngt ngoài 1
P3.4 T0 B4H Ngõ vào timer/counter 0

P3.5 T1 B5H Ngõ vào timer/counter 1
P3.6
/WR
B6H Xung ghi b nh d liu ngoài
P3.7
/RD
B7H Xung đc b nh d liu ngoài

e.PSEN (Program store enable):
/PSEN là tín hiu ngõ ra  chân 29. Nó là tín hiu điu khin cho phép đc b nh
chng trình m rng và thng đc ni đn chân /OE (Output Enable) ca EPROM đ
cho phép đc các byte mã lnh.
/PSEN  mc thp trong thi gian 89C51 ly lnh. Các mã nh phân ca chng trình
đc đc t EPROM qua bus d liu và đc cht vào thanh ghi lnh bên trong 89C51 đ
gii mã lnh. Khi 89C51 thi hành chng trình trong EPROM ni /PSEN  mc logic 1.
f.ALE (Address Latch Enable):
ALE là tín hiu ra trên chân 30. Nó là tín hiu ra cho phép cht đa ch đ phân kênh cho
bus d liu (D0 ÷ D7) và byte thp ca bus đa ch (A0 ÷ A7) trên port 0: trong na đu ca
chu k b nh, xung ALE cho phép cht đa ch vào 1 thanh ghi bên ngoài, trong na sau
ca chu k b nh, các đng port 0 nh là các đng nhp xut d liu.
Các xung tín hiu ALE có tc đ bng 1/6 ln tn s ca mch dao đng trên chip và có
th đc dùng làm ngun xung nhp cho các thành phn khác ca h thng.
g. EA (External Access):
Tín hiu vào /EA  chân 31 nó thng đc mc lên mc 1(5V) hoc mc 0(GND).
Nu  mc 1 thì vi điu khin thi hành chng trình t b nh ni(ROM) trong khong đa
ch thp(4K).
Nu  mc 0 thì vi điu khin thi hành chng trình t b nh chng trình ngoài.
h.RST (Reset):
RST là ngõ vào trên chân 9, ngõ vào Reset. Khi cp đin cho h thng hoc nhn nút
reset thì mch s reset vi điu khin. Khi reset thì tín hiu reset phi  mc cao trong ít nht

là 2 chu kì máy.
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 6

i. XTAL1 và XTAL2:
XTAL1 và XTAL2 là ngõ vào và ngõ ra ca mch to dao đng trên chip  chân 18 và
19. Chúng thng đc ni vi mt thch anh ngoài và các t nh hình đ to xung clock.
Tn s thch anh thông thng là 12MHz
Chu k máy (T
M
) = 1/ tn s máy (f
M
) = 1/ (f
OSC
/12) = 12/f
OSC
Nu tn s thch anh là 12MHz thì chu k máy bng 1µs.
S đ mch to dao đng tên chip

j.Vcc và Vss:
Là các chân ngun trên chân 40 và 20. Vcc = +5V, Vss ni đt.


III.T CHC B NH:
8051 có b nh theo cu trúc Harvard : có nhng vùng cho b nh riêng bit cho chng
trình (ROM) và d liu (RAM). Nh đã nói  trên, c chng trình và d liu có th  bên
trong 8051, dù vy chúng có th đc m rng bng các thành phn ngoài lên đn ti đa 64

KB b nh chng trình và 64 KB b nh d liu(tng ng vi 16 bit đa ch ).
B nh bên trong bao gm ROM (8051) và RAM trên chip, RAM trên chip bao gm
nhiu phn : phn lu tr đa dng, phn lu tr đa ch hóa tng bit, các bank thanh ghi và các
thanh ghi chc nng đc bit.
- Có 256 byte RAM ni (đa ch 00H ÷ FFH)
- 128 byte RAM ni đa ch 00H ÷ 7FH: là các bank thanh ghi vùng RAM đnh v bit và
vùng RAM đa dng.
- 128 byte RAM ni đa ch 80H ÷ FFH : là các thanh ghi chc nng đc bit.
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 7

Cu trúc b nh d liu


Không gian b nh ca 8051

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 8


T chc b nh 8051







 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 9

1.RAM đa dng:
a ch t 30 ÷ 7FH gm 80 bytes
Mi đa ch trong vùng RAM đa dng đu có th đc truy xut t do dùng cách đnh
đa ch trc tip hoc gián tip.
2.RAM đa ch hóa tng bit:
a ch t 20H ÷ 2FH
8051 cha 210 bit đc đa ch hóa, trong đó 128 bit đc đnh đa ch t 00H ÷ 7FH
trong các đa ch byte 20H đn 2FH, và phn còn li là trong các thanh ghi chc nng riêng
bit.
Ý tng truy xut tng bit riêng r bng phn mm là mt đc tính tin li ca vi điu
khin nói chung. Các bit có th đc đt, xóa, AND,OR …vi mt lnh đn. a s các vi x
lý đòi hi mt chui lnh đc-sa-ghi đ đt đc hiu qu tng t. Hn na, các port I/O
cng đc đa ch tng bit làm đn gin phn mm xut nhp tng bit.
3.Các bank thanh ghi:
a ch t 00H ÷ 1FH
Có 4 bank thanh ghi 0, 1, 2, 3
Mi bank có 8 thanh ghi t R0 ÷ R7
Ti mi thi đim ch có mt bank thanh ghi tích cc (thông qua vic cài đt các bit chn
bank trong thanh ghi PSW). Theo mc đnh (sau khi Reset h thng) các thanh ghi này  các
đa ch 00H-07H (Bank 0).
Các lnh dùng các thanh ghi R0 đn R7 thì s ngn hn và nhanh hn các lnh tng

ng nhng dùng đa ch trc tip. Các giá tr d liu đc dùng thng xuyên nên dùng mt
trong các thanh ghi này.
Ý tng dùng “các bank thanh ghi” cho phép “chuyn hng” chng trình nhanh và
hiu qu (tng phn riêng r ca phn mm s có mt b thanh ghi riêng không ph thuc
vào các phn khác).

IV.CÁC THANH GHI CHC NNG C BIT (SFRs – SPECIAL FUNCTION
REGISTERS):
1.Thanh ghi tích ly A (Accummlator)
- Còn kí hiu là ACC (tng ng vi đa ch E0H ), đc đnh đa ch tng bit
- Thng là toán hng đích trong các lnh s hc và logic, kt qu ca lnh cha trong
thanh ghi A.

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 10

2.T trng thái chng trình PSW (Program Status Word)
T trng thái chng trình (PSW: Program Status Word)  đa ch D0H cha các bit
trng thái nh bng tóm tt sau:

CY AC F0 RS1 RS0 OV - P

Bit Ký hiu a ch Ý ngha
PSW.7
PSW.6
PSW.5
PSW.4

PSW.3




PSW.2
PSW.1
PSW.0
CY
AC
F0
RS1
RS0




OV

P
D7H
D6H
D5H
D4H
D3H




D2H

D1H
D0H
C nh
C nh ph
C 0
Bit 1 chn bank thanh ghi
Bit chn bank thanh ghi.
00=bank 0; đa ch 00H-07H
01=bank 1: đa ch 08H-0FH
10=bank 2:đa ch 10H-17H
11=bank 3:đa ch 18H-1FH
C tràn
D tr
C Parity chn.

Tóm tt thanh ghi PSW


- C nh (CY) có công dng kép. Thông thng nó đc dùng cho các lnh toán hc: nó
s đc set nu có mt s nh sinh ra bi phép cng hoc có mt s mn phép tr .
C nh cng có th xem nh mt thanh ghi 1 bit cho các lnh lun lý thi hành trên
bit.
- C nh ph: Khi cng các s BCD, c nh ph (AC) đc set nu kt qu ca 4 bit
thp trong khong 0AH đn 0FH. Nu các giá tr cng đc là s BCD, thì sau lnh
cng cn có DA A( hiu chnh thp phân thanh ghi tích ly) đ mang kt qu ln hn
9 vào đúng biu din BCD.
- C 0: C 0 (F0) là mt bit c đa dng dành cho các ng dng ca ngi dùng.
- Các bit chn bank thanh ghi: Các bit chn bank thanh ghi (RS0 và RS1) xác đnh bank
thanh ghi đc tích cc. Chúng đc xóa sau khi reset h thng và đc thay đi
bng phn mm nu cn.

RS1 RS0 Bank
0 0 0: đa ch 00H ÷ 07H
0 1 1: đa ch 08H ÷ 0FH
1 0 2: đa ch 10H ÷ 17H
1 1 3: đa ch 18H ÷ 1FH
Chn bank thanh ghi

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 11

Ví d, ba lnh sau cho phép bank thanh ghi 3 và di chuyn ni dung ca thanh ghi R7
(đa ch byte 1FH) đn thanh ghi tích ly:
SETB RS1
SETB RS0
MOV A,R7
Khi chng trình đc hp dch các đa ch bit đúng đc thay th cho các ký hiu
“RS1” và “RS0”. Vy lnh SETB RS1 s ging nh lnh SETB 0D4H.

- C Tràn: C tràn (OV) đc đt lên 1 sau mt lnh cng hoc tr nu có mt phép
toán b tràn. Khi các s có du đc cng hoc tr vi nhau, phn mm có th kim tra
bit này đ xác đnh xem kt qu ca nó có nm trong tm xác đnh không. Khi các s
không du đc cng, bit OV có th đc b qua. Các kt qu ln hn +127 hoc nh
hn –128 s đt bit OV lên 1.
- C kim tra chn P: bit P đc đt lên 1 hay xóa v 0 mt cách t đng  mi chu kì
máy đ to thành kim tra chn vi thanh ghi tích ly. S bit 1 có trong thanh ghi A và
bit P luôn luôn chn. Ví d thanh ghi A cha 10101101B thì P s là 1 đ s bit 1 là
chn. Bit P thng đc s dng chung vi các chng trình cng ni tip đ cho vào

thêm bit P trc khi truyn đ kim tra sau khi nhn.

3.Thanh ghi B:
Thanh ghi B  đa ch F0H đc dùng cùng vi thanh ghi tích ly A cho các phép toán
nhân và chia. Lnh MUL AB s nhân các giá tr không du 8 bit trong A và B ri tr v kt
qa 16 bit trong A (byte thp) và B (byte cao). Lnh DIV AB s chia A cho B ri tr v kt
qu nguyên trong A và phn d trong B. Thanh ghi B cng có th đc xem nh thanh ghi
đm đa dng. Nó đc đa ch hóa tng bit bng các đa ch bit F0H đn F7H.
4. Con tr ngn xp (SP – Stack Pointer):
Con tr ngn xp (SP) là mt thanh ghi 8 bit  đa ch 81H. Nó cha đa ch ca byte d
liu hin hành trên đnh ca ngn xp. Các lnh trên ngn xp bao gm các thao tác ct d
liu vào ngn xp và ly d liu ra khi ngn xp. Lnh ct d liu vào ngn xp s làm tng
SP trc khi ghi d liu, và lnh ly d liu ra khi ngn xp s đc d liu và làm gim SP.
 khi đng li SP vi ngn xp bt đu ti 60H, các lnh sau đây đc dùng:

MOV SP,#5FH

Trên 8051 ngn xp b gii hn 32 byte vì đa ch cao nht ca RAM trên chip là 7FH.
S d cùng giá tr 5FH vì SP s tng lên 60H trc khi ct byte d lu đu tiên.
Ngi thit k có th chn không phi khi đng li con tr ngn xp mà đ nó ly giá
tr mc đnh khi reset h thng. Giá tr mc đnh đó là 07H và kt qu là ngn đu tiên đ ct
d liu có đa ch 08H. Nu phn mm ng dng không khi đng li SP, bank thanh ghi 1
(có th c 2 và 3) s không dùng đc vì vùng RAM này đã đc dùng làm ngn xp.
Ngn xp đc truy xut trc tip bng các lnh PUSH và POP đ lu gi tm thi và
ly li d liu hoc đc truy xut ngm bng các lnh gi chng trình con (ACALL,
LACALL) và các lnh tr v (RET, RETI) đ ct và ly li b đm chng trình.


 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân



SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 12

5. Con tr d liu:
Con tr d liu (DPTR) đc dùng đ truy xut b nh ngoài là mt thanh ghi 16 bit 
đa ch 82H (DPL: byte thp) và 83H (DPH: byte cao)
6. Các thanh ghi port xut nhp:
Các port ca 8051 bao gm Port 0  đa ch 80H, Port 1  đa ch 90H, Port 2  đa ch
A0H và Port 3  đa ch B0H. Tt c các Port đu đc đa ch hóa tng bit. iu đó cung
cp mt kh nng giao tip thun li.
7. Các thanh ghi mch đnh thì (timer):
8051 cha 2 b đnh thi đm 16 bit đc dùng trong vic đnh thi hoc đm s kin.
Timer 0  đa ch 8AH (TL0:byte thp) và 8CH (TH0:byte cao).Timer 1  đa ch 8BH
( TL1: byte thp) và 8DH ( TH1: byte cao). Vic vn hành timer đc set bi thanh ghi
Timer Mode (TMOD)  đa ch 89H và thanh ghi điu khin timer (TCON)  đa ch 88H.
Ch có TCON đc đa ch hóa tng bit.
8. Các thanh ghi port ni tip:
8051 cha mt port ni tip trên chip dành cho vic trao đi thông tin vi các thit b ni
tip nh máy tính, modem hoc cho vic giao tip vi các IC khác có giao tip ni tip (có
b chuyn đi A/D, các thanh ghi dch ). Mt thanh ghi gi là b đm d liu ni tip
(SBUF)  đa ch 99H s gi c hai gi liu truyn và nhn. Khi truyn d liu thì ghi lên
SBUF, khi nhn d liu thì đc SBUF. Các mode vn hành khác nhau đc lp trình qua
thanh ghi điu khin port ni tip (SCON) (đc đa ch hóa tng bit)  đa ch 98H.

9. Các thanh ghi ngt:
8051 có cu trúc 5 ngun ngt, 2 mc u tiên. Các ngt b cm sau khi reset h thng và
s đc cho phép bng vic ghi thanh ghi cho phép ngt (IE)  đa ch 8AH. C hai thanh
ghi đc đa ch hóa tng bit.
10.Thanh ghi điu khin ngun PCON (Power Control):


SMOD - - - GF1 GF0 PD IDL


Bit Ký hiu Ý ngha



6
5
4
3
2
1

0

SMOD





GF1
GF0
PD

IDL

Bit gp đôi tc đ baud, nu đc set thì tc đ

baud s tng gp đôi trong các mode 1, 2 và 3 ca
port ni tip
Không đnh ngha
Không đnh ngha
Không đnh ngha
Bit c đa dng 1
Bit c đa dng 0
Gim công sut, đc set đ kích hot mode gim
công sut, ch thoát khi reset
Mode ch, set đ kích hot mode ch, ch thoát
khi có ngt hoc reset h thng.

Tóm tt thanh ghi PCON
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 13


• Ch đ ngun gim (PD = 1): cn đin áp cung cp c 2V
̇ Mch dao đng trên chip ngng hot đng
̇ Mi chc nng ngng hot đng
̇ Ni dung các RAM trên chip đc duy trì
̇ Các chân port đc duy trì  mc logic ca chúng
̇ ALE và /PSEN đc gi  mc thp

• Ch đ ngh (IDL = 1)
̇ Tín hiu clock ni khóa không cho đn CPU nhng không khóa đi vi các chc
nng ngt, đnh thi và port ni tip.

̇ Ni dung ca tt c các thanh ghi đc duy trì.
̇ Các chân port đc duy trì  mc logic ca chúng.
̇ ALE và /PSEN đc gi  mc cao.


 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 14

V. B NH CHNG TRÌNH NGOÀI:
8051 có kh nng m rng b nh đn 64K b nh chng trình và 64K b nh d liu
bên ngoài. Do đó có th dùng thêm ROM và RAM nu cn.
Khi dùng b nh ngoài, port 0 không còn là mt port I/O thun túy na. Nó đc hp
kênh gia bus đa ch (A0-A7) và bus d liu (D0-D7) vi tín hiu ALE đ cht byte thp
ca đa ch khi bt đu mi chu k b nh. Port 2 thông thng đc dùng cho byte cao ca
bus đa ch.
Trong na đu ca mi chu k b nh, byte thp ca đa ch đc cp trong port 0 và
đc cht bng xung ALE. Mt IC cht 74HC373 (hoc tng đng) s gi byte đa ch
thp trong phn còn li ca chu k b nh. Trong na sau ca chu k b nh port 0 đc
dùng nh bus d liu và đc đc hoc ghi tùy theo lnh.
Ví d: Kt ni phn cng 8051 vi b nh ngoài EPROM 64K nh sau:


- Tín hiu /EA đc tích cc (/EA = 0)
- Tín hiu /PSEN ni vi /OE đ cho phép đc b nh chng trình ngoài
- Trong 1 chu k máy đin hình, ALE có 2 xung và do đó có th đc 2 bytes ca lnh t
b nh chng trình (nu lnh ch có 1 byte thì byte th 2 đc loi b)





 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 15

Gin đ thi gian ca chu k tìm-np  b nh chng trình ngoài nh sau:


VI.B NH D LIU NGOÀI:
Cho phép đc/ghi bi các tín hiu /RD và /WR
Lnh dùng đ truy xut b nh d liu ngoài là MOVX, s dng DPTR hay R0/R1 đ
cha đa ch d liu.
RAM ngoài có th giao tip vi 8051 theo cùng cách nh EPROM ngoi tr đng /RD
ni vi đng cho phép xut /OE và đng /WR ni vi đng ghi /WR (hay /WE) ca
RAM.
Trong trng hp ch có mt lng nh b nh d liu ngoài (không có b nh chng
trình ngoài) có th dùng đa ch 8 bit đ truy xut trang b nh 256 byte. Nu có nhiu hn 1
trang 256 byte, 1 vài bit tr port 2 (hay 1 port khác) có th dùng đ chn trang.


















 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 16

Ví d: giao tip gia 8051 và RAM 64K ngoài đc kt ni nh sau:

Gin đ thi gian ca chu k đc và ghi b nh d liu ngoài nh sau

Gin đ thi gian chu k dc b nh d liu ngoài

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 17


Gin đ thi gian chu k dc b nh d liu ngoài



VII.HOT NG RESET:
8051 đc reset bng cách gi chân RST  mc cao ít nht trong 2 chu k máy và tr nó v mc
thp. RST có th đc kích khi cp đin dùng mt mch R-C.
Mch reset h thng

 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 18

Trng thái ca tt c các thanh ghi ca 8051/8031 sau khi reset h thng đc tóm tt
trong bng sau:
Thanh ghi Ni dung
B đm chng trình PC
Thanh ghi tích ly ACC
Thanh ghi B
PSW
SP
DPTR
Port 0-3
IP
IE
Các thanh ghi đnh thi
SCON
SBUF
PCON(HMOS)
PCON(CMOS)
0000H

00H
00H
00H
07H
0000H
FFH
XXX00000B
0XX00000B
00H
00H
00H
0XXXXXXB
0XXX0000B
Các giá tr thanh ghi sau khi reset h thng

Quan trng nht trong các thanh ghi trên là thanh ghi đm chng trình, nó đc đt li
0000H. Khi RST tr li mc thp, vic thi hành chng trình luôn bt đu  đa ch đu tiên
trong b nh trong chng trình: đa ch 0000H. Ni dung ca RAM trên chip không b thay
đi bi lnh reset.

VIII.TIMER:
1.Gii thiu:
Timer là mt chui các flip-flop chia đôi tn s ni tip vi nhau, chúng nhn tín hiu
vào làm ngun xung nhp. Vì mi tng k tip chia đôi cho nên timer có n tng s có xung ra
có tn s là tn s xung nhp chia cho 2
n
. Ngõ ra ca tn s cui làm ngun xung nhp cho
flip-flop báo tràn ca timer (flip-flop c). Giá tr nh phân trong các flip-flop ca timer có
th xem nh s đm s xung nhp (hoc các s kin) t khi khi đng timer. Ví d timer 16
bit s đm lên t 0000H đn FFFFH. C báo tràn s lên 1 khi s đm tràn t FFFFH đn

0000H.
Hot đng ca timer đn gin đc minh ha nh hình bên di vi timer 3 bit. Mi
tng là mt flip-flop loi D kích cnh xung làm vic theo dng chia đôi tn s. C timer là
mch cht loi D đc đt lên 1 bi tng cui ca timer.
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 19


Timer 3 bit: a) S đ b) Gin đ đnh thì

8051 có 2 timer 16 bit, mi timer có bn cách làm vic. Ngi ta s dng các timer đ:
a) đnh khong thi gian
b) đm s kin hoc
c) to tc đ baud cho port ni tip trong 8051
Mi timer 16 bit có 16 tng hay tng cui cùng chia tn s xung nhp cho
2
16
= 65536. Ngun xung nhp cho các timer là xung vuông có tn s bng 1/12 tn s dao
đng ca thch anh gn  mch dao đng hay tn s đa vào chân XTAL
Trong các ng dng đnh khong thi gian, ngi ta lp trình timer  mt khong đu
đn và đt c tràn timer. C đc dùng đ đng b hóa chng trình đ thc hin mt tác
đng nh kim tra trng thái ca các ca ngõ vào hoc gi các s kin ra các ngõ ra. Các
ng dng khác có th s dng vic to xung nhp đu đn ca timer đ đo thi gian trôi qua
gia hai s kin (ví d : đo đ rng xung).
Ta có th truy cp các timer qua các thanh ghi SFR nh bng sau:






SFR MC ÍCH A CH a ch hóa tng bit
TCON
TMOD
TL0
TL1
TH0
TH1
iu khin timer
Ch đ timer
Byte thp ca timer 0
Byte thp ca timer 1
Byte cao ca timer 0
Byte cao ca timer 1
88H
89H
8AH
8BH
8CH
8DH

Không
Không
Không
Không
Không
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân



SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 20

2.Thanh ghi ch đ timer (TMOD)
Thanh ghi TMOD cha hai nhóm 4 bit dùng đ đt ch đ làm vic cho timer 0 và timer1.
Tóm tt thanh ghi TMOD

Các ch đ hot đng ca timer đc cho nh trong bng sau:
Các ch đ hot đng ca timer

Chú ý là TMOD không có đa ch bit. Thng thì ngi ta np giá tr cho nó mt ln
bng phn mm  đu chng trình đ khi to tr đt ch đ timer. Sau đó timer có th b
dng, cho chy,… bng cách truy cp các SFR khác.
 án tt nghip k s đin – đin t GVHD : ThS. Tng Thanh Nhân


SVTH : Nguyn Hi Phng MSSV : 20662075
Trang 21

3.Thanh ghi điu khin timer (TCON)
Thanh ghi TCON (timer control register) cha các bit điu khin và trng thái cho
timer 0 và timer 1. Bn bit cao đc dùng đ bt timer chy và tt timer (TR0,TR1), hoc đ
báo hiu tràn (TF0,TF1). Bn bit thp trong TCON không nh hng đn các timer. Chúng
đc dùng đ phát hin và khi đng ngt ngoài.

Chi tit các bit trong thanh ghi TCON đc cho trong bng sau.
Tóm tt thanh ghi TCON

4.Các ch đ timer

a.Ch đ timer 13 bit (ch đ 0)
Vi các thit k ngi ta ít dùng ch đ hot đng này. Byte cao ca timer (THx) ni
tip vi 5 bit thp ca timer (TLx) đ to thành timer 13 bit. Ba bit cao ca THx không đc
s dng.


Ch đ 0

×