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

Tài liệu hướng dẫn sử dụng ST7

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.66 MB, 74 trang )

BIÊN DỊCH TỪ TÀI LIỆU ST7 USER GUIDE CỦA
STMICROELECTRONICS

TP.HCM, THÁNG 1 NĂM 2008


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

2

MỤC LỤC
MỤC LỤC...................................................................................................................................... 2
TỔNG QUAN VỀ VI ĐIỀU KHIỂN........................................................................................... 5
I.

GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN ..................................................................... 6

II.

PHÂN LOẠI ................................................................................................................................... 6

III.

CẤU TRÚC TỔNG QUAN CỦA VDK:.................................................................................. 7

VI ĐIỀU KHIỂN ST7................................................................................................................... 9
I.

GIỚI THIỆU ................................................................................................................................ 10

II.



SƠ ĐỒ CHÂN .............................................................................................................................. 11

U

III.

SƠ ĐỒ BỘ NHỚ VÀ THANH GHI....................................................................................... 12

IV.

VÙNG NHỚ LẬP TRÌNH FLASH (Flash Programming Memory). ................................. 14

1.

Giới thiệu.........................................................................................................................14

2.

Đặc điểm chính (main features).................................................................................15

3.

Chế độ lập trình (Programming Modes)....................................................................15

4.

Giao tiếp ICC (ICC Interface).....................................................................................16

5.


Bảo vệ vùng nhớ ( Memory Protection). ...................................................................16

6.

Tài liệu liên quan (Related Documentation). ...........................................................17

7.

Mô tả thanh ghi (Register description). .....................................................................17

V.

DATA EEPROM.......................................................................................................................... 17
1.

Giới thiệu (Introduction). ..............................................................................................17

2.

Đặc điểm chính. ............................................................................................................18

3.

Truy xuất bộ nhớ . ..........................................................................................................18

VI.

BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit).......................................................... 19


1.

Giới thiệu.........................................................................................................................19

2.

Đặc điểm chính. ............................................................................................................19

3.

Các thanh ghi nội. ........................................................................................................20


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

3

VII.

NGẮT........................................................................................................................................ 23

1.

Ngắt mềm không che được .......................................................................................24

2.

Ngắt ngoại ......................................................................................................................24

3.


Ngắt thiết bị ngoại vi .....................................................................................................24

VIII.

CÁC CỔNG I/O : .................................................................................................................... 28

1.

Giới thiệu:........................................................................................................................28

2.

Chức năng:....................................................................................................................28

3.

Thực thi các cổng I/O ..................................................................................................30

4.

Các chân không được sử dụng ................................................................................31

5.

Chế độ tiết kiệm năng lượng.......................................................................................31

6.

Ngắt .................................................................................................................................31


IX.

CÁC THIẾT BỊ NGOẠI VI ĐƯỢC TÍCH HỢP: ................................................................ 31

1.

Bộ định thời Watchdog (WDG) : ................................................................................31

2.

Bộ định thời 12 bit tự động nạp lại ..............................................................................33

3.

Giao tiếp ngoại vi nối tiếp (SPI) ...................................................................................45

4.

Bộ chuyển đổi tín hiệu tương tự sang tín hiệu số......................................................59

X.

TẬP LỆNH ASSEMBLER CỦA VI ĐIỀU KHIỂN ST7 ......................................................... 65
1.

Các lệnh số học.............................................................................................................65

2.


Các lệnh Logic ..............................................................................................................66

3.

Các lệnh xử lí bit............................................................................................................66

4.

Các lệnh nhảy................................................................................................................67

5.

Các lệnh di chuyển dữ liệu..........................................................................................68

6.

Một số lệnh khác............................................................................................................68

XI.
1.

CÁC CHẾ ĐỘ ĐINH ĐỊA CHỈ CỦA HỌ VI ĐIỀU KHIỂN ST7 ...................................... 71
Định địa chỉ tức thời.....................................................................................................71


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

