Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
------------------------------------------------------------------
ЊҐв®¤ЁзҐбЄ®Ґ Ї®б®ЎЁҐ Є
« Ў®а в®ал¬ а Ў®в ¬
Ї® Єгабг ќ«ҐЄва®лҐ ўлзЁб«ЁвҐ«млҐ ¬ иЁл
1999 Ј
-------------------------------------------------------------------
ЋЈ« ў«ҐЁҐ.
I. ‘Ћ„…ђ†ЂЌ€… ‹ЂЃЋђЂ’ЋђЌ›• ђЂЃЋ’.........................
II. Ѓ §®ў п аеЁвҐЄвга ...............................
2.1. ЋаЈ Ё§ жЁп Ї ¬пвЁ............................
2.2. ’ЁЇл ¬ иЁле ¤ ле..........................
2.3. ‘ Ё б в Ґ ¬ Є ® ¬ ¤ MCS51 ...
2.4. ‚Ёавг «мл© Ў«®Є ®Ўа Ў®вЄЁ ¤ ле.
2.5. “Їа ў«ҐЁҐ ЇаҐалў Ёп¬Ё
ЏаЁ¬Ґал Їа®Ја ¬¬Ёа®ў Ёп
III. Ља®бб-б।бвў Їа®Ја ¬¬Ёа®ў Ёп Ё ®в« ¤ЄЁ ..
3.1. ЂбᥬЎ«Ґа AVA51 ............................
3.2. ‘Ё¬г«пв®а avsim51 ..............
IV. €§¬ҐаҐЁҐ Ё Є®ва®«м ўаҐ¬Ґле ЁвҐаў «®ў
4.1. ’ ©¬Ґал ’Њ0 Ё ’Њ1.
4.2. ’ ©¬Ґа ’Њ2.
1. €§¬ҐаҐЁҐ ЁвҐаў «®ў в ©¬Ґа®¬.
2. €§¬ҐаҐЁҐ ЁвҐаў «®ў § еў в®¬.
‹€’…ђЂ’“ђЂ..............................................
I. ‘Ћ„…ђ†ЂЌ€… ‹ЂЃЋђЂ’ЋђЌ›• ђЂЃЋ’.
ЊЁЄа®Є®ва®««Ґа (¬ЁЄа®ќ‚Њ) MCS51 дЁа¬л Intel пў«пҐвбп ¤Ґ-д Єв®
бв ¤ а⮬ ¤«п Їа®¬ли«Ґле ЇаЁ¬ҐҐЁ©. ЊЁЄа®Є®ва®««Ґа ᮤҐа¦Ёв
Їа®жҐбб®а CPU, ўгваҐоо ॣЁбва®ўго Ї ¬пвм ¤ ле RAM, в ©¬Ґал
TM0,TM1 Ї а ««Ґ«млҐ 8-а §ап¤лҐ Ї®авл P0,P1,P2,P3.
‚ҐйҐҐ а биЁаҐЁҐ ¬ЁЄа®Є®ва®««Ґа - Ї ¬пвм Їа®Ја ¬¬ XROM Ё
Ї ¬пвм ¤ ле XRAM.
2/ ‘®¤Ґа¦ ЁҐ а Ў®в:
‡ Є®¬бвў® б аеЁвҐЄвга®© ¬ЁЄа®Є®ва®««Ґа , Їа®Ја ¬¬Ёа®ў ЁҐ
бᥬЎ«ҐаҐ, а Ў®в б бЁ¬г«пв®а®¬.
‚лЇ®«ҐЁҐ § ¤ Ё© Ї® ®Ўа §жг - аЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ,
ЇаҐ®Ўа §®ў ЁҐ бЁ¬ў®«м®© Ёд®а¬ жЁЁ ў Ї ¬пвЁ Є®ва®««Ґа ,
«®ЈЁзҐбЄ®Ґ гЇа ў«ҐЁҐ б ЁбЇ®«м§®ў ЁҐ¬ ¬®¤Ґ«Ё Є®Ґз®Ј®
ўв®¬ в , Їа®Ја ¬¬Ёа®ў ЁҐ ўЁавг «м®© ¬ иЁл ў ¬ Єа® бᥬЎ«ҐаҐ,
ўлзЁб«ҐЁҐ б ¬ бив ЎЁа®ў ЁҐ¬.
II. Ѓ §®ў п аеЁвҐЄвга
ЂаеЁвҐЄвгаг ЊЉЉ (ЇаЁжЁЇл ®аЈ Ё§ жЁЁ Ё дгЄжЁ®Ёа®ў Ёп)
ва ¤ЁжЁ®® ЇаҐ¤бв ў«пов ¬®¤Ґ«мо Ї®«м§®ў ⥫п-Їа®Ја ¬¬Ёбв
б।бвў ¬Ё ¬ иЁ®Ј® п§лЄ бᥬЎ«Ґа .
ЂбᥬЎ«Ґа ЁбЇ®«м§гҐвбп Є Є п§лЄ бЁ¬ў®«ЁзҐЄ®Ј® ®ЇЁб Ёп
бЁбвҐ¬л Є®¬ ¤, ®аЈ Ё§ жЁЁ Ї ¬пвЁ, Є Є «Ј®аЁв¬ЁзҐбЄЁ© п§лЄ
ў ЇаЁЄ« ¤ле Їа®Ја ¬¬ е. ЏаЁ ®ЇаҐ¤Ґ«ҐЁпе ў ¤ ®¬ а §¤Ґ«Ґ
ЁбЇ®«м§говбп б।бвў бᥬЎ«Ґа AVЂ51.
2.1. ЋаЈ Ё§ жЁп Ї ¬пвЁ.
Џ ¬пвм ЊЉЉ а §¤Ґ«пҐвбп ўгваҐоо Ё ўҐиоо, Ї ¬пвм ¤ ле
Ё Їа®Ја ¬¬, Ї ¬пвм а §¤Ґ«пҐвбп Ї® вЁЇ ¬ ў § ўЁбЁ¬®бвЁ ®в бЇ®б®Ў
¤®бвгЇ - ¤аҐб жЁЁ. ‚ бᥬЎ«ҐаҐ ЇаҐ¤гᬮваҐл ®ЇЁб Ёп а §«Ёзле
вЁЇ®ў Ї ¬пвЁ ў ўЁ¤Ґ ᥣ¬Ґв®ў, ЇаЁ а бЇаҐ¤Ґ«ҐЁЁ Ї ¬пвЁ
Є®¬ЇЁ«пв®а ®ЎкҐ¤ЁпҐв ®¤®Ё¬ҐлҐ ᥣ¬Ґвл ў ҐЇаҐалўлҐ
®Ў« бвЁ Ї ¬пвЁ.
1. 8-а §ап¤лҐ а Ў®зЁҐ ॣЁбвал б Ґпўл¬ ¤®бвгЇ®¬
- ЄЄг¬г«пв®а(a), b,
2. Ђ¤аҐб®Ґ Їа®бва бвў® ўҐиҐ© Ї ¬пвЁ Їа®Ја ¬¬ - SEG CODE(64 ЄЎ),
¬®¦Ґв Ўлвм б®ў¬ҐйҐ® б ўҐиҐ© Ї ¬пвмо ¤ ле SEG XDATA (64 ЄЎ).
- ҐЇ®б।бвўҐлҐ ¤ лҐ # ў Є®¬ ¤ е,
mov a,#55h mov b,#44
- Ё¤ҐЄбл© ¤®бвгЇ Є в Ў«Ёзл¬ ¤ л¬
SEG CODE
org 8000h ; з «мл© ¤аҐб Є®¤
jmp start
mem db 'abcde' ;в Ў«Ёж ASCII Є®¤®ў
start: mov dptr,#mem ;Ў §®ўл© ¤аҐб mem ў ¤аҐбл© аҐЈЁбва dptr
movc a,@a+dptr ;¬Ґ¬®Є®¤ @a+dptr ®Ў®§ з Ґв бЇ®б®Ў
;д®а¬Ёа®ў Ёп ¤аҐб б Ё¤ҐЄб®¬ ў acc
;Ё Ў §®© ў dptr
movc a,@a+pc ;з⥨Ґ Ў ©в Ї® Ё¤ҐЄбг ў acc
;б Ў §®©, б®ўЇ ¤ о饩 б ⥪гйЁ¬ ¤аҐб®¬
; Є®¬ ¤л ў Їа®Ја ¬¬®¬ бзҐвзЁЄҐ PC
Љ®¬ ¤л Їа®Ја ¬¬л ЇаҐ¤бв ў«Ґл ¤ў®Ёзл¬Ё Є®¤ ¬Ё ¤«Ё®©
1-3 Ў ©в Ё ¤®бвгЇл ЇаЁ ЁбЇ®«ҐЁЁ Їа®Ја ¬¬л Є®бўҐ® Ї®
¤аҐб®¬г ॣЁбваг PC. ЌҐпў® ўлЎ®аЄ Є®¬ ¤ ўлЇ®«пҐвбп
Ї®б«Ґ¤®ў вҐ«м® Ї® бзҐвзЁЄг PC+ б ўв®ЁЄаҐ¬Ґв®¬,
Ё§¬ҐҐЁҐ Ї®ап¤Є б«Ґ¤®ў Ёп Є®¬ ¤ Їа®Ёб室Ёв Ї® Є®¬ ¤ ¬
ЎҐ§гб«®ў®Ј® Ё гб«®ў®Ј® ЇҐаҐе®¤ .
Љ®¬ ¤л ЎҐ§гб«®ў®Ј® ЇҐаҐе®¤ jmp,call
ў § ўЁбЁ¬®бвЁ ®в ЁвҐаў « ўҐвў«ҐЁп Є®¬ЇЁ«Ёаговбп Є Є
ljmp,lcall - ¤«Ёл© ¤аҐб 2 Ў ©в , sjmp - ®в®бЁвҐ«мл© ¤аҐб
1 Ў ©в, ajmp,acall -Є®а®вЄЁ© ¤аҐб 10 ЎЁв,
call met ;ЇҐаҐе®¤ Є Ї®¤Їа®Ја ¬¬Ґ met
;Їа®¤ўЁгвл© ¤аҐб б«Ґ¤го饩 Є®¬ ¤л
;Ё§ ђ‘ § Ї®¬Ё Ґвбп ў б⥪Ґ ў®§ўа в®ў
ret ;ў®§ўа в Ё§ Ї®¤Їа®Ја ¬¬л -
; ¤аҐб ў ђ‘ ў®ббв ў«Ёў Ґвбп Ё§ б⥪
Љ®¬ ¤ дгЄжЁ® «м®Ј® ўҐвў«ҐЁп jmp @a+dptr
SEG CODE
mov dptr,#mem
mov a,#2
jmp @a+dptr ;дгЄжЁ® «м®Ґ ўҐвў«ҐЁҐ б Ё¤ҐЄб®¬ ў acc
;dptr ᮤҐа¦Ёв Ў §®ўл© ¤аҐб в Ў«Ёжл mem
; a+dptr=mem+2->pc
mem: ajmp m1
ajmp m2
ajmp m3
Љ®¬ ¤л гб«®ў®Ј® ЇҐаҐе®¤
jz met1 ;ЇҐаҐе®¤ Ї® Ќ“‹ћ ў acc
jnz met2 ;ЇҐаҐе®¤ Ґб«Ё acc Ґ а ўҐ Ќ“‹ћ
jc met3 ;ЇҐаҐе®¤ Ї® ЇаЁ§ Єг ‘
jnc met4
jb acc.0,met5 ;ЇҐаҐе®¤ Ґб«Ё ЎЁв acc.0 Ґ¤ЁЁж
jnb acc.5,met6 ;ЇҐаҐе®¤ Ґб«Ё ЎЁв acc.5 г«м
jbc acc.7,met7 ;ЇҐаҐе®¤ Ґб«Ё ЎЁв acc.7 Ґ¤ЁЁж
;бЎа®б ЎЁв
djnz r0,met8 ;ЇҐаҐ©вЁ Ґб«Ё ri-1 Ґ а ў® Ќ“‹ћ
djnz mem,met9 ;ЇҐаҐ©вЁ Ґб«Ё mem ў IRAM а ў® Ќ“‹ћ
;Ё ўлзҐбвм Ґ¤ЁЁжг Ё§ п祩ЄЁ mem
cjne ri,#d,met ;Ї®ўв®аЁвм Ї®Є ri Ґ а ў® #d
cjne @rj,#d,met
3. ђҐЈЁбвал бЇҐжЁ «мле дгЄжЁ©, ¤®бвгЇлҐ Ї® ¤аҐбг(80h-ffh) Ё
Ї® Ё¬Ґ ¬ ў бᥬЎ«ҐаҐ ЁбЇ®«м§говбп ў ®б®ў®¬ ¤«п
гЇа ў«ҐЁп ЇҐаЁдҐаЁ©л¬Ё б奬 ¬Ё
acc, b, sp, p0, p1, ...,(mov acc,b)
4. ‚гваҐпп Ї ¬пвм ¤ ле RAM(00-0ffh)-256 Ў ©в.
‚гваҐп Ї ¬пвм RAM б®бв®Ёв Ё§ ҐбЄ®«мЄЁе ®Ў« б⥩, Є®в®алҐ
а §«Ёз овбп ¤аҐб жЁҐ©.
a) ЂЄвЁўл© ॣЁбва®ўл© Ў Є Ё§ 8 Ў ©в®ў б ¤аҐб ¬Ё 00-07 ў RAM -
- ў бᥬЎ«ҐаҐ Ї® Ё¬Ґ ¬ r0,r1, ... r7,
( mov a,r0 mov r0,r1 )
ЏбҐў¤®Є®¬ ¤®© бᥬЎ«Ґа USING 0 (1,2,3) ЄвЁўЁ§ЁагҐвбп ®¤Ё
Ё§ 4 Ї®б«Ґ¤®ў ⥫мле Ў Є®ў ॣЁбва®ў, б®ў¬ҐйҐле б ¤аҐб ¬Ё
0-1fh ўгв॥© RAM. Џ® 㬮«з Ёо ЄвЁўл¬ Ў Є®¬ бзЁв Ґвбп
Ў Є 0 - ўв®¬ вЁзҐбЄЁ १ҐаўЁагҐвбп ЇаЁ а бЇаҐ¤Ґ«ҐЁЁ Ї ¬пвЁ
бᥬЎ«Ґа®¬.
b) Ћб®ў п ўгваҐпп Ї ¬пвм ¤ ле
SEG IDATA - б Є®бўҐ®© ¤аҐб жЁҐ© 0-0ffh Ё«Ё SEG DATA
б Їаאַ© ¤аҐб жЁҐ© 0-7fh:
- ¤®бвгЇ Є Ў ©вг Ї® Їаאַ¬г ¤аҐбг(0-7fh)
SEG DATA
; Ў ©вл 0-07 Ї® 㬮«з Ёо १ҐаўЁаговбп Ї®¤ 0 Ў Є r0-r7
dseg at 30h ;гбв ®ўЁвм з «мл© ¤аҐб а §¬ҐйҐЁп ᥣ¬Ґв
mem: ds 5 ;®Ў« бвм Ї ¬пвЁ б ¬ҐвЄ®© mem а §¬Ґа®¬ 5 Ў ©в
seg code
mov mem+2*2,dat+2 ;ЇҐаҐб« вм 3Ё© Ў ©в Ё§ в Ў«Ёжл
;dat ў 5го п祩Єг mem,
- ®Ўа йҐЁп Є ¤ л¬ ў ᥣ¬ҐвҐ IDATA б Є®бўҐ®© ¤аҐб жЁҐ©
@r0 Ё«Ё @r1 (00-0ffh), Є®¬ЇЁ«пв®а ЇаҐ¤гЇаҐ¦¤ Ґв (warning)
Ґб«Ё ў н⮬ ᥣ¬ҐвҐ ®иЁЎ®з® ЁбЇ®«м§гҐвбп ЇаאַҐ ®Ўа 饨Ґ
Є ¤ л¬.
SEG IDATA
iseg at 80h ; з «® ᥣ¬Ґв c Є®бўҐ®© ¤аҐб жЁҐ©
imem ds 5 ;ўл¤Ґ«ҐЁҐ Ї ¬пвЁ 5 Ў ©в
seg code
mov r0,#imem+2
mov a,@r0
mov a,imem (warning)
c) Џ®«Ґ ЎЁв, ᥣ¬Ґв SEG BIT - ¤®бвгЇ Є ЎЁв ¬ Ї® ¤аҐбг (00-7fh),
б®ў¬Ґй Ґвбп б ЎЁв ¬Ё ў п祩Є е 20H-2fh seg DATA,
¤аҐб ЎЁв®ў 80-ffh - ЎЁвл sfr ॣЁбва®ў.
ЃЁвл SFR ॣЁбва®ў ¤®бвгЇл Ї® Ё¬Ґ ¬ T0,T1,C,.. Ё«Ё
Ї® ®в®бЁвҐ«мл¬ ¤аҐб ¬ P1.0, ...,ACC.7.
SFR ॣЁбвал MCS51 б Ї®ЎЁв®ўл¬ ¤®бвгЇ®¬ - ACC,B,TCON,P1,SCON,
P2,IE,P3,PSW.
SEG BIT
bseg at 20h ; з «® ᥣ¬Ґв
bita ds 10h ;Ї®«Ґ ЎЁв 00-10h
reg ds 8 ;ॣЁбва 8 ЎЁв
seg code
x1 equ acc.5 ;®ЇаҐ¤Ґ«ҐЁҐ бЁ¬ў®« ¤аҐб®¬ ЎЁв
x2 bit acc.5+3
mov c,x1
mov bita+2,c
d) ‘⥪ ®ЇаҐ¤Ґ«пҐвбп Є Є ®Ў« бвм ᥣ¬Ґв IDATA(0-0ffh),
Ї®«®¦ҐЁҐ ўҐаиЁл Ё§¬ҐпҐвбп § Јаг§Є®© ¤аҐб ў гЄ § ⥫м
б⥪ SP (mov sp,#30h),
seg idata
dseg at 80h ;гбв ®ўЁвм Ўб®«овл© ¤аҐб з « ᥣ¬Ґв
stack ds 10h ;б⥪ а §¬Ґа®¬ 10h Ў ©в
seg code
mov sp,#stack-1 ;гбв ®ўЁвм Ў §г б⥪
push acc ;§ Јаг§Є Ў ©в ў б⥪ +SP c ЇаҐЁЄаҐ¬Ґв®¬ SP
pop r0 ;з⥨Ґ Ў ©в Ё§ б⥪ SP- c Ї®б⤥ЄаҐ¬Ґв®¬ SP
4. ‚Ґипп Ї ¬пвм ¤ ле XDATA 64 ЄЎ ©в ,
16-а §ап¤л© ¤аҐб д®а¬ЁагҐвбп «ЁЎ® ў бЇҐжЁ «м®¬
¤аҐб®¬ ॣЁбвॠdptr Ё ЁбЇ®«м§гҐвбп ў Є®¬ ¤ е movx a,@dptr,
movx @dptr,a,
«ЁЎ® ў Є®¬ ¤Ґ movx a,@r0 Ї®¤а §г¬Ґў Ґвбп ¤аҐб p2.@rj -
бв аиЁ© Ў ©в ¤аҐб ў ॣЁбвॠђ2, ¬« ¤иЁ© - ў ॣЁбвॠr0 Ё«Ё r1.
ЋЎ¬Ґ Їа®Ёб室Ёв Ў ©в ¬Ё.
SEG XDATA
xseg at 8000h ;ᬥ饨Ґ ¤аҐб ў Є®ва®««ҐаҐ
mem ds 10h
SEG CODE
mov dptr,#mem ; ¤аҐб ў ¤аҐб®¬ ॣЁбваҐ
movx a,@dptr
mov dptr,#mem+5
mov a,#33h
movx @dptr,a
2.2. ’ЁЇл ¬ иЁле ¤ ле.
Њ иЁлҐ вЁЇл ¤ ле ¬ЁЄа®Є®ва®««Ґа е а ЄвҐаЁ§говбп:
1) ¬®¦Ґбвў®¬ § 票©, Є®в®алҐ ®ЇаҐ¤Ґ«повбп д®а¬ в ¬Ё ¤ ле.
”®а¬ в ¤ ле ўЄ«оз Ґв бЇ®б®Ў ¤ў®Ёз®Ј® Є®¤Ёа®ў Ёп, а §а冷бвм
Ё бвагЄвгаг ¤ў®Ёз®Ј® Є®¤ ,
2) ¤®ЇгбвЁ¬л¬Ё ®ЇҐа жЁп¬Ё пў«повбп в®«мЄ® ¬ иЁлҐ ®ЇҐа жЁЁ, ЇаҐ¤бв ў-
«ҐлҐ бЁб⥬®© Є®¬ ¤ ЊЉЉ,
3) ¤®бвгЇ®¬ Є ¤ л¬, § ўЁбпйЁ¬ ®в вЁЇ Ї ¬пвЁ ¬ЁЄа®Є®ва®««Ґа ,
Љ вЁЇ ¬ ¤ ле ЊЉЉ ®в®бпвбп:
- жҐ«лҐ ¤ў®ЁзлҐ зЁб« ,
- ЎҐ§§ Є®ўлҐ жҐ«лҐ ¤ў®ЁзлҐ ( ¤ў®ЁзлҐ Є®¤л),
- ¤ў®Ёз®-¤ҐбпвЁзлҐ жҐ«лҐ,
- Ўг«ҐўбЄЁ© вЁЇ.
1. „ў®Ёз®Ґ 楫®Ґ б® § Є®¬/ЎҐ§ § Є ў д®а¬ ⥠Ў ©в , а §¬Ґй Ґ¬лҐ
ў Ї ¬пвЁ XDATA, CODE, DATA,IDATA.
mem db 1,-2,25H,33 ;в Ў«Ёж ¤ҐбпвЁзле 1,-2,33,
;иҐбв ¤ж вҐаЁзле 25H
;Ї®б«Ґ Є®¬ЇЁ«пжЁЁ - ¤ў®ЁзлҐ 8-а §ап¤лҐ
;зЁб«
vect db 10110001b ; ¤ў®Ёз®Ґ зЁб«®
mem db 55h,33h ;§ ЇЁбм ў HEX-Є®¤Ґ ¤ў®Ёз®-¤ҐбпвЁзле зЁбҐ«
;55, 33
mem dw 5533h ;Є®бв в а §¬Ґа®¬ б«®ў® 16 ЎЁв
ЂаЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ б ¤ў®Ёзл¬Ё зЁб« ¬:
add a,#55 ;б«®¦ҐЁҐ ЄЄг¬г«пв®а ( ) б Є®бв в®© 55
addc a,#55 ;б«®¦ҐЁҐ б ЇҐаҐ®б®¬ ‘ Ё Є®бв в®©
subb a,#33 ;ўлзЁв ЁҐ Є®бв вл б § Ґ¬®¬ ‘ ,
‚ аЁд¬ҐвЁзҐбЄЁе ®ЇҐа жЁпе гзЁвлў Ґвбп § Є ЇаЁ д®а¬Ёа®ў ЁЁ
ЇаЁ§ Є ЇҐаҐЇ®«ҐЁп OV. ’ Є¦Ґ д®а¬Ёаговбп ЇаЁ§ ЄЁ
‘ - ЇҐаҐЇ®«ҐЁҐ ў ЎҐ§§ Є®ўле ®ЇҐа жЁпе, ЇҐаҐ®б Ё«Ё § Ґ¬,
P - ЇаЁ§ Є зҐв®бвЁ Є®¤ १г«мв в .
Ќ“‹њ १г«мв в ў ЄЄг¬г«пв®аҐ Є®ва®«ЁагҐвбп ҐЇ®б।б⢥®
Є®¬ ¤ ¬Ё ўҐвў«ҐЁп.
2. „ў®Ёзл© Є®¤ = 楫®Ґ ЎҐ§ § Є ў д®а¬ ⥠Ў ©в
anl a,#44h ;«®ЈЁзҐбЄ®Ґ € c HEX-Є®бв в®©,
orl a,#25 ;«®ЈЁзҐбЄ®Ґ €‹€ б ¤ҐбпвЁз®© Є®бв в®©,
xrl ,#'2s' ;ЁбЄ«оз о饥 €‹€ c ASCII-Є®¤®¬,
cpl a ; ЁўҐавЁа®ў ЁҐ
rl a ;б¤ўЁЈ жЁЄ«ЁзҐбЄЁ© Є®¤ ў«Ґў® ў ЄЄг¬г«пв®аҐ,
rr a ;б¤ўЁЈ жЁЄ«ЁзҐЄЁ© Є®¤ ўЇа ў® ў ЄЄг¬г«пв®аҐ.
rlб a ;б¤ўЁЈ ЄЄг¬г«пв®а (a) ў«Ґў® б ЇаЁ§ Є®¬ ‘ жЁЄ«ЁзҐбЄЁ©,
rrc a ;б¤ўЁЈ ЄЄг¬г«пв®а (a) ўЇа ў® б ЇаЁ§ Є®¬ ‘ жЁЄ«ЁзҐбЄЁ©,
mul ab ;a*b->ba Їа®Ё§ўҐ¤ҐЁҐ Ў ©в®ў Ё§ ॣЁбва®ў (a) Ё (b)
;б®еа Ёвм ў ॣЁбва е (ba)
div ab ;a/b->a,b a - з б⮥, b - ®бв в®Є
3. „ў®Ёз®-¤ҐбпвЁз®Ґ 楫®Ґ ЎҐ§ § Є ў д®а¬ ⥠Ў ©в
Ћб®ў®Ґ ЇаЁ¬ҐҐЁҐ - ЇаҐ®Ўа §®ў ЁҐ Ё§ ¤ҐбпвЁз®© бЁбвҐ¬л ў
¤ў®Ёзго ЇаЁ ўў®¤Ґ, Ё§ ¤ў®Ёз®© ў ¤ҐбпвЁзго ЇаЁ ўлў®¤Ґ.
‚ ЇаҐ®Ўа §®ў Ёпе ЁбЇ®«м§говбп аЁд¬ҐвЁзҐбЄЁҐ ®ЇҐа жЁЁ б«®¦ҐЁп
¤ў®Ёз®-¤ҐбпвЁзле Є®¤®ў, ў Є®в®але ЇаЁ¬ҐпҐвбп ¤ў®Ёз®Ґ б«®¦ҐЁҐ
б Є®а४樥© - Є®¬ ¤ da a.
4. Ѓг«ҐўбЄЁ© вЁЇ - ЎЁв,
ЎЁвл ®ЎкҐ¤Ёповбп ў ¤ў®ЁзлҐ Є®¤л, Ї®«п Ё ॣЁбвал.
Љ®¬ЇЁ«пв®а ўл¤Ґ«пҐв ᥣ¬Ґв SEG BIT ў RAM(20-3Fh) б ¤аҐб ¬Ё
00-07fh, ¤аҐб ЎЁв®ў 80h-ffh § १ҐаўЁа®ў л ў SFR ॣЁбва е -
з бвм ЎЁв®ў ¤®бвгЇл Ї® Ё¬Ґ ¬ ў бᥬЎ«ҐаҐ Ё«Ё Їаאַ© ¤аҐб жЁҐ©
(ЎЁвл Ї®ав®ў ¤®бвгЇл Ї® ¤аҐб ¬ P1.5, P3.7, ...,
ЎЁвл бЇҐжЁ «мле ¤ЁбЄаҐвле бЁЈ «®ў Ї® Ё¬Ґ ¬ - T0,T1,INT0,INT1,..
ЋЇҐа жЁЁ б ЎЁв ¬Ё:
mov c,x1 ;§ ЇЁб вм ў ЄЄг¬г«пв®а(‘)
anl c,acc.5 ;«®ЈЁзҐбЄ®Ґ € ЄЄг¬г«пв®а (‘) б 5 ЎЁв®¬ ЄЄг¬г«пв®а acc.5
orl c,/acc.0 ;«®ЈЁзҐбЄ®Ґ €‹€ ЎЁв ‘ б ЁўҐабЁҐ© ЎЁв acc.0
setb c ;гбв ®ўЁвм ЎЁв ‘
clr c ;®зЁбвЁвм ЎЁв
2.3. ‘ Ё б в Ґ ¬ Є ® ¬ ¤ MCS51
------------------------------- -----------------------------
ЂpЁд¬ҐвЁЄ Ё «®ЈЁЄ ЏҐpҐбл«ЄЁ
------------------------------- ----------------------------
add a,{ri,@rj,#d,ad} mov a,{ri,@rj,#d,ad}
addc a,{ ...........} mov {ri,@rj},a
subb a,{............} mov {ri,@rj},ad
inc {ri,@rj,ad,dptr,a} mov ad,{ri,@rj,#d,ad,a}
dec {ri,@rj,ad,a} mov {ri,@rj},#d
mul ab mov dptr,#d16
div ab movc a,@a+dptr
movc a,@a+pc
anl a,{ri,@rj,#d,ad} movx a,{@rj,@dptr}
anl ad,{#d,a} movx {@rj,@dptr},a
push ad
orl a,{ri,@rj,#d,ad} pop ad
orl ad,{#d,a} xch a,{ri,@rj,ad}
xrl a,{ri,@rj,#d,ad} xchd a,@rj
xrl ad,{#d,a} swap a
clr a ---------------------------------------
cpl a Є®¬ ¤л Ўг«ҐўбЄ®Ј® Їа®жҐбб®а
rl a
rlc a mov bit,c mov c,bit
rr a clr {c,bit} anl c,{bit,/bit}
rrc a cpl c orl c,{........}
da a setb {c,bit}
---------------------------------------------------------------------
“Їp ў«ҐЁҐ Їp®Јp ¬¬®© Ё ўҐвў«ҐЁп
ajmp ¬ҐвЄ jb bit,¬ҐвЄ djnz {ri,ad},¬ҐвЄ
sjmp ¬ҐвЄ
ljmp ¬ҐвЄ
jmp @a+dptr jnb bit,¬ҐвЄ cjne {ri,@rj},#d,¬ҐвЄ
lcall ¬ҐвЄ jbc bit,¬ҐвЄ jz/jnz ¬ҐвЄ
acall ¬ҐвЄ
ret jc/jnc ¬ҐвЄ
reti
----------------------------------------------------------------------
ЋЎ®§ зҐЁп ў ¬Ґ¬®Є®¤ е:
#d - Є®бв в
ri= {r0,r1,...,r7} Ё¬п ॣЁбва ў ЄвЁў®¬ Ў ЄҐ
@rj - Є®бўҐ п ¤аҐб жЁп Є ўгв॥© IRAM, rj={r0,r1}
ad - Їаאַ© ¤аҐб IRAM(00-7f), ¤аҐб/Ё¬п SFR(80-FF)
bit - 00-7f ¤pҐб ЎЁв ў Ї®«Ґ ЎЁв®ў б®ў¬ҐйҐ® б DATA(20-2F),
а §ап¤ бЇҐжЁ «м®Ј® ॣЁбва acc.5, psw.0, ... ,
Ё¬п ЎЁв smod,sm0,.... бЇҐжЁ «м®Ј® ॣЁбва
/bit - ЁўҐpбЁп ЎЁв
-----------------------------------------------------------------------
2.4. ‚Ёавг «мл© Ў«®Є ®Ўа Ў®вЄЁ ¤ ле
ЂбᥬЎ«Ґа - ва ¤ЁжЁ®®Ґ бЁ¬ў®«ЁзҐбЄ®Ґ (ўЁав㠫쮥) ®ЇЁб ЁҐ
аҐбгаб®ў ¬ЁЄа®Є®¬ЇмовҐа . CЁб⥬ Є®¬ ¤ ЇаҐ¤бв ў«Ґ бЁ¬ў®«ЁзҐб-
ЄЁ¬Ё Ё¬Ґ ¬Ё б Ї а ¬Ґва ¬Ё. „«п Ї®ўл襨п га®ўп Їа®Ја ¬¬Ёа®ў Ёп,
а биЁаҐЁп ¤Ё Ї §® § 票© - в®з®бвЁ ўлзЁб«ҐЁ©
ЁбЇ®«м§говбп ¬ Єа®Є®¬ ¤л, Є®в®алҐ Ї®§ў®«пов бЄ®бвагЁа®ў вм
ўЁавг «мл© 16-а §ап¤л© Ў«®Є ®Ўа Ў®вЄЁ ¤ ле.
1. ђҐЈЁбва®ў п Ї ¬пвм - б®ў¬ҐйҐл б®ЎбвўҐлҐ 8-а §ап¤лҐ
ॣЁбвал 0 Ў Є Њ‘S51, зҐвлॠ16-а §ап¤ле Ё
¤ў 32-а §ап¤ле ॣЁбва .
‡ १ҐаўЁа®ў л:
ЪДДДДДДДДВДДДДДДДДї
і r0 r1 і r2 r3 і
ГДДДДДДДДЕДДДДДДДДґ
і w0 і w1 і w0 equ 0 ;бв аиЁ© Ў ©в 00, ¬« ¤иЁ© 01
ГДДДДДДДДБДДДДДДДДґ w1 equ 2 ;бв аиЁ© Ў ©в 02, ¬« ¤иЁ© 03
і d0 і d0 equ 0 ;бв аиЁ© Ў ©в 00, ...¬« ¤иЁ© 03
ГДДДДДДДДВДДДДДДДДґ
і r4 r5 і r6 r7 і
ГДДДДДДДДЕДДДДДДДДі w2 equ 4
і w2 і w3 і w3 equ 6
ГДДДДДДДДБДДДДДДДДґ d1 equ 4
і d1 і
ГДДДДДДДДДДДДДДДДДЩ
2. ‚гваҐпп Ї ¬пвм ¤ ле RAM.
„®бвгЇ Є ¤ л¬:
- ®Ўа 饨Ґ Є 16-а §ап¤л¬ ¤ л¬ б Їаאַ© ¤аҐб жЁҐ©
ўЁавг «мл¬Ё Є®¬ ¤ ¬Ё, ¤аҐб 0-7fh
mov_w y,x ; wx->wy, x,y - Ё¬Ґ ( ¤аҐб )
;бв аиЁе Ў ©в®ў
- ®Ўа 饨Ґ Є 32-а §ап¤л¬ ¤ л¬ б Їаאַ© ¤аҐб жЁҐ©
ўЁавг «мл¬Ё Є®¬ ¤ ¬Ё, ¤аҐб 0-7fh
mov_d y,x ; dx->dy, x,y - Ё¬Ґ ( ¤аҐб )
;бв аиЁе Ў ©в®ў
- mov_c y,#x § ЇЁбм Є®бв вл ў б«®ў® #x->wy зҐаҐ§ dptr
3. ‚Ґипп Ї ¬пвм ¤ ле XDATA c ¤®бвгЇ®¬ Є Ў ©в ¬ Ё б«®ў ¬
- Є®бўҐл© ўЁавг «мл© ¤®бвгЇ Є Ў ©в ¬ c ўв®Ё¤ҐЄб жЁҐ©
movb_rx x,y ;XDATA(@y)->x
;x-Ў ©в ў ᥣ¬ҐвҐ DATA
;y- ¤ўгеЎ ©в®ўл© ¤аҐб ў ᥣ¬ҐвҐ DATA,
;y+1 Ї®б«Ґ ®Ўа 饨п
movb_xr x,y ;x->XDATA(@y)
- Їаאַ© ўЁавг «мл© ¤®бвгЇ Є 16-а §ап¤л¬ б«®ў ¬ б
ўв®Ё¤ҐЄб жЁҐ©
movw_rx x,y ;y+2 Ї®б«Ґ ®Ўа 饨п
;x,y -2Ў ©в®ўлҐ ॣЁбвал ў DATA
movw_xr x,y ;y+2 Ї®б«Ґ ®Ўа 饨п
4. Џа®Ја ¬¬ п Ї ¬пвм
ўЁавг «млҐ Є®¬ ¤л:
tabb z,x,y ;ўлЎа вм Ў ©в Ё§ в Ў«Ёжл z=x(y), z-п祩Є IRAM,
;y-п祩Є IRAM, x-Ё¬п в Ў«Ёжл ў XRAM
tabw z,x,y ;ўлЎа вм б«®ў® Ё§ в Ў«Ёжл z=x(y), z-п祩Є IRAM,
;y-п祩Є IRAM, x-Ё¬п в Ў«Ёжл ў XRAM
seg data
z ds 1
y ds 1
zz ds 2
SEG CODE
jmp start ;®Ўе®¤ ЎЁЎ«Ё®вҐЄЁ Ї®¤Їа®Ја ¬¬ Ё в Ў«Ёж
tab_w dw 01,124,355,466 ;в Ў«Ёж Є®бв в
tab_b db 05,20h,'abcd'
start: tabb z,tab_b,y
tabw zz,tab_w,y
5. ‚Ёавг «млҐ б।бвў ®Ўа Ў®вЄЁ ¤ ле - ¬ Єа®Є®¬ ¤л б
Ї а ¬Ґва ¬Ё, Ґпў® ЁбЇ®«м§гов ॣЁбвал r0-r7,w0-w3,d0-d1
Ї а ¬Ґвал x,y,z - ॣЁбвал ўгв॥© Ї ¬пвЁ б Їаאַ©
¤аҐб жЁҐ© 0-7fh
; mov_w y,x x->y
; mov_d y,x dx->dy
; mov_c y,#x § ЇЁбм Є®бв вл ў б«®ў® #x->wy зҐаҐ§ dptr
; swap_w x x(15-8)<->x(7-0) ®Ў¬Ґ Ў ©в ¬Ё ў б«®ўҐ
; tabb z,x,y ўлЎа вм Ў ©в Ё§ в Ў«Ёжл z=x(y), z,y-Ў ©в
; tabw z,x,y ўлЎа вм б«®ў® Ё§ в Ў«Ёжл z=x(y), z-б«®ў®,y-Ў ©в
; movb_rx x,y x-ॣЁбва, y-Є®бўҐл© ¤аҐб XRAM x<-@(y+)
; movb_xr x,y x-ॣЁбва, y-Є®бўҐл© ¤аҐб XRAM @(y+)<-x
; movw_rx x,y x-ॣЁбва, y-Є®бўҐл© ¤аҐб XRAM x<-@(y+)
; movw_xr x,y x-ॣЁбва, y-Є®бўҐл© ¤аҐб XRAM @(y+)<-x
----------------------------------------------
; add_w y,x б«®¦ҐЁҐ б«®ў wx+wy->wy
; add_c y,#x б«®¦ҐЁҐ б Є®бв в®© wy+#c->wy
; addc_w y,x б«®¦ҐЁҐ б ЇҐаҐ®б®¬ wx+wy+c->wy
; clr_w x 0->wx
; clr_d x 0->dx
; inc_w x x+1
; dec_w x x-1
; subb_w y,x ўлзЁв ЁҐ б«®ў wy-wx->wy
; subbc_w y,x wy-wx-c->wy
; subo_w y,x ўлзЁв ЁҐ б«®ў ®Ўа ⮥ wy-wx->wx
; rlc_w x б¤ўЁЈ б«®ў ў«Ґў® б ЇаЁ§ Є®¬ ‘ 1 ЎЁв rlc(wx)
; rlc_w x,y б¤ўЁЈ б«®ў ў«Ґў® б ЇаЁ§ Є®¬ ‘ y ЎЁв rlc(wx)y
; rlc_d x б¤ўЁЈ ¤ў®©®Ј® б«®ў ў«Ґў® б ЇаЁ§ Є®¬ ‘ rlc(dx)y
; rrc_w x б¤ўЁЈ б«®ў ўЇа ў® б ЇаЁ§ Є®¬ ‘ 1 ЎЁв rrc(wx)
; rrc_w x,y б¤ўЁЈ б«®ў ўЇа ў® б ЇаЁ§ Є®¬ ‘ y ЎЁв rrc(wx)y
; rrc_d x б¤ўЁЈ ¤ў®©®Ј® б«®ў ўЇа ў® б ЇаЁ§ Є®¬ ‘ rrc(dx)y
; mul_w y,x 㬮¦ҐЁҐ wy*wx->d1, ЁбЇ®«м§говбп а Ў®зЁҐ ॣЁбвал w0-w3
; div_w y,x ¤Ґ«ҐЁҐ d1/wx->wy, ЁбЇ®«м§говбп а Ў®зЁҐ ॣЁбвал w0-w3
; tr2d x ЇҐаҐў®¤ wx Ё§ 2®© ў 10го, а Ў®зЁҐ w0,w1,r5
; trd2 x ЇҐаҐў®¤ wx Ё§ 10®© ў 2го, а Ў®зЁҐ w0,w1,r5
; time x Їа®Ја ¬¬ п § ¤Ґа¦Є x/10 ¬б ¬ ЄбЁ¬г¬ x=255
; sqrt x Є®аҐм Єў ¤а вл© Ё§ d2, १г«мв в ў x,а Ў®зЁҐ w0-w3,w4
----------------------------------------------------------------------
‡ ¤ ЁҐ 1. ђ §а Ў®в вм ¬ Єа®Є®¬ ¤л Ё вҐбв®ўлҐ ЇаЁ¬Ґал
2.5. “Їа ў«ҐЁҐ ЇаҐалў Ёп¬Ё.
ЏаЁжЁЇ а Ў®вл бЁбвҐ¬л ЇаҐалў Ёп:
1) ‚ Є®жҐ ⥪г饩 Є®¬ ¤л ®Їа иЁў овбп ॣЁбвал § Їа®б®ў Ё
ўлЎЁа Ґвбп ЁЎ®«ҐҐ ЇаЁ®аЁвҐвл© Ё§ § ॣҐбваЁа®ў ле бЁЈ «®ў Ё
а §аҐиҐле ¬ бЄ®©.
2) ”®а¬ЁагҐвбп ¤аҐб-ўҐЄв®а в Ў«Ёжл ўҐЄв®а®ў ЇаҐалў Ё© ў ¤аҐб е
0000-00ff ᥣ¬Ґв CODE
3) ЏҐаҐ¤ Ґвбп гЇа ў«ҐЁҐ Ї® ¤аҐбг-ўҐЄв®аг б б®еа ҐЁҐ¬ ⥪г饣®
Їа®Ја ¬¬®Ј® бзҐвзЁЄ ў б⥪Ґ, ЇаЁ н⮬ § ЇаҐй овбп ўбҐ ЇаҐалў Ёп
¤® § ўҐаиҐЁп Їа®Ја ¬¬л ®Ўа Ў®вЄЁ ⥪г饣® ЇаҐалў Ёп.
4) Џа®Ја ¬¬ ®Ўа Ў®вЄЁ § ўҐаи Ґвбп Є®¬ ¤®© RETI,
Є®в®а п ў®§ўа й Ґв гЇа ў«ҐЁҐ ЇаҐаў ®© Їа®Ја ¬¬Ґ Ё Єа®¬Ґ
в®Ј® а §аҐи Ґв ЇаҐалў Ёп Ё бЎа блў Ґв ҐЄ®в®алҐ ЎЁвл § Їа®б®ў
ЇаҐалў Ё© - ®бв «млҐ ЎЁвл бЎа блў овбп Їа®Ја ¬¬®.
ЃЁвл гЇа ў«ҐЁп ЇаҐалў Ёп¬Ё ¤®бвгЇл Ї® Ё¬Ґ ¬ Ё ЇаЁўҐ¤Ґл
ў в Ў«ЁжҐ ў¬ҐбвҐ б ўҐЄв®а ¬Ё Ё ®Ў®§ 票Ґ¬ ЇаЁ®аЁвҐв :
ЪДДДДДДДДДДДДВДДДДДДДВДДДДДДДДДДВДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДДї
і ўҐиЁҐ івЁЇ і ЎЁв і ЎЁв і і ЇаЁ®аЁ-і ¤аҐб- і
і ўе®¤л ібЁЈ « і ॣЁбва і ¬ бЄЁ і і вҐв Ai і ўҐЄв®а і
і 1 і 2 і 3 бЎаі 4 іip01 IPiі 6 і 7 і
ГДДДДДДДДДДДДЕДДДДДДДЕДДДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДДґ
іp3.2 /int0 іit0 =\ і ie0 Ї і ex0 і 0 5 і 11 і 03 і
іp3.3 /int1 іit1 =\ і ie1 Ї і ex1 і 2 3 і 7 і 13h і
і і і tf0 і et0 і 1 4 і 9 і 0bh і
і і і tf1 і et1 і 3 2 і 5 і 1bh і
АДДДДДДДДДДДДБДДДДДДДБДДДДДДДДДДБДДДДДДДБДДДДДДДДБДДДДДДДДБДДДДДДДДЩ
1- ЎЁвл, ®Ў®§ з ойЁҐ Є®в Євл ЊЉЉ
2 - ЎЁвл, ўлЎЁа ойЁҐ вЁЇ бЁЈ « (= L га®ўҐм, \ h/l да®в,
/ l/h да®в)
3 - ॣЁбваЁагҐ¬лҐ ЎЁвл бЁЈ «®ў ЇаҐалў Ё©, гЄ §лў Ґвбп
бЇ®б®Ў бЎа®б a- ЇЇ а вл© ЇаЁ ўе®¤Ґ ў ЇаҐалў ЁҐ,
Ї-Їа®Ја ¬¬л© ЇаЁ § ўҐа襨Ё ®Ўа Ў®вЄЁ
ЇаҐалў Ёп ЇҐаҐ¤ Є®¬ ¤®© reti
…б«Ё ЎЁвл Є®ва®«Ёаговбп ў ०Ё¬Ґ ®¦Ё¤ Ёп б Ї®б«Ґ¤го饩
Їа®Ја ¬¬®© ®Ўа Ў®вЄ®© б®ЎлвЁп, в® Ё бЎа®б ®бгйҐбвў«пҐвбп
Їа®Ја ¬¬®.
4 - ЎЁвл а §аҐиҐЁп ॣЁбва жЁЁ ЇаҐалў Ё©.
5 - ip01-®¬Ґа i ЎЁв ў ॣЁбва е IP0(i).IP1(i), § ¤ ойЁе
га®ўҐм ЇаЁ®аЁвҐв , IPi- ЇаЁ®аЁвҐв ЇаЁ ®Їа®бҐ ®¤®¬
га®ўҐ ў®§а бв Ґв ®в бв аиЁе ЎЁв®ў i Є ¬« ¤иЁ¬.
6 - ®¬Ґа Ўб®«ов®Ј® ЇаЁ®аЁвҐв Ai=0,1, ..., 11 ў Ї®ап¤ЄҐ
㢥«ЁзҐЁп ЇаЁ®аЁвҐв ЇаЁ Ї®б«Ґ¤®ў ⥫쮬 ®Їа®бҐ
®¤®¬ га®ўҐ ЇаЁ®аЁвҐв®ў
7 - ¤аҐб-ўҐЄв®а в Ў«Ёжл ЇаҐалў Ё© ў ᥣ¬ҐвҐ CODE.
”гЄжЁп ®Ўа Ў®вЄЁ ЇаҐалў Ёп
org < ¤аҐб-ўҐЄв®а>
name() /* Їа®Ја ¬¬ § ўҐаи Ґвбп RETI */
{...............}
2.1.5. ЏаЁ¬Ґал Їа®Ја ¬¬Ёа®ў Ёп
1. ЏҐаҐ¬®¦Ёвм ¤ў 8-а §ап¤ле зЁб« Ї® д®а¬г«Ґ
S=A*B
=б㬬Ёа®ў вм ¬®¦Ё¬®Ґ B а §
A,B - 8а §ап¤лҐ ЇҐаҐ¬ҐлҐ ў DATA
S - 16а §ап¤ п ЇҐаҐ¬Ґ п ў DATA
- Їа®Ја ¬¬ ў бᥬЎ«ҐаҐ AVA51,
ЏҐаҐ¬ҐлҐ а §¬Ґй овбп ў Ї ¬пвЁ Їа®Ја ¬¬Ёб⮬,
Ё¬Ґ ЇҐаҐ¬Ґле Ґ ¤®«¦л б®ўЇ ¤ вм б § १ҐаўЁа®-
ў л¬Ё (ў з бв®бвЁ § Ј« ўлҐ Ё Їа®ЇЁблҐ Ґ
а §«ЁзЁ¬л Ё A=a, B=b - § १ҐаўЁа®ў л)
seg data
S1 ds 2 ;Їа®Ё§ўҐ¤ҐЁҐ
A1 ds 1 ;¬®¦Ё¬®Ґ
B1 ds 1 ;¬®¦ЁвҐ«м
seg code
clr a ;0->S
mov S1,a
mov S1+1,a
m1: mov a,A1
add a,S1+1 ;S+A->S
mov S1+1,a
mov a,S1
addc a,#0
mov S1,a
djnz B1,m1
end
2. Џа®Ја ¬¬ ®Ўа Ў®вЄЁ ⥪бв®ўле ¤ ле
( ў бᥬЎ«ҐаҐ ¤®бвгЇҐ в®«мЄ® « вЁбЄЁ©
«д ўЁв Ё бЇҐжЁ «млҐ бЁ¬ў®«л)
- Їа®Ја ¬¬ бᥬЎ«ҐаҐ AVA51,
«Ј®аЁв¬ ¤«п Ў®«ҐҐ нд䥪⨢®© ॠ«Ё§ жЁЁ ¬®¦Ґв
Ўлвм ЇҐаҐб¬®ваҐ
«Ј®аЁв¬ бᥬЎ«Ґа
------------------------------------------------------------
seg data
unsigned char q[11]; q ds 11
unsigned char i; i ds 1
seg code
org 8000h
jmp start
char p[]="prog-ramma"; p db 'prog-ramma'
main()
{
start: mov r0,#11 mov dptr,#p
i=10; mov r1,q+10
{ if (p[i]!='-') m1: mov a,r0
q[i]=p[i]; movc a,@a+dptr
i--; } xrl a,#'-'
jz m2
movc a,@a+dptr
while (i>=0) mov @r1,a
m2: dec r1
} djnz r0,m1
jmp $
end
3. Џа®Ја ¬¬ гЇа ў«ҐЁп ¤ЁбЄаҐв®© бЁб⥬®©, «Ј®аЁв¬
§ ¤ Є®Ґзл¬ ўв®¬ ⮬ Њга .
ЪДДДДДї
x0 ЪДДДДДї x1 ЪДДБДДї і x1
ДДДД> 0/y0іДДДДДДДДДДДДДДД>1/y1 <ДДЩ
АДДДДД<ДДДДДДДДДї ЪДДВДДЩ
1 і і і
/x1x2 і і і
ЪДДДДДДДДДДЕДДДДДЩ і /x1/x2
і і і
і і і
ЪДДДvДї АДДДДДДЪДvДДДї
і2/y2 іДДДДДДДДДДДДДДД>3/y3 і
АДДДДДЩ 1 АДДДДДЩ
0,1,2,3 - б®бв®пЁп ўв®¬ в ,
y0,y1,y2,y3 - гЇа ў«пойЁҐ бЁЈ «л,
x0 - бЁЈ « бЎа®б ,
x1,x2 - ўе®¤лҐ бЁЈ «л, ®Ў®§ з ойЁҐ б®бв®пЁҐ
®ЎкҐЄв гЇа ў«ҐЁп,
“а ўҐЁп ЇҐаҐе®¤ /ўл室
q0'/y0 = x0+q3
q1'/y1 = q0x1+q1x1
q2'/y2 = q1/x1x2
q3'/y3 = q1/x1/x2+q2
‘вагЄвга Їа®Ја ¬¬л
- ўў®¤ § 票© x c Ї®ав P1(0-2)
- ўлзЁб«ҐЁҐ б«Ґ¤гойЁе б®бв®пЁ© Q'=(Q,x)
- Ё§¬ҐҐЁҐ б®бв®пЁп Ё гЇа ў«ҐЁп Q/y=Q'
- ўлў®¤ гЇа ў«ҐЁп ў Ї®ав P1(3-6)
- Їа®Ја ¬¬ бᥬЎ«ҐаҐ AVA51
; «Ј®аЁв¬ ‘€ бᥬЎ«Ґа
; --------------- --------------------------
seg bit
bit char x0,x1,x2;
bit char q0,q1,q2,q3; x0 ds 1
x1 ds 1
x2 ds 1
q0 ds 1 ;y0
q1 ds 1 ;y1
q2 ds 1 ;y2
q3 ds 1 ;y3
bit char q2_,q3_; q0_ ds 1
bit char q0_,q1_; q1_ ds 1
q2_ ds 1
q3_ ds 1
seg code
start:
/* ўў®¤ Ё§ Ї®ав P1 */ mov p1,#0ffh
x0=P1_0; mov c,p1.0 mov x0,c
x1=P1_1; mov c,p1.1 mov x0,c
x2=P1_2; mov c,p1.0 mov x0,c
/* ўлзЁб«ҐЁҐ § 票п б«Ґ¤го饣® б®бв®пЁп */
q0_= x0|q3; mov c,x0 orl c,q3 mov q0_,c
q1_= q0&x1|q1&x1; mov c,q0 anl c,x1 mov acc.0
mov c,q1 anl c,x1 orl c,acc.0
mov q1_,c
q2_= q1&~x1&x2; mov c,q1 anl c,/x1 anl c,x2 mov q2_,c
q3_= q1&~x1&~x2|q2; mov c,q1 anl c,/x1 anl c,/x2
orl c,q2 mov q3_,c
/* ўлў®¤ ў Ї®ав P1 Ё гбв ®ўЄ ⥪г饣® б®бв®пЁп */
q0=P1_3=q1_; mov c,q0_ mov q0,c mov P1.3,c
q1=P1_4=q1_; mov c,q1_ mov q1,c mov P1.4,c
q2=P1_5=q2_; mov c,q2_ mov q2,c mov P1.5,c
q3=P1_6=q3_; mov c,q3_ mov q3,c mov P1.6,c
goto start jmp start
/* ЎҐбЄ®Ґзл© жЁЄ« */ end
4. ‚лзЁб«ҐЁп дгЄжЁЁ
sinx =x-x^3/3! +x^5/5!
аЈг¬Ґв x ў а ¤Ё е, x<=pi/2.
ЏаҐ®Ўа §®ў ЁҐ д®а¬г«л б гзҐв®¬ ¬ бив ЎЁа®ў Ёп x=mx*x
x(1-x^2/6(1-x^2/20))-> x/mx(mx-x*x/mx/mx/6(mx-x*x/20/mx))
- Їа®Ја ¬¬ ў ¬ Єа® бᥬЎ«ҐаҐ AVA51
«Ј®аЁв¬ гв®зпҐвбп ¤«п Є®ЄаҐв®Ј® ¬ бив Ў mx=1000
x/mx(mx-x^2/mx/mx/6(mx-x^2/20/mx)) ->
-> x/1000(1000-x^2/20000((1000-x^2/20000)/300)
б гзҐв®¬ ¬ Єа®Є®¬ ¤
;и Ј ЇбҐў¤®Є®¤ ¬ Єа® бᥬЎ«Ґа
------------------------------------------------------
seg data
;int x,sinx,mx x ds 2
cc ds 2
y ds 2
seg code
;m1 б⥪,ўў®¤ ;mov sp,#бб+2
;гбв ®ўЄ б⥪ вॡгҐвбп в®«мЄ® ў бЁ¬г«пв®аҐ
x=52; ; mov_c x,#52h trd2 x ;¤ҐбпвЁз®Ґ зЁб«® #52
;ЇаҐ®Ўа §гҐвбп ў ¤ў®Ёз®Ґ
;m2 d1=x^2 ;mov_w y,x mul_w y,x ;d1-Їа®Ё§ўҐ¤ҐЁҐ
;m3 x2=d1/20000 ;mov_c y,#20000 div_w x2,y ;d1/y->x2
;m4 1000-x2 ;mov_c cc,#1000 subb_w cc,x2
;m5 d1=x2*[4] ;mul_w cc,x2 ; d1-Їа®Ё§ўҐ¤ҐЁҐ
;m6 y= d1/300 ;mov_c cc,#300 div_w y,cc
;m7 1000-y ;mov_c cc,#1000 subo_w cc,y
;m8 x*[7] ;mul_w y,x ; d1-Їа®Ё§ўҐ¤ҐЁҐ
;m9 y=[8]/1000 ;div_w y,cc
;m10 ўлў®¤ ; tr2d y ;१г«мв ⠯८Ўа §гҐвбп ў
;¤ҐбпвЁзго бЁб⥬г бзЁб«ҐЁп
2.2. Ља®бб-б।бвў Їа®Ја ¬¬Ёа®ў Ёп.
Ља®бб б।бвў AVOCET ॠ«Ё§®ў л ў „Ћ‘, ў бЁ¬г«пв®аҐ AVSIM51
¤«п бЁ¬ў®«ЁзҐбЄ®© § Јаг§ЄЁ ¬®¦® ЁбЇ®«м§®ў вм в®«мЄ® १г«мв вл
AVA51.
2.2.1. ЂбᥬЎ«Ґа
ЋЇЁб ЁҐ бᥬЎ«Ґа Ё Їа ўЁ« ®д®а¬«ҐЁп Їа®Ја ¬¬
ЇаЁўҐ¤Ґл ў д ©«Ґ ASM51.txt
ЂббᥬЎ«Ґа Є®¬ЇЁ«ЁагҐв Ґпў® в®«мЄ® бЁ¬ў®«л, ®в®бпйЁҐбп
Є Ў §®ў®© аеЁвҐЄвгॠMCS51/52
‘।бвў бᥬЎ«Ёа®ў Ёп ¤«п PC ўЄ«оз ов бᥬЎ«Ґа ava51.exe
Ё «ЁЄҐа avl51.exe
‚맮ў бᥬЎ«Ґа
asm.bat name
‚ д ©«Ґ asm.bat ®д®а¬«Ґл Є®¬ ¤л ўл§®ў бᥬЎ«Ґа Ё «ЁЄҐа
‚ᥠЇа®Ја ¬¬л ўл§лў овбп б Ї 㧮©, § ўҐа襨Ґ ЁбЇ®«ҐЁп
Є®¬ ¤®Ј® д ©« .bat Є« ўЁи ¬Ё ctr+c.
ava51 %1.asm ap ;ўл§®ў бᥬЎ«Ґа ,д®а¬Ёа®ў ЁҐ бЁ¬ў®«мле в Ў«Ёж
pause ;®бв ®ў - ўл室 Ї® ctr+c
avl51 %1=%1 -sy ;ўл§®ў «ЁЄҐа ,д®а¬Ёа®ў ЁҐ бЁ¬ў®«мле ббл«®Є
pause
avsim51 bla%1 ;§ Јаг§Є Їа®Ја ¬¬л ў бЁ¬г«пв®а б бЁ¬ў®«мл¬Ё
в Ў«Ёж ¬Ё
„ЁаҐЄвЁўл Є®¬ЇЁ«пв®а Ё «ЁЄҐа ®ЇЁб л ў д ©«Ґ asm.hlp,
¤ЁаҐЄвЁўл бЁ¬г«пв®а ў д ©«Ґ avsim51.hlp
ЏаЁ Є®¬ЇЁ«пжЁЁ д ©« name.asm д®а¬Ёаговбп Їа®¬Ґ¦гв®злҐ
⥪бв®ўлҐ д ©«л
name.prn - «ЁбвЁЈ Є®¬ЇЁ«пжЁЁ
name.obj - ®ЎкҐЄвл© ЎЁ ал© д ©«,
name.hex - д ©« ¤«п § Јаг§ЄЁ.
Ља®¬Ґ в®Ј® д®а¬Ёаговбп д ©«л, Ґ®Ўе®¤Ё¬лҐ ЇаЁ бЁ¬ў®«ЁзҐбЄ®©
®в« ¤ЄҐ ў бЁ¬г«пв®аҐ.
‚ д ©«Ґ .prn ¬®¦® ©вЁ ®иЁЎЄЁ Ё а бЇаҐ¤Ґ«ҐЁҐ Ї ¬пвЁ,
Ґ®Ўе®¤Ё¬лҐ ЇаЁ ®в« ¤ЄҐ.
2.2.2. ‘Ё¬г«пв®а.
‚맮ў бЁ¬г«пв®а AVOCET ў „Ћ‘ avsim51.exe [bla<д ©«>]
- ўлў®¤Ёвбп ®Є® Ё ¬Ґо, § Јаг¦ Ґвбп .hex д ©«.
1) ESC ўлЎЁа Ґв ¬Ґо Ё«Ё гбв ®ўЄг § 票© нЄа Ґ.
ЊҐо ( бв५ЄЁ Ё«Ё «ЁвҐал ўлЎЁа ов Є®¬ ¤л ¬Ґо )
ќЄа (бв५Є ¬Ё ўлЎЁа Ґвбп Ў ©в ў ®ЄҐ Ё Ё§¬ҐпҐвбп,
«оЎ®© ॣЁбва ¬®¦® ЁЄаҐ¬ҐвЁа®ў вм Ё«Ё
¤ҐЄаҐ¬ҐвЁа®ў вм Є« ўЁи ¬Ё +/- )
Ќ нЄа Ґ :
- ®Є® ॠбᥬЎ«Ёа®ў ®Ј® Є®¬ ¤®Ј® д ©« , Є®¬ ¤л
ўлЎЁа овбп Ї® § зҐЁо Їа®Ја ¬¬®Ј® бзҐвзЁЄ PC,
Ё§¬ҐҐЁҐ «оЎ®Ј® § зҐЁп ў ®ЄҐ (+)-ЁЄаҐ¬Ґв,
(-) -¤ҐЄаҐ¬Ґв, ў ⮬ зЁб«Ґ Ё PC.
- ¤ў ®Є ( 1,2 ) ¤«п ®в®Ўа ¦ҐЁп ўгв॥© Ї ¬пвЁ
¤ ле - ¤аҐб ўлЎЁа овбп дгЄжЁҐ© DUMP,
- ॣЁбвал бЇҐжЁ «мле дгЄжЁ©
(acc,b,psw,p0,p1,p2,p3)
2) Ћ‘ЌЋ‚ЌЋ… ¬Ґо:
Dump Expression commandFile Help IO -> Їа®¤®«¦ҐЁҐ
-> Memory Patch Quit Reset Set setUp View eXecute Load
-> ў®§ўа в ў Dump
DUMP :
Dump Area : 1,2
Memory Adress : 55h - ўлЎЁа Ґвбп ¤аҐб ¤ ¬Ї
c Їаאַ© Ё«Ё Є®бўҐ®© ¤аҐб жЁҐ© ў® ўгв॥© Ї ¬пвЁ
ў Ї®бв®п®© Ї ¬пвЁ ‘:0000H,
ў® ўҐиҐ© Ї ¬пвЁ ¤ ле X:0000H,
ў ®¤®¬ Ё§ ®Є® 1,2
COMMANDFile : § Јаг§Є Ё«Ё б®еа ҐЁҐ д ©« .hex д ©« ,
ЇаЁ б®еа ҐЁЁ д ©« ®вЄалў Ґвбп.
LOAD : § Јаг§Є д ©«®ў ¤ ле (Data),
Їа®Ја ¬¬ (Program).
MEMORY : ®ЇҐа жЁЁ б ўгв॥© Ї ¬пвмо ¤ ле
¬Ґо: Clear Fill Move Search searchNext
§ Їа иЁў овбп Ї а ¬Ґвал - Ё¦ЁҐ Ё ўҐаеЁҐ
¤аҐб , ¤ лҐ
PATCH : ўў®¤ Є®¬ ¤ ў ¬Ґ¬®ЁЄҐ ЂбᥬЎ«Ґа
¬Ґо: Patch code Open outputfile Close file
Patch - ўў®¤ ¬Ґ¬®Є®¤ ў ‘ROM Ї® § 票о PC
add a,@r0
mov c,acc.5
SETUP : гбв ®ўЄ а §¬Ґа ЎгдҐа б®еа ҐЁп Є®ва®«мле
в®зҐЄ
VIEW : ®Ў§®а Ёд®а¬ жЁЁ ® бва®©ЄҐ бЁ¬г«пв®а
¬Ґо: Bkpts Io-files Memory-mapp Opc-traps
Passpoints Symbols
EXECUTE : ЁбЇ®«ҐЁҐ Є®¬ ¤ ў ¬Ґ¬®ЁЄҐ
EXPRESSION : -> Enter Expression: ( xx + yy )
Expression will be store at R0
( ўлЎЁа Ґвбп Ї® гЄ § ⥫о ,гбв ў«Ёў -
Ґвбп Ї® ESC )
SET : гбв ®ўЁвм Ї а ¬Ґвал бЁ¬г«пв®а
¬Ґо: Memory-map Passpoint opTions cYcles V-drive ->
breakpoint
Memory-map : а бЇаҐ¤Ґ«ҐЁҐ Ї ¬пвЁ
random-Access read-Only( бЁ¬г«пв®а ЇаҐ¤гЇаҐ¦¤ Ґв
ЇаЁ § ЇЁбЁ )
§ Їа иЁў овбп ЇаҐ¤Ґ«л - Ё¦Ё© Ё ўҐаеЁ© ,
Ї®бв®п п Ї ¬пвм read_Only ‘:0000,
ўҐипп Ї ¬пвм ¤ ле random_Access X:0000
Passpoint : A-r/w point B-R/W range C-write point D-Write run
Є®ва®«м Ё ЇаҐалў Ёп Ї® § ЇЁбЁ ЇаЁ а §«Ёзле гб«®ўЁпе
opTions - бва Ёз®Ґ а §¤Ґ«ҐЁҐ Ї ¬пвЁ зҐаҐ§ Ї®ав P2
breakpoint : opcode
opcode - ®бв ®ў Ї® Є®¤г ®ЇҐа жЁЁ, ЇаЁ¬Ґа, RET
HELP : ‘вагЄвга Є®¬ ¤л бᥬЎ«Ґа б ¬ҐвЄ ¬Ё (Command),
гЇа ў«ҐЁҐ ¤ЁбЇ«ҐҐ¬ (Display),
гЇа ў«ҐЁҐ бЁ¬г«пжЁҐ© (Simulate),
®Ў§®а б।бвў Ї®¤¤Ґа¦ЄЁ (Avocet).
3) €бЇ®«ҐЁҐ Їа®Ја ¬¬ (ᮤҐа¦ ЁҐ Simulate ў HELP).
F1 - ЁбЇ®«ҐЁҐ ¤® в®зЄЁ ®бв ®ў
F10 - ЁбЇ®«ҐЁҐ Ї® и Ј ¬,
F2 - Ї®Є § вм Єгаб®а Ё ¤ўЁ¦ҐЁҐ Єгаб®а ўЁ§ ЇаЁ
ўлЎ®аҐ в®зЄЁ ®бв ®ў
F4 - ¤ўЁ¦ҐЁҐ Єгаб®а ўўҐае ЇаЁ ўлЎ®аҐ в®зЄЁ ®бв ®ў ,
F3 - дЁЄбЁа®ў вм в®зЄг ®бв ®ў ,
F5 - гбв ®ўЁвм бЄ®а®бвм ¬®¤Ґ«Ёа®ў Ёп
(¤ўҐ бЄ®а®бвЁ -high,low)
F6 - ®Ў®ў«ҐЁҐ нЄа Ї®б«Ґ Є ¦¤®© в®зЄЁ
®бв ®ў .
F8 - ўлЄ«о票Ґ ва ббЁа®ўЄЁ ЇаЁ ЁбЇ®«ҐЁЁ
Ї®¤Їа®Ја ¬¬ ў Ї®и Ј®ў®¬ ०Ё¬Ґ
---------------------------------------------------------------
‡ ¤ Ёп:
1. ‚лЇ®«Ёвм Ё¤ЁўЁ¤г «млҐ § ¤ Ёп Ї® ®Ўа §ж ¬ бᥬЎ«ҐаҐ
ђ §а Ў®в вм Їа®Ја ¬¬л Ё ЁбЇ®«Ёвм ў ‘Ё¬г«пв®аҐ.
III. €§¬ҐаҐЁҐ Ё Є®ва®«м ўаҐ¬Ґле ЁвҐаў «®ў.
€§¬ҐаҐЁҐ Ё Є®ва®«м ўаҐ¬Ґле ЁвҐаў «®ў,
®ЎҐбЇҐзЁў овбп в ©¬Ґа ¬Ё ЊЉЉ: ’Њ0,’Њ1.
ђҐЈЁбва гЇа ў«ҐЁп в ©¬Ґа ¬Ё
TMOD=gate1.c/t1.mod1.gate0.c/t0.mod0,
mod0=01 гбв ў«Ёў Ґв ०Ё¬ 16-ЎЁв®ў®Ј® бзҐвзЁЄ ,
c/t=0 ўлЎЁа Ґв ¤«п § Ї®«ҐЁп ўаҐ¬Ґ®Ј® ЁвҐаў «
ўгваҐоо з бв®вг f0/12,
gate0=1 а §аҐи Ґв § Ї®«ҐЁҐ Ї® ўҐиҐ¬г бЁЈ «г int0,
=0 ўҐиЁ© бЁЈ « int0 Ґ гзЁвлў Ґвбп.
ЃЁв а §аҐиҐЁп бзҐв TR0/TR1.
ЃЁв ЇҐаҐЇ®«ҐЁп TF0/TF1 - § Їа®б ЇаҐалў Ёп.
ЏаЁ¬Ґа д®а¬Ёа®ў Ёп § ¤Ґа¦ЄЁ 65 ¬б б Їа®Ја ¬¬л¬ ®¦Ё¤ ЁҐ¬
ЇҐаҐЇ®«ҐЁп в ©¬Ґа :
wait()
{ TMOD=TMOD|01;
TH0=TL0=0;TF0=0;TR0=1; while (~TF0); TR0=0; }
€§¬ҐаҐЁҐ Ї® ЇаҐалў Ёо Ї®§ў®«пҐв а биЁаЁвм ¤Ё Ї §® Ё§¬ҐаҐЁп
Ё Є®ва®«п ЁвҐаў « , ®аЈ Ё§®ў вм Ё§¬ҐаҐЁп Ї а ««Ґ«м® б
ЁбЇ®«ҐЁҐ¬ ЇаЁЄ« ¤ле Їа®Ја ¬¬.
-----------------------------------------------------------
‡ ¤ Ёп:
1. €§¬ҐаЁвм ўаҐ¬п ўлЇ®«ҐЁп Їа®Ја ¬¬л б ЁбЇ®«м§®ў ЁҐ¬ в ©¬Ґа
- €ЁжЁ «Ё§ жЁп в ©¬Ґа ’Њ0, з «® бзҐв , § ЇгбЄ Їа®Ја ¬¬л,
- § ўҐа襨Ґ бзҐв ўаҐ¬ҐЁ ЇаЁ § ўҐа襨Ё Їа®Ја ¬¬л,
а ббзЁв вм ॠ«мго § ¤Ґа¦Єг - з бв®в § Ї®«ҐЁп в ©¬Ґа
11.059/12 ¬ѓж
- Ё§¬ҐаЁвм Їа®Ја ¬¬го § ¤Ґа¦Єг Ё Ї®бва®Ёвм Ја дЁЄ а бзҐв
Є®бв вл жЁЄ« § ¤Ґа¦ЄЁ.
2. ‘д®а¬Ёа®ў вм § ¤Ґа¦Єг 0.1-60 ᥪ㤠Ї® ЇаҐалў Ёо TM0.
‹€’…ђЂ’“ђЂ.
1. ‘в иЁ ‚.‚. Ё ¤а. Џа®ҐЄвЁа®ў ЁҐ жЁда®ўле гбва®©бвў
®¤®ЄаЁбв «мле ¬ЁЄа®Є®ва®««Ґа е, Њ:ќҐаЈ® ⮬Ё§¤ в,1990
2. ‹ЁЇ®ўЁжЄЁ© ѓ.Џ. Ё ¤а. Ћ¤®ЄаЁбв «млҐ Њќ‚Њ. ‘Ґ¬Ґ©бвў® ЊЉ51.
’ҐеЁзҐбЄ®Ґ ®ЇЁб ЁҐ Ё агЄ®ў®¤бмў® Ї® ЇаЁ¬ҐҐЁо.M.1992
3. ЌҐа®¤ ‚.џ. Ё ¤а. Ћ¤®ЄаЁбв «млҐ Њќ‚Њ MCS-51. ЂаеЁвҐЄвгал. M.1995
4. ѓаҐЎҐў ‘Ґ¬Ґ©бвў® MCS-51. 1994
5. Њ.ѓгЄ ЂЇЇ а влҐ б।бвў IBM PC (com-Ї®авл)
6. P.„ Є Џа®дҐббЁ® «м п а Ў®в ў MS-DOS (Їа®Ја ¬¬Ёа®ў ЁҐ com-Ї®ав®ў)
7. ЊҐв®¤ЁзҐбЄ®Ґ агЄ®ў®¤бвў® Ї® ЇаЁ¬ҐҐЁо ЊЉЉ SAB515/535,
- д ©«л SABM,SABA