TAƠP LEƠNH CỤA 8952:

Một phần của tài liệu Các phương pháp điều chỉnh tốc độ động cơ một chiều kích từ độc lập (Trang 71 - 76)

Taơp leơnh 8952 cĩ 255 leơnh goăm 139 leơnh 1 byte, 92 leơnh 2 byte và 24 leơnh 3 byte. leơnh 2 byte và 24 leơnh 3 byte.

III.1

Các chê đoơ đánh địa chư:

a/

Địa chư thanh ghi:

µC8952 cĩ bơn bank thanh ghi, moêi bank cĩ 8 thanh ghi đánh sơ từ R0 đên R7. Tái moêi thời đieơm chư ghi đánh sơ từ R0 đên R7. Tái moêi thời đieơm chư cĩ moơt bank thanh ghi được tích cực.

Muơn chĩn bank thanh ghi nào ta chư caăn gán các bít nhị phađn thích hợp vào RS1 (PSW.4) và RS0 (PSW.3) bít nhị phađn thích hợp vào RS1 (PSW.4) và RS0 (PSW.3) trong thanh ghi tráng thái chương trình (PSW).

Ngồi ra, moơt sơ thanh ghi đaịc bieơt như thanh ghi tích lũy, thanh ghi con trỏ dữ lieơu cũng được xác định trong các leơnh tređn neđn khođng caăn bit địa chư.

Trong các leơnh này thanh ghi tích lũy được kí hieơu là “A”, con trỏ dữ lieơu là “DPTR”, thanh ghi đêm là “A”, con trỏ dữ lieơu là “DPTR”, thanh ghi đêm chương trình là “PC”, cờ nhớ là “C”, caịp thanh ghi tích lũy là “AB”.

b/

Địa chư trực tiêp:

Trong chê đoơ này, các thanh ghi beđn trong 8952 được đánh địa chư trực tiêp baỉng 8 bits địa chư naỉm trong đánh địa chư trực tiêp baỉng 8 bits địa chư naỉm trong byte thứ hai cụa mã leơnh.