4

2.


Định địa chỉ trực tiếp ngắn..........................................................................................71

3.

Định địa chỉ trực tiếp dài.............................................................................................71

4.

Định địa chỉ NO OFFSET INDEXED...............................................................................72

5.

Định địa chỉ SHORT INDEXED ADDRESSING ..............................................................72

6.

Định địa chỉ LONG INDEXED .......................................................................................72

7.

Định địa chỉ gián tiếp ngắn.........................................................................................72

8.

Định địa chỉ gián tiếp dài ............................................................................................72

9.

Định địa chỉ SHORT INDIRECT INDEXED......................................................................73


10.

Định địa chỉ LONG INDIRECT INDEXED ..................................................................73

11.

Định địa chỉ tương đối .............................................................................................73

12.

Thao tác trên bit........................................................................................................73


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

TỔNG QUAN VỀ VI ĐIỀU KHIỂN

5


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

6

I. GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN
Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán, xử lý,
và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt hiệu quả đối với các
bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ, tầm tính toán không đòi hỏi
khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc. Bởi vì hệ thống dù lớn hay

nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau. Các
khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các mạch điện giao tiếp
ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới
thực hiện được công việc. Để kết nối các khối này đòi hỏi người thiết kế phải hiểu biết tinh
tường về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi. Hệ thống được tạo ra khá
phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết
kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp dụng cho các hệ
thống nhỏ.
Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ và một số mạch
giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller-Vi điều
khiển.
Một số đặc điểm khác nhau giữa vi xử lí và VĐK:
Về phần cứng: VXL cần được ghép thêm các thiết bị ngoại vi bên ngoài như bộ nhớ, và
các thiết bị ngoại vi khác, … để có thể tạo thành một bản mạch hoàn chỉnh. Đối với VĐK thì
bản thân nó đã là một hệ máy tính hoàn chỉnh với CPU, bộ nhớ, các mạch giao tiếp, các bộ
định thời và mạch điều khiển ngắt được tích hợp bên trong mạch.
Về các đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộ VXL và VĐK cũng
có những yêu cầu khác nhau đối với tập lệnh của chúng. Tập lệnh của các VXL thường mạnh
về các kiểu định địa chỉ với các lệnh cung cấp các hoạt động trên các lượng dữ liệu lớn như
1byte, ½ byte, word, double word,...Ở các bộ VĐK, các tập lệnh rất mạnh trong việc xử lý
các kiêu dữ liệu nhỏ như bit hoặc một vài bit.
Do VĐK cấu tạo về phần cứng và khả năng xử lí thấp hơn nhiều soi với VXL nên giá
thành của VXL cũng rẻ hơn nhiều. Tuy nhiên nó vẫn đủ khả năng đáp ứng được tất cả các
yêu cầu của người dùng.
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có chức
năng đơn giản, trong máy giặt, ôtô v.v...

II. PHÂN LOẠI
i. Độ dài thanh ghi



TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

7

Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia ra
các loại VĐK 8bit, 16bit, hay 32bit....
Các loại VĐK 16bit do có độ dài lệnh lớn hơn nên các tập lệnh cũng nhiều
hơn, phong phú hơn. Tuy nhiên bất cứ chương trình nào viết bằng VĐK 16bit
chúng ta đều có thể viết trên VDK 8bit với chương trình thích hợp
ii. Kiến trúc CISC và RISC
VXL hoặc VDK CISC là VDK có tập lệnh phức tạp. Các VDK này có một số
lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễ dàng
hơn khi viết chương trình.
VDK RISC là VDK có tập lệnh đơn giản. Chúng có một số lương nhỏ các
lệnh đơn giản. DO đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn, và
nhanh hơn so với CISC. Tuy nhiên nó đòi hỏi người lập trình phải viết các
chương trình phức tạp hơn, nhiều lệnh hơn.
iii. Kiến trúc Harvard và kiến trúc Vonneumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ liệu. Bus
địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn
giản hơn
Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và dữ liệu.
Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn.
Một số loại VDK có trên thị trường:
- VDK MCS-51: 8031, 8032, 8051, 8052, ...
- VDK ATMEL: 89Cxx, AT89Cxx51..
- VDK AVR AT90Sxxxx
- VDK PIC 16C5x, 17C43...


