a) ADDITION ALGORITHM: I. Initialize the SI register to in!t "ata #e#or$ lo%ation II. Initialize the DI register to o!t!t "ata #e#or$ lo%ation III. Initialize the &L register to zero 'or %arr$ I(. Get the 1 st "ata into a%%!#!lator. (. A"" the a%%!#!lator )ith * n" "ata (I. &he%+ the %arr$ 'lag, i' not s+i next line (II. In%re#ent %arr$-&L Reg) (III. Mo.e the res!lt 'ro# a%%!#!lator to #e#or$. I/. Also store %arr$ register /. Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s STORE& MO' SI( 2000H MO' DI( 3000H MO' CL( 00H MO' A)( *SI+ ADD A)( *SI,2+ -NC STORE INC CL MO' *DI+( A) MO' *DI,2+( CL INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H 45 *331H 1* *33*H 67 *334H 89 O1T01T 4333H A& 4331H 97 433*H 33 :) S1;TRA&TION ALGORITHM: I. Initialize the SI register to in!t "ata #e#or$ lo%ation II. Initialize the DI register to o!t!t "ata #e#or$ lo%ation III. Initialize the &L register to zero 'or :orro) I(. Get the 1 st "ata into a%%!#!lator. (. S!:tra%t the a%%!#!lator )ith * n" "ata (I. &he%+ the %arr$ 'lag, i' not set s+i next line (II. In%re#ent %arr$-&L Reg) (III. *<s &o#li#ent A%%!#alator I/. Mo.e the res!lt 'ro# a%%!#!lator to #e#or$. /. Also store %arr$ register /I. Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s STORE& MO' SI( 2000H MO' DI( 3000H MO' CL( 00H MO' A)( *SI+ S.B A)( *SI,2+ -NC STORE INC CL NE/ A) MO' *DI+( A) MO' *DI,2+( CL INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H 77 *331H 55 *33*H 44 *334H ** O1T01T 4333H 88 4331H ** 433*H 33 &) M1LTI0LI&ATION ALGORITHM: I. GET M1LTI0LIER INTO A&&1M1LATOR 2ROM MEMOR= II. GET M1LTI0LI&AND INTO ;/ REGISTER III. M1LTI0L= A/ AND ;/ I(. STORE LO>ER ORDER >ORD 2ORM A&&1M1LATOR INTO MEMOR= (. STORE HIGHER ORDER >ORD 2ROM D/ INTO MEMOR= (I. HALT 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' A)( *2000H+ MO' B)( *2002H+ M.L B) MO' *3000+( A) MO' *3002+( D) INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H 3A *331H 33 *33*H 3A *334H 33 O1T01T 4333H 95 4331H 33 433*H 33 4334H 33 D)DI(ISION I. GET DI(IDEND INTO A&&1M1LATOR 2ROM MEMOR= II. GET DI(ISOR INTO ;/ REGISTER III. DI(IDE A/ ;= ;/ I(. STORE ?1OTIENT 2ORM A&&1M1LATOR INTO MEMOR= (. STORE REMAINDER 2ROM D/ INTO MEMOR= (I. HALT 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' A)( *2000H+ MO' B)( *2002H+ DI' B) MO' *3000+( A) MO' *3002+( D) INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H 97 *331H 33 *33*H 3A *334H 33 O1T01T 4333H 3A 4331H 33 433*H 35 4334H 33 Ex.No: * Sear%hing @ Sorting a) LargestAS#allest No. in an arra$ Algorith#: i. Loa" starting a""ress o' arra$ in to SI reg. ii. Loa" length o' arra$ in &L reg. iii. Get the 1 st ele#ent into A%%!#!lator i.. 1"ate SI an" &L registers .. &o#are A%%!#!lator )ith next ele#ent .i. &he%+ %arr$ 'lag, i' not set s+i next line .ii. S)a a%%!#!lator )ith SI reg. .iii. De%re#ent %o!nter ix. I' not zero, goto ste i.. x. Else, store res!lt. xi. Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s NEXT& MO' SI( 2000H MO' DI( 3000H MO' CL( *SI+ INC SI MO' AL( *SI+ SKIP& DEC CL INC SI CMP AL( *SI+ -NB SKIP0 -B SKIP MO' AL( *SI+ DEC CL -N1 NEXT MO' *DI+( AL INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H-&O1NT) 38 *331H AA *33*H ;; *334H && *335H 88 *338H 66 O1T01T 4333H LARGEST : && SMALLEST: 88 :) To Sear%h 'or a B2TE "n an arra$. Algorith#: i. Loa" starting a""ress o' arra$ in to SI reg. an" initialize DI reg 'or res!lt. ii. Loa" the b3%e to :e sear%he" in DL reg. @ initialize ;H reg 'or osition as 31 iii. Get the 1 st ele#ent into A%%!#!lator i.. AGAIN : &o#are A%%!#!lator )ith DL reg .. &he%+ zero 'lag, i' set goto A(AIL .i. 1"ate SI an" In%re#ent ;L .ii. Get next ele#ent into A%%!#!lator an" %o#are )ith EOA .iii. I' not zero, goto AGAIN. ix. Initialize &/ reg to zero x. Store res!lt 'or Not A.aila:le an" goto END xi. A(AIL: Get )or" 'or a.aila:le in to ;L reg. xii. Store osition, a""ress an" stat!s o' sera%h. xiii. END: Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s A/AIN& MO' SI( 2000H MO' DI( 3000H MO' DL( *DI+ MO' BH( 01 MO' AL( *SI+ CMP AL( DL -1 AVAIL INC SI INC BL MO' AL( *SI+ CMP AL( E0 NOTA'L A'AIL& END& -N1 AGAIN MO' C)( 0000H MO' *DI,1+( C) MO' *DI,3+( C) -MP END MO' BL( 44 MO' *DI,1+( B) MO' *DI,3+( SI INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * 4333H-;=TE) 05 *333H AA *331H ;; *33*H && *334H 88 *335H 66 B B B B B B B B *317H 38 B B B B B B *34*H EO O1T01T 4333H 38 4331H 22 433*H 1C 4334H 17 4335H *3 %) As%en"ingADes%en"ing or"er Algorith#: i. Loa" SI reg )ith ointer to arra$ ii. Loa" arra$ length to &L @ &H 'or t)o %o!nters -&L 'or reetitions @ &H 'or %o#arisons) iii. RE0EAT : Get an ele#ent into a%%!#!lator i.. NE/T: &o#are )ith next ele#ent .. &he%+ %arr$ 'lag, i' set goto SDI0 .i. S)a ele#ents o' arra$ .ii. SDI0: De%re#ent &H an" i' not zero go to NE/T .iii. De%re#ent &L , i' not zero go to RE0EAT ix. Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s REPEAT& NE)T& S6IP& MO' SI( 1500H MO' CL( *SI+ DEC CL MO' SI( 1500H MO' CH( *SI+ DEC CH INC SI MO' AL( *SI+ INC SI CMP AL( *SI+ -C SKIP/JNC SKIP )CH/ AL( *SI+ )CH/ AL( *SI 7 1+ DEC CH -N1 NEXT DEC CL -N1 REPEAT INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * 1833-&O1NT) 08 1831 AA 183* ;; 1834 && 1835 88 1838 66 1839 11 1836 CC O1T01T 1831 11 183* 88 1834 66 1835 CC 1838 AA 1839 ;; 1836 && E/.NO: 4 STRING MAN101LATION a9 Bl!#: Trans;er Algorith#: i. Initialize DS @ ES registers ii. Loa" so!r%e an" "estination lo%ations to in"ex regs. iii. Loa" :lo%+ size in %o!nter reg. i.. &lear Dire%tion 'lag 'or A!toE in%re#enting #o"e .. &o$ %ontents 'ro# so!r%e to "estination a""ress !ntil %o!nter :e%o#es zero. .i. Halt. Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s TRANSFER : MO' A)( 0000H MO' DS( A) MO' ES( A) MO' SI( 2001H MO' DI( 3000H MO' C) (*2000H+ CLD MO'SB LOOP TRANSFER INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H -;lo%+ Size) 38 *331H 1* *33*H 45 *334H 89 *335H 67 *338H CA O1T01T 4333H 1* 4331H 45 433*H 89 4334H 67 4335H CA b9 Table sear#$ Algorith#: i. Initialize ;/ reg )ith ta:le size ii. Get a""ress o' ta:le an" s$#:ol in DI @ SI reg. iii. &lear "ire%tion 'lag. i.. Loa" %o!nter )ith 37-length) .. &o#are :$tes i' s!%%ess'!l goto 2O1ND .i. 0oint to the next s$#:ol .ii. De%re#ent ;/, i' not zero reeat the stes .iii. Sho) not 'o!n" ix. 2O1ND: Sho) 'o!n" stat!s. x. Halt Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s LOOP1 NOT4O.ND& 4O.ND& END: MO' B)( Table S"=e LES DI( *3000H+ MO' D)( DI LDS SI( *2000H+ CLD MO' C) ( 08 REPE CMPSB -E 4O.ND ADD D)( 0020H MO' DI( D) MO' SI( *SI,8+ DEC B) -NE LOOP1 MO' AL( 00H MO' *3000H+( AL -MP END MO' AH( 44H MO' *3000H+( AH INT 3 O1T01T (ERI2IA&TION: IN01T 4333H 33 4331H 43 433*H 33 4334 33 *333H 33 *331H 1* *33*H 33 *334H 33 N!%e& T$e %able $as %! be l!aded ;r! e!r3 l!#a%"!n 3000H > %$e sear#$ s%r"n< "n 1200H? Table s"=e #an be an3 16 b"% n@ber #9 C!de C!nAers"!n Algorith# i. Initialize ;/ reg )ith a""ress o' translation ta:le ii. Loa" so!r%e an" "estination a""ress in SI @ DI reg. iii. &lear "ire%tion 'lag i.. Loa" %o!nter )ith length .. Get 'irst ele#ent into AL , %he%+ )hether the in!t is .ali" .i. I' in.ali" go to en" .ii. Else translate %o"e 'ro# ta:le .iii. Store %o"e ix. Loo !ntil %o!nter :e%o#es zero x. Halt Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s CONVERT & INVALID: MO' B)( 1200H MO' SI( 2000H MO' DI( 3000H CLD MO' C) ( Len<%$ LODSB CMP AL( 0BH -A INVALID )LAT STOSB LOOP CONVERT INT 3 MO' AL( 00 MO' *DI+( AL INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H -DE&IMAL DIGIT) 34 *331 38 O1T01T 4333H 52 4331H 9D &ON(ERSION TA;LE: LOAD 4ROM Me!r3 Address& 1200H BCD d"<"% 0 1 2 3 C 5 6 8 8 B 8 se<en% #!de 34 06 5B C4 66 6D 8D 08 84 64 d9 4"nd > ReDla#e Algorith#: i. Initialize DS @ ES registers ii. Loa" "estination in"ex regs. >ith a""ress o' string iii. Loa" %o!nter reg. i.. Loa" AL )ith the string to :e 'o!n" .. &lear Dire%tion 'lag 'or A!toE in%re#enting #o"e .i. S%an 'or the string .ii. I' 'o!n" rela%e )ith the other string in AH .iii. &ontin!e !ntil %o!nter %leare" ix. Halt Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s LOOP1: DONE: MO' A)( 0000H MO' DS( A) MO' ES( A) MO' AL( *2001H+ MO' DI( 3000H MO' C) (*2000H+ CLD REPN1 SCASB -N1 DONE MO' AH( *2002H+ MO' *DI 1+( AH -MP LOOP1 INT 3 O1T01T (ERI2IA&TION: IN01T DATA 1 DATA * DATA * *333H -&O1NT) 38 *331H && *33*H AA 4333H 11 4331H && 433*H ** 4334H && 4335H 44 O1T01T 4333H 11 4331H AA 433*H ** 4334H AA 4335H 44 EE?N!& C ADC > DAC a9 DAC In%er;a#"n< SF@are GaAe& i. Initialize 7*88 :$ sen"ing &ontrol >or" to &ontrol Reg. ii. Get FHighG into a%%!#!latorH sen" to DA& thro!gh o!t!t ort iii. &all "ela$ s!: ro!tine i.. Get FLo)G into a%%!#!latorH sen" to DA& thro!gh o!t!t ort .. &ontin!e %$%le Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s START: DELAY: CONT: MO( D/,2289H MO( AL,73H O1T D/,AL MO( D/,228*H MO( AL,22H O1T D/,AL &ALL DELAY MO( AL,33H O1T D/,AL &ALL DELAY IM0 START MO( &/,3622H NO0 NO0 DE& &/ INJ CONT RET 7*88 &ontrol Reg a""ress &ontrol )or" to !t orts as o!t!t orts Sen" to %ontrol reg 0ort ; a""ress BHigh< into a%%. Sen" to DA& thro!gh o!t!t ort &all "ela$ ro!tine BLo)< .al!e into a%%. Sen" to DA& thro!gh o!t!t ort &all "ela$ ro!tine &ontin!e %$%le Dela$ %o!nt >ait state De%re#ent %o!nt I' not zero %ontin!e Else ret!rn to #ain rogra# O1T01T (ERI2I&ATION: -0lot the >a.e 'or# in Grah.) &o!nt .al!e A#lit!"e -() Ti#e erio" -#s) 36HH * ( 3.5 #s S%a"r #ase GaAe& Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s START: DELA=: MO( D/, 2289H MO( AL,73H O1T D/,AL MO( D/, 228*H MO( AL, 33H O1T D/, AL &ALL DELA= ADD AL, 88H O1T D/, AL &ALL DELA= ADD AL, 88H O1T D/, AL &ALL DELA= ADD AL, 88H O1T D/, AL &ALL DELA= &ALL DELA= S1; AL, 88H O1T D/, AL &ALL DELA= S1; AL, 88H O1T D/, AL &ALL DELA= S1; AL, 88H O1T D/, AL &ALL DELA= IM0 START MO( &/, 3A22H &ONT: NO0 NO0 DE& &/ INJ &ONT RET b9 ADC Algorith#: i. Initialize 7*88 :$ sen"ing %ontrol )or" to %ontrol reg. ii. Initialize #eas!re#ent an" get in!t to AD& iii. &lose #eas!re#ent. i.. &all "ela$. .. Rea" the "igital o!t!t .i. Halt 0ro%e"!re: i. &onne%t AD& inter'a%ing Dit )ith (IDE79 Dit thro!gh :!s ii. &onne%t o)er s!l$ to AD& +it iii. Loa" rogra# i.. Set in!t .oltage :$ A"K!sting 0OT resister in AD& Dit an" #eas!re !sing M!lti#eter. .. Exe%!te rogra# an" rea" the "igital o!t!t 'ro# the (ID L 79 +it. Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s DELA=: &ONT: MO( D/, 2289H MO( AL, C3H O1T D/, AL MO( D/, 2285H MO( AL, 22H O1T D/, AL MO( AL, 33 O1T D/, AL MO( AL, 22H O1T D/, AL &ALL DELA= &ALL DELA= MO( D/, 2283H IN AL, D/ INT 4 MO( &/, 3222H NO0 NO0 DE& &/ INJ &ONT RET 7*88 &ontrol reg a""ress &ontrol >or" 'or initializing orts as IA0 orts Sen" to %ontrol reg 0ort & a""ress Disa:le signal 'or AD& Sen" to AD& ort SO& signal 'or AD& Sen" to AD& ort &lose #eas!re#ent signal Sen" to AD& &all "ela$ ro!tine 0ort A a""ress Rea" 0ort A )hi%h has O!t!t o' AD& ;rea+ oint Dela$ %o!nt >ait state De%re#ent %o!nt I' not zero %ontin!e Else ret!rn to #ain rogra#
O1T01T (ERI2I&ATION: Analog In!t -() Digital O!t!t 8 ( 22H *.8 ( 6AH Ex. No: 8 0ARALLEL &OMM1NI&ATION Trans"%%er& Algorith#: i. Initialize the 7*88 )ith o!t!t orts :$ sen"ing %ontrol )or" ii. Sen" the F%lear F signal to re%ei.er iii. Get the B;$te< to :e trans#itte" into A%%!#!lator i.. Sen" it to o!t!t ort .. Sen" the FEna:le F signal an" %lose %o##!ni%ation .i. Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' D)( 4426H MO' AL(82H O.T D)(AL MO' D)( 442CH MO' AL(00H O.T D)(AL MO' D)( 4420H MO' AL(55HHB3%e9 O.T D)(AL MO' D)( 442CH MO' AL( 44H O.T D)(AL INT 3 7*88 &ontrol Reg &ontrol >or" 'or Initializing orts as OA0 Loa" %ontrol )or" 0ort & 'or F &learG signal &lear signal Sen" %lear signal 0ort A O!t!t ort 'or trans#itting ;$te 88H :$te to :e trans#itte" Trans#it :$te 0ort & 'orG Ena:leG signal Ena:le signal Sen" Ena:le signal ;rea+ oint Re#e"Aer& Algorith#: i. Initialize 7*88 )ith in!t orts :$ setting %ontrol reg. ii. Rea" @ &he%+ 'or F&lear F signal 'ro# Trans#itter iii. &he%+ an" )ait 'or F Ena:leG signal i.. Rea" in!t ort .. Sho) the "ata .i. Halt 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s CHECK: MO' D)(4426H MO' AL(BBH O.T D)(AL MO' D)(442CH IN AL(D) -1 CHECK MO' D)(4420H IN AL(D) INT 3H &ontrol Reg. o' 7*88 &ontrol )or" 'or initializing orts as IA0 0ort & 'or FEna:le F signal Rea" 0ort & Go :a%+ an" )ait 'or F Ena:leG 0ort A in!t "ata Rea" "ata 'or# trans#itter ;rea+ 0oint 0ro%e"!re: i. &onne%t t)o (ID L 79 +its !sing "ata %a:le ii. Loa" Trans#itter rogra# in One +it an" Re%ei.er in the other +it iii. Exe%!te Re%ei.er an" then Trans#itter an" again Re%i.er. i.. AL in Re%ei.er )ill sho) the B;$te< Trans#itte" Ex.No: 9 INTER4ACIN/ 828B( 825B > 8253 828B& 6e3b!ard In%er;a#"n<& Algorith#: i. Initialize 7*6C )ith %ontrol )or" to "e'ine in 7 :it 7 %hara%ter "isla$ ii. Initialize %lo%+ re s%alar 'or 'reM!en%$ "i.ision iii. Loa" "isla$ )rite inhi:it )or" i.. Rea" 2I2O RAM stat!s i' e#t$ )ait .. Else rea" Data %o"e 'ro# in!t ort an" s!ress !n)ante" :its-:6@:9) .i. ;rea+ oint Address Label Mne!n"#s Ma#$"ne C!de C!en%s Ia"%& MO' AL(12$ MO' D)(4452$ O.T D)(AL MO' AL(3E$ O.T D)(AL MO' AL(A0$ O.T D)(AL IN AL(D) AND AL(08$ -1 Ia"% MO' D)(4450$ IN AL(D) AND AL(34$ INT 3 &ontrol )or" to "e'ine 7*6C in 7 :it 7 %hara%ter "isla$ 7*6C %ontrol ort 'or 'reM!en%$ "i.ision "isla$A)rite inhi:it rea" stat!s o' 7*6C 2I2O e#t$N I' =es loo :a%+ to )ait Data register Rea" &o"e 'ro# "ata ort S!ress :its 6@9 ;rea+ oint S%an %o"es 'or De$:oar": R!G0C!l@n 1 2 3 C 1 2C 23 22 21 2 1# 1b 1a 1B 3 1C 13 12 10 C 0# 0b 0a 0B Disla$ inter'a%ing: Algorith#: i. Initialize 7*6C )ith %ontrol )or" to "e'ine in 7 :it 7 %hara%ter "isla$ ii. Initialize %lo%+ re s%alar 'or 'reM!en%$ "i.ision iii. Loa" "isla$ )rite inhi:it )or" an" %o!nt 'or %learing "isla$ i.. &lear all "isla$ an" loa" ;/ reg )ith a""ress o' ta:le .. Get the in!t %o"e 'ro# ta:le an" sen" to "isla$ thro!gh o!t!t ort .i. ;rea+ oint 0rogra#: Address Label Mne!n"#s Ma#$"ne C!de C!en%s Clear& MO' AL(12$ MO' D)(4452$ O.T D)(AL MO' AL(3E$ O.T D)(AL MO' AL(A0$ O.T D)(AL MO' AH(08$ MO' D)(04450$ MO' AL(00$ O.T D)(AL DEC AH -N1 Clear MO' D)(4450$ MO' CL(06 &ontrol )or" to "e'ine 7*6C in 7 :it 7 %hara%ter "isla$ 7*6C %ontrol ort Loa" to %ontrol reg 'or 'reM!en%$ "i.ision sen" to %ontrol reg "isla$A)rite inhi:it sen" to %ontrol reg &o!nt o' 7 'or %learing "is. "ata register a""ress "ata O3 "e%re#ent loo %o!nt &lear ! to AHO 33 Data reg &o!nt 'or "igits Ba#:& MO' B)(2000$ MO' AL(*B)+ O.T D)( AL INC B) DEC CL -N1 Ba#: In!t "isla$ %o"e a""ress in ;/ Rea" the in!t %o"e Sen" to o!t!t ort 'or "isla$ 1"ate ;/ @ &L reg Loo :a%+ Note: In!t "ata 'ro# *333H DI/IT 0 1 2 3 C 5 6 8 8 B A B C D E 4 8 SE/MENT CODE 4C 60 BA 42 66 D6 DE 80 4E 86 8E CE BC EA BE 1E 825B& a9 Re%@rn In%err@D% n@ber Al<!r"%$& i. Loa" Initialization &ontrol >or" 1 -I&>1) into %ontrol reg ii. Loa" Initialization &ontrol >or" * -I&>*) into "ata reg. iii. Loa" Initialization &ontrol >or" 5 -I&>5) into "ata reg. i.. Loa" Oeration &ontrol >or" -O&>) into %ontrol reg. .. 0oint to %ontrol reg .i. Set interr!t ena:le 'lag .ii. >ait 'or interr!t to haen .iii. ISR: Rea" interr!t n!#:er an" :rea+ oint Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s IAIT& MO' D)( 4450$ MO' AL( 14$ O.T D)(AL MO' D)( 4452$ MO' AL( 10$ O.T D)(AL MO' D)( 4452$ MO' AL( 03$ O.T D)(AL MO' D)( 4452$ MO' AL( 80$ O.T D)(AL MO' D)( 4450$ STI -MP IAIT HISR %! be l!aded "n Ae#%!r l!#a%"!n !; I&>1 I&>* I&>5 O&>1 Ena:le interr!t >ait 'or interr!t *333H "n%err@D%9 IN AL(D) INT 3 Rea" "ata reg. ;rea+ oint Interr!t (e%tor ta:le: In%err@D% N! 'e#%!r l!#a%"!n Se<en% Address HCS9 E;;e#%"Ae Address HIP9 IR?3 3353H 3333H *333H IR?1 3355H 3333H *333H IR?* 3357H 3333H *333H IR?4 335&H 3333H *333H IR?5 3383H 3333H *333H IR?8 3385H 3333H *333H IR?9 3387H 3333H *333H IR?6 338&H 3333H *333H O1T01T: AL )ill %ontain the Interr!t .al!e -The rese%ti.e :it )ill :e set )ith rese%t to interr!t No.) IRJ0 IRJ1 IRJ2 IRJ3 IRJC IRJ5 IRJ6 IRJ8 01 02 0C 08 10 20 C0 80 b9 Pr!<ra %! d! add"%"!n( s@b%ra#%"!n and @l%"Dl"#a%"!n Address Label Mne!n"#s Ma#$"ne C!de C!en%s IRJ0& IRJ1& IRJ2& MO' A)? Da%a1 MO' B)( da%a2 ADD A)( B) IRET MO' A)? Da%a1 MO' B)( da%a2 S.B A)( B) IRET MO' A)? Da%a1 MO' B)( da%a2 M.L B) IRET Interr!t .e%tor ta:le: In%err@D% N! 'e#%!r l!#a%"!n Se<en% Address HCS9 E;;e#%"Ae Address HIP9 IR?3 3353H 3333H *333H IR?1 3355H 3333H 4333H IR?* 3357H 3333H 5333H 8253& Al<!r"%$& i. Loa" "i.ision 'a%tor as %o!nt in &/ reg. ii. Sele%t the %o!nter reg :$ sen"ing aroriate "ata to %ontrol reg. iii. Get lo)er or"er %o!nt in to AL an" sen" to sele%te" %o!nter reg i.. Get higher or"er %o!nt in to AL an" sen" to sele%te" %o!nter reg. .. >ait an" ter#inate. Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' A)(0050H MO' C)(A) MO' AL(36H MO' D)( 4456H O.T D)(AL MO' AL(CL MO' D)( 4450H O.T D)(AL MO' AL(CH O.T D)(AL NOP INT 3H D"A"s"!n 4a#%!r C!@n%er0 Is Sele#%ed C!n%r!l Re< C!@n% Lsb C!@n%er 0 Re< C!@n% Msb Ex.No: 6 SERIAL COMM.NICATION Trans"%%er& Al<!r"%$& "? L!ad d"A"s"!n ;a#%!r "n A) and B3%e %! be %rans"%%ed "n BL ""? Call %$e s@b r!@%"ne KBA.DINITL? """? T)LOOP& /e% %$e B3%e %! be %rans"%ed "n%! AL "A? Call %$e S@br!@%"ne KT)B2TEL A? -@D %! T)LOOP A"? Brea:D!"n%? T)B2TE& "? Call dela3 r!@%"ne ""? SaAe %$e b3%e %! an!%$er Re< ;r! AL """? L!ad s%a%@s re< address "A? Read s%a%@s G!rd !; 8251 and #$e#: read3 b"%HB09 A? I; =er! #!n%"n@e #$e#:"n< A"? L!ad !de re< address and <e% %$e B3%e "n%! AL A""? Trans"% %$e B3%e A"""? Re%@rn %! a"n Dr!<ra BA.DINIT& "? SaAe d"A"s"!n ;a#%!r as #!@n% "n C) re<? ""? Sele#% %$e #!@n%er re< b3 send"n< aDDr!Dr"a%e da%a %! #!n%r!l re<? """? /e% l!Ger !rder #!@n% "n %! AL and send %! sele#%ed #!@n%er re< "A? /e% $"<$er !rder #!@n% "n %! AL and send %! sele#%ed #!@n%er re<? A? Ia"% and <e% s%a%@s re< Address !; 8251 A"? Send 3 D@3 !de I!rds %! 8251 A""? /e% Rese% G!rd and send %! 8251 A"""? /e% !de G!rd and Send !de G!rd "E? Ia"% and send Enable Trans"%%er s"<nal E? Ia"% and Re%@rn %! Ma"n Dr!<ra DELA2& "? P@s$ B) "n %! s%a#: ""? L!ad C!@n% "n %! S%a#: """? Ia"% and De#reen% #!@n% "A? I; #!@n% n!% =er! %$en #!n%"n@e A? Else P!D BE ;!r s%a#: and re%@rn %! a"n Pr!<ra M!de G!rd Re<"s%er& 4450H S%a%@s G!rd Re<"s%er& 4452H T"er AddressHC!@n%er09& 4400H Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s T)LOOP& T)B2TE& LOOOP& BA.DINIT& MO' A)(0050H MO' BL(C2H CALL BA.DINIT MO' AL(BL CALL T)B2TE -MP T)LOOP INT 3 CALL DELA2 MO' BL(AL MO' D)(4452H IN AL(D) AND AL(01H -1 LOOOP MO' AL(BL MO' D)(4450H O.T D)(AL RET MO' C)(A) MO' AL(36H MO' D)(4406H O.T D)(AL MO' AL(CL MO' D)(4400H O.T D)(AL MO' AL(CH O.T D)(AL NOP Di.ision 2a%tor 2or ;a!" &o!nt ;$te To ;e Tx In ;L Reg P;P A/ &ontain Ti#er &o!nt BL 7 &ontain The ;$te To ;e Tx. Sa.e the :$te Stat!s Reg Get the stat!s )or" %he%+ the rea"$ :it I' not rea"$ go :a%+ to %he%+ Restore the :$te to al MODE REG T/ THE ;=TE RET1RN Sa.e The &o!nt In &/ &o!nter3 is sele%te" -TIMADRQ9H) &ontrol Reg &o!nt LS; &O1NTER 3 REG &o!nt MS; >ait DELA2& D1& NOP MO' D)(4452H MO' AL(00H O.T D)(AL O.T D)(AL O.T D)(AL MO' AL(C0H O.T D)(AL CALL DELA2 MO' AL(CEH O.T D)(AL NOP NOP MO' AL(28H O.T D)(AL NOP NOP RET P.SH B) MO' B)(0C44H NOP NOP DEC B) -N1 D1 POP B) RET Stat!s Register D!##$ Mo"e >or" Reset >or" -01 00 11 109 ONE STO0;IT,NO 0ARIT=,7;ITS &HAR T/&A19 ;A1D ENA;LE T/ Dela$ Ro!tine Re#e"Aer& Al<!r"%$& "? L!ad d"A"s"!n ;a#%!r "n A) ""? Call %$e s@b r!@%"ne KBA.DINITL? """? Call %$e S@br!@%"ne KR)B2TEL "A? Brea:D!"n%? R)B2TE& "? L!ad S%a%@s Re<?Address !; 8251 ""? CHEC6& Read s%a%@s G!rd """? I; re#e"Aer b@;;er eD%3 %$en <! ba#: %! CHEC6 "A? /e% M!de Re<"s%er Address and Read %$e B3%e A? Re%@rn %! a"n Dr!<ra Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s R)B2TE& CHEC6 & BA.DINIT& MO' A)(0050H CALL BA.DINIT CALL R)B2TE INT 3 MO' D)(4452H IN AL(D) AND AL(02H -1 CHEC6 MO' D)(4450H IN D)(AL RET MO' C)(A) MO' AL(036H MO' D)(4406H O.T D)(AL MO' AL(CL MO' D)(4400H O.T D)(AL MO' AL(CH Di.ision 2a%tor 2or ;a!" &o!nt A/ &ontain Ti#er &o!nt Stat!s Reg Get the stat!s )or" %he%+ the Re%ei.er ;!''er :it I' not rea"$ go :a%+ to %he%+ MODE REG Rea" the ;=TE RET1RN Sa.e The &o!nt In &/ &o!nter3 is sele%te" -TIMADRQ9H) &ontrol Reg &o!nt LS; &O1NTER 3 REG &o!nt MS; DELA2& D1& O.T D)(AL NOP NOP MO' D)(4452H MO' AL(00H O.T D)(AL O.T D)(AL O.T D)(AL MO' AL(C0H O.T D)(AL CALL DELA2 MO' AL(CEH O.T D)(AL NOP NOP MO' AL(28H O.T D)(AL NOP NOP RET P.SH B) MO' B)(0C44H NOP NOP DEC B) -N1 D1 POP B) RET >ait Stat!s Register D!##$ Mo"e >or" Reset >or" -01 00 11 109 ONE STO0;IT,NO 0ARIT=,7;ITS &HAR T/&A19 ;A1D ENA;LE T/ Dela$ Ro!tine 0ro%e"!re: i. &onne%t t)o (ID L 79 +its !sing Serial %a:le ii. Loa" Trans#itter rogra# in One +it an" Re%ei.er in the other +it iii. Exe%!te Re%ei.er an" then Trans#itter an" again Re%ei.er. i.. AL in Re%ei.er )ill sho) the B;$te< Trans#itte" EE?N!& 08 STEPPER MOTOR > DC MOTOR CONTROL S%eDDer M!%!r Al<!r"%$& L!ad #!n%r!l D!r% address !; 8255 /e% C!n%r!l G!rd %! "n"%"al"=e 8255 D!r%s as O@%D@% D!r%s Send %! #!n%r!l re< L!ad 8255 P!r% C Address STEP& /e% "n"%"al D$ase D!s"%"!n( Send %! D!r% CM Call dela3 r!@%"ne /e% 2 nd D$ase D!s"%"!n( Send %! D!r% CM Call dela3 r!@%"ne /e% 3 rd D$ase D!s"%"!n( Send %! D!r% CM Call dela3 r!@%"ne /e% 4"nal D$ase D!s"%"!n( Send %! D!r% CM Call dela3 r!@%"ne /! ba#: %! STEP Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s STEP& DELA2& DEL0& MO' D)( 4426H MO' AL(80H O.T D)(AL MO' D)( 4420H MO' AL(PH1 O.T D)(AL CALL DELA2 MO' AL(PH2 O.T D)(AL CALL DELA2 MO' AL(PH3 O.T D)(AL CALL DELA2 MO' AL(PHC O.T D)(AL CALL DELA2 -MP STEP MO' B)(0010H MO' A)(0044H 8255 C!n%r!l Re< Address C!n%r!l G!rd ;!r !@%D@% D!r%s Send %! #!n%r!l re< P!r% C Address In"%"al P$ase D!s"%"!n 2 nd D$ase D!s"%"!n 3 rd D$ase P!s"%"!n C %$ P$ase D!s"%"!n /! ba#: %! #!n%"n@e s%eD C!@n% 1 C!@n% 2 DEL1& NOP NOP NOP NOP DEC A) -N1 DEL1 DEC B) -N1 DEL0 RET L!!D @n%"l A) > B)N 0 Re%@rn %! Dr!<ra Pr!#ed@re& "9 C!nne#% S%eDDer !%!r "n%er;a#e G"%$ 'I6786 %$r!@<$ da%a b@s and #!nne#% !%!r G"%$ "n%er;a#e? ""9 /"Ae D!Ger s@DDl3 %! "n%er;a#e :"% """9 L!ad Dr!<ra and eEe#@%e %! r@n !%!r "A9 C$an<e dela3 C!@n% %! #!n%r!l SDeed A9 C$an<e D$ase seF@en#e %! #$an<e d"re#%"!n !; r!%a%"!n? P$ase seF@en#e& D"re#%"!n !; r!%a%"!n PH1 PH2 PH3 PHC Cl!#: I"se A0H E0H C0H 80H An%" Cl!#: I"se 80H C0H E0H A0H DC M!%!r& Al<!r"%$& "? L!ad #!n%r!l Re< address !; 8255 ""? /e% #!n%r!l G!rd s! as %! Dr!<ra 8255 D!r%s as O0P D!r% > send %! #!n%r!l re< """? Send %$e s%ar% D@lse %! 1CD "A? Call dela3 $"<$ r!@%"ne A? Send s%!D D@lse %! 1CD A"? Call dela3l!G A""? C!n%"n@e #3#le Pr!<ra& Address Label Mne!n"#s Ma#$"ne C!de C!en%s CONT& DELA2HI/H& LOOP1& DELA2LOI& LOOP2& MO' D) ( 4426H MO' AL (80H O.T D) (AL MO' AL (01H MO' D) ( 4420H O.T D) (AL CALL DELA2HI/H MO' AL(00H O.T D)(AL CALL DELA2LOI -MP CONT MO' AH(01H NOP NOP NOP DEC AH -N1 LOOP1 RET MO' AL(01H 8255 C!n%r!l Re< Address C!n%r!l G!rd ;!r !@%D@% D!r%s Send %! #!n%r!l re< S%ar% P@lse P!r% C Address S%!D P@lse C!n%"n@e C3#le M!%!r SDeed C!@n% H 01 TO 44 9 NOP NOP DEC AL -N1 LOOP2 RET
Pr!#ed@re& "9 C!nne#% DC !%!r "n%er;a#e G"%$ 'I6786 %$r!@<$ da%a b@s and #!nne#% DC !%!r G"%$ "n%er;a#e? ""9 /"Ae D!Ger s@DDl3 %! "n%er;a#e :"% """9 L!ad Dr!<ra and eEe#@%e %! r@n !%!r "A9 C$an<e dela3 C!@n% %! #!n%r!l SDeed EE?n!& 10 PRO/RAMMIN/ 8051 INTERR.PTS > TIMER a9 T"er A"& To rogra# 7381 internal Ti#er3 to generate sM!are )a.es o' "!t$ %$%le 83R an" 99R an" o!t!t that !sing IO in 01. *. Algorith#: i. Initialize TMOD S2R 'or Ti#er3 on Mo"e 1 ti#er. - 19 :it). ii. Loa" &o!nt .al!es to TL3 @ TH3. iii. Toggle IO in. -01.*) i.. &all "ela$ .. &ontin!e %$%le Dela$: start Ti#er Moniter ti#er3 'lag-T23) !ntil it rolls o.er. Sto ti#er &lear 'lag an" ret!rn. Pr!<ra& 50O D.T2 C2CLE H T !n N T !;;N D9 Address Label Mne!n"#s Ma#$"ne C!de C!en%s HERE& DELA2& CHEC6& MO' P1( P00 MO' TMOD( P10 MO' TL1( P42H MO' TH1( P44H CPL P1?2 ACALL DALA2 S-MP HERE SETB TR1 -NB T41 ( CHEC6 CLR TR1 CLR T41 RET Ma:e P1 !@%D@% D!r% T"er1 !de 1 H16 b"% #!@n%er9 L!G b3%e H"<$ b3%e T!<<le P1?2 D"n Call dela3 r!@%"ne C!n%"n@e #3#le b3 l!ad"n< TH > TL S%ar% %"er 0 C$e#: T41 ;la< @n%"l "% se%s S%!D T"er > #lear %$e ;la< Re%@rn %! Dr!<ra? S4R ADDRESSES : TMOD 8BM TL17 8BM TH17 8DM TR178EM T41 7 84? TL07 8AM TH07 8CM TR07 8CM T40 7 8D? Pr!<ra& 66O D.T2 C2CLE H T !n N 2D >T !;; N D9 Address Label Mne!n"#s Ma#$"ne C!de C!en%s HERE& DELA2& CHEC6& MO' P1( P00 MO' TMOD( P10 MO' TL1( P42H MO' TH1( P44H SETB P1?2 ACALL DALA2 ACALL DALA2 CLR P1?2 HAn3 D"n "n P19 ACALL DALA2 S-MP HERE SETB TR1 -NB T41 ( CHEC6 CLR TR1 CLR T41 RET Ma:e P1 !@%D@% D!r% T"er1 !de 1 H16 b"% #!@n%er9 L!G b3%e H"<$ b3%e H"<$ P1?2 D"n Call dela3 r!@%"ne L!G P1?2 D"n Call dela3 r!@%"ne C!n%"n@e #3#le b3 l!ad"n< TH > TL S%ar% %"er 0 C$e#: T41 ;la< @n%"l "% se%s S%!D T"er > #lear %$e ;la< Re%@rn %! Dr!<ra? CALC.LATIONS& /TAL O 13 MHz Ti#er 'reM!en%$, ' O 13 A1* O 3.744 MHz Ti#e erio" , T O 1A3.744 O 1.* Ss. Dela$, D O &o!nt T T &o!nt O 2222 L 222* O 3Dh-14) Q 1- 'or Roll o.er) No), D O 15T 1.* Ss O 19.7 Ss 'or 1 "ela$. 2or 83 R "!t$ %$%le: T O Ton Q T o'' O *D O 44.9 Ss @ 2reM!en%$ o' sM!are )a.e, ' O 1AT O *C6.9 +Hz 2or 99 R "!t$ %$%le: T O Ton Q T o'' O 4D O 85.C Ss @ 2reM!en%$ o' sM!are )a.e, ' O 1AT O 17*.1 +Hz b9 In%err@D% Pr!<ra"n< Ai#: To toggle 01.8 e.er$ se%on". Address Label Mne!n"#s Ma#$"ne C!de C!en%s 001B& HERE& TIMER1 ISR MO' TMOD( P10 MO' IE( P88 MO' R0( P13 MO' TL1( P00H MO' TH1( P00H SETB TR1 S-MP HERE D-N1 R0( BAC6 CPL P1?5 MO' R0( P13 MO' TL1( P00H MO' TH1( P00H RETI T"er1 !de 1 Enable T"er1 In%err@D% C!@n% ;!r 1 se#!nd dela3 C!@n% Aal@e C!@n% Aal@e S%ar% %"er1 C$e#: R0 T!<<le IO D"n Rel!ad re<"s%er Aal@e Rel!ad #!@n% Aal@es Re%@rn ;r! "n%err@D% E)?NO& 11 COMM.NICATIONS BETIEEN 8051 6ITS A"& T! es%abl"s$ #!@n"#a%"!n be%Geen %G! 8051 6"%s? Ser"al C!@n"#a%"!n& Trans"%%er& Address Label Mne!n"#s Ma#$"ne C!de C!en%s CHEC6& MO' IE( P00 MO' TMOD( P20 MO' TH1( P45H MO' SCON( PC0 SETB TR1 MO' SB.4( P KDATAL -NB TI ( CHEC6 CLR T1 LCALL 00BB D"sable "n%err@D%s T"er1 "n !de2 C!@n% ;!r 2C00 ba@d ra%e Se%%"n< ser"al !de1 S%ar% %"er1 B3%e %! be %rans"%%ed ser"all3 C$e#: ;!r all %$e b"%s %! be %rans"%%ed Clear %rans"% "n%err@D% ;la< Brea: D!"n%? Re#e"Aer& Address Label Mne!n"#s Ma#$"ne C!de C!en%s CHEC6& MO' IE( P00 MO' TMOD( P20 MO' TH1( P45H MO' SCON( P50 SETB TR1 CLR RI -NB RI ( CHEC6 MO' A( SB.4 D"sable "n%err@D%s T"er1 "n !de2 C!@n% ;!r 2C00 ba@d ra%e Se%%"n< ser"al !de1 G"%$ re#e"Aer enabled S%ar% %"er1 Clear RI ;!r re#eD%"!n C$e#: ;!r all b"%s !; #$ara#%er M!Ae "n%! a##@la%!r? LCALL 00BB Brea: D!"n%? Parallel C!@n"#a%"!n& Trans"%%er& Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' A( P80 MO' DPTR( PC003 MO') QDPTR( A MO' DPTR( PC000 MO' A( PDATA MO') QDPTR( A NOP NOP LCALL 00BB Re#e"Aer& Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' A( PB0 MO' DPTR( PC003 MO') QDPTR( A MO' DPTR( PC000 MO') A( QDPTR LCALL 00BB EE?N!& 0B 8051 BASIC PRO/RAMMIN/ A"& T! Dr!<ra 8051 @s"n< "%s Ar"%$e%"# and L!<"#al and B"% Man"D@la%"!n "ns%r@#%"!ns? a9 Ar"%$e%"# !Dera%"!ns
Address Label Mne!n"#s Ma#$"ne C!de C!en%s MO' DPTR( P8500 MO') A( QDPTR MO' B( A MO' R0( A INC DPTR MO') A( QDPTR MO' R1( A ADD A( B INC DPTR MO') QDPTR( A MO' R2( A MO' A( R1 S.BB A( B INC DPTR MO') QDPTR( A MO' R3( A MO' B( R2 M.L AB INC DPTR MO') QDPTR( A MO' A( R2 MO' B( R3 DI' AB INC DPTR MO') QDPTR( A LCALL 00BB InD@%& M8500 7 a M8501 7 b O@%D@%& M8502 & s@ Ha,b9 M8503& d";;eren#e Ha7b9 M850C& Pr!d@#% HHa,b9RHa7b99 M8505& J@!%"en% HHa,b90Ha7b99 b9 32 b"% s@b%ra#%"!n Address Label Mne!n"#s Ma#$"ne C!de C!en%s CLR C MO' A( C3 S.BB A( 53 MO' 63( A MO' A( C2 S.BB A( 52 MO' 62( A MO' A( C1 S.BB A( 51 MO' 61( A MO' A( C0 S.BB A( 50 MO' 60( A LCALL 00BB InD@%& IC0 %! C3 da%a 1 I50 %! 53 da%a 2 O@%D@%& I60 %! 63 7 d";;eren#e C9 4"b!na##" ser"es Address Label Mne!n"#s Ma#$"ne C!de C!en%s BE/IN& RPT& E)IT& MO' R0( 60 MO' R1( P01 MO' R2( P01 MO' A( P00 MO' DPTR( P B000 C-NE R0( P00( BE/IN L-MP E)IT MO') QDPTR( A INC DPTR MO' R2( A ADD A( R1 MO' 01( 02 MO') QDPTR( A INC DPTR D-N1 R0( RPT LCALL 00BB INP.T& I60 CO.NT O.TP.T& MB000 00 MB001 01 MB002 01 MB003 02 > s! !nS