Mạch điện cơ bản chạy ic AT89C51- ASM

Embed Size (px)

Citation preview

.

n:

trong.

. C

org start: mov djnz

0000h call call call call call jmp kieu_1 kieu_2 #10 kieu_3 tiep_tuc kieu_4 kieu_2 start #00000000b delay #00011000b delay #00111100b delay #01111110b delay #11111111b delay

tiep_tuc:

r7, r7,

; kieu_1:

mov mov mov mov mov

call call call call call

p1, p1, p1, p1, p1,

; kieu_2:

ret mov mov mov mov mov mov mov mov mov mov p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, #11111111b delay #01111111b delay #10111111b delay #11011111b delay #11101111b delay #11110111b delay #11111011b delay #11111101b delay #11111110b delay #11111111b ret #11111111b p1, p1, p1, p1, p1, p1,

call call call call call call call call call

; kieu_3:

mov mov mov mov mov mov mov

p1, call call call call call call call

delay #11111110b delay #11111101b delay #11111011b delay #11110111b delay #11101111b delay #11011111b delay

mov mov mov ; kieu_4:

call call call

p1, p1, p1,

#10111111b delay #01111111b delay #11111111b delay ret #01111111b delay #00111111b delay #00011111b delay #00001111b delay #00000111b delay #00000011b delay #00000001b delay #00000000b delay #00000001b delay #00000011b delay #00000111b delay #00001111b delay #00011111b delay #00111111b delay #01111111b delay

mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov

call call call call call call call call call call call call call call call

p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1,

mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov

call call call call call call call call call call call call call call call call call call call call call

p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1,

;

#11111111b delay #00000000b delay delay #11111111b delay #00000000b delay delay #11111111b delay #00000000b delay delay #11111111b delay #00000000b delay delay #11111111b delay #00100010b delay #01001000b delay #00001001b delay #00100101b delay #01001010b delay #10010100b delay #01101001b delay delay ret

delay: v_r6: v_r5:

mov mov mov djnz djnz djnz

r7, r6, r5, r5, r6, r7,

end :

#10 #200 #250 $ v_r5 v_r6 ret

n

-

-

1.

:100000001200151200347F0A12006EDFFB1200ABE3 :1000100012003480EB759000120175759018120172 :100020007575903C12017575907E1201757590FF83 :10003000120175227590FF12017575907F1201757E :100040007590BF1201757590DF1201757590EF12F2 :1000500001757590F71201757590FB120175759019 :10006000FD1201757590FE1201757590FF22759055 :10007000FF1201757590FE1201757590FD120175E4 :100080007590FB1201757590F71201757590EF125E :1000900001757590DF1201757590BF12017575902D :1000A0007F1201757590FF1201752275907F120104 :1000B0007575903F12017575901F12017575900F3F :1000C000120175759007120175759003120175750F :1000D0009001120175759000120175759001120161 :1000E0007575900312017575900712017575900F63 :1000F00012017575901F12017575903F120175758B :10010000907F1201757590FF1201757590001201B4 :10011000751201757590FF120175759000120175C9 :100120001201757590FF120175759000120175121C :1001300001757590FF12017575900012017512011D :10014000757590FF120175759022120175759048B2 :10015000120175759009120175759025120175755A :10016000904A12017575909412017575906912018B :1001700075120175227F0A7EC87DFADDFEDEFADF88 :02018000F62265 :00000001FF

h movc a, @a+dptr org start: 0000h

clr a ; mov dptr, #kieu_1 ; k mov r6, #20 ; llai1: mov r7, #10 ; ttuc1: call outp1 ; djnz r7, ttuc1 ; clr a ; djnz r6, llai1 ; jmp start outp1: movc a, @a+dptr mov p1, a call inc a ret kieu_1: db db db db db db db db db 01111111b db delay: mov v_r4: v_r3: mov delay ; ; ; o ;

20 10 ; 20

; call

bit outp1

11111111b 11111110b 11111101b 11111011b 11110111b 11101111b 11011111b 10111111b 11111111b mov djnz djnz djnz r5, r3, r4, r3, r4, r5, #10 #50 #200 $ v_r3 v_r4 ret

end ;

. org start: 0000h

clr a mov dptr, #kieu_1 mov r6, #20 llai1: mov r7, #10 ttuc1: call outp1 djnz r7, ttuc1 clr a djnz r6, llai1 ; mov mov djnz djnz mov mov

clr r7, clr clr r7, r7, r6, dptr, r6, r7, r7,

llai2: mov ttuc2: call

dptr, r6, r7, r6, dptr, r6,

;

a #kieu_2 #20 #9 outp2 ttuc2 a llai2 a #kieu_4 #10 #11 outp0p1p2p3 ttuc3 a llai3 a #kieu_3 #5 #10 outp0 ttuc4 a

llai3: mov ttuc3: call djnz clr djnz ; clr mov mov llai4: mov ttuc4: call djnz clr

djnz jmp ; outp0: movc mov call inc ret ; outp1: movc mov call inc ret ; outp2: movc mov call inc ret ; outp3: movc mov call inc ret ; outp0p1p2p3: mov mov mov mov call inc

r6,

llai4 start @a+dptr a delay a

a,

p0,

a,

p1,

@a+dptr a delay a p2

a,

p2,

@a+dptr a delay a

a,

p3,

@a+dptr a delay a

movc

p0, p1, p2, p3,

a,

@a+dptr a a a a delay a

ret ; kieu_1: db db db db db db db db db 01111111b db kieu_2: db 11111111b db 01111110b db db db db db db 01111110b db kieu_3: db db db db db db db db db 00000000b db kieu_4: db db 00000000b db 00011000b db 00111100b

;

10

mau 11111111b 11111110b 11111101b 11111011b 11110111b 11101111b 11011111b 10111111b 11111111b mau 10111101b 11011011b 11100111b 11011011b 10111101b

;9

;

10

11111111b mau 11111111b 11111110b 11111100b 11111000b 11110000b 11100000b 11000000b 10000000b 11111111b mau 11111111b

;

11

db 01111110b db db 00000000b db db db db delay: mov v_r4: mov v_r3: mov djnz djnz djnz ret end

11111111b 10000001b 11000011b 11100111b 11111111b r5, r4, r3, r3, r4, r5, #10 #50 #200 $ v_r3 v_r4

cho c