Dù vaơy, trình hợp dịch cho phép gĩi teđn các thanh ghi chức naíng đaịc bieơt (cĩ địa chư trực tiêp từ ghi chức naíng đaịc bieơt (cĩ địa chư trực tiêp từ 80H đên FFH).

Ví dú, P0 cho Port 0, TMOD cho thanh ghi chê đoơ timer, … …

c/

Địa chư gián tiêp:

R0 và R1 được dùng đeơ chứa địa chư tám ođ nhớ mà leơnh tác đoơng đên. Người ta qui ước dùng dâu mà leơnh tác đoơng đên. Người ta qui ước dùng dâu @ trước R0 hoaịc R1.

SVTH : HOAØNG TRĨNG LINH TRANG 72 Mã leơnh n n n

Địa chư thanh ghi

Mã leơnh Địa chư trực tiêp

Địa chư trực tiêp

d/

Địa chư tức thời:

Người ta dùng dâu # trước các tốn háng tức thời. Các tốn háng đĩ cĩ theơ là moơt haỉng sơ, thời. Các tốn háng đĩ cĩ theơ là moơt haỉng sơ, moơt kí sơ hay moơt bieơu thức tốn hĩc …Trình hợp dịch sẽ tự đoơng tính tốn và thay thê dữ lieơu vào mã leơnh.

e/

Địa chư tương đơi:

Địa chư tương đơi được dùng trong các leơnh nhạy.

µC8952 dùng giá trị 8 bit cĩ dâu đeơ coơng theđm

vào thanh ghi đêm chương trình (PC).

Taăm nhạy cụa leơnh này trong khoạng từ –128 đên 127 ođ nhớ. Trước khi coơng, thanh ghi PC sẽ taíng đên 127 ođ nhớ. Trước khi coơng, thanh ghi PC sẽ taíng đên địa chư theo sau leơnh nhạy roăi tính tốn địa chư offset caăn thiêt đeơ nhạy đên địa chư yeđu caău. (adsbygoogle = window.adsbygoogle || []).push({});

Như vaơy, địa chư mới là địa chư tương đơi so với leơnh kê tiêp chứ khođng phại bạn thađn leơnh nhạy. leơnh kê tiêp chứ khođng phại bạn thađn leơnh nhạy. Thường leơnh này cĩ lieđn quan đên nhãn được định nghĩa trước.

f/

Địa chư tuyeơt đơi :

Địa chư tuyeơt đơi chư dùng trước các leơnh ACALL và AJIMP. và AJIMP.

Các leơnh 2 byte này dùng đeơ rẽ nhánh vào moơt trang 2Kbyte cụa boơ nhớ chương trình baỉng cách câp trang 2Kbyte cụa boơ nhớ chương trình baỉng cách câp 11 bit địa chư thâp (A0-A10) đeơ xác định địa chư đích trong trang mã. Cịn 5 bit cao cụa địa chư đích chính là 5 bit hieơn hành trong thanh ghi đêm chương trình.

SVTH : HOAØNG TRĨNG LINH TRANG 73 Mã leơnh Dữ lieơu tức thời

Địa chư tức thời.

Mã leơnh Offset tương đơi

Vì vaơy, địa chư cụa leơnh theo sau leơnh rẽ nhánh và địa chư đích cụa leơnh rẽ nhánh caăn phại cùng và địa chư đích cụa leơnh rẽ nhánh caăn phại cùng trang mã 2Kbyte (cĩ cùng 5 bits địa chư cao).

A15 A10 A9 A0

XÁC ĐỊNH

TRANG MÃ XÁTRONG TRANG MÃC ĐỊNH ĐỊA CHƯ

g/

Địa chư dài :

Địa chư dài chư dùng cho leơnh LCALL và LJIMP. Các leơnh này chiêm 3 byte và dùng 2 byte sau (byte 2 và leơnh này chiêm 3 byte và dùng 2 byte sau (byte 2 và byte 3) đeơ định địa chư đích cụa leơnh (16 bit). Ưu đieơm cụa leơnh này là cĩ theơ sử dúng trong tồn boơ vùng nhớ 64 Kbyte.

Tuy nhieđn, leơnh này chiêm nhieău byte và leơ thuoơc vào vị trí vùng nhớ.

h/

Địa chư tham chiêu:

Địa chư tham chiêu dùng moơt thanh ghi cơ bạn (hoaịc thanh ghi đêm chương trình PC hoaịc thanh ghi con (hoaịc thanh ghi đêm chương trình PC hoaịc thanh ghi con trỏ dữ lieơu DPTR) và địa chư offset (trong thanh ghi tích lũy A) đeơ táo địa chư được tác đoơng cho các leơnh JMP hoaịc MOVC.

A10-A8 Mã leơnh Offset tương đơi

Địa chư tuyeơt đơi

Mã leơnh A15 - A8 A7 – A0

Các bạng nhạy và bạng tìm kiêm deê dàng được táo ra đeơ sử dúng địa chư tham chiêu. táo ra đeơ sử dúng địa chư tham chiêu.

Địa chư cơ bạn Offset

PC hoaịc

DPTR + ACC = Địa chư caăn truy xuât

Địa chư tham chiêu.

III.2

Các nhĩm leơnh cụa 8952:

Taơp leơnh cụa 8952 được chia làm 5 nhĩm: (adsbygoogle = window.adsbygoogle || []).push({});

 Sơ hĩc

 Luaơn lí

 Chuyeơn dữ lieơu

 Chuyeơn đieău khieơn

Các chư dăn thiêt laơp leơnh:

Rn : Thanh ghi R0 đên R7 cụa bank thanh ghi được chĩn. Data : 8 bit địa chư vùng dữ lieơu beđn trong. Nĩ cĩ theơ Data : 8 bit địa chư vùng dữ lieơu beđn trong. Nĩ cĩ theơ

là vùng RAM dữ lieơu trong (0-127) hoaịc các thanh ghi chức naíng đaịc bieơt.

@Ri : 8 bit vùng RAM dữ lieơu trong (0-255) được đánh địa chư gián tiêp qua thanh ghi R0 hoaịc R1.

#data : Haỉng 8 bit chứa trong cađu leơnh.

#data16 : Haỉng 16 bit chứa trong cađu leơnh.

addr16 : 16 bit địa chư đích được dùng trong leơnh LCALL và

LJMP.

addr11 : 11 bit địa chư đích được dùng trong leơnh ACALL

và AJMP.

rel : Byte offset 8 bit cĩ dâu được dùng trong leơnh SJUMP và những leơnh

nhạy cĩ đieău kieơn.

bit : Bit được định địa chư trực tiêp trong RAM dữ lieơu noơi hoaịc các thanh

ghi chức naíng đaịc bieơt.

a/

Nhĩm leơnh xử hĩc:

ADD A, Rn (1 byte, 1 chu kì máy) : Coơng noơi dung thanh ghi Rn vào thanh

ghi A.

ADD A, data (2, 1) : Coơng trực tiêp 1 byte vào thanh ghi A.

AAD A, @Ri (1, 1) : Coơng gián tiêp noơi dung RAM chứa tái địa chư được

khai báo trong Ri vào thanh ghi A.

ADD A, #data (2, 1) : Coơng dữ lieơu tức thời vào A.

ADDC A, Rn (1, 1) : Coơng thanh ghi và cờ nhớ vào A.

ADDC A, data(2, 1) : Coơng trực tiêp byte dữ lieơu và cờ nhớ vào A.

ADDC A, @Ri(1, 1) : Coơng gián tiêp noơi dung RAM và cờ nhớ vào A.

ADDC A, #data (2, 1) : Coơng dữ lieơu tức thời và cờ nhớ vào A. (adsbygoogle = window.adsbygoogle || []).push({});

SUBB A, Rn (1, 1) : Trừ noơi dung thanh ghi A cho noơi dung thanh ghi Rn và cờ nhớ.

SUBB A, data (2, 1): Trừ trực tiêp A cho moơt sơ và cờ nhớ.

SUBB A, @Ri(1, 1) : Trừ gián tiêp A cho moơt sơ và cờ nhớ.

SUBB A, #data (2, 1): Trừ noơi dung A cho moơt sơ tức thời và cờ nhớ.

INC A (1, 1) : Taíng noơi dung thanh ghi A leđn 1.

INC Rn (1, 1) : Taíng noơi dung thanh ghi Rn leđn 1.

INC data (2, 1) : Taíng dữ lieơu trực tiêp leđn 1.

INC @Ri (1, 1) : Taíng gián tiêp noơi dung vùng RAM leđn 1.

DEC A (1, 1) : Giạm noơi dung thanh ghi A xuơng 1.

DEC Rn (1, 1) : Giạm noơi dung thanh ghi Rn xuơng 1.

DEC data (2, 1) : Giạm dữ lieơu trực tiêp xuơng 1.

DEC @Ri (1, 1) : Giạm gián tiêp noơi dung vùng RAM xuơng 1.

INC DPTR (1, 2) : Taíng noơi dung con trỏ dữ lieơu leđn 1.

MUL AB (1, 4) : Nhađn noơi dung thanh ghi A với noơi

Một phần của tài liệu Các phương pháp điều chỉnh tốc độ động cơ một chiều kích từ độc lập (Trang 71 - 76)