!" #$ $%&'()*+, -"&./#00 -" "$ #1",2$ 3 4567 4 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, B ;=>@C B ;=>@C 2 2 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, 6.1 GIỚI THIỆU TẬP LỆNH AVR 6.1 GIỚI THIỆU TẬP LỆNH AVR !"#$%&'&()'*#+*,-)./01*23 !"#$%&'&()'*#+*,-)./01*23 2 2 4'&(#1*#,#56#)7&6-(%8(#%9&:$*#3 4'&(#1*#,#56#)7&6-(%8(#%9&:$*#3 0 0 4'&(#1*#,#56 4'&(#1*#,#56 ; ; 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, = = 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, 4<*,=>-56E3@&A(#B:C;B%(#D&#<*, 4<*,=>-56E3@&A(#B:C;B%(#D&#<*, ! ! 4<*,=>-563@&A(#B:C;B%(#D&#<*, 4<*,=>-563@&A(#B:C;B%(#D&#<*, F F 4<*,=>-2G,'(0H(%8(#%9&:$*#3@&A(#B:C;B%(#D& 4<*,=>-2G,'(0H(%8(#%9&:$*#3@&A(#B:C;B%(#D& #<*, #<*, I I 4<*,=>-563@&A(#B:C;B%(#D&#<*, 4<*,=>-563@&A(#B:C;B%(#D&#<*, 3 3 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, J KLM J KLM N*#O)'*#+*,PQ(G N*#O)'*#+*,PQ(G #R&#$* #R&#$* S S :)&F :)&F • 2@0 2@0 9*,F#Q*,*#O 9*,F#Q*,*#O 2T2U0 2T2U0 V@@@@ V@@@@ • 2@0 2@0 9*,&A*#O 9*,&A*#O 2T2U0U 2T2U0U V@@@@ V@@@@ • W W 2@! 2@! U,'(0H(D&(#S U,'(0H(D&(#S 2U42T2U42U! 2U42T2U42U! V@@@ V@@@ • X X 2@0 2@0 0YF#Q*,*#O 0YF#Q*,*#O 2T2Z0 2T2Z0 V@@@@ V@@@@ • X X 2@! 2@! 0Y,'(0H(D&(#S 0Y,'(0H(D&(#S 2T2Z! 2T2Z! V@@@@ V@@@@ • X X 2@0 2@0 0Y&A&S*#O 0Y&A&S*#O 2T2Z0Z 2T2Z0Z V@@@@ V@@@@ • X X 2@! 2@! 0Y(D&(#S&A*#O 0Y(D&(#S&A*#O 2T2Z!Z 2T2Z!Z V@@@@ V@@@@ • XW XW 2@! 2@! Z(D&(#S(#/)(Y Z(D&(#S(#/)(Y 2U42T2U426! 2U42T2U426! V@@@ V@@@ • 2@0 2@0 ),& ),& 2T20 2T20 V@@ V@@ • 2@! 2@! [O=>(D&(#S [O=>(D&(#S 2T2! 2T2! V@@ V@@ • 2@0 2@0 ),&1: ),&1: 2T20 2T20 V@@ V@@ • 2@! 2@! [O=>(D&(#S [O=>(D&(#S 2T2! 2T2! V@@ V@@ • 2@0 2@0 \&:%=[/ \&:%=[/ 2T2]0 2T2]0 V@@ V@@ • P P 2 2 X^ X^ 2T_``Z2 2T_``Z2 V@@@ V@@@ • 2 2 X^ X^ 2T_55Z2 2T_55Z2 V@@@@ V@@@@ • X X 2@! 2@! a.;((0)*,(,# a.;((0)*,(,# 2T2[! 2T2[! V@@ V@@ • X X 2@! 2@! ]A1;((0)*,(,# ]A1;((0)*,(,# 2T21*2-_``#Z!3 2T21*2-_``#Z!3 V@@ V@@ • 2 2 b*, b*, 2T2U 2T2U V@@ V@@ • 2 2 Gc Gc 2T2Z 2T2Z V@@ V@@ • 2 2 !(01d/0)#)7&ec !(01d/0)#)7&ec 2T21*22 2T21*22 V@@ V@@ • 2 2 ]A1(#1*#,# ]A1(#1*#,# 2T2\)02 2T2\)02 V@@ V@@ • 2 2 a.(#1*#,# a.(#1*#,# 2T_`` 2T_`` )*/ )*/ • P P 2@0 2@0 #e*F#Q*,2f% #e*F#Q*,2f% @5T2\0 @5T2\0 4 4 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, • gP gP F F #Gh(ij*,k> #Gh(ij*,k> TUFU TUFU )*/ )*/ • gP gP *#Gh,'*(l.-V3 *#Gh,'*(l.-V3 TV TV )*/ )*/ • gP gP F F #GhF#Q*,km%F$* #GhF#Q*,km%F$* TF TF )*/ )*/ • F F n&(0o*#&)*(k> n&(0o*#&)*(k> TUFU TUFU )*/ )*/ • n,'*(l.-V3 n,'*(l.-V3 TV TV )*/ )*/ • F F n&#ij*,(0o*#&)* n&#ij*,(0o*#&)* TF TF )*/ )*/ p p • q%1h[m(Y&(0o*#&)* q%1h[m(Y&(0o*#&)* T ! T ! )*/ )*/ p p • q%1h[m(Y*,r( q%1h[m(Y*,r( T ! T ! p p • 2@0 2@0 )='*#[C5*#GhF#;<*, )='*#[C5*#GhF#;<*, s-2t03TU)0 s-2t03TU)0 )*/EE )*/EE • 2@0 2@0 )='*# )='*# 2Z0 2Z0 V@@@@ V@@@@ • 2@0 2@0 )='*#&A&S*#O )='*#&A&S*#O 2Z0Z 2Z0Z V@@@@ V@@@@ • 2@! 2@! )='*#[O=>(D&(#S )='*#[O=>(D&(#S 2Z! 2Z! V@@@@ V@@@@ • X X 0@; 0@; 5*#GhF#;(t5- F.3 5*#GhF#;(t5- F.3 s-0-;3t53TU)0 s-0-;3t53TU)0 )*/EE )*/EE • X X 0@; 0@; 5*#Gh*l%;(t 5*#Gh*l%;(t s-0-;3t3TU)0 s-0-;3t3TU)0 )*/EE )*/EE • X X @; @; 5*#Gh*l%;(Et5 5*#Gh*l%;(Et5 s-E-@;3t53TU)0 s-E-@;3t53TU)0 )*/EE )*/EE • X X @; @; 5*#Gh*l%;(Et 5*#Gh*l%;(Et s-E-@;3t3TU)0 s-E-@;3t3TU)0 )*/EE )*/EE • XX XX =@Fu*#'*#F#&S(0+*,(#'ts- -=3t3(#/*TUFU)*/E =@Fu*#'*#F#&S(0+*,(#'ts- -=3t3(#/*TUFU)*/E • XX XX =@Fu*#'*#F#&S(0+*,(#'t5s- -=3t53(#/*TUFU)*/E =@Fu*#'*#F#&S(0+*,(#'t5s- -=3t53(#/*TUFU)*/E 5 5 JvJ JvJ 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, • Xq Xq F F u*#'*#*l%;<*, u*#'*#*l%;<*, s-Vt3(#/*TUFU s-Vt3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%F#Q*,;<*,s-Vt53(#/*TUFU u*#'*#*l%F#Q*,;<*,s-Vt53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t u*#'*#*l%`t s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t5 u*#'*#*l%`t5 s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%w#)7&t u*#'*#*l%w#)7&t s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%*#x#j* u*#'*#*l%*#x#j* s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • XP XP F F u*#'*#*l%ec u*#'*#*l%ec s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%2ij*, u*#'*#*l%2ij*, s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#w#)7&t@&A2f% u*#'*#w#)7&t@&A2f% s-\)0t53(#/*TUFU s-\)0t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#y#)7&t@&A2f% u*#'*#y#)7&t@&A2f% s-\)0t3(#/*TUFU)*/ s-\)0t3(#/*TUFU)*/ E E • X X F F u*#'*#*l%`t u*#'*#*l%`t s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t5 u*#'*#*l%`t5 s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t u*#'*#*l%`t s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t5 u*#'*#*l%`t5 s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t u*#'*#*l%`t s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t5 u*#'*#*l%`t5 s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t u*#'*#*l%`t s-t3(#/*TUFU s-t3(#/*TUFU )*/ )*/ E E • X X F F u*#'*#*l%`t u*#'*#*l%`t s-t53(#/*TUFU s-t53(#/*TUFU )*/ )*/ E E 6 6 JvJ JvJ 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, • P P 2@0 2@0 #z.(#1*#,# #z.(#1*#,# 2T0 2T0 )*/ )*/ • 2@! 2@! +.,'(0H(D&(#S +.,'(0H(D&(#S 2T! 2T! )*/ )*/ • 2@F 2@F +.(0R&(l.(Y P +.(0R&(l.(Y P 2T-F3 2T-F3 )*/ )*/ • 2@] 2@] +.,'*(l. +.,'*(l. 2T-]3 2T-]3 )*/ )*/ • 2@]U 2@]U +.,'*(l.[C(b*, +.,'*(l.[C(b*, 2T-]3@]T]U 2T-]3@]T]U )*/ )*/ • 2@Z] 2@Z] Gc[C*+.,'*(l. Gc[C*+.,'*(l. ]T]Z@2T-]3 ]T]Z@2T-]3 )*/ )*/ • 2@{ 2@{ +.,'*(l. +.,'*(l. 2T-{3 2T-{3 )*/ )*/ • 2@{U 2@{U +.,'*(l.[C(b*, +.,'*(l.[C(b*, 2T-{3@{T{U 2T-{3@{T{U )*/ )*/ • 2@Z{ 2@Z{ Gc[C*+.,'*(l. Gc[C*+.,'*(l. {|T{Z@2T-{3 {|T{Z@2T-{3 )*/ )*/ • 2@{UI 2@{UI +.,'*(l.[Ok92S +.,'*(l.[Ok92S 2T-{UI3 2T-{UI3 )*/ )*/ • 2@V 2@V +.,'*(l. +.,'*(l. 2T-V3 2T-V3 )*/ )*/ • 2@VU 2@VU +.,'*(l.[C,Gc +.,'*(l.[C,Gc 2T-V3@VTVU 2T-V3@VTVU )*/ )*/ • 2@ZV 2@ZV Gc[C*+.,'*(l. Gc[C*+.,'*(l. VTVZ@2T-V3 VTVZ@2T-V3 )*/ )*/ • 2@VUI 2@VUI +.,'*(l.[Ok92S +.,'*(l.[Ok92S 2T-VUI3 2T-VUI3 )*/ )*/ • F@0 F@0 i%(0D&(l.[C) P i%(0D&(l.[C) P -F3T0 -F3T0 )*/ )*/ • ]@0 ]@0 i%,'*(l. i%,'*(l. -]3T0 -]3T0 )*/ )*/ 7 7 J{} J{} 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, • ]U@0 ]U@0 i%,'*(l.[C,Gc i%,'*(l.[C,Gc -]3T0@]T]U -]3T0@]T]U )*/ )*/ • Z]@0 Z]@0 Gc[C:i%,'*(l. Gc[C:i%,'*(l. ]T]Z@-]3T0 ]T]Z@-]3T0 )*/ )*/ • {@0 {@0 i%,'*(l. i%,'*(l. -{3T0 -{3T0 )*/ )*/ • {U@0 {U@0 i%,'*(l.[C(b*, i%,'*(l.[C(b*, -{3T0@{T{U -{3T0@{T{U )*/ )*/ • Z{@0 Z{@0 Gc[C:i%,'*(l. Gc[C:i%,'*(l. {T{Z@-{3T0 {T{Z@-{3T0 )*/ )*/ • {UI@0 {UI@0 i%,'*(l.[Ok92S i%,'*(l.[Ok92S -{UI3T0 -{UI3T0 )*/ )*/ • V@0 V@0 i%,'*(l. i%,'*(l. -V3T0 -V3T0 )*/ )*/ • VU@0 VU@0 i%,'*(l.[C(b*, i%,'*(l.[C(b*, -V3T0@VTVU -V3T0@VTVU )*/ )*/ • ZV@0 ZV@0 Gc[C:i%,'*(l. Gc[C:i%,'*(l. VTVZ@-V3T0 VTVZ@-V3T0 )*/ )*/ • VUI@0 VUI@0 i%,'*(l.[Ok92S i%,'*(l.[Ok92S -VUI3T0 -VUI3T0 )*/ )*/ • P P +.(Y;9*#O&#ij*,(0o*# +.(Y;9*#O&#ij*,(0o*# 5T-V3 5T-V3 )*/ )*/ • 2@ 2@ ~n&&•*,[C)01 ~n&&•*,[C)01 2T 2T )*/ )*/ • @0 @0 #&•*,[C)01 #&•*,[C)01 T0 T0 )*/ )*/ • 0 0 +.(#1*#,#[C)k€*#=(1&F +.(#1*#,#[C)k€*#=(1&F !T0 !T0 )*/ )*/ • 2 2 fhk€*#=(1&F01(#1*#,# fhk€*#=(1&F01(#1*#,# 2T ! 2T ! )*/ )*/ 8 8 J{} J{} 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, • 2H&#(0':),&2-*U3T2-*3@2-53T5@T2-?3 2H&#(0':),&2-*U3T2-*3@2-53T5@T2-?3 V@@@@ V@@@@ • 2H&#.#G:),&2-*3T2-*U3@2-?3T5@T2-53 2H&#.#G:),&2-*3T2-*U3@2-?3T5@T2-53 V@@@ V@@@ • 2q%1h(0'I%1`2-53T@2-*U3T2-*3@T2-?3 2q%1h(0'I%1`2-53T@2-*U3T2-*3@T2-?3 V@@@@ V@@@@ • 2q%1h.#GI%1`2-?3T@2-*3T2-*U3@T2-53 2q%1h.#GI%1`2-?3T@2-*3T2-*U3@T2-53 V@@@ V@@@ • 2H&#.#G=>#n& 2H&#.#G=>#n& 2-*3T2-*U3@*t5 2-*3T2-*U3@*t5 V@@@ V@@@ • W2#%hB*k•;;:/= W2#%hB*k•;;:/= 2-53 2-?p3 2-53 2-?p3 )*/ )*/ • X X = = a.&S a.&S -=3T -=3 -=3T -=3 • X X = = ]A1&S ]A1&S -=3T5 -=3T5 -=3 -=3 • X X @; @; a.;(E a.;(E E-@;3T E-@;3T )*/ )*/ • X X @; @; :/10X(*E/,=(/0 :/10X(*E/,=(/0 E-@;3T5 E-@;3T5 )*/ )*/ • X X 0@; 0@; X( ()0/s0)c/,=(/0() X( ()0/s0)c/,=(/0() T0-;3 T0-;3 • X X 2@; 2@; X(:)12s0)c()/,=(/0 X(:)12s0)c()/,=(/0 2-;3T 2-;3T )*/ )*/ • a.` a.` T T • ]A1` ]A1` T5 T5 • a.` a.` T T • :/10/,1([/`:1, :/10/,1([/`:1, T5 T5 • V V a.V` a.V` VT VT V V • V V ]A1V` ]A1V` VT5 VT5 V V 9 9 J!•PX J!•PX 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, • #).#z.*,r((•*, #).#z.*,r((•*, T T • fc*,r(&•*, fc*,r(&•*, T5 T5 • a.&SFBc(012f% a.&SFBc(012f% T T • ]A1&SFBc(012f% ]A1&SFBc(012f% T5 T5 • a.&S(0C*;^ a.&S(0C*;^ T T • ]A1&S(0C*;^ ]A1&S(0C*;^ T5 T5 • a.(0)*, a.(0)*, T T • ]A1(0)*, ]A1(0)*, T5 T5 • a.&S`(0)*, a.&S`(0)*, T T • ]A1&S`(0)*, ]A1&S`(0)*, T5 T5 • !#Q*,#n1(k9*, !#Q*,#n1(k9*, )*/ )*/ • ,‚ ,‚ )*/ )*/ • W W W1(),/=/( W1(),/=/( )*/ )*/ 10 10 J!•PX J!•PX [...]... BYTE Đặt byte cho biến CSEG Đoạn mã lệnh DB Định nghĩa các byte hằng DEF Đặt tên ký hiệu cho thanh ghi DEVICE Chỉ định CPU sử dụng DSEG Đoạn dữ liệu DW Định nghĩa các từ (word) hằng ENDMACRO EQU Kết thúc macro Đặt một ký hiệu bằng một biểu thức ESEG Đoạn dữ liệu EEPROM EXIT Thoát từ tập tin www.ptit.edu.vn KỸ THUÂÊT VI XỬ LÝ GIẢNG VIÊN: THS PHẠM THẾ DUY BÔÊ MÔN: ĐIỀU KHIỂN VÀ XỬ LÝ TÍN HIÊÊU... VÀ XỬ LÝ TÍN HIÊÊU 18 6.2.2 Cú pháp các chỉ thị của assembler (tt) • Chỉ thị DEVICE: Chỉ định CPU sử dụng • Cú pháp: DEVICE TênCPU • Ví dụ: DEVICE ATMEGA16 • Chỉ thị DSEG: Cho biết bắt đầu đoạn dữ liệu • Cú pháp: DSEG • Ví dụ: DSEG var1: BYTE 1 table: BYTE tab_size www.ptit.edu.vn KỸ THUÂÊT VI XỬ LÝ ; Start data segment ; reserve 1 byte to var1 ; reserve tab_size bytes GIẢNG VIÊN: THS PHẠM... pháp các chỉ thị của assembler (tt) • Chỉ thị EQU: Gán một giá trị • Cú pháp: EQU label = expression • Ví dụ: EQU io_offset = 0x23 EQU porta = io_offset + 2 • Chỉ thị ESEG: Xác định bắt đầu của đoạn dữ liệu EEPROM • Cú pháp: ESEG • Ví dụ: DSEG ; Start data segment vartab: BYTE 4 ; Reserve 4 bytes in SRAM ESEG eevar: DW 0xff0f ; Initialize one word in EEPROM www.ptit.edu.vn KỸ THUÂÊT VI XỬ LÝ GIẢNG . 2 2 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, 6.1 GIỚI THIỆU TẬP LỆNH AVR 6.1 GIỚI THIỆU TẬP LỆNH AVR !"#$%&'&()'*#+*,-)./01*23 !"#$%&'&()'*#+*,-)./01*23 2 2 4'&(#1*#,#56#)7&6-(%8(#%9&:$*#3 4'&(#1*#,#56#)7&6-(%8(#%9&:$*#3 0 0 4'&(#1*#,#56 4'&(#1*#,#56 ; ; 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, = = 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, 4<*,=>-56?3@&A(#B:C;B%(#D&#<*, 4<*,=>-56E3@&A(#B:C;B%(#D&#<*, 4<*,=>-56E3@&A(#B:C;B%(#D&#<*, ! ! 4<*,=>-563@&A(#B:C;B%(#D&#<*, 4<*,=>-563@&A(#B:C;B%(#D&#<*, F F 4<*,=>-2G,'(0H(%8(#%9&:$*#3@&A(#B:C;B%(#D& 4<*,=>-2G,'(0H(%8(#%9&:$*#3@&A(#B:C;B%(#D& #<*, #<*, I I 4<*,=>-563@&A(#B:C;B%(#D&#<*, 4<*,=>-563@&A(#B:C;B%(#D&#<*, 3 3 8889:;:<=>?@ &A3 )*+ #$ $%&'()*+, J. dụng DSEG Đoạn dữ liệu DW Định nghĩa các từ (word) hằng ENDMACRO Kết thúc macro EQU Đặt một ký hiệu bằng một biểu thức ESEG Đoạn dữ liệu EEPROM EXIT Thoát