III. CẤU TRÚC TỔNG QUAN CỦA VDK:
i. CPU:
Là trái tim của hệ thống. Là nơi quản lí tất cả các hoạt động của VĐK. Bên
trong CPU gồm:
+ ALU là bộ phận thao tác trên các dữ liệu
+ Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực hiện
+ Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi
+Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực thi
+ Một tập các thanh ghi dùng để lưu thông tin tạm thời
ii. ROM:
ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa số liệu
các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

8

trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM
chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.
iii. RAM:
RAM là bọ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường xử lý thông tin,
lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí
thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác
thu phát, chuyển đổi dữ liệu.
iv. BUS:
BUS là các đường dẫn dùng để di chuyển dữ liệu. Bao gồm: bus địa chỉ, bus
dữ liệu , và bus điều khiển
v. Bộ định thời: Được sử dụng cho các mục đích chung về thời gian.
vi. Watchdog:

Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất thường”.
vii. ADC:
Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các tín hiệu bên ngoài đi
vào VDK thường ở dạng analog. ADC sẽ chuyển tín hiệu này về dạng tín hiệu
digital mà VDK có thể hiểu được.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

VI ĐIỀU KHIỂN ST7

9


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

10

I. GIỚI THIỆU
ST7LITE2 là thành viên của họ vi điều khiển ST7. Tất cả thiết bị ST7 cơ bản dựa trên nhân 8 bit
chuẩn công nghiệp bình thường, nét đặc biệt là có một tập lệnh nâng cao.
ST7LITE2 mô tả bộ nhớ Flash với khả năng lập trình in-circuit(ICP) và in-application (IAP)theo
khối từng byte một.
Dưới sự điều khiển của phần mềm, thiết bị ST7LITE2 có thể được đặt ở chế độ WAIT (đợi), SLOW
(chậm), hay HALT (nghỉ), sự tiêu thụ năng lượng giảm xuống khi ứng dụng ở trạng thái nhàn rỗi (idle)
hay tạm nghỉ (stand by).
Tập lệnh và chế độ định địa chỉ của ST7 cho thấy sức mạnh và tính linh hoạt đối với những người
phát triển phần mềm, cho phép thiết kế mã ứng dụng ngắn gọn và đạt hiệu quả cao. Thêm vào đó , tất cả
vi điều khiển ST7 có đặc điểm tính toán trên từng bit, tính toán số không dấu 8x8 và chế độ định địa chỉ
gián tiếp.

Thiết bị có một module debug trên chip (DM) hỗ trợ debug trên mạch(ICD-in-circuit debugging).


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

II. SƠ ĐỒ CHÂN

11


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

12

III. SƠ ĐỒ BỘ NHỚ VÀ THANH GHI
Như được thấy trong figure 4, MCU có khả năng định địa chỉ đến 64 k bytes bộ nhớ và có những
thanh ghi xuất/nhập.
Bộ nhớ bao gồm 128 bytes định vị các thanh ghi phần cứng (Hardware register) xem bảng 2, 384
bytes RAM, 256 bytes EEPROM và 8 kbytes bộ nhớ lập trình. Không gian bộ nhớ RAM dành tới 128
bytes cho vùng stack được đánh địa chỉ từ 0180F tới 01FFh.
Những bytes địa chỉ cao nhất chứa trạng thái reset và bảng vector ngắt.
Vùng nhớ Flash chứa 2 sector(Figure 4) được ánh xạ vào tầm địa chỉ cao nhất vì vậy bảng reset và
vector ngắt được định vị ở sector 0 (F000h – FFFFh).
Kích thước của Flash sector 0 và những lựa chọn thiết bị khác được định dạng bởi option byte.
Quan trọng (Important): vùng nhớ dành sẵn (“reserved”) không bao giờ được truy suất. Truy suất
vùng nhớ này có thể có những ảnh hưởng không lường trước được trên thiết bị.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP


