Tải bản đầy đủ (.doc) (293 trang)

LỰA CHỌN LINH KIỆN THIẾT kế và một số lý THUYẾT về CHUYỂN đổi AD

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.63 MB, 293 trang )

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 hoá 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à quá 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 ngoà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 yê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 hoàn thiện mà không cần phải thiết kế lại toà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ộ
1


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.
Em xin chân thành cảm ơn thầy cô đã tận tình hướng dẫn để em
hoàn thành đồ án này. Tuy nhiên, do trình độ còn nhiều hạn chế nên
đồ án không thể tránh khỏi những thiếu sót, vì vậy em rất mong được
sự chỉ bảo của các thầy cô cũng như của những người đi trước trong
lĩnh vực này để đồ án của em hoàn thiện hơn qua đó em có thể xây
dựng được những ứng dụng trong thực tế.

2


CHƯƠNG I
NHIỆM VỤ VÀ PHƯƠNG HƯỚNG THỰC HIỆN
1.1. Nhiệm vụ của đồ án.
Từ mục đích tổng quát của đề tài là thiết kế và xây dựng một hệ
thống đo nhiệt độ đơn giản, có thể phân tách ra thành các nhiệm vụ
chính cần thực hiện như sau:
 Thiết kế và xây dựng hệ thống ghép nối vi điều khiển (µC)
AT90S8535 với module LCD (4x20 character), keypad (16 keys),
cảm biến nhiệt LM335. Ngoài ra hệ thống còn phải có khả năng
giao tiếp với máy tính (PC) qua cổng RS 232.
Hình 1.1 : Sơ đồ tổng thể của hệ thống cần thiết kế
LCD
display
KeyPad
16

PC

µC +
I/O
port
RS 232

L335

3


 Thiết kế và xây dựng phần mềm điều khiển µC để thu thập
dữ liệu từ cảm biến nhiệt nhiệt LM335, từ keypad hoặc từ PC. Xử
lý dữ liệu nhận được để hiển thị trên LCD hoặc truyền sang PC.
 Xây dựng phần mềm trên PC để có thể giao tiếp được với µC
qua cổng RS 232
1.2. Phân tích nhiệm vụ.
Để có thể thiết kế và xây dựng được hệ thống như trên cần phải
thực hiện các bước sau :
 Nghiên cứu và tìm hiểu bộ vi xử lý AT90S8535.
 Tìm hiểu sự hoạt động của module LCD và cảm biến nhiệt
LM 335.
 Tìm hiểu sự hoạt động và phương pháp mã hoá keypad để có
thể ghép nối với µC.
 Tìm hiểu phương pháp truyền thông sử dụng chuẩn RS 232.
 Thiết kế sơ đồ mạch nối ghép giữa µC với LCD, keypad, IC
LM335 và giữa µC với máy tính thông qua cổng RS 232.

4



 Lập trình phần mềm nạp cho µC để thực hiện các kết nối
trên.
 Viết phần mềm trên PC để giao tiếp với µC qua cổng RS 232.
 Lắp giáp mạch đã thiết kế, chạy kiểm thử và đánh giá kết
quả.
 Viết báo cáo tốt nghiệp.
1.3. Phương hướng thực hiện.
1.3.1. Lựa chọn thiết bị.
a) Lựa chọn vi điều khiển :
Trong thực tế có rất nhiều các họ vi xử lý khác nhau có thể sử
dụng được trong ứng dụng này như họ vi điều khiển 8051 của Intel,
68hC11 của Motorola hay họ vi điều khiển 8515 của ATMEL... Tuy
nhiên, trong đồ án sử dụng bộ vi xử lý AT90S8535 của ATMEL, do
đây là một sản phẩm mới của hãng ATMEL nên việc tìm hiểu nó sẽ
đem lại rất nhiều lợi ích trong việc thiết kế các ứng dụng đo lường và
điều khiển. Về mặt cấu tạo nó cũng tương tự như bộ vi xử lý
AT90S8515 đã có từ khá lâu với 4 cổng I/O lập trình được. Nhưng về
mặt công dụng thì bộ vi xử lý AT90S8535 được tích hợp nhiều chức
5


