Bài giảng Vi xử lý - Chương 3: Họ vi điều khiển 805 (Phần 2) - Hồ Trung Mỹ
ꢁꢔꢕꢖꢆꢗꢘꢙꢚꢆꢛꢜꢆꢝꢞꢔꢟꢠꢆꢡꢢꢣꢆꢛꢚꢤꢥꢆꢁꢦꢆꢧꢨꢖꢙꢩꢆꢪꢫ
ꢬꢭꢆꢮꢯꢙꢆꢋꢔꢕꢙꢆꢛꢰꢆꢱ ꢲꢁꢆꢬꢎꢆꢧꢳꢁꢀꢪ
ꢀꢁꢂꢃꢄꢅꢆꢇ
ꢀ
ꢇꢴꢵꢆꢧꢶꢷꢆꢞꢕꢙꢚꢆꢐꢑꢒꢓ
ꢁ
ꢂꢃꢄꢅꢆꢇꢈꢉ
ꢇꢴꢵꢴꢓꢆꢀꢸꢡꢆꢞꢕꢙꢚꢆꢝꢹꢆꢚꢺꢡ
ꢇꢴꢵꢴꢻꢆꢀꢸꢡꢆꢞꢕꢙꢚꢆꢞꢖꢶꢙꢆꢞꢼ
ꢇꢴꢵꢴꢇꢆꢀꢸꢡꢆꢞꢕꢙꢚꢆꢡꢚꢖꢥꢽꢙꢆꢟꢾꢆꢞꢔꢕꢖ
ꢇꢴꢵꢴꢵꢆꢀꢸꢡꢆꢞꢕꢙꢚꢆꢿꣀꢔꢆꣁꢔꣂꢙꢆꢬooꢞꢠ
ꢇꢴꢵꢴꢒꢆꢀꢸꢡꢆꢞꢕꢙꢚꢆꢨꣃꢆꢙꢚꢸꢙꢚꢆꢡꢚươꢙꢩꢆꢛꢨ꣄ꢙꢚ
ꢇꢴꢵꢴꣅꢆꢪꢭꢛꢆꢝꢹꢆꢛꢚꢘꢆꢟ
ꢊ
ꢋ ꢈꢉꢌꢍꢎꢅꢏꢐꢏꢅꢑꢒ ꢌꢄꢓꢇꢅꢔꢄꢕꢖꢅꢖꢗꢖꢅꢖꢘoꢈꢉꢅꢖꢙꢚꢅꢛꢓꢈꢌ
ꢜ
ꢝꢐꢏꢅꢛꢓꢈꢌꢅꢞꢈꢌꢅꢌꢟꢠꢈꢉꢅꢡꢕꢈꢅꢖꢌꢎꢈꢌꢅꢉꢌꢄꢅ
ꢖꢘꢢꢈꢉꢅꢖꢌꢐꢄꢅꢣꢤꢥꢅꢦꢝYꢧꢅꢨꢩꢧꢅꢪꢝꢫ
ꢬ
ꢓꢴꢆꢧꢮꢆꢛꢛꢆꢡꢸꢡꢆꢞꢕꢙꢚꢆꢝꢹꢆꢚꢺꢡ
ꢦꢉꢄꢞꢅꢭꢮꢅꢯꢰꢬꢀꢅꢔꢱꢄꢅꢖꢌꢢꢏꢌꢅꢎꢈꢌꢅꢀꢁꢅꢲꢳꢴꢫ
ꢵ
ꢽeꢖeꢏꢖꢄꢈꢉꢅꢨꢔeꢘꢷꢛoꢸ
ꢶ ꢂoꢅoꢔeꢘꢷꢛoꢸꢅꢸꢌeꢈꢅꢎꢆꢆꢄꢈꢉꢅꢎꢅꢚoꢭꢄꢖꢄꢔeꢅꢎꢈꢆꢅꢎꢅꢈeꢉꢎꢖꢄꢔeꢅ
ꢈꢇꢹꢺeꢘ
ꢶ ꢂoꢅoꢔeꢘꢷꢛoꢸꢅꢸꢌeꢈꢅꢭꢄꢉꢈꢭꢅꢎꢘeꢅꢖꢌeꢅꢭꢎꢹeꢅꢷoꢘꢅꢭꢇꢺꢖꢘꢎꢏꢖꢄoꢈ
ꢶ ꢨꢔeꢘꢷꢛoꢸꢅoꢏꢏꢇꢘꢭꢅꢸꢌeꢈꢅꢖꢌeꢅꢔꢎꢛꢇeꢅꢎꢷꢷeꢏꢖꢭꢅꢖꢌeꢅꢭꢄꢉꢈꢻ
ꢼ oꢔeꢘꢷꢛoꢸꢅꢸꢌeꢈꢅꢎꢆꢆꢄꢈꢉꢅꢖꢸoꢅꢚoꢭꢄꢖꢄꢔeꢭꢅyꢄeꢛꢆꢭꢅꢎꢅꢈeꢉꢎꢖꢄꢔeꢅ
ꢼ oꢘꢧꢅꢭꢇꢺꢖꢘꢎꢏꢖꢅꢎꢅꢈeꢉꢎꢖꢄꢔeꢅꢷꢘoꢹꢅꢎꢅꢚoꢭꢄꢖꢄꢔeꢅꢎꢈꢆꢅꢉeꢖꢅꢎꢅꢈeꢉꢎꢖꢄꢔe
ꢼ oꢘꢧꢅꢭꢇꢺꢖꢘꢎꢏꢖꢅꢎꢅꢚoꢭꢄꢖꢄꢔeꢅꢷꢘoꢹꢅꢎꢅꢈeꢉꢎꢖꢄꢔeꢅꢎꢈꢆꢅꢉeꢖꢅꢎꢅꢚoꢭꢄꢖꢄꢔe
ꢶ ꢝoꢈꢭꢄꢆeꢘꢅꢖꢌeꢅoꢚeꢘꢎꢖꢄoꢈꢭꢅꢪꢅꢾꢅꢿꢧꢅꢎꢈꢆꢅꢪꢅꢼ ꢿ
ꢼ ꢝꢎꢈꢅoꢔeꢘꢷꢛoꢸꢅoꢏꢏꢇꢘꢅꢄꢷꢅꢿꢅꢄꢭꢅꢰꢅꣀ
ꢼ ꢝꢎꢈꢅoꢔeꢘꢷꢛoꢸꢅoꢏꢏꢇꢘꢅꢄꢷꢅꢪꢅꢄꢭꢅꢰꢅꣀ
ꣁ
ꢨꢔeꢘꢷꢛoꢸꢅꢽeꢖeꢏꢖꢄoꢈ
ꢶ ꢨꢔeꢘꢷꢛoꢸꢻꢅꢖꢌeꢅꢘeꢭꢇꢛꢖꢅꢄꢭꢅꢖooꢅꢛꢎꢘꢉeꢅꢦoꢘꢅꢖooꢅꢭꢹꢎꢛꢛꢫꢅꢖoꢅꢘeꢚꢘeꢭeꢈꢖꢅꢚꢘoꢚeꢘꢛy
ꢼ ꣂꣃꢎꢹꢚꢛeꢻꢅ꣄ ꢯꢅꣅꢅꢅꢜ꣄ꢺꢄꢖꢅꢺꢄꢈꢎꢘyꢅꢈꢇꢹꢺeꢘꢅꣅꢅꣁ
ꢶ ꢥꢌeꢈꢅꢎꢆꢆꢄꢈꢉꢅoꢚeꢘꢎꢈꢆꢭꢅꢸꢄꢖꢌꢅꢆꢄꢷꢷeꢘeꢈꢖꢅꢭꢄꢉꢈꢭꢧꢅoꢔeꢘꢷꢛoꢸꢅꢏꢎꢈꢈoꢖꢅoꢏꢏꢇꢘ
ꢶ ꢨꢔeꢘꢷꢛoꢸꢅoꢏꢏꢇꢘꢭꢅꢸꢌeꢈꢅꢎꢆꢆꢄꢈꢉꢻ
ꢼ ꢁꢅꢚoꢭꢄꢖꢄꢔeꢅꢈꢇꢹꢺeꢘꢭꢅꢎꢈꢆꢅꢖꢌeꢅꢭꢇꢹꢅꢄꢭꢅꢈeꢉꢎꢖꢄꢔe
ꢼ ꢁꢅꢈeꢉꢎꢖꢄꢔeꢅꢈꢇꢹꢺeꢘꢭꢅꢎꢈꢆꢅꢖꢌeꢅꢭꢇꢹꢅꢄꢭꢅꢚoꢭꢄꢖꢄꢔe
ꢼ ꢝꢎꢘꢘyꢅꢄꢈꢖoꢅꢲꢤꢿꢅ ꢝꢎꢘꢘyꢅoꢇꢖꢅoꢷꢅꢲꢤꢿ
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
7
3
1
0
1
0
1
1
0
1
1
–4
– 5
+
+
– 6
7
ꢯ
ꢝꢐꢏꢅꢛꢓꢈꢌꢅꢪꢽꢽ
add a, byte
addc a, byte
; a ꢀ a + byte
; a ꢀ a + byte + C
ꢝꢐꢏꢅꢛꢓꢈꢌꢅꢈyꢅꢞꢈꢌꢅꢌꢟꢠꢈꢉꢅꢊꢅꢺꢄꢖꢅꢖꢘoꢈꢉꢅꢣꢤꢥꢻ
ꢝꢅꢅꢀꢅꢈꢕꢇꢅꢑꢕꢖꢅꢇꢞꢅꢏꢃꢈꢉꢅꢅ
ꢪꢝꢅꢅꢀꢅꢈꢕꢇꢅꢏꢅꢈꢌꢱꢅꢖꢢꢄꢅꢺꢄꢖꢅꢊ
ꢨꢩꢅꢅꢀꢅꢈꢕꢇꢅꢏꢅꢈꢌꢱꢅꢖ꣎ꢅꢺꢄꢖꢅꣁꢅꢹꢅꢑꢌ꣏ꢈꢉꢅꢖ꣎ꢅꢺꢄꢖꢅꢵꢅꢅ
ꢌo꣐ꢏꢅꢈꢉꢟ꣑ꢏꢅꢛꢢꢄ꣒
꣓
꣔ꢓꢈꢌꢅꢪꢽꢽꢅꢔ ꢤ꣕ꢿꢿ
ADDA, Source ;A=A+SOURCE
ADDA,#6
ADDA,R6
ADD
;A=A+6
;A=A+R6
A,6
;A=A+[6] or A=A+R6
;A=A+[0F3H]
ADD
A,0F3H
SUBB A, Source ;A=A-SOURCE-C
SUBB
SUBB
A,#6
A,R6
;A=A-6-(CY)
ꢀꢰ
;A=A-R6-(CY)
ꢤꢇꢺꢖꢘꢎꢏꢖꢅ
subtract with borrow
;A ꢀ A – 4F – C
SUBB A, byte
Example:
SUBB A, #0x4F
Notice that
There is no subtraction WITHOUT borrow.
Therefore, if a subtraction without borrow is desired,
it is necessary to clear the C flag.
Example:
Clr c
SUBB A, #0x4F
;A ꢀ A – 4F
ꢀꢀ
꣖ꢌ꣗ꢅꢆ꣘ꢅꢔꢱꢄꢅꢪꢽꢽ
mov a, #3FH
add a, #0D3H
ꢶ ꢝꢌoꢅꢺꢄꢕꢖꢅꢏꢐꢏꢅꢉꢄꢐꢅꢖꢘ꣙ꢅ
ꢏꢎꢅꢏꢐꢏꢅꢏꢅꢝꢧꢅꢪꢝꢅꢔꢅ
ꢨꢩꢅꢭꢎꢇꢅꢑꢌꢄꢅꢛꢓꢈꢌꢅꢖꢌꢅ
ꢌꢎꢄꢅꢡꢟ꣑ꢏꢅꢖꢌꢏꢅꢖꢌꢄꣀ
0011 1111
1101 0011
0001 0010
C = 1
AC = 1
OV = 0
ꢀꢁ
ꢝꢃꢈꢉꢅꢏꢅꢆꢇꢅꢔꢅꢖꢘꢈꢅꢦꢨꢩꢫ
0111 1111 (positive 127)
2’s complement:
0000 0000 00 0
…
0111 0011 (positive 115)
1111 0010 (overflow
cannot represent 242 in 8
bits 2’s complement)
0111 1111 7F 127
1000 0000 80 -128
…
1000 1111 (negative 113)
1101 0011 (negative 45)
0110 0010 (overflow)
1111 1111 FF -1
0011 1111 (positive)
1101 0011 (negative)
0001 0010 (never overflows)
ꢀꢊ
ꢽeꢏꢄꢹꢎꢛꢅꢪꢆꢇꢭꢖ
DA a
; decimal adjust a
꣕ꢭeꢆꢅꢖoꢅꢷꢎꢏꢄꢛꢄꢖꢎꢖeꢅꢿꢝꢽꢅꢎꢆꢆꢄꢖꢄoꢈ꣒ꢅ
ꢪꢆꢆꢭꢅ꣠ꢵ꣡ꢅꢖoꢅeꢄꢖꢌeꢘꢅꢌꢄꢉꢌꢅoꢘꢅꢛoꢸꢅꢈꢄꢺꢺꢛeꢅꢎꢷꢖeꢘꢅꢎꢈꢅꢎꢆꢆꢄꢖꢄoꢈꢅ
ꢖoꢅꢏꢘeꢎꢖeꢅꢎꢅꢔꢎꢛꢄꢆꢅꢿꢝꢽꢅꢈꢇꢹꢺeꢘ꣒
ꣂꣃꢎꢹꢚꢛeꢻ
mov a, #23h
mov b, #29h
add a, b
; a ꢀ 23h + 29h = 4Ch (wanted
52)
DA a
; a ꢀ a + 6 = 52
ꢀꢜ
꣖ꢌ꣗ꢅꢆ꣘ꢻꢅꢝꢃꢈꢉꢅꢁꢅꢭ꣢ꢅꢿꢝꢽ
ꢦꢹ꣣ꢄꢅꢭ꣢ꢅꢏꢅꢜꢅꢑꢒꢅꢭ꣢ꢫ
ꢲꢨꢩ
ꢪꢧꢅꢜꢊꢳ
꣤ꢅꢈꢇꢹꢀꢅꢠꢅꢏꢐꢏꢅ꣏ꢅꢈꢌꢱꢅꢜꢰꢧꢅꢜꢀꢳ
ꢪꢽꢽ
ꢪꢧꢅꢜꢀꢳꢅ ꣤ꢅꢈꢇꢹꢁꢅꢠꢅꢏꢐꢏꢅ꣏ꢅꢈꢌꢱꢅꢜꢁꢧꢅꢜꢊꢳ
ꢪꢅꢅꢅ ꣤ꢅꢑꢕꢖꢅꢇꢞꢅꢡ꣐ꢖꢅꢠꢅꢏꢐꢏꢅ꣏ꢅꢈꢌꢱꢅꢜꢰꢧꢅꢜꢀꢳ
ꢜꢀꢳꢧꢅꢪ
ꢽꢪ
ꢲꢨꢩ
C
ꢲꢨꢩ
ꢪꢧꢅꢜꢁꢳ
40H, 41H
42H, 43H
1234
+ 5678
-------------
(AC)
ꢪꢽꢽꢝ ꢪꢧꢅꢜꢰꢳ
ꢽꢪ
ꢪ
ꢲꢨꢩ
ꢜꢰꢳꢧꢪ
112
6912
ꢀꢬ
꣖꣗ꢈꢌꢅ꣥ꢅꢅ꣦ꢅꢾꢅY
꣖ꢌ꣗ꢅꢆ꣘ꢻ ꣖꣗ꢈꢌꢅ꣥ꢅꢅ꣦ꢅꢾꢅYꢅꢔꢱꢄꢅ꣥ꢧꢅ꣦ꢧꢅYꢅꢛꢅꢭ꣢ꢅꢀꢅꢺyꢖeꢅꢖꢘoꢈꢉꢅ꣧ꢪꢲꢅꢈꢃꢄ꣒ꢅ
꣨ꢄꢞꢅꢭꢮꢅ꣦ꢅꢡꢟ꣑ꢏꢅꢏꢖꢅꢠꢅꢜꢰꢳꢧꢅYꢅꢠꢅꢜꢀꢳꢧꢅꢔꢅ꣥ꢅꢠꢅꢜꢁꢳ꣒
ꢝꢐꢏꢌꢅꢀꢻ
ꢲꢨꢩ ꢪꢧꢅꢜꢰꢌ
ꢪꢽꢽ ꢪꢧꢅꢜꢀꢌ
ꢲꢨꢩ ꢜꢁꢌꢧꢅꢪ
ꢝꢐꢏꢌꢅꢁꢻ
꣦
Y
꣥
ꣂ꣩꣕ ꢜꢰꢌ
ꣂ꣩꣕ ꢜꢀꢌ
ꣂ꣩꣕ ꢜꢁꢌ
ꢲꢨꢩ ꢪꢧꢅ꣦
ꢪꢽꢽ ꢪꢧꢅY
ꢲꢨꢩ ꣥ꢧꢅꢪ
ꢀꢵ
ꢝꢃꢈꢉꢅꢁꢅꢭ꣢ꢅꢀꢵꢅꢺꢄꢖ
꣖ꢌ꣗ꢅꢆ꣘ꢻ ꢝꢃꢈꢉꢅꢁꢅꢭ꣢ꢅꢀꢵꢅꢺꢄꢖꢅꢩꢎꢘ꣦ꢅꢔꢅꢩꢎꢘYꢅꢦꢏꢅꢡ꣙ꢎꢅ
ꢏꢌ꣪ꢅꢛꢅ꣧ꢪꢲꢅꢈꢃꢄꢫ꣒ꢅꢝꢖꢅꢑꢕꢖꢅꢇꢞꢅꢔoꢅꢩꢎꢘ꣦꣒
꣤ꢅꢝꢐꢏꢅꢭ꣢ꢅꢀꢵꢅꢺꢄꢖꢅꢏꢖꢅꢠꢅꢩꢎꢘ꣦ꢅꢔꢅꢩꢎꢘ꣦ꢾꢀꢧꢅꢩꢎꢘYꢅꢔꢅꢩꢎꢘYꢾꢀ
ꢲꢨꢩ ꢪꢧꢅꢩꢎꢘ꣦
ꢪꢽꢽ ꢪꢧꢅꢩꢎꢘY
ꢲꢨꢩ ꢩꢎꢘ꣦ꢧꢅꢪ
ꢲꢨꢩꢅ ꢪꢧꢅꢩꢎꢘ꣦ꢾꢀ
ꢪꢽꢽꢝ ꢪꢧꢅꢩꢎꢘYꢾꢀ
ꢏꢃꢈꢉꢅꢖꢘꢟꢱꢏ
꣤ꢅꢛyꢅꢺyꢖeꢅꢖꢌꢚ
꣤ꢅꢏꢃꢈꢉꢅꢏꢐꢏꢅꢺyꢖeꢅꢖꢌꢚ
꣤ꢅꢏꢖꢅꢺyꢖeꢅꢖꢌꢚ
꣤ꢅꢛyꢅꢺyꢖeꢅꢏꢎo
꣤ꢅꢏꢃꢈꢉꢅꢏꢅꢈꢌꢱꢅꢏꢎꢅꢚꢌ꣫ꢚꢅ
ꢲꢨꢩ ꢩꢎꢘ꣦ꢾꢀꢧꢅꢪ
꣤ꢅꢏꢖꢅꢑꢕꢖꢅꢇꢞ
ꢀꣁ
꣬ꢈꢏꢘeꢹeꢈꢖꢅꢎꢈꢆꢅꢽeꢏꢘeꢹeꢈꢖ
INC A
increment A
INC byte
INC DPTR
DEC A
increment byte in memory
increment data pointer
decrement accumulator
decrement byte
DEC byte
ꢶ ꣖ꢌeꢅꢄꢈꢏꢘeꢹeꢈꢖꢅꢎꢈꢆꢅꢆeꢏꢘeꢹeꢈꢖꢅꢄꢈꢭꢖꢘꢇꢏꢖꢄoꢈꢭꢅꢆoꢅꢂꢨ꣖
ꢎꢷꢷeꢏꢖꢅꢖꢌeꢅꢝꢅꢷꢛꢎꢉ꣒
ꢶ ꢂoꢖꢄꢏeꢅꢸeꢅꢏꢎꢈꢅoꢈꢛy ꣬ꢂꢝ꣧ꣂꢲꣂꢂ꣖ꢅꢖꢌeꢅꢆꢎꢖꢎꢅꢚoꢄꢈꢖeꢘꢧꢅ
ꢈoꢖꢅꢆeꢏꢘeꢹeꢈꢖ꣒
ꢀꢯ
꣔ꢓꢈꢌꢅ꣬ꢂꢝꢅꢔꢅꢽꣂꢝ
DEC byte ;byte=byte-1
INC byte ;byte=byte+1
INC
R7
A
DEC
DEC
40H
; [40]=[40]-1
ꢀ꣓
꣔ꢓꢈꢌꢅꢽꣂꢝ
ꢝꢌ꣭ꢅꢒꢅꢔꢱꢄꢅꢽꢣ꣖꣧ꢅꢏꢌ꣪ꢅꢏꢅꢛꢓꢈꢌꢅ꣬ꢂꢝꢅꢏ꣮ꢈꢅꢛꢓꢈꢌꢅꢽꣂꢝꢅꢖꢌ꣯ꢅ
ꢑꢌ꣏ꢈꢉꢅꢏ꣒ꢅꢽoꢅꢡꢅꢹꢇ꣢ꢈꢅꢖꢌꢏꢅꢌꢄꢓꢈꢅꢔꢄꢓꢏꢅꢉꢄꢞꢹꢅꢽꢣ꣖꣧ꢅꢡꢄꢅ
ꢀꢅꢖꢌ꣯ꢅꢖꢎꢅꢚꢌꢞꢄꢅꢭꢮꢅꢆ꣘ꢈꢉꢅꢏꢌꢇ꣣ꢄꢅꢛꢓꢈꢌꢅꢭꢎꢇ
ꢲEꢀ ꢲꢳ
ꢆꢅꢔꢮꢆꣁꢥꢛꢠꢆꢛꢚꢷꢆꢡꢢꢣꢆꢲꢳꢧꢆꢗꢔꢆꢓ
ꢆꢡꢚ꣐ꢷꢆꢿ꣑oꢆ꣎
ꢪOꢉ ꣎꣏ꢆꢲꢳꢆ
ꢀ꣒ꢄE ꣎꣏ꢆ꣓ꢑ꣔꣔ꢁ꣏ꢆ꣕ꢎꢊꢳꢆꢆꢄꣂꢖꢆꢛꢨ꣑ꢙꢆꢟưꣀꢔꢆꢛꢚ꣑ꢙꢚꢆ꣔꣔ꢆꢛꢚ꣄ꢆꢷꢚꢔꢆꢮư꣖ꢙ
ꢲEꢀ ꢲꢳꢁ ꢆꢟoꢆꢗꢆꢡ꣗ꢙꢩꢆꢷꢚꢔꢆꢩꢔꢮꢆꣁꢥꢛꢠꢆꢡꢣoꢆꢗꢔꢆꢓ
꣕ꢎꢊꢳ꣘ꢆ ꣙ꢛꢔꣂꢷꢆꢛꢡ
꣖ꢎꢅꢚꢌꢞꢄꢅꢉꢄꢞꢹꢅꢡꢄꢅꢀꢅꢘꢄ꣰ꢈꢉꢅꢏꢌoꢅꢏꢐꢏꢅꢺyꢖeꢅꢏꢎoꢅꢔꢅꢺyꢖeꢅꢖꢌꢚꢅ
ꢏꢎꢅꢽꢣ꣖꣧꣤ꢅꢖꢇyꢅꢈꢌꢄ꣰ꢈꢅꢺyꢖeꢅꢏꢎoꢅꢦꢽꢣꢳꢫꢅꢏꢌ꣪ꢅꢺ꣙ꢅꢉꢄꢞꢹꢅꢈꢕꢇꢅ
ꢺyꢖeꢅꢖꢌꢚꢅꢦꢽꢣ꣔ꢫꢅꢖꢘꢈꢅꢆꢟꢱꢄꢅꢖ꣎ꢅꢰꢰꢳꢅꢭꢎꢈꢉꢅꢳ꣒
ꢁꢰ
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý - Chương 3: Họ vi điều khiển 805 (Phần 2) - Hồ Trung Mỹ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_vi_xu_ly_chuong_3_ho_vi_dieu_khien_805_phan_2_ho_t.pdf