13


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

14

Ghi chú: x = không xác định, R/W = Đọc/ghi
Chú ý:
1. Nội dung của thanh ghi DR của các cổng giao tiếp I/O chỉ có thể được đọc ở cấu hình ngõ
xuất. Trong cấu hình ngõ nhập, giá trị của các chân I/O sẽ được trả về thay vì nội dung của
thanh ghi DR.
2. Các bit liên đới với những chân không sử dụng phải được giữ ở giá trị khởi tạo của nó.

IV. VÙNG NHỚ LẬP TRÌNH FLASH (Flash Programming Memory).
1. Giới thiệu.
Bộ nhớ của ST7 sử dụng công nghệ Xflash( Extended Flash), Xflash là flash mở rộng, có thể được
xóa bằng điện và lập trình theo byte hoặc cho đến khối 32 bytes song song.
Thiết bị Xflash có thể được lập trình off-board( được cắm vào công cụ lập trình) hoặc on-board tùy
vào phương pháp lập trình In-circuit programming hay In-application programming.
Việc tổ chức bộ nhớ theo ma trận cho phép mỗi sector được lập trình và xóa không ảnh hưởng đến
sector khác.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

15

2. Đặc điểm chính (main features).



ICP (In-circuit programming)



IAP (In-application programming)



ICT (In-circuit testing) - load và thực thi mẫu kiểm tra ứng dụng của user trong Ram



Kích thước sector 0 được thiết lập bởi option byte



Bảo vệ đọc và ghi

3. Chế độ lập trình (Programming Modes).
ST7 có thể được lập trình theo 3 cách:


Lập trình bình thường, ở chế độ này sử dụng Flash sector 0 và 1, option byte và data EEPROM
(nếu có) có thể được lập trình hay xóa .



In-Circuit Programming: ở chế độ này sử dụng vùng nhớ Flash sector 0 và 1, option byte và
EEPROM (nếu có) có thể được lập trình hay xóa không cần tháo thiết bị ra khỏi board ứng dụng.




In-Application programming: ở chế độ này,vùng nhớ sector 1 và dữ liệu trong vùng
EEPROM(nếu có) có thể được lập trình hay xóa mà không lấy thiết bị ra khỏi board ứng dụng
trong lúc ứng dụng đang chạy.

3.1. In-circuit programming(ICP).

ICP sử dụng giao thức được gọi là ICC (In-cỉcuit communication) cho phép một vi điều khiển cắm
trên board mạch in (PCB-printed cỉcuit board) giao tiếp với thiết bị lập trình bên ngoài thông qua cáp .
ICP hoạt động theo 3 bước:


Đưa ST7 vào chế độ ICC : Điều này được thực hiện bằng cách điều khiển chuỗi tín hiệu đặc biệt
thông qua chân ICCCLK/DATA trong lúc chân RESET ở mức thấp. khi ST7 vào chế độ ICC, nó
tìm thấy vector RESET đặc biệt chỉ tới bộ nhớ hệ thống của có chứa thủ tục giao thức ICC. Thủ
tục này cho phép ST7 nhận bytes từ giao tiếp ICC.



Nạp code driver ICP vào trong ram từ chân ICCDATA.



Thi hành doạn mã vừa nạp vào trong ram để lập trình vùng nhớ FLASH.

Phụ thuộc vào đoạn mã được nạp vào ram , lập trình vùng nhớ FLASH có thể bị thay đổi (số bytes
chương trình, định vị chương trình, hay lựa chọn giao tiếp tuần tự để nạp chương trình).
3.2. In-Application programming (IAP).



TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

16

Chế độ này sử dụng một chương trình điều khiển IAP được nạp vào sector 0 bởi người sử dụng
trước đó( in ICP mode).
Chế độ này được điều khiển hoàn toàn bởi phần mềm của user. Điều này cho phép nó uyển chuyển
với ứng dụng của user.
Chế độ IAP có thể được dùng để lập trình mọi vùng nhớ trừ secter 0, đây là vùng cấm không được
ghi hoặc xóa vì nó dùng để phục hồi trong trường hợp thực thi chương trình bị lỗi.

4. Giao tiếp ICC (ICC Interface).
ICP cần tối thiểu từ 4 cho đến 6 chân để kết nối với công cụ lập trình. Những chân này là:
ƒ

RESET: Reset thiết bị.

ƒ

VSS : Devide power supply ground.

ƒ

ICCCLK: Cổng nhập dữ liệu tuần tự ICC .

ƒ

CLKIN/PB4: Chân nhận xung CLOCK từ bên ngoài.


ƒ

VDD: Nguồn cung cấp cho ứng dụng.

5. Bảo vệ vùng nhớ ( Memory Protection).
Có hai kiểu bảo vệ vùng nhớ khác nhau: bảo vệ đọc và bảo vệ ghi xóa được dùng bởi cá nhân.
5.1. Bảo vệ đọc (read-out protection).

Bảo vệ đọc, khi được chọn cung cấp sự bảo vệ dựa trên nguồn gốc nội dung vùng nhớ chương trình
và dựa trên truy suất ghi tới vùng nhớ Flash.
Trong thiết bị Flash , sự bảo vệ này được bỏ đi bởi lựa chọn tái lập trình. Trong trường hợp này, cả
bộ nhớ dữ liệu E2 và bộ nhớ lập trình được tự động xóa và thiết bị có thể được lập trình lại. bảo vệ đọc
phụ thuộc vào loại thiết bị:
ƒ

Trong thiết bị Flash , nó được cho phép và loại bỏ thông qua bit FMP_R trong byte lựa chọn
(option byte).

ƒ

Trong thiết bị rom nó được cho phép bởi lựa chọn mặt nạ đặc biệt trong danh sách lựa chọn
(option byte).

5.2. Bảo vệ ghi xóa vùng nhớ Flash (Flash Write/eraser Protection).

Bảo vệ ghi /xóa , khi được thiết lập thì không thể overwrite và xóa bộ nhớ chương trình. Nó không
dùng với dữ liệu E2 . mục đích của nó cung cấp chế độ bảo mật cao cho ứng dụng và ngăn chặn mọi
thay đổi nội dung vùng nhớ.



TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

17

Cảnh báo: mỗi lần thiết lập chế độ bảo vệ này, nó có thể không bao giờ được xóa. Thiết bị Flash
được bảo vệ ghi thì không tái lập trình được nữa. bảo vệ ghi/xóa được cho phép thông qua bit FMP_W
trong byte option.

6. Tài liệu liên quan (Related Documentation).
Để có thêm chi tiết về lập trình Flash và giao thức ICC, tham khảo “The ST7 Flash programming
reference manual” và “The ST7 ICC protocol reference manual”.

7. Mô tả thanh ghi (Register description).
Thanh ghi trạng thái/điều khiển Flash (Flash control/status register-FCSR)
Có khả năng đọc /ghi.
Giá trị reset: 0000 0000 (00h)
RASS key thứ 1: 0101 0110 (56h)
RASS key thứ 2: 1010 1110 (AEh)

Chú ý: thanh ghi này phục vụ cho lập trình sử dụng ICP, IAP hay các phương pháp lập trình khác.
Nó điều khiển lập trình Flash và tác vụ xóa.
Khi một EPB hay công cụ lập trình khác được sử dụng( in socket or ICP mode), the RASS keys
được gửi một cách tự động.