năng hơn so với bộ vi xử lý AT90S8515, đặc biệt trên µC AT90S8535
được tích hợp một bộ ADC cho phép mỗi chân của port A được sử
dụng là đầu vào cho bộ ADC, làm cho việc sử dụng µC AT90S8535
trong các ứng dụng linh hoạt hơn rất nhiều so với µC AT90S8515
đang được sử dụng rộng rãi tại Việt Nam.
b) Thiết bị hiển thị dữ liệu :
Đối với các loại dữ liệu được hiển thị dưới dạng số thì giải pháp
tối ưu là sử dụng các LED 7 thanh do loại thiết bị hiển thị này có giá
thành tương đối rẻ. Tuy nhiên, do ứng dụng không chỉ hiển thị chữ số

(giá trị nhiệt độ) mà còn phải hiển thị cả các ký tự trong bảng chữ cái,
do đó lựa chọn thiết bị hiển thị LCD vì loại thiết bị hiển thị này có khả
năng hiển thị cả chữ cái và chữ số một cách rõ nét. Mặc dù so với các
loại đèn LED thì LCD có giá thành cao hơn, nhưng bù lại thiết bị hiển
thị LCD có nhiều đặc tính ưu việt hơn hẳn so với các loại đèn LED.
Đặc biệt, thiết bị LCD cung cấp khả năng hiển thị dữ liệu vô cùng linh
hoạt do ta có thể điều khiển xuất dữ liệu một cách trực tiếp thông qua
tập lệnh điều khiển của vi mạch điều khiển và bộ mã ký tự sẵn có
trong CGRAM của LCD. Một điều cần quan tâm khác là thiết bị LCD
tiêu tốn rất ít năng lượng.
Trên thị trường hiện nay có khá nhiều module LCD của các hãng
khác nhau như Samsung, Hitachi, Motorola... với nhiều loại kích
thước. Trong đồ án sử dụng module LCD có kích thước 4x20
6


characters với 16 chân ghép nối. Không nhất thiết phải chọn hãng
cung cấp vì các module LCD đều được xây dựng theo cùng một tiêu
chuẩn, do đó cách thức điều khiển và ghép nối các module LCD thông
dụng hiện nay cũng tương tự nhau.
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ã hoá đượ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ã hoá được toà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.

7


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 PC theo chuẩn RS 232 là sự tương
quan về mặt điện áp tín hiệu dạng TTL của µC và điện áp tín hiệu
dạng RS 232 của PC. Để thực hiện việc chuyển đổi tín hiệu dạng TTL
sang dạng tín hiệu RS 232 ta sử dụng IC Max232, IC này có nhiệm vụ

tạo ra tín hiệu ±10V từ mức điện áp TTL để tạo sự tương thích về mức
điện áp với chuẩn RS 232.
1.3.2. Phương hướng thiết kế.

8


Từ sơ đồ tổng thể của hệ thống như trên hình 1.1 và từ việc lựa
chọn thiết bị như trình bầy ở trên, hệ thống cần thiết kế có thể được
thể hiện như trong sơ đồ hình 1.2, trong đó :
 Khối LCD display : Sử dụng module LCD sẵn có trên thị
trường được ghép nối với µC để hiển thị các thông tin cần thiết cho
người sử dụng.
 Khối Keypad : Được nối ghép với µC để người sử dụng có
thể nhập dữ liệu hoặc điều khiển sự hoạt động của hệ thống.
Module này được thiết kế dưới dạng các công tắc và sử dụng trực
tiếp các đặc tính của các cổng I/O lập trình được của µC để thực
hiện mà không cần nguồn hỗ trợ bên ngoài.
 Khối LM 335 : Là một IC cảm biến nhiệt làm nhiệm vụ biến
đổi nhiệt độ môi trường sang dạng điện áp để làm đầu vào cho bộ
ADC của µC làm việc.
 Khối Max 232 : Sử dụng IC Max 232 ghép nối trược tiếp với
µC làm nhiệm vụ trao đổi thông tin giữa µC và PC theo chuẩn RS
232.
 Khối nguồn : Làm nhiệm vụ biến nguồn xoay chiều 220 V
sang nguồn một chiều ±5V ổn định để cấp nguồn cho các khối
khác hoạt động.

9



Hình 1.2 : Sơ đồ khối thiết kế phần cứng
Nguồn
LCD
display
Keypad
LM335

µC +
I/O
port

10

Max 232


