1
LỜI NĨI ĐẦU
Ngày này, việc ứng dụng máy tính vào các kỹ thuật đo lường và điều khiển
khơng còn mới vì khi các thiết bị, hệ thống đo lường và điều khiển được ghép
nối với máy tính sẽ có thời gian thu thập và xử lý dữ liệu ngắn trong khi mức độ
chính xác vẫn được đảm bảo, nhưng điều đáng quan tâm hơn cả là khả năng tự
động hố trong việc thu thập và xử lý dữ liệu. Chính vì điều này làm cho máy
tính được ứng dụng trong hầu hết vào các lĩnh vực trong cuộc sống hàng ngày
đặc biệt là trong lĩnh vực cơng nghiệp.
Một bước tiến quan trọng trong kỹ thuật vi xử lý là sự ra đời của các bộ vi
xử lý kỹ thuật số. Đây là một vi mạch điện tử có mật độ tích hợp cao bao gồm
rất nhiều các mạch số có khả năng nhận, xử lý và xuất dữ liệu. Đặc biệt là q
trình xử lý dữ liệu được thực hiện theo một chương trình là một tập hợp các lệnh
từ bên ngồi mà người sử dụng có thể thay đổi dễ dàng tùy thuộc vào từng ứng
dụng. Do đó một bộ vi xử lý có thể thực hiện được rất nhiều các u cầu điều
khiển khác nhau tuỳ thuộc vào nhu cầu sử dụng.
Sự ra đời của kỹ thuật vi xử lý là sự kết hợp giữa kỹ thuật phần cứng và
phần mềm đã làm cho hoạt động của các mạch điện tử trở nên mềm dẻo hơn với
những phần mềm rất linh hoạt mà người sử dụng có thể sửa chữa, thay đổi hoặc
bổ sung làm cho ứng dụng ngày càng trở nên hồn thiện mà khơng cần phải thiết
kế lại tồn bộ ứng dụng.
Trong đồ án này, em sử dụng vi mạch điều khiển AT90S8535 của hãng
Atmel để thiết kế một mạch đo nhiệt độ đơn giản. Đây là một bộ vi xử lý 8 bit
năng lượng thấp (theo kiểu chíp CMOS) trên cơ sở cấu trúc RICS của hãng
Atmel, tốc độ xử lý dữ liệu của IC AT90S8535 rất cao (xấp xỉ 8 MISP tại tần số
8MHz) cho phép hệ thống có thể được thiết kế tối ưu làm tăng tốc độ xử lý. Do
đó, nó cung cấp khả năng linh hoạt rất cao trong các ứng dụng nhúng. Vì vậy,
việc tìm hiểu cấu trúc và đặc tính của vi mạch điều khiển AT90S8535 có thể
giúp chúng ta sử dụng vi mạch điều khiển này cho các ứng dụng cần thiết.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
2
Em xin chõn thnh cm n thy cụ ó tn tỡnh hng dn em hon thnh
ỏn ny. Tuy nhiờn, do trỡnh cũn nhiu hn ch nờn ỏn khụng th trỏnh
khi nhng thiu sút, vỡ vy em rt mong c s ch bo ca cỏc thy cụ cng
nh ca nhng ngi i trc trong lnh vc ny ỏn ca em hon thin
hn qua ú em cú th xõy dng c nhng ng dng trong thc t.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
3
CHNG I
NHIM V V PHNG HNG THC HIN
1.1. Nhim v ca ỏn.
T mc ớch tng quỏt ca ti l thit k v xõy dng mt h thng o
nhit n gin, cú th phõn tỏch ra thnh cỏc nhim v chớnh cn thc hin
nh sau:
Thit k v xõy dng h thng ghộp ni vi iu khin (àC)
AT90S8535 vi module LCD (4x20 character), keypad (16 keys), cm bin
nhit LM335. Ngoi ra h thng cũn phi cú kh nng giao tip vi mỏy
tớnh (PC) qua cng RS 232.
Hỡnh 1.1 : S tng th ca h thng cn thit k
Thit k v xõy dng phn mm iu khin àC thu thp d liu t
cm bin nhit nhit LM335, t keypad hoc t PC. X lý d liu nhn
c hin th trờn LCD hoc truyn sang PC.
LCD
KeyPad
L335
à
àà
àC +
I/O
port
PC
RS 232
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
4
Xõy dng phn mm trờn PC cú th giao tip c vi àC qua
cng RS 232
1.2. Phõn tớch nhim v.
cú th thit k v xõy dng c h thng nh trờn cn phi thc hin
cỏc bc sau :
Nghiờn cu v tỡm hiu b vi x lý AT90S8535.
Tỡm hiu s hot ng ca module LCD v cm bin nhit LM 335.
Tỡm hiu s hot ng v phng phỏp mó hoỏ keypad cú th ghộp
ni vi àC.
Tỡm hiu phng phỏp truyn thụng s dng chun RS 232.
Thit k s mch ni ghộp gia àC vi LCD, keypad, IC LM335
v gia àC vi mỏy tớnh thụng qua cng RS 232.
Lp trỡnh phn mm np cho àC thc hin cỏc kt ni trờn.
Vit phn mm trờn PC giao tip vi àC qua cng RS 232.
Lp giỏp mch ó thit k, chy kim th v ỏnh giỏ kt qu.
Vit bỏo cỏo tt nghip.
1.3. Phng hng thc hin.
1.3.1. La chn thit b.
a) La chn vi iu khin :
Trong thc t cú rt nhiu cỏc h vi x lý khỏc nhau cú th s dng c
trong ng dng ny nh h vi iu khin 8051 ca Intel, 68hC11 ca Motorola
hay h vi iu khin 8515 ca ATMEL... Tuy nhiờn, trong ỏn s dng b vi
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
5
x lý AT90S8535 ca ATMEL, do õy l mt sn phm mi ca hóng ATMEL
nờn vic tỡm hiu nú s em li rt nhiu li ớch trong vic thit k cỏc ng dng
o lng v iu khin. V mt cu to nú cng tng t nh b vi x lý
AT90S8515 ó cú t khỏ lõu vi 4 cng I/O lp trỡnh c. Nhng v mt cụng
dng thỡ b vi x lý AT90S8535 c tớch hp nhiu chc nng hn so vi b
vi x lý AT90S8515, c bit trờn àC AT90S8535 c tớch hp mt b ADC
cho phộp mi chõn ca port A c s dng l u vo cho b ADC, lm cho
vic s dng àC AT90S8535 trong cỏc ng dng linh hot hn rt nhiu so vi
àC AT90S8515 ang c s dng rng rói ti Vit Nam.
b) Thit b hin th d liu :
i vi cỏc loi d liu c hin th di dng s thỡ gii phỏp ti u l
s dng cỏc LED 7 thanh do loi thit b hin th ny cú giỏ thnh tng i r.
Tuy nhiờn, do ng dng khụng ch hin th ch s (giỏ tr nhit ) m cũn phi
hin th c cỏc ký t trong bng ch cỏi, do ú la chn thit b hin th LCD vỡ
loi thit b hin th ny cú kh nng hin th c ch cỏi v ch s mt cỏch rừ
nột. Mc dự so vi cỏc loi ốn LED thỡ LCD cú giỏ thnh cao hn, nhng bự li
thit b hin th LCD cú nhiu c tớnh u vit hn hn so vi cỏc loi ốn LED.
c bit, thit b LCD cung cp kh nng hin th d liu vụ cựng linh hot do
ta cú th iu khin xut d liu mt cỏch trc tip thụng qua tp lnh iu
khin ca vi mch iu khin v b mó ký t sn cú trong CGRAM ca LCD.
Mt iu cn quan tõm khỏc l thit b LCD tiờu tn rt ớt nng lng.
Trờn th trng hin nay cú khỏ nhiu module LCD ca cỏc hóng khỏc
nhau nh Samsung, Hitachi, Motorola... vi nhiu loi kớch thc. Trong ỏn
s dng module LCD cú kớch thc 4x20 characters vi 16 chõn ghộp ni.
Khụng nht thit phi chn hóng cung cp vỡ cỏc module LCD u c xõy
dng theo cựng mt tiờu chun, do ú cỏch thc iu khin v ghộp ni cỏc
module LCD thụng dng hin nay cng tng t nhau.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
6
c) Thiết bị vào dữ liệu và điều khiển (Keypad) :
Để người sử dụng có thể giao tiếp được với hệ thống, cần phải ghép nối µC
với một module keypad. Do ứng dụng có thể làm việc với cả chữ cái và chữ số
nên ta sử dụng keypad loại 16 keys, trong đó mỗi một phím được thiết kế như
một cơng tắc để có thể nhập được dữ liệu có dạng như sau :
10 chữ số trong hệ thập phân từ 0..9.
26 chữ cái la tinh từ A..Z.
Các phím điều khiển bao gồm : Send, Bspace, , , /, Clear.
Do số ký tự có thể được sử dụng cùng với các phím chức năng lớn hơn rất
nhiều so với tổng số phím sẵn có trên module keypad. Vì vậy, bắt buộc phải sử
dụng phương pháp Multikey, tức là sử dụng phần mềm để mỗi một phím trên
module keypad có thể mã hố được khơng ít hơn hai ký tự khác nhau. Bằng cách
này, với keypad có 16 phím ta có thể mã hố được tồn bộ bảng chữ cái và chữ
số đồng thời vẫn có thể thực hiện được các chức năng điều khiển như trình bầy ở
trên.
d) Giao tiếp giữa µC và PC :
Mặc dù hệ thống được thiết kế dựa trên µC AT90S8535 đã có thể làm việc
độc lập trong qua trình thu thập, xử lý và hiển thị dữ liệu tới người sử dụng mà
khơng cần có sự trợ giúp của PC. Tuy nhiên, trong hầu hết các ứng dụng đều cần
phải lưu trữ lại dữ liệu mà nếu thực hiện việc này dựa trên µC AT90S8535 đòi
hỏi rất nhiều kỹ thuật và chi phí. Trong khi đó, thao tác lưu trữ dữ liệu trên PC
lại rất đơn giản, vì vậy giải pháp tối ưu nhất là sử dụng PC để làm nhiệm vụ
phức tạp này. Vấn đề còn lại chỉ là thao tác truyền dữ liệu cần lưu trữ từ µC sang
PC, việc này được thực hiện khá đơn giản vì bản thân µC AT90S8535 đã được
tích hợp một bộ UART để sử dụng trong hoạt động truyền tin với các thiết bị ở
xa. Như vậy, dựa vào mạch UART của µC ta có thể thực hiện truyền nhận dữ
liệu với PC theo chuẩn RS 232. Một vấn đề cần quan tâm khi ghép nối µC với
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
7
PC theo chun RS 232 l s tng quan v mt in ỏp tớn hiu dng TTL ca
àC v in ỏp tớn hiu dng RS 232 ca PC. thc hin vic chuyn i tớn
hiu dng TTL sang dng tớn hiu RS 232
ta s dng IC Max232, IC ny cú nhim v to ra tớn hiu 10
V
t mc in ỏp
TTL to s tng thớch v mc in ỏp vi chun RS 232.
1.3.2. Phng hng thit k.
T s tng th ca h thng nh trờn hỡnh 1.1 v t vic la chn thit
b nh trỡnh by trờn, h thng cn thit k cú th c th hin nh trong s
hỡnh 1.2, trong ú :
Khi LCD display : S dng module LCD sn cú trờn th trng c
ghộp ni vi àC hin th cỏc thụng tin cn thit cho ngi s dng.
Khi Keypad : c ni ghộp vi àC ngi s dng cú th nhp
d liu hoc iu khin s hot ng ca h thng. Module ny c thit
k di dng cỏc cụng tc v s dng trc tip cỏc c tớnh ca cỏc cng
I/O lp trỡnh c ca àC thc hin m khụng cn ngun h tr bờn
ngoi.
Khi LM 335 : L mt IC cm bin nhit lm nhim v bin i nhit
mụi trng sang dng in ỏp lm u vo cho b ADC ca àC lm
vic.
Khi Max 232 : S dng IC Max 232 ghộp ni trc tip vi àC lm
nhim v trao i thụng tin gia àC v PC theo chun RS 232.
Khi ngun : Lm nhim v bin ngun xoay chiu 220
V
sang ngun
mt chiu 5
V
n nh cp ngun cho cỏc khi khỏc hot ng.
Hỡnh 1.2 : S khi thit k phn cng
LCD
display
Keypad
LM335
à
àà
àC +
I/O
port
Ngun
Max 232
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
8
CHNG 2
LA CHN LINH KIN THIT K
V MT S Lí THUYT V CHUYN I A/D
2.1. La chn linh kin thit k.
2.1.1. Gii thiu vi mch iu khin AT90S8535.
AT90S8535 l mt vi mch iu khin nng lng thp 8 bit (cụng ngh
chớp CMOS) trờn c s cu trỳc RICS ca hóng ATMEL, nú thuc h vi iu
khin AT90S/LS8535. Bng cỏch thc hin mi lnh trong mt n chu k,
AT90S8535 cú th t ti 1 MIPS cho mi MHz cho phộp h thng cú th c thit
k mt cỏch ti u nht s tiờu th nng lng lm tng tc x lý. V mt cu to
àC ny cng tng t nh àC AT90S8515 vi 4 cng I/O lp trỡnh c, tuy
nhiờn v mt chc nng thỡ àC AT90S8535 c tớch hp thờm nhiu tớnh nng
mi m àC AT90S8515 khụng cú. Cỏc c trng chớnh ca àC AT90S8535
c trỡnh by di õy :
8KB b nh chng trỡnh
512 byte EEPROM
512 byte SRAM
32 line (4 cng) I/O lp trỡnh c
32 thanh ghi a nng 8 bit
8 kờnh u vo ADC riờng bit vi 10 bit kt qu
2 b Timer/Counter 8 bit vi b m c lp v ch so sỏnh
1 b Timer/Counter 16 bit vi b m c lp v cỏc ch PWM
1 b UART lp trỡnh trao i thụng tin ni tip
1 b Watchdog Time lp trỡnh c vi b to giao ng trong
1 b so sỏnh analog
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
9
1 cng phi ghộp ni tip thit b ngoi vi SPI
3 ch lm vic l : Idle, Power-Save v Power-down
Ngun cung cp t 4.0 - 6.0
V
, tn s lm vic 0 - 8MHz.
Vi mch iu khin AT90S8535 c ch to theo cụng ngh chớp nh c
nh vi mt cao. B nh Flash ISP trờn chớp cho phộp b nh chng trỡnh
cú th c lp trỡnh li thụng qua mt cng SPI phi ghộp ni tip vi thit b
ngoi vi. Ngoi ra, àC AT90SS8535 cũn h tr cho vic lp trỡnh thụng qua cỏc
cụng c phỏp trin h thng nh C, assemblers...
Vi iu khin AT90S8535 cú 4 cu hỡnh chõn khỏc nhau l : PDIP (Cú 40
chõn), PLCC, TQFP, MLF (Cú 44 chõn). S chõn ca mi loi nh sau.
Hỡnh 2.1 : Cu hỡnh chõn ca àC AT90S8535
PDIP
PLCC
TQFP MLF
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
10
Chc nng cỏc chõn ca àC AT90S8535 nh sau :
VCC : Chõn cp ngun 5
V
GND : Chõn ni t
RESET : L u vo reset. Tớn hiu reset bờn ngoi s to ra bi mc
thp ca tr khỏng trờn chõn Reset. Xung reset di quỏ 50ns s to ra tớn
hiu reset. Xung ngn hn s khụng m bo phỏt sinh tớn hiu reset.
XTAL1 : L mt u vo cú tỏc dng o chiu b khuch i to dao
ng v l u vo ca mch iu khin ng h bờn trong.
XTAL2 : L u ra ca tớn hiu o t b khuch i to dao ng
AVCC : L chõn cung cp in ỏp cho cng A v b chuyn i ADC,
nu ADC khụng c s dng thỡ chõn ny phi c ni vi ngun 5
V
(chõn VCC), nu ADC c s dng thỡ chõn ny phi c ni ti ngun
5
V
qua b lc thụng thp.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
11
AREF : L u vo chun ca tớn hiu tng t cho b chuyn i
ADC. cho ADC hot ng c, ngun s dng cho chõn ny phi cú
phm v t 2
V
n AVCC.
AGND : Chõn ni t ca tớn hiu analog, nu bo mch cú mt mc
ni t riờng ca tớn hiu analog, thỡ chõn ny phi c ni ti mc ni
t ny. Nu khụng cú, chõn ny c ni ti chõn GND.
Port A (PA7..PA0) : L mt cng vo ra hai chiu 8 bit. Cỏc chõn ca
cng cú th cung cp cỏc tr khỏng trong cho phộp chn tng bit. m ra
ca cng A cú kh nng kộo dũng lờn ti 20mA v cú th iu khin trc
tip s hin th LED. Khi cỏc chõn PA0 n PA7 c s dng nh cỏc
cng vo v mc thp, chỳng s l u vo hin thi nu cỏc in tr
trong c kớch hot. Cng A cng cú th c s dng nh nhng u
vo analog a tớn hiu ti b b chuyn i ADC. Cỏc chõn ca cng
A trng thỏi khụng xỏc nh khi reset, ngay c khi ng h khụng hot
ng.
Port B (PB7..BP0) : L mt cng vo ra hai chiu 8 bit vi cỏc tr
khỏng trong. m ra ca cng B cú kh nng kộo dũng lờn ti 20mA. Khi
l u vo, cỏc chõn ca cng B trong trng thỏi tr khỏng thp s l u
vo hin thi nu cỏc in tr trong c kớch hot. Cng B l cng cung
cp cỏc chc nng khỏc nhau vi nhng c tớnh c bit ca àC
AT90S8535. Cỏc chõn ca cng B trng thỏi khụng xỏc nh khi reset,
ngay c khi ng khụng hot ng.
Port C (PC0..PC7) : L mt cng vo ra hai chiu 8 bit vi cỏc tr
khỏng trong. m ra ca cng C cú kh nng kộo dũng lờn ti 20mA. Khi
l u vo, cỏc chõn ca cng C trong trng thỏi tr khỏng thp s l u
vo hin thi nu cỏc in tr c kớch hot. Hai chõn ca cng C cú th
c la chn s dng ging nh b to dao ng cho b
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
12
Timer/Counter2. Cỏc chõn ca cng C trng thỏi khụng xỏc nh khi
reset, ngay c khi ng khụng hot ng.
Port D (PD0..PD7) : L mt cng vo ra hai chiu 8 bit vi cỏc tr
khỏng trong. m ra ca cng C cú kh nng kộo dũng lờn ti 20mA. Khi
l u vo, cỏc chõn ca cng D trong trng thỏi tr khỏng thp s l u
vo hin thi nu cỏc in tr c kớch hot. Cng D cng cung cp
nhng chc nng cú c tớnh c bit ca àC AT90S8535. Cỏc chõn ca
cng D trng thỏi khụng xỏc nh khi reset, ngay c khi ng khụng
hot ng.
Hỡnh 2.2 : S khi vi mch iu khin AT90S8535
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
13
2.1.1.1. Cu trỳc ca vi mch AT90S8535.
Vi mch iu khin AT90S8535 cú nhng phng thc truy cp nhanh ti
tõp thanh ghi a nng bao gm 32 thanh ghi 8 bit vi thi gian truy cp trong
mt n chu k ng h. iu ny cú ngha trong mt n chu k, mt thao tỏc
ca b ALU c thc hin s ly hai toỏn hng t hai thanh ghi trong tp thanh
ghi, sau khi thao tỏc c thc hin v kt qua tr s c lu tr li tp thanh
ghi trong mt chu k ng h.
Sỏu trong s 32 thanh ghi a nng ny cú th c s dng nh 3 thanh ghi
a ch giỏn tip 16 bit tr n khụng gian a ch d liu, lm cho phộp tớnh a
ch t c hiu qu cao. Mt trong 3 con tr a ch ny cng c s dng
ging nh con tr a ch ti vựng nh d liu c nh. Cỏc thanh ghi a ch
ny l cỏc thanh ghi 16 bit X, Y, Z.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
14
Hình 2.3 : Sơ đồ khối kiến trúc của µC AT90S8535
Bộ ALU cung cấp các chức năng tính tốn số học và logic giữa các thanh
ghi hoặc giữa một hằng số và một thanh ghi. Những thao tác của một thanh ghi
đơn cũng được thực hiện trong bộ ALU. Sự hoạt động của ALU được phân chia
làm 3 loại chính là số học, logic và các chức năng bit.
Ngồi các chức năng của thanh ghi, các chế độ đánh địa chỉ bộ nhớ thơng
thường cũng có thể được sử dụng trên các tập các thanh ghi. Điều này được thực
hiện qua việc tập thanh ghi được gán 32 địa chỉ thấp nhất của khơng gian địa chỉ
dữ liệu ($00..$1F), Cho phép chúng có thể được truy nhập như là là các địa chỉ nhớ
bình thường.
Khơng gian vùng nhớ I/O bao gồm 64 địa chỉ ($20..$5F) dành cho các chức
năng điều khiển thiết bị ngoại vi của µC như : Các thanh ghi điều khiển, bộ
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
15
Timer/Couter, b chuyn i ADC v cỏc chc nng I/O khỏc. Vựng nh I/O cú
th c truy nhp trc tip hoc giỏn tip thụng qua tp cỏc thanh ghi.
àC AT90S8535 s dng kin trỳc Harvard - vi b nh v bus c lp cho
chng trỡnh v d liu. B nh chng trỡnh c thc hin vi mt pipeline
hai trng thỏi. Trong khi mt lnh ang c thc hin, lnh tip theo c np
trc t b nh chng trỡnh. Cỏch thc ny cho phộp cỏc lnh liờn tip c
thc hin trong tng n chu k ng h. B nh chng trỡnh l b nh Flash
cho phộp np d liu trong h thng.
Vi nhng lnh nhy v lnh gi, ton b khụng gian a ch 4K c truy
nhp trc tip. Hu ht cỏc lnh ca AVR u cú di 16 bit. Mi a ch b
nh chng trỡnh bao gm mt lnh 16 bit hoc 32 bit.
Mi mt module ngt cú nhng thanh ghi iu khin trong khụng gian I/O
vi mt bit cho phộp ngt chung c t trong thanh ghi trng thỏi. Mi ngt
khỏc nhau cú mt vector ngt c lp trong bng vector ngt ti v trớ bt u
ca b nh chng trỡnh. Mi ngt khỏc nhau u cú mc u tiờn tuõn theo
v trớ vector ngt ca chỳng. a ch ca vector ngt cng thp, mc u tiờn
cng cao. Khi xy ra ngt, mt chng trỡnh con ph v ngt c gi, a ch
tr v PC c y vo ngn xp. Vựng nh ngn xp c cp phỏt trong vựng
nh d liu ca SRAM v do ú, dung lng ca ngn xp b gii hn bi tng
dung lng ca SRAM v cỏch s dng thụng thng ca SRAM. Tt c cỏc
chng trỡnh ca ngi s dng phi c khi u bng con tr ngn xp (SP)
trong th tc reset (trc khi cỏc chng trỡnh con hoc cỏc ngt c thc thi).
Con tr stack s dng 10 bit truy nhp ghi/c trong khụng gian I/O. 512
byte d liu SRAM cú th c truy cp d dng bi 5 ch a ch khỏc nhau
c cung cp bi àC AT90S8535.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
16
Hỡnh 2.4 : Bn b nh ca àC AT90S8535
2.1.1.2. Tp thanh ghi a nng ca àC AT90S8535.
Tt c cỏc thanh ghi trong tp thanh ghi ca àC AT90S8535 khi thc mt
hin lnh trong tp lnh u cú th c truy cp trc tip trong mt n chu k
ng h. Ngoi tr 5 lnh trc tip SBCI, SUBI, CPI, ANDI, ORI gia mt
hng s v mt thanh ghi v lnh LDI s dng np tc thỡ hng d liu,
nhng lnh ny phi s dng cỏc thanh ghi ca na th hai trong tp thanh ghi
(t R16..R31). Cỏc lnh cũn li u cú th s dng bt k thanh ghi no trong
tp thanh ghi.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
17
Hỡnh 2.5 : a ch 32 thanh ghi a nng ca àC
Qua hỡnh 2.5 cú th thy, mi thanh ghi u c gỏn mt a ch trong
khụng gian a ch d liu, chỳng c t trong 32 v trớ u tiờn ca khụng
gian d liu s dng. Mc dự khụng c thc hin mt cỏch vt lý nh trong
SRAM, vic t chc b nh ny cung cp s linh hot ln trong vic truy nhp
ti cỏc thanh ghi, nh cỏc thanh ghi X, Y, Z cú th c thit lp tr ti bt
k thanh ghi no trong tp thanh ghi.
Cỏc thanh ghi t R26..R31 c thờm vo mt s chc nng nhm m rng
kh nng s dng ca tp thanh ghi. Nhng thanh ghi ny l nhng con tr a
ch c s dng trong ch a ch giỏn tip ca khụng gian d liu. Ba thanh
ghi a ch giỏn tip l X, Y, Z c mụ t nh trong hỡnh 2.6 :
Hỡnh 2.6 : Mụ t cỏc thanh ghi a ch giỏn tip X, Y, Z
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
18
Trong các chế độ địa chỉ khác nhau, các thanh ghi này có chức năng điều
chỉnh linh hoạt đối với từng trường hợp, tự động tăng, giảm hoặc khơng đổi.
2.1.1.3. Bộ số học và Logic - ALU.
Bộ ALU của µC AT90S8535 được nối trực tiếp với 32 thanh ghi đa năng.
Trong một đơn chu kỳ đồng hồ, các thao tác của ALU giữa các thanh ghi trong
tập thanh ghi được thực hiện và giữa một thanh ghi với một hằng số hoặc trên
một đơn thanh ghi. Các hoạt động của ALU được chia làm 3 loại chính là : số
học, logic và các phép tốn trên bit.
2.1.1.4. Đặc điểm các bộ nhớ trong của µC AT90S8535.
a) Bộ nhớ chương trình (Flash program memory) : Trong µC AT90S8535
chứa đựng 8KB bộ nhớ Flash lập trình được dùng để lưu trữ chương trình. Nó
được tổ chức như một bộ nhớ 4Kx16 bit để phù hợp với sự làm việc của các
lệnh có độ dài 16 hoặc 32 bit. Bộ nhớ Flash này có thể chịu được ít nhất 1000
chu kỳ ghi/xố. Vì bộ đếm chương trình (PC) của µC AT90S8535 có độ dài 12
bit, do đó nó có thể mã hố 4096 địa chỉ trong bộ nhớ chương trình.
b) Bộ nhớ SRAM : 608 vị trí địa chỉ thấp nhất trong vùng nhớ dữ liệu
được dùng để địa chỉ hố cho tập thanh ghi, bộ nhớ I/O và SRAM. 96 vị trí địa
chỉ đầu tiên là của tập thanh ghi và bộ nhớ I/O, 512 vị trí địa chỉ tiếp theo là của
bộ nhớ SRAM.
Một địa chỉ bất kỳ trong trong khơng gian địa chỉ dữ liệu
SRAM đều có thể được xác định thơng qua 5 chế độ địa chỉ khác nhau là : trực
tiếp, tương đối, gián tiếp, gián tiếp với sự giảm trước và gián tiếp với sự tăng
sau. Trong tập thanh ghi, các thanh ghi từ R26 tới R31 được sử dụng như các
thanh ghi con trỏ địa chỉ gián tiếp.
Ở chế độ địa chỉ trực tiếp có cho phép truy cập tới tồn bộ khơng gian dữ
liệu. Chế độ địa chỉ tương đối cho phép xác định 63 vị trí địa chỉ từ địa chỉ cơ sở
cho bởi các thanh ghi Y hoặc Z. Khi sử dụng các chế độ thanh ghi gián tiếp với
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
19
sự tự động giảm trước hoặc tăng sau, nội dung của các thanh ghi địa chỉ X, Y và
Z đều tự động tăng hoặc giảm sau khi thực hiện. 32 thanh ghi đa năng, 64 thanh
ghi I/O và 512 byte của bộ nhớ trong SRAM trong AT90S8535, tất cả đều có thể
được truy nhập thơng qua các chế độ địa chỉ này.
Hình 2.7 : Tổ chức bộ nhớ SRAM của µC
c) Bộ nhớ EEPROM : µC AT90S8535 có 512 byte bộ nhớ EEPROM,
được tổ chức như một khơng gian dữ liệu riêng biệt cho phép mỗi byte có thể
được ghi/đọc. Bộ nhớ EEPROM có thể thực hiện ít nhất 100.000 chu kỳ ghi/xố.
Sự truy nhập giữa EEPROM và µC được thực hiện thơng qua các thanh ghi địa
chỉ, thanh ghi dữ liệu và thanh ghi điều khiển của EEPROM, các thanh ghi này
có thể được truy cập trong khơng gian I/O. Thời gian truy cập ghi EEPROM
trong phạm vi từ 2.5 đến 4 ms, tuỳ thuộc vào điện áp trên chân V
CC
. EEPROM
có một chức năng tự động tính thời gian cho phép phần mềm của người sử dụng
kiểm tra khi byte tiếp theo có thể được ghi/đọc. Một ngắt đặc biệt kiểm tra sự
sẵn sàng của EEPROM có thể được thiết lập để kích hoạt khi EEPROM sẵn
sàng tiếp nhận dữ liệu mới. Để ngăn cản việc ghi EEPROM ngồi ý muốn, một
quy trình ghi cụ thể phải được tn theo. Khi đọc EEPROM, µC bị tạm dừng
trong 4 chu kỳ đồng hồ trước khi lệnh tiếp theo được thực hiện. Khi ghi
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
20
EEPROM, àC tm dng trong 2 chu k ng h trc khi thc hin lnh tip
theo.
Thanh ghi a ch EEPROM : EEARH v EEARL
Cỏc thanh ghi a ch ca EEPROM (EEARH v EEARL) ch nh a ch
ca mt byte trong khụng gian 512 byte EEPROM. Cỏc byte d liu ca
EEPROM c a ch húa t 0 n 511.
Thanh ghi d liu EEPROM : EEDR
Trong thao tỏc ghi ca EEPROM, thanh ghi EEDR cha d liu c ghi
ti EEPROM theo a ch c xỏc nh bi thanh ghi EEAR. Trong thao tỏc
c EEPROM, thanh ghi EEDR cha d liu c ra t EEPROM ti a ch cho
trong thanh ghi EEAR.
Thanh ghi iu khin EEPROM : EECR
Bit 3 - EERIE : Bit cho phộp sn sng ngt ca EEPROM
Khi bit I trong thanh ghi SREG v bit EERIE c thit lp, ngt trng thỏi sn
sng ca EPROM c cho phộp. Khi b xoỏ ngt b vụ hiu hoỏ. Ngt trng thỏi
sn sng EEPROM to ra mt ngt cng khi bit EEWE b xoỏ.
Bit 2 - EEMWE : Bit cho phộp thao tỏc ghi EEPROM
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
21
Bit EEMWE xỏc nh cú hay khụng s thit lp bit EEWE gõy ra thao tỏc
ghi EEPROM. Khi bit EEMWE c thit lp, thỡ s thit lp ca bit EEWE s ghi
d liu vo EEPROM ti a ch ó la chn. Nu bit EEMWE l 0, thỡ s thit lp
ca bit EEWE s khụng cú kt qu. Khi bit EEMWE ó c thit lp bi phn
mm, phn cng xoỏ bit ny v 0 sau 4 chu k ng h.
Bit 1 - EEWE : Bit cho phộp ghi EEPROM
Tớn hiu cho phộp ghi EEPROM (EEWE) l mt xung chn ghi ti
EEPROM. Khi a ch v d liu ó c thit lp phự hp, bit EEWE phi
c thit lp ghi giỏ tr vo trong EEPROM. Bit EEEMWE phi c thit
lp khi giỏ tr logic 1 c ghi vo bit EEWE, nu khụng thỡ khụng xy ra thao
tỏc ghi EEPROM. Quy trỡnh di õy phi c tuõn theo khi ghi EEPROM
(th t ca bc 2 v 3 khụng cn quan tõm).
1. i cho n khi bit EEWE tr v 0
2. Ghi a ch mi ca EEPROM ti thanh ghi a ch EEPROM (tu chn)
3. Ghi d liu mi vo thanh ghi EEDR (tu chn)
4. Ghi giỏ tr logic 1 vo bit EEMWE trong thanh ghi EECR ( cú th ghi
giỏ tr logic 1 vo bit EEMWE, thỡ bit EEWE phi c ghi l 0 trong cựng mt
chu k ng h)
5. Trong vũng 4 chu k ng h sau khi thit lp bit EEMWE, ghi giỏ tr
logic 1 ti bit EEWE.
Chỳ ý : Mt ngt gia bc 4 v 5 s lm li chu k ghi, vỡ bit EEMWE s
ht thi gian. Nu mt th tc ngt truy xut ti EEPROM trong khi mt ngt
khỏc cng ang truy xut EEPROM, thỡ ni dung ca cỏc thanh ghi EEAR v
EEDR s b thay i, gõy li ngt truy xut EEPROM. trỏnh nhng vn
ny cn xoỏ cỏc c ngt chung trong thi gian thc hin 4 bc cui cựng. Khi
thi gian truy cp ghi kt thỳc (2.5ms v V
CC
= 5V hoc 4ms v V
CC
= 2.7V), bit
EEWE c xoỏ bi phn cng, S dng phn mm cú th thm dũ bớt ny v
i nú tr v khụng trc khi thc hin ghi byte tip theo. Khi bit EEWE ó
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
22
c thit lp, àC tm dng trong 2 chu k ng h trc khi lnh tip theo
c thc hin.
Bit 0 - EERE : Bit cho phộp c EEPROM
Tớn hiu cho phộp c EEPROM l xung chn c n EEPROM. Khi a
ch phự hp c thit lp trong thanh ghi EEAR, bit EERE phi c thit lp.
Khi bit EERE b xoỏ bi phn cng, d liu yờu cu c tỡm thy trong thanh
ghi EEDR. S truy xut c EEPROM cn mt lnh v khụng cn thm dũ bit
EERE. Khi bit EERE ó c thit lp, àC tm dng trong 4 chu k ng h
trc khi lnh tip theo c thc hin.
Ngi s dng cn phi thm dũ bit EEWE trc khi bt u thao tỏc c.
Nu d liu hoc a ch mi c ghi vo cỏc thanh ghi vo/ra ca EEPROM
khi mt thao tỏc ghi ang din ra, thỡ thao tỏc ghi s b ngt v kt qu khụng
c xỏc nh.
2.1.1.5. Cỏc ch a ch ca àC AT90S8535.
Vi mch iu khin AT90S8535 h tr cỏc ch a ch rt mnh v hiu
qu cao cho vic truy nhp ti b nh chng trỡnh (b nh Flash) v b nh d
liu (SRAM, tp thanh ghi v b nh I/O). Di õy l cỏc ch a ch ca
àC AT90S8535 :
a) a ch trc tip mt thanh ghi
Toỏn hng c cha trong thanh ghi d (Rd)
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
23
b) a ch trc tip hai thanh ghi
Cỏc toỏn hng c cha trong thanh ghi r (Rr) v d (Rd).
Kt qu c lu trong thanh ghi d (Rd)
c) a ch I/O trc tip
Toỏn hng a ch cha trong 6 bit LSB ca t lnh,
n l a ch ca thanh ghi ngun hoc ớch
d) a ch d liu trc tip
16 bit a ch d liu c cha trong 16 bit LSB ca hai t lnh.
Rd/Rr ch rừ thanh ghi ngun hoc thanh ghi ớch.
e) a ch d liu tng i
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
24
Toỏn hng a ch l kt qu ca ni dung thanh ghi Y hoc Z
c cng vi a ch cha trong 6 bit LSB ca t lnh (a)
f) a ch d liu giỏn tip
Toỏn hng a ch l ni dung ca thanh ghi X, Y hoc Z
g) a ch d liu giỏn tip gim trc
Ni dung cỏc thanh ghi X, Y, Z gim 1 trc khi thc hin
Toỏn hng a ch l ni dung ó gim ca thanh ghi X, Y, Z
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
25
h) a ch d liu giỏn tip tng sau
Thanh ghi X, Y hoc Z c cng 1 sau khi thc hin.
a ch toỏn hng l ni dung ca thanh ghi X, Y hoc Z trc khi cng
i) a ch c nh khi thc hin lnh LPM
a ch byte c nh c xỏc nh bi ni dung ca thanh ghi Z.
15 bit MSB la chn a ch t (0 4K), bit LSB cho phộp
chn byte thp nu LSB = 0 hoc byte cao nu t LSB = 1.
j) a ch giỏn tip trong b nh chng trỡnh vi lnh IJMP v ICALL
Chng trỡnh c tip tc thc hin ti a ch c cha bi thanh ghi Z
(B m chng trỡnh (PC) c np vi ni dung ca thanh ghi Z)
THệ VIEN ẹIEN Tệ TRệẽC TUYEN