V. DATA EEPROM
1. Giới thiệu (Introduction).
Bộ nhớ chỉ đọc có khả năng lập trình xóa bằng điện(EEPROM) được dùng để lưu trữ dữ liệu. Sử
dụng EEPROM yêu cầu một giao thức truy xuất cơ bản được mô tả trong chương này.



TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

18

2. Đặc điểm chính.


Lên đến 32 byte được lập trình trong cùng chu kỳ



EEPROM điện thế đơn (mono-voltage)



Chu kỳ lập trình và xóa



Điều khiển nội của chu kỳ lập trình toàn cục



Quản lý chế độ WAIT



Bảo vệ đọc


3. Truy xuất bộ nhớ .
Chế độ truy xuất đọc /ghi vùng nhớ DATA EEPROM được điều khiển bởi bit E2LAT của thanh ghi
trạng thái/ điều khiển EEPROM(EECSR). Biểu đồ trong hình 7 mô tả những chế độ truy xuất vùng nhớ
khác nhau.
Tác vụ đọc( Read Operation [E2LAT = 0]).
EEPROM có thể được đọc như bộ nhớ ROM bình thường khi bit E2LAT của thanh ghi EECSR
được xóa.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

19

Đối với ST7, DATA EEPROM cũng có thể được dùng để thực thi mã máy. Tránh ghi lên vùng nhớ
DATA EEPROM khi nó đang thực thi lệnh, điều này có thể dẫn tới một đoạn code không được mong
đợi được thực thi.
Tác vụ ghi (E2LAT = 1)
Để truy xuất chế độ ghi, bit E2LAT phải được lập bởi phần mềm( bit E2PGM còn lại được xóa)

VI. BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit).
1. Giới thiệu.
CPU có kiến trúc 8-bit và có 6 thanh ghi nội cho phép tính toán dữ liệu 8 bits một cách hiệu quả.

2. Đặc điểm chính.


63 lệnh cơ bản.




Có khả năng nhân 8 bit với 8 bit nhanh.



17 chế độ định địa chỉ chính.



Hai thanh ghi đánh chỉ số 8 bits.



Thanh ghi stack pointer 16 bits.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP



Ngắt phần cứng có thể che.



Ngắt phần mềm không thể che.

20

3. Các thanh ghi nội.
Sáu thanh ghi nội được chỉ trong hình 10 thì không xuất hiện trong vùng bộ nhớ và được truy xuất
bằng những câu lệnh đặc biệt.

THANH GHI TÍCH LŨY (Accumulator-A):
Thanh ghi A là một thanh ghi dùng chung 8-bit thường dùng để chứa toán hạng và kết quả của các
phép toán số học và logic và dùng để tính toán.
THANH GHI CHỈ SỐ (X và Y):
Trong chế độ định địa chỉ bằng chỉ số, hai thanh ghi 8 bits này thường dùng để tạo ra những địa chỉ
trực tiếp hoặc chứa kết quả tạm thời cho việc tính toán .Thanh ghi Y không bị ảnh hưởng bởi lệnh gọi
những chương trình con( không push vào hoặc pop ra stack).

Program counter(PC): PC là thanh ghi 16-bit chứa địa chỉ của lệnh kế tiếp để được thực thi bởi
CPU. Nó được tạo bởi hai thanh ghi 8-bit, PCL là 8 bits thấp, PCH là 8 bits cao
CONDITION CODE REGISTER (CC):


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

21

Đọc / Ghi.
Giá trị khởi tạo : 111x1xxx