CHƯƠNG 2
LỰA CHỌN LINH KIỆN THIẾT KẾ
VÀ MỘT SỐ LÝ THUYẾT VỀ CHUYỂN ĐỔI A/D
2.1. Lựa chọn linh kiện thiết kế.
2.1.1. Giới thiệu vi mạch điều khiển AT90S8535.
AT90S8535 là một vi mạch điều khiển năng lượng thấp 8 bit
(công nghệ chíp CMOS) trên cơ sở cấu trúc RICS của hãng ATMEL,
nó thuộc họ vi điều khiển AT90S/LS8535. Bằng cách thực hiện mỗi
lệnh trong một đơn chu kỳ, AT90S8535 có thể đạt tới 1 MIPS cho mỗi
MHz cho phép hệ thống có thể được thiết kế một cách tối ưu nhất sự tiêu
thụ năng lượng làm tăng tốc độ xử lý. Về mặt cấu tạo µC này cũng tương
tự như µC AT90S8515 với 4 cổng I/O lập trình được, tuy nhiên về mặt
chức năng thì µC AT90S8535 được tích hợp thêm nhiều tính năng

mới mà µC AT90S8515 không có. Các đặc trưng chính của µC
AT90S8535 được trình bầy dưới đây :



8KB bộ nhớ chương trình



512 byte EEPROM



512 byte SRAM



32 line (4 cổng) I/O lập trình được



32 thanh ghi đa năng 8 bit
11




8 kênh đầu vào ADC riêng biệt với 10 bit kết quả




2 bộ Timer/Counter 8 bit với bộ đếm độc lập và chế độ so sánh



1 bộ Timer/Counter 16 bit với bộ đếm độc lập và các chế độ

PWM


1 bộ UART lập trình trao đổi thông tin nối tiếp



1 bộ Watchdog Time lập trình được với bộ tạo giao động trong



1 bộ so sánh analog



1 cổng phối ghép nối tiếp thiết bị ngoại vi SPI



3 chế độ làm việc là : Idle, Power-Save và Power-down




Nguồn cung cấp từ 4.0 - 6.0V, tần số làm việc 0 - 8MHz.

Vi mạch điều khiển AT90S8535 được chế tạo theo công nghệ
PLCC

PDIP

chíp nhớ cố định với mật độ cao. Bộ nhớ Flash ISP trên chíp cho phép
bộ nhớ chương trình có thể được lập trình lại thông qua một cổng SPI
phối ghép nối tiếp với thiết bị ngoại vi. Ngoài ra, µC AT90SS8535
còn hỗ trợ cho việc lập trình thông qua các công cụ pháp triển hệ
thống như C, assemblers...
Vi điều khiển AT90S8535 có 4 cấu hình chân khác nhau là :
PDIP (Có 40 chân), PLCC, TQFP, MLF (Có 44 chân). Sơ đồ chân của
mỗi loại như sau.
TQFP

MLF

Hình 2.1 : Cấu hình chân của µC AT90S8535

12


13


Chức năng các chân của µC AT90S8535 như sau :
 VCC : Chân cấp nguồn 5V
 GND : Chân nối đất

 RESET : Là đầu vào reset. Tín hiệu reset ở bên ngoài sẽ tạo ra
bởi mức thấp của trở kháng trên chân Reset. Xung reset dài quá
50ns sẽ tạo ra tín hiệu reset. Xung ngắn hơn sẽ không đảm bảo
phát sinh tín hiệu reset.
 XTAL1 : Là một đầu vào có tác dụng đảo chiều bộ khuếch đại
tạo dao động và là đầu vào của mạch điều khiển đồng hồ bên
trong.
 XTAL2 : Là đầu ra của tín hiệu đảo từ bộ khuếch đại tạo dao
động
 AVCC : Là chân cung cấp điện áp cho cổng A và bộ chuyển
đổi ADC, nếu ADC không được sử dụng thì chân này phải được
nối với nguồn 5V (chân VCC), nếu ADC được sử dụng thì chân
này phải được nối tới nguồn 5V qua bộ lọc thông thấp.

14


 AREF : Là đầu vào chuẩn của tín hiệu tương tự cho bộ chuyển
đổi ADC. Để cho ADC hoạt động được, nguồn sử dụng cho chân
này phải có phạm vị từ 2V đến AVCC.
 AGND : Chân nối đất của tín hiệu analog, nếu bo mạch có
một mức nối đất riêng của tín hiệu analog, thì chân này phải được
nối tới mức nối đất này. Nếu không có, chân này được nối tới
chân GND.
 Port A (PA7..PA0) : Là một cổng vào ra hai chiều 8 bit. Các
