AT89C55WD là một hệ điều khiển 8 bit đơn chíp hiệu suất cao
Transcript of AT89C55WD là một hệ điều khiển 8 bit đơn chíp hiệu suất cao
AT89C55WD là một hệ điều khiển 8 bit đơn chíp hiệu suất cao, công suất
nguồn tiêu thụ thấp, có 20 Kb bộ nhớ ROM và 256 byte RAM. Chíp này được
sản xuất dựa vào công nghệ bộ nhớ không bị mất nội dung có độ tích hợp cao
của Atmel. Chíp AT89C55WD tương thích với tập lệnh và các chân ra của
chuẩn công nghiệp MSC51 và MSC52. Flash trên chíp cho phép bộ nhớ
chương trình được lập trình lại trên hệ thống hoặc bằng bộ lập trình bộ nhớ
không mất nội dung quy ước.
Bằng cách kết hợp một CPU với bộ nhớ Flash, AT89C55WD là một hệ vi tính
mạnh, nó có độ linh động cao đối với các ứng dụng điều khiển.
AT89C55WD có các đặc trưng chuẩn sau:
<!--[if !supportLists]-->- 20 Kb bộ nhớ ROM.<!--[endif]-->
<!--[if !supportLists]-->- 256 byte RAM.<!--[endif]-->
<!--[if !supportLists]-->- 32 cổng xuất nhập.<!--[endif]-->
<!--[if !supportLists]-->- 3 bộ định thời 16 bit.<!--[endif]-->
<!--[if !supportLists]-->- Một cấu trúc ngắt 2 mức ưu tiên và 6 nguyên
nhân ngắt.<!--[endif]-->
<!--[if !supportLists]-->- Một port nối tiếp và song song.<!--[endif]-->
<!--[if !supportLists]-->- Mạch dao động và tạo xung clock.<!--[endif]-->
AT89C55WD có thiết kế logic tĩnh nên cho phép tần số 0Hz hoạt động và nó
còn có 2 chế độ hoạt động để tiết kiệm năng lượng nhờ phần mềm. Chế độ
nguồn giảm, CPU ngừng hoạt động trong khi đó RAM, các bộ định thời, bộ
đếm , port nối tiếp và hệ thống ngắt vẫn hoạt động bình thường.
Ở chế độ nguồn giảm vẫn tồn tại nội dung trong RAM, tuy nhiên mạch dao
động không cung cấp xung để vô hiệu hóa các hoạt động khác của chip cho
đến khi reset.
2. Sơ đồ chân của AT89C55WD.
3.Sơ đồ khối.
4. Mô tả các chân
4.1. Vcc .
Chân cung cấp điện
4.2. Gnd.
Chân nối đất (0V)
4.3. Port 0.
Port 0 là một port xuất nhập 8-bit. Mỗi port có thể có thể kết nối với 8
mạch TTL . Khi ta đưa vào port 0 lên mức 1, các ngõ vào của port 0 sử dụng
với tổng trở cao.
Port 0 còn làm bus địa chỉ và bus dữ liệu khi truy xuất dữ liệu và bộ nhớ
chương trình ngoài. Ở chể độ này, P0 phải có thêm điện trở kéo ngoài.
Ngoài ra, P0 còn nhận các byte mã khi lập trình và xuất các byte mã khi kiểm
tra chương trình.
4.4. Port 1.
Là port xuất nhập 8 bit hai chiều có điện trở kéo bên trong. P1 có thể kết nối
với 4 mạch TTL. Khi là port xuất thì P1 được mắc xuống mức 0 và ngược lại,
nếu là port nhập thì mắc lên mức 1. Ngoài ra, khác với 8051, 89C55WD còn
có chân P1.0 dùng làm ngõ vào của bộ đếm ngoài và chân P1.1 vừa làm Timer
vừa làm Counter vừa điều khiển xung kích.
4.5. Port 2
Port 2 cũng là port xuất nhập hai chiều có điện trở kéo lên bên trong, nó có thể
kết hợp với 4 mạch TTL. Port 2 của AT89C55WD cũng có chức năng tương tự
như của 8051.
4.6. Port 3
Ngoài nhiệm vụ xuất nhập, P3 còn có chức năng điều khiển có sử dụng bộ nhớ
ngoài hay không.
Chức năng từng chân của P3 :
P3.0(RxD) : ngõ vào của port nối tiếp.
P3.1(TxD) : ngõ vào port nối tiếp.
P3.2(INT0\) : ngõ ngắt ngoài 0.
P3.3(INT1\) : ngõ ngắt ngoài 1.
P3.4(T0) : ngõ vào bộ định thời/ bộ đếm 0.
P3.5(T1) : ngõ vào bộ định thời/ bộ đếm 1.
P3.6(WR\) : điều khiển ghi vào bộ nhớ ngoài .
. P3.7(RD\) : điều khiển đọc từ bộ nhớ ngoài.
4.7. Chân Reset.
Thiết lập lại cho chíp, nó thực hiện hết 2 chu kỳ máy. Khi reset, nó sẽ
hoạt động lại từ đầu, từ giá trị ta đã đặt trước cho nó.
4.8. Chân ALE( Andress latch enable) : Chân cho phép chốt địa chỉ
Cho phép chốt byte thấp của địa chỉ trong thời gian truy xuất bộ nhớ
ngoài. Nó cũng là ngõ vào của xung lập trình trong suốt thời gian lập trình cho
Flash.
Khi hoạt động bình thường thì ngõ ra của chân ALE có tần số bằng 1/6
tần số của mạch dao động trên chíp. Vì vậy, tín hiệu ra trên chân ALE có thể
làm xung clock cho các mạch khác.
Nếu không muốn chân này chốt địa chỉ byte thấp thì ta set bit 0 của
thanh ghi chức năng đặc biệt có địa chỉ là 8EH. Khi bit này được set thì ALE
chỉ tích cực trong thời gian thực hiện lệnh MOVX và MOVC.
4.9. Chân PSEN\(Program store enable) : Chân cho phép bộ nhớ
chương trình
PSEN\=0 : CPU tìm và nạp lệnh từ ROM ngoài.
PSEN\=1 : Chỉ sử dụng ROM trong.
4.10. Chân EA\(External access) : Chân truy xuất ngoài.
EA\=0 : Sử dụng chương trình của ROM ngoài.
EA\=1 : Sử dụng chương trình của ROM nội.
Lưu ý: Chân EA luôn được nối mass hoặc nguồn, không được để trống chân
này
4..11. Chân XTAL.
Chân XTAL1 : Ngõ vào mạch dao dộng trong chíp.
Chân XTAL2 : Ngõ ra mạch dao dộng trong chíp.
5. Thanh ghi chức năng đặc biệt(SFR).
Có địa chỉ từ 80H đến FFH
Thanh ghi chức năng đặc biệt của 89C55WD cũng có các thanh ghi : A, B,
PSW, SP, DPTR, port xuất nhập (P0, P1,P2,P3), port nối tiếp (SBUF), định
thời( TH0/TL0 ; TH1/TL1), ngắt (IE), điều khiển nguồn (PCON) như 8051.
Ngoài ra, AT89C55WD còn có các thanh ghi : T2CON(Timer 2 control),
AUXR (Auxiliary Register), AUXR1( Auxiliary Register 1) mà họ 8051 không
có.
<!--[if !supportLists]-->- Thanh ghi T2CON- điều khiển timer/counter
2<!--[endif]-->
*Địa chỉ: 0C8H
TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2\ CP/RL2\
7 6 5 4 3 2 1 0
TF2: Cờ tràn của timer2 và chỉ xóa bằng phần mềm. TF2 không thể set
khi RCLK=1 hoặc TCLK=1.
EXF2 (External flag 2 ): Cờ nhớ ngoài.
RCLK(Receive clock enable): Cho phép nhận xung clock từ port nối
tiếp 1 và 3. Khi timer 1 bị tràn thì RCLK=0 và sẽ cho phép nhận xung clock.
TCLK(Transmit clock enable): Cho phép truyền xung clock khi
TCLK ở mức 0.
EXEN2(Timer 2 external enable):
EXEN2=1: Timer 2 không nhận xung clock từ port nối tiếp.
EXEN2=0: Timer 2 nhận xung clock từ port nối tiếp.
TR2: Điều khiển hoạt động và dừng của timer 2.
TR2=1: Timer 2 hoạt động.
TR2=0: Timer 2 dừng.
C/T2\: Chọn chế độ làm timer hay counter.
C/T2\=1: Timer 2 là connter.
C/T2\=0: Là timer.
<!--[if !supportLists]-->- Thanh ghi AUXR: <!--[endif]-->
*Địa chỉ:8EH. Không định địa chỉ bit.
-
-
-
WDIDLE DISRTO
-
-
DISALE
7 6 5 4 3 2 1 0
DISALE : Cho phép chân ALE
DISALE=1 : Chốt byte thấp của địa chỉ, tốc độ ra ở chân ALE
bằng 1/6 tần số của mạch dao dộng.
DISALE=0 : ALE chỉ tích cực khi thực hiện lệnh MOVC và
MOVX
DISTRO : Cho phép reset timer 2 từ ngoài.
DISTRO=0 : reset các chân lên mức cao khi Watchdog
timer (WDT) bị tràn.
DISTRO=1 : Chỉ reset các chân bên trong chíp.
WDIDLE: Cho phép WDT ở chế độ nghỉ.
WDIDLE=0: WDT tiếp tục đếm ở chế độ nghỉ.
WDIDLE=1: WDT dừng đếm .
<!--[if !supportLists]-->- Thanh ghi AUXR1:<!--[endif]-->
Địa chỉ A2H. Không định địa chỉ bit.
- - - - - - - DPS
7 6 5 4 3 2 1 0
DPS (Data pointer registers select):Chọn thanh ghi data pointer.
DPS=0 : Chọn thanh ghi DP0L,DPOH.
DPS=1 : Chọn thanh ghi DP1L,DP1H.
6.Tổ chức bộ nhớ.
6.1. Bộ nhớ chương trình.
Khi EA\=0, chương trình sẽ lấy từ ROM ngoài.
Khi EA\=1, chương trình sẽ nạp từ 0000H tới 4FFFH trong ROM nội
và 5000H tới FFFFH ở ROM ngoài.
6.2. Bộ nhớ dữ liệu.
89C55WD có 256 byte RAM. Phía trên nó còn có 128 byte của thanh
ghi chức năng đặc biệt.
7. Watchdog timer(WDT).
WDT là một phương pháp phục hồi khi mà CPU bị rối loạn. WDT gồm có 13
bit đếm và một đồng hồ thời gian thực. WDT mặc định là để vô hiệu các reset
bên ngoài. Để hoạt động nó, người lập trình phải ghi các giá trị 01EH và 0E1H
vào ô 0A6H trong thanh ghi đặc biệt. Khi hoạt động, WDT sẽ tăng chu kỳ máy
trong lúc tạo xung. Khi WDT bị tràn, nó sẽ reset laị.
8. Timer 0 và timer 1.
Timer 0 và timer 1 trong IC89C55WD cũng tương tự như của IC
89C51.
9. Timer 2.
Timer 2 là một timer/counter 16 bit. Các kiểu hoạt động của Timer 2
được điều khiển bởi bit C/T2 ở thanh ghi T2CON. Timer2 có 3 chế độ hoạt
động : 16 bit ; 16 bit tự động nạp lại, chế độ tạo tốc độ baud
Các chế độ hoạt động của timer 2 :
RCLK
+TCLK
CP/RL2\
TR2\ Chế độ
0 0 1 16 bit tự động nạp lại
0 1 1 16 bit
1 X 1 Tạo tốc độ baud
X
X 0 Tắt
Chú thích:
1: Mức cao; 0: Mức thấp; X: Tùy chọn.
Timer 2 gồm 2 thanh ghi 8 bit, TL2 và TH2. Khi là timer, thanh ghi TH2 sẽ
tăng lên sau mỗi chu kỳ máy. Tần số đếm khi là timer bằng 1/12 tần số dao
động của mạch.
Khi timer 2 có chức năng là bộ đếm, tần tăng của TH2 sẽ bằng 1/24 tần số dao
dộng của thạch anh.
Thanh ghi điều khiển chế độ hoạt động của timer 2 : T2MOD
Thanh ghi T2MOD có địa chỉ là 9CH và không định địa chỉ bit
- - - - - -
T2O
E
DCE
N
7 6 5 4 3 2 1 0
T2OE (Timer 2 output enable bit): bit cho phép timer 2 hoạt động.
DCEN: Khi set nó thì timer 2 có thể đếm được lên hoặc xuống.
10. Chương trình ngắt.
89C55WD có tổng cộng 6 chế độ ngắt:
<!--[if !supportLists]-->- 2 chế độ ngắt ngoài, ở hai chân INTO0 và
INTO1.<!--[endif]-->
<!--[if !supportLists]-->- 3 chế độ ngắt định thời (cho timer 0,1,2).
<!--[endif]-->
<!--[if !supportLists]-->- 1 chế độ ngắt port nối tiếp.<!--[endif]-->
Chế độ ngắt được điều khiển bởi thanh ghi cho phép ngắt IE(Interrupt Enable
Register)
EA - ET2 ES ET1 EX1 ET0 EX0
EA: Bit cho phép ngắt.
EA=1: cho phép ngắt.
EA=0: không cho phép ngắt.
- : Bit dự trữ cho người lập trình.
ET2: Bit cho phép ngăt timer 2.
ES: Bit cho phép ngắt port nối tiếp.
ET1:Bit cho phép ngắt timer 1.
EX1: Bit cho phép ngắt ngoài 1.
ET0: Bit cho phép ngắt timer 0.
EX0: Bit cho phép ngắt ngoài 0.
Các tín hiệu điều khiển đưa vào INT0\ và INT1\của P.3, các tín hiệu ra IE0 và
IE1 sẽ cho phép ngắt
11. Chế độ nghỉ.
Ở chế độ nghỉ, CPU ngừng trong khi tât cả các bộ phận khác vẫn hoạt
động. Chế độ này được điều khiển bằng phần mềm. Nội dung trên RAM và các
thanh ghi chức năng đặc biệt vẫn còn tồn tại.Muốn kết thúc chế độ nghỉ ta phải
reset lại hệ thống, và khi reset lại thì hệ thống lại hoạt động bình thường.
Ở chế độ nghỉ, phần cứng cấm truy xuất RAM nội nhưng vẫn cho truy
xuất các port để tránh các thao tác không mong muốn tác động lên port. Vì vậy
sau khi thực hiện lệnh yêu cầu hệ thống nghỉ chúng ta không nên thực hiện các
lệnh tác động đến port hoặc bộ nhớ ngoài.
12. Chế độ nguồn giảm.
Ở chế động nguồn giảm, mạch tạo xung ngừng hoạt động. Lệnh yêu
cầu nguồn giảm là lệnh sau cùng được CPU thực thi. RAM và các thanh ghi
chức năng đặc biệt vẫn duy trì. Để kết thúc chế độ nguồn giảm ta phải reset lại
hệ thống.
Khác với chế độ nghỉ, khi reset, hệ thống sẽ xác định lại các thanh ghi
nhưng không làm thay đổi RAM. Vì vây, chúng ta không nên reset tức thời mà
cần giữ nút reset một khoảng thời gian để hệ thống đạt được trạng thái ổn định.
Trạng thái của các chân ở chế độ nghỉ và chế độ nguồn giảm được
miêu tả trong bảng sau:
Chế
độ
Bộ
nhớ
chư
ơng
trìn
h
ALE PSEN\ PORT0 PORT1 PORT2 PORT3
Nghỉ Bên
tron
g
1 1 Dữ liệu Dữ liệu Dữ liệu Dữ liệu
Nghỉ Bên 1 1 Thả Dữ liệu Địa chỉ Dữ liệu
tron
g
nổi
Nguồn
giảm
Bên
tron
g
0 0 Dữ liệu Dữ liệu Dữ liệu Dữ liệu
Nguồn
giảm
Bên
ngo
ài
0 0 Thả
nổi
Dữ liệu Dữ liệu Dữ liệu
13. Các bít khóa bộ nhớ chương trình.
AT89C55WD có 3 bit khóa, nó cho phép chúng ta lập trình(P) hoặc không(U).
Chế độ Các bit khóa Kiểu khóa
LB1 LB2 LB3
1 U U U Cho phép lập trình.
2 P U U Lệnh MOV được thực thi từ ROM
ngoài, không được nạp lệnh từ
ROM nội. Lúc này, việc lập trình
trên Flash bị cấm.
3 P P U Như chế độ 2, nhưng cấm thêm việc
kiểm tra chương trình.
4 P P P Như chế độ 3, cấm thêm việc thực
thi chương trình ngoài
14.Lập trình cho Flash.
AT89C55WD có bộ nhớ Flash luôn sẵn sàng để lập trình. Mạch giao
tiếp lập trình cần điện áp cao (12 volt), các tín hiệu cho phép và tương thích
với Flash hay EPROM.
Chúng ta lập trình cho nó bằng cách sắp xếp code theo thứ tự từng byte
một.
Thuật toán cho lập trình:
Trước khi lập trình, các tín hiệu địa chỉ, dữ liệu và điều khiển được set
theo chế độ lập trình. Chúng được thể hiện dưới bảng sau:
Để lập trình cho AT89C55WD, chúng ta cần thực hiện theo từng bước sau:
<!--[if !supportLists]-->- <!--[endif]-->Chọn vùng nhớ trên đường địa chỉ
<!--[if !supportLists]-->- <!--[endif]-->Chọn byte dữ liệu trên đường dữ
liệu.
<!--[if !supportLists]-->- <!--[endif]-->Chọn kích hoạt phù hợp các tín
hiệu điều khiển.
<!--[if !supportLists]-->- <!--[endif]-->Tăng chân EA/Vpp lên 12V
<!--[if !supportLists]-->- <!--[endif]-->Đưa xung vào chân ALE/PROG
sao cho không bị khóa bit. Xung vào có thời gian lớn hơn 50 us
Nhưng, trước khi lập trình chúng ta cần phải xóa chip. Các bước thực hiện xóa
bit như sau:
- Tăng Vcc lên 6.5 V
- Đưa xung vào chân ALE/PROG có thời gian 200-500 ns
- Chờ 150 ms
- Reset Vcc
- Thực hiện các bước trên một lần nữa.
15. Các giá trị định mức của AT89C55WD
- Nhiệt độ hoạt động tốt nhất…………-55° C đến 125° C.
- Nhiệt độ cho phép có thể……………-65° C đến 150° C.
- Điện áp mỗi chân so với mass…... -1.0V đến +7.0V.
- Điện áp định mức ……………………+6.6V.
- Dòng điện định mức……………………15mA.
16. Các kiểu đóng gói.
Tốc
độ
Nguồn Mã đóng gói Kiểu Vỏ Số
ch
ân
Nhiệt
độ
Có
hai
loại
IC:
24
M
Hz
và
33
M
HZ
4-
5.5V
đối
với
loại
24
MHz
và
4.5-
5.5
với
loại
33MH
z
AT89C55WD-
24AU
44A Plastic,
dẹt,
hình
vuông
44
-40°
C to
85°
C
AT89C55WD-
24JU
44J Plastic,
đế bọc
chì,
hình
vuông
dẹt
44
AT89C55WD-
24PU
40P6 Plastic,
dày
0.6
inch,
hai
hàng
chân.
40