Thanh ghi CC 8-bit chứa trạng thái ngắt quãng và 4 cờ trạng thái của kết quả vừa được tính toán.
Thanh ghi này có thể được điều khiển bởi lệnh push và pop.
Những bit này có thể được truy xuất riêng rẽ hay được điều khiển bởi những câu lệnh đặc biệt.
Bit H (half cary): Bit này được lập bởi phần cứng khi có nhớ xuất hiện giữa bit 3 và 4 trong ALU
khi thực hiện lệnh ADD hoặc ADC. Nó cũng được reset bởi phần cứng khi thực hiện những lệnh trên.
H = 0: không có half carry xuất hiện.
H = 1: có half carry xuất hiện.
Bit này được kiểm tra bằng lệnh JRH hoặc JRNH . bit H rất có ích trong chương trình BCD.
Bit I (interrup mask): Bit này được lập bởi phần cứng khi bước vào interrup hoặc bằng phần mềm
để khóa tất cả interrup ngoại trừ interrup mềm TRAP. Bit này được xóa bởi phần mềm

I = 0: cho phép ngắt
I = 1: cấm ngắt
Bit này được điều khiển bởi lệnh RIM,SIM,IRET và được kiểm tra bởi lệnh JRM và JRNM.
Bit N (Negative): Bit này được set và clear bởi phần cứng. nó biểu diễn dấu kết của quả của phép
toán số học , nó chính là bit thứ 7 của kết quả.
0: kết quả của phép tính cuối cùng là dương hoặc bằng 0.
1: kết quả của phép tính cuối cùng là âm.
Bit này được truy suất bởi lệnh JRMI và JRPL.
Bit Z (zero): Bit này được lập và xóa bởi phần cứng. bit này chỉ ra rằng kết quả của phép toán là 0.
0: kết quả phép toán khác không.
1: kết quả phép toán bằng không.
Bit này được truy xuất bởi lệnh kiểm tra JREQ và JRNE.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

22

Bit C (nhớ/mượn): Bit này được lập và xóa bởi phần cứng và phần mềm. nó chỉ ra rằng có tràn
hoặc mượn xảy ra khi thực hiện phép toán số học.
0: không có nhớ hoặc mượn xuất hiện.
1: có nhớ hoặc mượn xuất hiện.
Bit này được điều khiển bởi lệnh SCF, RCF và kiểm tra bởi lệnh JRC và JRNC. Nó cũng bị ảnh
hưởng bởi lệnh dịch và quay.
STACK POINTER (SP) :
Đọc / ghi.
Giá trị khởi tạo: 01FFh

Stack pointer là một thanh ghi 16 bits luôn luôn chỉ đến byte kế tiếp trong vùng stack. Nó bị giảm
đi sau khi đẩy dữ liệu vào vùng stack và tăng lên sau khi lấy dữ liệu ra khỏi vùng stack( Figure 11) .

Vùng stack có 128 bytes có địa chỉ từ 0180h tới 01FFh . Sau khi reset MCU hay sau lệnh reset
stack(RSP) con trỏ stack chứa giá trị 01FFh( bit sp0 đến sp6 được lập) ở địa chỉ cao nhất của vùng
stack .
Chú ý: khi vượt qua địa chỉ thấp của vùng stack(0180h) con trỏ stack sẽ chỉ đến địa chỉ cao nhất
của stack(01FFh) , vì vậy dữ liệu trước đó sẽ bị ghi đè lên và bị mất. Trường hợp tương tự khi stack
vượt qua địa chỉ cao nhất của stack.
Stack thường dùng để lưu địa chỉ trả về khi gọi chương trình con (trả về PC của lệnh tiếp theo lời
gọi chương trình con ) và ngữ cảnh CPU( PC+X+A+CC) khi có interrup .


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

23

VII. NGẮT
Nhân ST7 có thể bị ngắt bởi một hoặc hai yếu tố khác nhau: Các ngắt phần cứng có thể che
và ngắt phần mềm không thể che (TRAP). Lưu đồ quá trình ngắt được chỉ ra trong Figure 20.
Ngắt có thể che phải được khởi động bằng cách gán 0 cho bit I để có thể được phục vụ. Tuy
nhiên, việc vô hiệu ngắt có thể được chốt và và tiến hành khi nó chúng được kích hoạt.
Chú ý: Sau khi reset, tất cả các ngắt đề bị vô hiệu hóa.
Khi một ngắt được phục vụ:
ƒ
ƒ
ƒ
ƒ