chân của cổng có thể cung cấp các trở kháng trong cho phép chọn
từng bit. Đệm ra của cổng A có khả năng kéo dòng lên tới 20mA
và có thể điều khiển trực tiếp sự hiển thị LED. Khi các chân PA0
đến PA7 được sử dụng như các cổng vào và ở mức thấp, chúng sẽ
là đầu vào hiện thời nếu các điện trở trong được kích hoạt. Cổng

A cũng có thể được sử dụng như những đầu vào analog để đưa tín
hiệu tới bộ bộ chuyển đổi ADC. Các chân của cổng A ở trạng thái
không xác định khi reset, ngay cả khi đồng hồ không hoạt động.
 Port B (PB7..BP0) : Là một cổng vào ra hai chiều 8 bit với các
trở kháng trong. Đệm ra của cổng B có khả năng kéo dòng lên tới
20mA. Khi là đầu vào, các chân của cổng B trong trạng thái trở
kháng thấp sẽ là đầu vào hiện thời nếu các điện trở trong được
kích hoạt. Cổng B là cổng cung cấp các chức năng khác nhau với
những đặc tính đặc biệt của µC AT90S8535. Các chân của cổng
15


B ở trạng thái không xác định khi reset, ngay cả khi đồng không
hoạt động.
 Port C (PC0..PC7) : Là một cổng vào ra hai chiều 8 bit với các
trở kháng trong. Đệm ra của cổng C có khả năng kéo dòng lên tới
20mA. Khi là đầu vào, các chân của cổng C trong trạng thái trở
kháng thấp sẽ là đầu vào hiện thời nếu các điện trở được kích
hoạt. Hai chân của cổng C có thể được lựa chọn để sử dụng giống
như bộ tạo dao động cho bộ Timer/Counter2. Các chân của cổng
C ở trạng thái không xác định khi reset, ngay cả khi đồng không
hoạt động.
 Port D (PD0..PD7) : Là một cổng vào ra hai chiều 8 bit với
các trở kháng trong. Đệm ra của cổng C có khả năng kéo dòng
lên tới 20mA. Khi là đầu vào, các chân của cổng D trong trạng
thái trở kháng thấp sẽ là đầu vào hiện thời nếu các điện trở được
kích hoạt. Cổng D cũng cung cấp những chức năng có đặc tính
đặc biệt của µC AT90S8535. Các chân của cổng D ở trạng thái
không xác định khi reset, ngay cả khi đồng không hoạt động.


16


Hình 2.2 : Sơ đồ khối vi mạch điều khiển AT90S8535

17


2.1.1.1. Cấu trúc của vi mạch AT90S8535.
Vi mạch điều khiển AT90S8535 có những phương thức truy cập
nhanh tới tâp thanh ghi đa năng bao gồm 32 thanh ghi 8 bit với thời
gian truy cập trong một đơn chu kỳ đồng hồ. Điều này có nghĩa trong
một đơn chu kỳ, một thao tác của bộ ALU được thực hiện sẽ lấy hai
toán hạng từ hai thanh ghi trong tập thanh ghi, sau khi thao tác được
thực hiện và kết qua trả sẽ được lưu trở lại tập thanh ghi trong một chu
kỳ đồng hồ.
Sáu trong số 32 thanh ghi đa năng này có thể được sử dụng như 3
thanh ghi địa chỉ gián tiếp 16 bit trỏ đến không gian địa chỉ dữ liệu,
làm cho phép tính địa chỉ đạt được hiệu quả cao. Một trong 3 con trỏ
địa chỉ này cũng được sử dụng giống như con trỏ địa chỉ tới vùng nhớ
dữ liệu cố định. Các thanh ghi địa chỉ này là các thanh ghi 16 bit X,
Y, Z.

18


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 toá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.
Ngoà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

