DJNZ SJMP
R7, CONT $
;¼ÆÊýÆ÷¼õ1£¬·Ç0£¬Ôò¼ÌÐø ;ÔÝÍ£
4£®±à³Ì²éÕÒÄÚ²¿RAMµÄ32H¡«41Hµ¥ÔªÖÐÊÇ·ñÓÐ0AAHÕâ¸öÊý¾Ý£¬ÈôÓÐÕâÒ»Êý¾Ý£¬Ôò½«50Hµ¥ÔªÖÃΪ0FFH£¬·ñÔò½«50Hµ¥ÔªÇåÁã¡£
½â£ºÉèÒ»¸öƬÄÚRAMÖ¸ÕëR0£¬ÏÈÖ¸ÏòÊ×µØÖ·32H£¬±È½Ï@R0Óë#0AAH£¬ÈôÏàµÈ£¬ÔòÍ˳öÑ»·£¬¸ø50Hµ¥Ôª¸³0FFH£¬Èô²»ÏàµÈ£¬ÔòR0¼Ó1Ϊ¼ÌÐø±È½ÏÏÂÒ»¸ö×Ö½Ú×ö×¼±¸£¬Ö±µ½´ïµ½µØÖ·Îª41H»ò´ïµ½¼ÆÊýÆ÷¹æ¶¨µÄ16¸ö×Ö½ÚΪֹ»¹Ã»ÕÒµ½£¬Ôò¸ø50Hµ¥Ôª¸³00H ³ÌÐò1£º ÒÆ
MOV SJMP DJNZ MOV SJMP END
A,#0FFH
;ÏàµÈ£¬Ôò×¼±¸ºÃÒª¸³µÄ±êÖ¾Öµ0FFH ;ת´æµ½±£´æ½á¹û´¦ ;Ð޸ĵØÖ·Ö¸Õë
;¼ÆÊýÆ÷¼õ1£¬·Ç0£¬Ôò¼ÌÐø
;²éÕÒʧ°Ü£¬Ôò½«00H´æÈë½á¹û±êÖ¾µ¥Ôª ;½«±È½Ï½á¹û±êÖ¾´æÈë50Hµ¥Ôª
DOWN R0 $ R7,CONT
50H,A
MOV MOV SJMP CJNE MOV SJMP END MOV MOV
R7,#16 R0,#32H
;¼ÆÊýÆ÷¸³³õÖµ£¬´Ó20Hµ½30H¹²16¸ö×Ö½Ú
;±È½Ï²éÕÒÖµÓëÖ¸ÕëËùÖ¸µ¥ÔªµÄÖµ£¬²»ÏàµÈת
R0,#32H A,#0FFH
;ÉèµØÖ·Ö¸Õë³õÖµ
;ÏàµÈ£¬Ôò×¼±¸ºÃÒª¸³µÄ±êÖ¾Öµ0FFH ;ת´æµ½±£´æ½á¹û´¦ ;Ð޸ĵØÖ·Ö¸Õë
;ÈôÖ¸ÕëδԽ¹ýÖյ㣬Ôò¼ÌÐø
;²éÕÒʧ°Ü£¬Ôò½«00H´æÈë½á¹û±êÖ¾µ¥Ôª ;½«±È½Ï½á¹û±êÖ¾´æÈë50Hµ¥Ôª
CONT: CJNE
@R0,#0AAH,NEXT;±È½Ï²éÕÒÖµÓëÖ¸ÕëËùÖ¸µ¥ÔªµÄÖµ£¬²»ÏàµÈ×ªÒÆ DOWN R0 $
NEXT: INC
R0,#42H,CONT
A,#00H 50H,A
DOWN: MOV
;ÔÝÍ£
³ÌÐò2£º
;ÉèµØÖ·Ö¸Õë³õÖµ
CONT: CJNE @R0,#0AAH,NEXT
NEXT: INC
A,#00H
DOWN: MOV
;ÔÝÍ£
5£®²éÕÒ20H¡«4FHµ¥ÔªÖгöÏÖ00HµÄ´ÎÊý£¬²¢½«²éÕÒ½á¹û´æÈë50Hµ¥Ôª¡£ ½â£º´Ó20Hµ½4FH¹²48¸ö×Ö½Ú
MOV
R7,#48
;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ
MOV
R0,#20H
R6
;ÉèµØÖ·Ö¸Õë³õÖµ
;ÏàµÈ£¬0µÄ¸öÊý¼ÆÊýÆ÷¼Ó1
CONT: CJNE
INC
@R0,#00H,NEXT ;±È½Ï²éÕÒÖµÓëÖ¸ÕëËùÖ¸µ¥ÔªµÄÖµ£¬²»ÏàµÈ×ªÒÆ
NEXT: INC
DJNZ MOV SJMP END
R0 $
;Ð޸ĵØÖ·Ö¸Õë
;¼ÆÊýÆ÷¼õ1£¬·Ç0£¬Ôò¼ÌÐø
;±£´æOµÄ¸öÊý¼ÆÊýÖµµ½50Hµ¥Ôª ;ÔÝÍ£
R7,CONT
50H,R6 END
6£®ÒÑÖªA=83H£¬R0=17H£¬(17H)=34H£¬Ð´³öÏÂÁгÌÐò¶ÎÖ´ÐÐÖ®ºóµÄAÖеÄÄÚÈÝ¡£ ANL ORL XRL CPL A
END
ANL ORL XRL CPL
A
A,#17H 17H,A A,@R0
;A=03H
;A= 0000 0011 ¡Å 0011 0111 =0011 0100
´ð£º
;(17H)=0011 0100 ¡Å 0000 0011=0011 0111 ;A=1100 1011
A,#17H 17H,A A,@R0
7£®ÒÑÖªµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬·Ö±ðÉè¼ÆÑÓʱΪ0.1s¡¢1sµÄ×Ó³ÌÐò¡£
´ð£ºÒÑÖªµ¥Æ¬»úµÄ¾§ÕñƵÂÊΪ12MHz£¬Ôò»úÆ÷ÖÜÆÚΪ1us£¬ÑÓʱ×Ó³ÌÐòÊÇͨ¹ýÖ´ÐÐÖ¸ÁîÐòÁÐÖлúÆ÷ÖÜÆÚÊýÀ´´ïµ½£¬Èç¹ûÒª0.1s£¬¼´100ms£¬Ò²¾ÍÊÇ100000us£¬ËùÒÔÐèÒª»úÆ÷ÖÜÆÚÊý´ïµ½100000¡£ÒªÑÓʱ´ïµ½1S£¬¿Éͨ¹ý¶ÔÑÓʱΪ0.1ÃëµÄ×Ó³ÌÐòµ÷ÓÃ10´ÎÀ´ÊµÏÖ¡£ DELAY100MS: D1: D2:
DELAY1S: LOOP:
MOV DJNZ RET
R7,#10
;¼ÆÊý10´Î
1 99795+2
ACALL DELAY100MS
R7,LOOP
;ÑÓʱ100ms×Ó³ÌÐò
NOP
MOV R6,#200
;1¸ö»úÆ÷ÖÜÆÚ
MOV R7,#250
;1¸ö»úÆ÷ÖÜÆÚ
;1¸ö»úÆ÷ÖÜÆÚ
DJNZ R7,D2 ;2¸ö»úÆ÷ÖÜÆÚ£¬3*251=753
DJNZ R6,D1 ;2¸ö»úÆ÷ÖÜÆÚ£¬(1+753+2)*132=99792 RET
;2¸ö»úÆ÷ÖÜÆÚ£¬1+99792+2=99795,Ô¼100ms
;δ´ïµ½10´ÎÔò¼ÌÐø 10*(2+99795+2) ;·µ»Ø2+10*(2+99795+2)=997992
8£®ÄÚ²¿RAM´Ó20Hµ¥Ôª¿ªÊ¼´¦ÓÐÒ»Êý¾Ý¿é£¬ÒÔODHΪ½áÊø±êÖ¾£¬ÊÔͳ¼Æ¸ÃÊý¾Ý¿éµÄ³¤¶È£¬½«¸ÃÊý¾Ý¿éË͵½ÍⲿÊý¾Ý´æ´¢Æ÷7E01H¿ªÊ¼µÄµ¥Ôª£¬²¢½«³¤¶È´æÈë7E00Hµ¥Ôª¡£ ½â£º´Ó20HµÄÖ¸ÕëÓÃR0£¬´ÓÍⲿRAM7E01¿ªÊ¼µÄÖ¸ÕëÓÃDPTR£¬¼ÆÊýÆ÷ÓÃR7
MOV MOV MOV
R7,#0
;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ ;ÉèÆ¬ÍâRAMµØÖ·Ö¸Õë³õÖµ
R0,#20H
;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ
DPTR,#7E01H
CONT: MOV
INC INC INC CJNE MOV SJMP END
A,@R0
;ȡƬÄÚRAMÖеÄÒ»¸ö×Ö½Ú
MOVX @DPTR,A
R7 R0 DPTR $
;´æÈëÆ¬ÍâRAMÖ¸ÕëËùÖ¸µ¥Ôª ;³¤¶È¼ÆÊýÆ÷¼Ó1 ;ƬÄÚRAMµØÖ·Ö¸Õë¼Ó1 ;ƬÍâRAMµØÖ·Ö¸Õë¼Ó1 ;δ´ïµ½½áÊø±êÖ¾
;È¡¿é¼ÆÊý³¤¶ÈÖµ ;±£´æ ;ÔÝÍ£
A,#0DH,CONT
A,R7
MOVX @DPTR,A
9£®ÄÚ²¿RAM´ÓDATA¿ªÊ¼µÄÇøÓòÖдæ·Å×Å10¸öµ¥×Ö½ÚÊ®½øÖÆÊý£¬ÇóÆäÀۼӺͣ¬²¢½«½á¹û´æÈëSUMºÍSUM+1µ¥Ôª¡£
½â£ºR7¼ÆÊý£¬R6±£´æÀۼӺ͸ß8룬R0ÓÃ×÷µØÖ·Ö¸Õë
ORG LJMP ORG
A A NEXT R6 R0 $
;ÈôÎÞ½øÎ»Ôò²»Óùܸß8λ ;ÓнøÎ»£¬¸ß8λ¼Ó1 ;ƬÄÚRAMµØÖ·Ö¸Õë¼Ó1 ;δÍê¼ÌÐø
;±£´æµÍ8λ ;±£´æ¸ß8λ
0000H 100H 40H R7,#10
;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ ;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ ;ÀÛ¼Ó½á¹ûµÄ¸ß8λ
;¼ÓRAMÖеÄÒ»¸ö×Ö½Úµ½ACC
R0,#DATAA R6,A
30H
MAIN
SUM
EQU
DATAA EQU MAIN: MOV
MOV CLR MOV DA JNC INC DJNZ MOV MOV SJMP END
;ÀÛ¼ÓÆ÷Çå0
CONT: ADD A,@R0
NEXT: INC
R7,CONT
SUM,A SUM+1,R6
;ÔÝÍ£
10£®ÄÚ²¿RAM´ÓDATA1ºÍDATA2µ¥Ôª¿ªÊ¼´¦´æ·Å×ÅÁ½¸öµÈ³¤µÄÊý¾Ý¿é£¬Êý¾Ý¿éµÄ³¤¶ÈÔÚLENµ¥ÔªÖС£Çë±à³Ì¼ì²éÕâÁ½¸öÊý¾Ý¿éÊÇ·ñÏàµÈ£¬ÈôÏàµÈ£¬½«0FFHдÈëRESULTµ¥Ôª£¬·ñÔò½«0дÈëRESULTµ¥Ôª¡£
½â£º´ÓDATA1¿ªÊ¼µÄÖ¸ÕëÓÃR0£¬´ÓDATA2¿ªÊ¼µÄÖ¸ÕëÓÃR1£¬¼ÆÊýÆ÷ÓÃR7 LEN
EQU
10 30H
DATA1 EQU
DATA2 EQU RESULT EQU
MOV MOV MOV MOV CJNE INC INC DJNZ MOV SJMP
40H 50H R7,#LEN
;×Ö½Ú¼ÆÊýÆ÷¸³³õÖµ
;ÉèÆ¬ÄÚRAMµØÖ·Ö¸Õë³õÖµ ;ÉèÆ¬ÍâRAMµØÖ·Ö¸Õë³õÖµ ;ȡƬÄÚRAM R0ËùÖ¸µÄµÄÒ»¸ö×Ö½Ú
;½«R1ËùÖ¸µ¥ÔªÄÚÈÝÈ¡µ½Æ¬ÄÚRAMµØÖ·7FHÖÐ
R0,#DATA1 R1,#DATA2 A,@R0 7FH,@R1
CONT: MOV
A,7FH,NOEQ R0 R1 $
;±È½Ï£¬²»ÏàµÈÔò½áÊø ;DATA1 RAMµØÖ·Ö¸Õë¼Ó1 ;DATA2 RAMµØÖ·Ö¸Õë¼Ó1 ;δÍ꣬¼ÌÐø ;ÏàµÈ,×¼±¸Ð´ÈëFFH ;תдÈë½á¹û´¦ ;²»ÏàµÈ,×¼±¸Ð´Èë00H
;±£´æ±È½Ï½á¹û±êÖ¾ ;ÔÝÍ£
R7,CONT DOWN
A,#0
A,#0FFH
NOEQ: MOV DOWN: MOV
SJMP END
RESULT,A
11£®±àÖÆ³ÌÐò£¬½«ÄÚ²¿RAMÖÐM1¡¢M2¡¢M3ºÍM4µ¥ÔªÖеÄÎÞ·ûºÅÊýxl¡¢x2¡¢x3ºÍx4Ïà¼Ó£¬²¢°ÑºÍ´æÈëROºÍR1(R0ÖÐΪ¸ß8λ)ÖС£ ½â£º M1 M2 M3 M4
EQU EQU EQU EQU MOV ADD JNC MOV JNC INC JNC INC SJMP END
30H 40H 45H 4FH A,M1 A,M2 R0,#1 A,M3
;È¡µÚÒ»¸öÊý ;ÓëµÚ¶þ¸öÊýÏà¼Ó ;ÓнøÎ»£¬¸ß8λÖÃ1 ;ÓëµÚÈý¸öÊýÏà¼Ó
NEXT1 ;Èç¹ûÎÞ½øÎ»£¬Ôò×ªÒÆÖÁµÚÈý¸öÏà¼Ó
NEXT1: ADD
NEXT2 R0
A,M4
;ûÓнøÎ»£¬ÔòתÖÁµÚËĸöÊýÏà¼Ó ;ÓнøÎ»£¬¸ß8λ¼Ó1
;ÓëµÚËĸöÊýÏà¼Ó ;ûÓнøÎ»£¬ÔòתÖÁ½áÊø ;ÓнøÎ»£¬¸ß8λÔÙ¼Ó1
;µÍ8λ±£´æµ½R1 ;ÔÝÍ£
NEXT2: ADD
NEXT3 R0 $
R1,A
NEXT3: MOV