Quá trình bình thường bị đình chỉ sau khi thực thi xong lệnh hiện tại.
Các thanh ghi PC, X, A và CC được lưu vào trong stack.
Bit I của thanh ghi CC được gán 1 để ngăn không cho thêm lệnh ngắt nào được thực hiện.
Thanh ghi PC được nạp giá trị vector ngắt của lệnh ngắt được phục vụ và lệnh đầu tiên

của thủ tục phục vụ ngắt sẽ được tìm nạp.

Thủ tục phục vụ ngắt nên được kết thúc bằng câu lệnh IRET để phục hồi trạng thái các thanh
ghi đã được đưa vào stack. Sau lệnh IRET, bit I được xóa về 0 và chương trình chính được phục
hồi.
Quản lí quyền ưu tiên
Mặc định, một phục vụ ngắt không thể bị ngắt quãng vì bit I được gán giá trị 1 bởi phần cứng
để bắt đầu một tác vụ ngắt.


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

24

Trong trường hợp khi một vài ngắt được diễn ra đồng thời, quyền ưu tiên do phần cứng chỉ
định sẽ quyết định một trong số đó được thực hiện trước.
Ngắt và Chế độ tiết kiệm năng lượng
Tất cả các ngắt cho phép bộ xử lí thoát khỏi chế độ tiết kiệm năng lương WAIT. Chỉ có một
số các ngắt ngoại có khả năng cho phép bộ xử lí thoát khỏi chế độ tiết kiệm năng lượng HALT.

1. Ngắt mềm không che được
Ngắt này được bắt đầu khi câu lệnh TRAP được thực thi mà không cần quan tâm đến trạng
thái của bit I. Nó sẽ được phục vụ như trong lưu đồ ở Figure 20.

2. Ngắt ngoại
Vector ngắt ngoại có thể được nạp vào thanh ghi PC nếu xảy ra sự kiện ngắt ngoại tương ứng
và bit I được xóa về 0. Những ngắt này cho phép bộ xử lí thoát khỏi chế độ tiết kiệm năng lượng
HALT
Cực tính ngắt ngoại được chọn thông qua thanh ghi hỗn hợp hoặc thanh ghi ngắt (nếu có)
Một ngắt ngoại được kích hoạt sẽ được chốt và yêu cầu ngắt sẽ tự động bị xóa khi bắt đầu thủ

tục phục vụ ngắt.

3. Ngắt thiết bị ngoại vi
Các cờ ngắt thiết bị ngoại vi khác nhau trong thanh ghi trạng thái có thể gây ra ngắt khi
chúng được kích hoạt nếu có đủ 2 điều kiện:


TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP

ƒ
ƒ

25

Bit I trên thanh ghi CC có giá trị 0.
Bit kích hoạt tương ứng được gán giá trị 1 trên thanh ghi điều khiển.

Nếu một trong hai điều kiện trên không thỏa mãn, Ngắt sẽ bị khóa và đợi cho đến khi thỏa
mãn.
Xóa một yêu cầu ngắt được thực hiện theo một trong các cách sau:
ƒ
ƒ

Ghi giá trị 0 vào bit tương ứng trên thanh ghi trạng thái
Truy xuất thanh ghi trạng thái trong khi cờ được gán 1 và tiếp sau đó là đọc hoặc ghi một
thanh ghi kết hợp.

Chú ý: Quá trình xóa trên sẽ reset lại chốt nội. Vì thế các ngắt đang trong trạng thái đợi sẽ bị
mất nếu quá trình trên được thực thi.


THANH GHI EXTERNAL INTERRUPT CONTROL (EICR)
Đọc/Ghi
Giá trị khởi tạo : 0000 0000 (00h)

Bit 7:6 = IS3[1:0] -tính nhạy ei3


×