19


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ộ Timer/Couter, bộ chuyển đổi ADC và các chức
năng I/O khác. Vùng nhớ I/O có thể được truy nhập trực tiếp hoặc
gián tiếp thông qua tập các thanh ghi.
µC AT90S8535 sử dụng kiến trúc Harvard - với bộ nhớ và bus
độc lập cho chương trình và dữ liệu. Bộ nhớ chương trình được thực
hiện với một “pipeline” hai trạng thái. Trong khi một lệnh đang được
thực hiện, lệnh tiếp theo được nạp trước từ bộ nhớ chương trình. Cách
thức này cho phép các lệnh liên tiếp được thực hiện trong từng đơn
chu kỳ đồng hồ. Bộ nhớ chương trình là bộ nhớ Flash cho phép nạp dữ
liệu trong hệ thống.
Với những lệnh nhẩy và lệnh gọi, toàn bộ không gian địa chỉ 4K
được truy nhập trực tiếp. Hầu hết các lệnh của AVR đều có độ dài 16
bit. Mỗi địa chỉ bộ nhớ chương trình bao gồm một lệnh 16 bit hoặc 32
bit.
Mỗi một module ngắt có những thanh ghi điều khiển trong không
gian I/O với một bit cho phép ngắt chung được đặt trong thanh ghi

trạng thái. Mỗi ngắt khác nhau có một vector ngắt độc lập trong bảng
20


vector ngắt ở tại vị trí bắt đầu của bộ nhớ chương trình. Mỗi ngắt khác
nhau đều có mức độ ưu tiên tuân theo vị trí vector ngắt của chúng.
Địa chỉ của vector ngắt càng thấp, mức độ ưu tiên càng cao. Khi xẩy
ra ngắt, một chương trình con phụ vụ ngắt được gọi, địa chỉ trở về PC
được đẩy vào ngăn xếp. Vùng nhớ ngăn xếp được cấp phát trong vùng
nhớ dữ liệu của SRAM và do đó, dung lượng của ngăn xếp bị giới hạn
bởi tổng dung lượng của SRAM và cách sử dụng thông thường của
SRAM. Tất cả các chương trình của người sử dụng phải được khởi
đầu bằng con trỏ ngăn xếp (SP) trong thủ tục reset (trước khi các
chương trình con hoặc các ngắt được thực thi). Con trỏ stack sử dụng
10 bit để truy nhập ghi/đọc trong không gian I/O. 512 byte dữ liệu
SRAM có thể được truy cập dễ dàng bởi 5 chế độ địa chỉ khác nhau
được cung cấp bởi µC AT90S8535.

Hình 2.4 : Bản đồ bộ nhớ của µC AT90S8535
2.1.1.2. Tập thanh ghi đa năng của µC AT90S8535.

21


Tất cả các thanh ghi trong tập thanh ghi của µC AT90S8535 khi
thực một hiện lệnh trong tập lệnh đều có thể được truy cập trực tiếp
trong một đơn chu kỳ đồng hồ. Ngoại trừ 5 lệnh trực tiếp SBCI, SUBI,
CPI, ANDI, ORI giữa một hằng số và một thanh ghi và lệnh LDI sử
dụng để nạp tức thì hằng dữ liệu, những lệnh này phải sử dụng các
thanh ghi của nửa thứ hai trong tập thanh ghi (từ R16..R31). Các lệnh

còn lại đều có thể sử dụng bất kỳ thanh ghi nào trong tập thanh ghi.
Hình 2.5 : Địa chỉ 32 thanh ghi đa năng của µC

Qua hình 2.5 có thể thấy, mỗi thanh ghi đều được gán một địa chỉ
trong không gian địa chỉ dữ liệu, chúng được đặt trong 32 vị trí đầu
tiên của không gian dữ liệu sử dụng. Mặc dù không được thực hiện
một cách vật lý như trong SRAM, việc tổ chức bộ nhớ này cung cấp
sự linh hoạt lớn trong việc truy nhập tới các thanh ghi, như các thanh
ghi X, Y, Z có thể được thiết lập để trỏ tới bất kỳ thanh ghi nào trong
tập thanh ghi.
22


Các thanh ghi từ R26..R31 được thêm vào một số chức năng
nhằm mở rộng khả năng sử dụng của tập thanh ghi. Những thanh ghi
này là những con trỏ địa chỉ được sử dụng trong chế độ địa chỉ gián
tiếp của không gian dữ liệu. Ba thanh ghi địa chỉ gián tiếp 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 tiếp X, Y, Z

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 toán
trên bit.


23


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/xoá. Vì bộ đếm
chương trình (PC) của µC AT90S8535 có độ dài 12 bit, do đó nó có
thể mã hoá 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ỉ hoá 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 toà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 sự tự động giảm trước hoặc tăng sau,
24


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/xoá. 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
25


×