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

tìm hiểu cấu trúc và đặc tính của vi mạch điều khiển AT90S8535

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.62 MB, 202 trang )

Website: Email : Tel (: 0918.775.368

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ộ 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,


1


Website: Email : Tel (: 0918.775.368

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
Website: Email : Tel (: 0918.775.368

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ế
 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ụ.



3
LCD
display
KeyPad
16
L335
µC +
I/O
port
PC
RS 232
Website: Email : Tel (: 0918.775.368

Để 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.
 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


4
Website: Email : Tel (: 0918.775.368

dụng thì bộ vi xử lý AT90S8535 được tích hợp nhiều chức 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 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ố


5
Website: Email : Tel (: 0918.775.368

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.
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ó


6
Website: Email : Tel (: 0918.775.368

nhiệm vụ tạo ra tín hiệu ±10
V
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ế.
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 ±5
V
ổn định để cấp nguồn cho các khối khác hoạt động.
Hình 1.2 : Sơ đồ khối thiết kế phần cứng


7
LCD
display
Keypad
LM335
µC +
I/O
port
Nguồn
Max 232
Website: Email : Tel (: 0918.775.368

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
• 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


8
Website: Email : Tel (: 0918.775.368

• 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.0
V
, 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ệ 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.
Hình 2.1 : Cấu hình chân của µC AT90S8535


9
PDIP
PLCC
TQFP MLF
Website: Email : Tel (: 0918.775.368

Chức năng các chân của µC AT90S8535 như sau :

VCC : Chân cấp nguồn 5
V

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 5
V


10
Website: Email : Tel (: 0918.775.368

(chân VCC), nếu ADC được sử dụng thì chân này phải được nối tới nguồn
5
V
qua bộ lọc thông thấp.

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ừ 2
V
đế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 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


11
Website: Email : Tel (: 0918.775.368

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.
Hình 2.2 : Sơ đồ khối vi mạch điều khiển AT90S8535


12
Website: Email : Tel (: 0918.775.368

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.
Hình 2.3 : Sơ đồ khối kiến trúc của µC AT90S8535


13

Website: Email : Tel (: 0918.775.368

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 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 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



14
Website: Email : Tel (: 0918.775.368

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.
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.


15
Website: Email : Tel (: 0918.775.368

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.
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


16
Website: Email : Tel (: 0918.775.368

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.
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


17
Website: Email : Tel (: 0918.775.368

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/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 mới. Để ngăn cản việc ghi EEPROM ngoài
ý muốn, một quy trình ghi cụ thể phải được tuân 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 EEPROM, µC tạm dừng trong 2 chu kỳ đồng hồ trước khi thực hiện lệnh
tiếp theo.


18
Website: Email : Tel (: 0918.775.368

Thanh ghi địa chỉ EEPROM : EEARH và EEARL

Các thanh ghi địa chỉ của EEPROM (EEARH và EEARL) chỉ định địa chỉ
của một byte trong không gian 512 byte EEPROM. Các byte dữ liệu của
EEPROM được địa chỉ hóa từ 0 đến 511.
Thanh ghi dữ liệu EEPROM : EEDR
Trong thao tác ghi của EEPROM, thanh ghi EEDR chứa dữ liệu được ghi
tới EEPROM theo địa chỉ được xác định bởi thanh ghi EEAR. Trong thao tác
đọc EEPROM, thanh ghi EEDR chứa dữ liệu đọc ra từ EEPROM tại địa chỉ cho
trong thanh ghi EEAR.
Thanh ghi điều khiển EEPROM : EECR
• Bit 3 - EERIE : Bit cho phép sẵn sàng ngắt của EEPROM
Khi bit I trong thanh ghi SREG và bit EERIE được thiết lập, ngắt trạng thái sẵn
sàng của EPROM được cho phép. Khi bị xoá ngắt bị vô hiệu hoá. Ngắt trạng thái
sẵn sàng EEPROM tạo ra một ngắt cứng khi bit EEWE bị xoá.
• Bit 2 - EEMWE : Bit cho phép thao tác ghi EEPROM
Bit EEMWE xác định có hay không sự thiết lập bit EEWE để gây ra thao tác
ghi EEPROM. Khi bit EEMWE được thiết lập, thì sự thiết lập của bit EEWE sẽ ghi

dữ liệu vào EEPROM tại địa chỉ đã lựa chọn. Nếu bit EEMWE là 0, thì sự thiết lập


19
Website: Email : Tel (: 0918.775.368

của bit EEWE sẽ không có kết quả. Khi bit EEMWE đã được thiết lập bởi phần
mềm, phần cứng xoá bit này về 0 sau 4 chu kỳ đồng hồ.
• Bit 1 - EEWE : Bit cho phép ghi EEPROM
Tín hiệu cho phép ghi EEPROM (EEWE) là một xung chọn ghi tới
EEPROM. Khi địa chỉ và dữ liệu đã được thiết lập phù hợp, bit EEWE phải
được thiết lập để ghi giá trị vào trong EEPROM. Bit EEEMWE phải được thiết
lập khi giá trị logic 1 được ghi vào bit EEWE, nếu không thì không xẩy ra thao
tác ghi EEPROM. Quy trình dưới đây phải được tuân theo khi ghi EEPROM
(thứ tự của bước 2 và 3 không cần quan tâm).
1. Đợi cho đến khi bit EEWE trở về 0
2. Ghi địa chỉ mới của EEPROM tới thanh ghi địa chỉ EEPROM (tuỳ chọn)
3. Ghi dữ liệu mới vào thanh ghi EEDR (tuỳ chọn)
4. Ghi giá trị logic 1 vào bit EEMWE trong thanh ghi EECR (Để có thể ghi
giá trị logic 1 vào bit EEMWE, thì bit EEWE phải được ghi là 0 trong cùng một
chu kỳ đồng hồ)
5. Trong vòng 4 chu kỳ đồng hồ sau khi thiết lập bit EEMWE, ghi giá trị
logic 1 tới bit EEWE.
Chú ý : Một ngắt giữa bước 4 và 5 sẽ làm lỗi chu kỳ ghi, vì bit EEMWE sẽ
hết thời gian. Nếu một thủ tục ngắt truy xuất tới EEPROM trong khi một ngắt
khác cũng đang truy xuất EEPROM, thì nội dung của các thanh ghi EEAR và
EEDR sẽ bị thay đổi, gây lỗi ngắt truy xuất EEPROM. Để tránh những vấn đề
này cần xoá các cờ ngắt chung trong thời gian thực hiện 4 bước cuối cùng. Khi
thời gian truy cập ghi kết thúc (2.5ms và V
CC

= 5V hoặc 4ms và V
CC
= 2.7V), bit
EEWE được xoá bởi phần cứng, Sử dụng phần mềm có thể thăm dò bít này và
đợi nó trở về không trước khi thực hiện ghi byte tiếp theo. Khi bit EEWE đã
được thiết lập, µC tạm dừng trong 2 chu kỳ đồng hồ trước khi lệnh tiếp theo
được thực hiện.
• Bit 0 - EERE : Bit cho phép đọc EEPROM


20
Website: Email : Tel (: 0918.775.368

Tín hiệu cho phép đọc EEPROM là xung chọn đọc đến EEPROM. Khi địa
chỉ phù hợp được thiết lập trong thanh ghi EEAR, bit EERE phải được thiết lập.
Khi bit EERE bị xoá bởi phần cứng, dữ liệu yêu cầu được tìm thấy trong thanh
ghi EEDR. Sự truy xuất đọc EEPROM cần một lệnh và không cần thăm dò bit
EERE. Khi bit EERE đã được thiết lập, µC tạm dừng trong 4 chu kỳ đồng hồ
trước khi lệnh tiếp theo được thực hiện.
Người sử dụng cần phải thăm dò bit EEWE trước khi bắt đầu thao tác đọc.
Nếu dữ liệu hoặc địa chỉ mới được ghi vào các thanh ghi vào/ra của EEPROM
khi một thao tác ghi đang diễn ra, thì thao tác ghi sẽ bị ngắt và kết quả không
được xác định.
2.1.1.5. Các chế độ địa chỉ của µC AT90S8535.
Vi mạch điều khiển AT90S8535 hỗ trợ các chế độ địa chỉ rất mạnh và hiệu
quả cao cho việc truy nhập tới bộ nhớ chương trình (bộ nhớ Flash) và bộ nhớ dữ
liệu (SRAM, tập thanh ghi và bộ nhớ I/O). Dưới đây là các chế độ địa chỉ của
µC AT90S8535 :
a) Địa chỉ trực tiếp một thanh ghi
Toán hạng được chứa trong thanh ghi d (Rd)

b) Địa chỉ trực tiếp hai thanh ghi


21
Website: Email : Tel (: 0918.775.368

Các toán hạng được chứa trong thanh ghi r (Rr) và d (Rd).
Kết quả được lưu trong thanh ghi d (Rd)
c) Địa chỉ I/O trực tiếp
Toán hạng địa chỉ chứa trong 6 bit LSB của từ lệnh,
n là địa chỉ của thanh ghi nguồn hoặc đích
d) Địa chỉ dữ liệu trực tiếp
16 bit địa chỉ dữ liệu được chứa trong 16 bit LSB của hai từ lệnh.
Rd/Rr chỉ rõ thanh ghi nguồn hoặc thanh ghi đích.
e) Địa chỉ dữ liệu tương đối
Toán hạng địa chỉ là kết quả của nội dung thanh ghi Y hoặc Z
được cộng với địa chỉ chứa trong 6 bit LSB của từ lệnh (a)


22
Website: Email : Tel (: 0918.775.368

f) Địa chỉ dữ liệu gián tiếp
Toán hạng địa chỉ là nội dung của thanh ghi X, Y hoặc Z
g) Địa chỉ dữ liệu gián tiếp giảm trước
Nội dung các thanh ghi X, Y, Z giảm 1 trước khi thực hiện
Toán hạng địa chỉ là nội dung đã giảm của thanh ghi X, Y, Z
h) Địa chỉ dữ liệu gián tiếp tăng sau
Thanh ghi X, Y hoặc Z được cộng 1 sau khi thực hiện.
Địa chỉ toán hạng là nội dung của thanh ghi X, Y hoặc Z trước khi cộng

i) Địa chỉ cố định khi thực hiện lệnh LPM


23
Website: Email : Tel (: 0918.775.368

Địa chỉ byte cố định được xác định bởi nội dung của thanh ghi Z.
15 bit MSB lựa chọn địa chỉ từ (0 – 4K), bit LSB cho phép
chọn byte thấp nếu LSB = 0 hoặc byte cao nếu đặt LSB = 1.
j) Địa chỉ gián tiếp trong bộ nhớ chương trình với lệnh IJMP và ICALL
Chương trình được tiếp tục thực hiện tại địa chỉ được chứa bởi thanh ghi Z
(Bộ đếm chương trình (PC) được nạp với nội dung của thanh ghi Z)
k) Địa chỉ tương đối của bộ nhớ chương trình với lệnh RJMP và RCALL
Chương trình được tiếp tục thực hiện tại địa chỉ PC + k + 1
Địa chỉ tương đối k bắt đầu từ - 2048 tới 2047
2.1.1.6. Thời gian truy cập bộ nhớ và thời gian thực hiện lệnh.
µC AT90S8535 được điều khiển bởi đồng hồ hệ thống 0, được tạo trực tiếp
từ đồng hồ bên ngoài của chip và không sử dụng bộ chia thời gian trong.
Hình 2.8 mô tả quá trình tìm và thực hiện lệnh song song theo cấu trúc
Harvard và khái niệm tập thanh ghi truy nhập nhanh.


24
Website: Email : Tel (: 0918.775.368

Hình 2.8: Quá trình tìm và thực hiện lênh song song
Hình 2.9 mô tả khái niệm thời gian thao tác trong của tập thanh ghi. Trong
một đơn chu kỳ đồng hồ, một thao tác sử dụng hai toán hạng trong hai thanh ghi
của ALU được thực hiện và kết quả được lưu trở lại thanh ghi đích.
Hình 2.9: Hoạt động của ALU trong đơn chu kỳ đồng hồ

Sự truy nhập vào bộ nhớ SRAM được thực hiện trong hai chu kỳ đồng hồ
và được mô tả như hình dưới.
Hình 2.10 : Các chu kỳ truy cập bộ nhớ SRAM
2.1.1.7. Không gian bộ nhớ I/O.
Bảng 2.1 : Không gian I/O của µC AT90S8535
Địa chỉ I/O Tên thanh Chức năng


25

×