第四章 指令系统 及汇编语言程序设计 本章学习目标 了解助记符、指令格式 掌握单片机寻址方式 掌握单片机指令系统 掌握单片机汇编语言程序设计及开发环境

  • Upload
    wood

  • View
    151

  • Download
    6

Embed Size (px)

DESCRIPTION

第四章 指令系统 及汇编语言程序设计 本章学习目标 了解助记符、指令格式 掌握单片机寻址方式 掌握单片机指令系统 掌握单片机汇编语言程序设计及开发环境. 第四章 指令系统及汇编语言程序设计语言. 4.1 编程语言 4.2 指令格式及其分类 4.3 寻址方式 4.4 数据传送类指令 4.5 逻辑操作类指令 4.6 算术运算类指令 4.7 位操作指令 4.8 控制类转移指令 4.9 汇编语言程序设计 4.10 汇编语言程序调试 4.11 利用 ISP 工具将程序下载到单片机中验证程序. - PowerPoint PPT Presentation

Citation preview

  • sd

  • 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11ISP

    sd

  • 4.1 1 2

    sd

  • 4.1 CPU

    sd

  • Assembly LanguageCPU

    sd

  • High Level Language

    sd

  • MOV A, #76H 76HA011101000111011074H76H 74HA,76H

    sd

  • MOV ADD ANL

    sd

  • sd

  • D,HB

    sd

  • MOV A, #71H71H801110001BA88816

    sd

  • 08051##

    sd

  • 4.2 : 1":"

    sd

  • sd

  • azAZ(09)(@_?)_(azAZ)(@_)?31

    sd

  • HOW NEXT_1 AA1QMCCl MODEL?? _DELAY5FVM -F33G ?MOV ADD XOR

    sd

  • : 2MOV

    sd

  • : 3

    sd

  • sd

  • : 4

    sd

  • MOV A,#68H MOV B,#73H

    sd

  • MOV A,#68H68HA;;74H68H74H68H. MOV B, #73H73HB;75HF0H73H,75HB73H

    sd

  • sd

  • 1000H

    sd

  • 74HA68HA75HF0HF0HB73H

    sd

  • sd

  • 4.3STC15F2K60S27

    sd

  • 1 CPU

    sd

  • M0V A#28H 28HAA28HAA28H28HA28HA74H28H

    sd

  • 0100H

    4-1 MOV A,#28H

    sd

  • MOV A#28H A88#

    sd

  • sd

  • 2 CPU

    sd

  • MOV A, #45H A45H 45HINC R0 R0 R0+1

    sd

  • MOV A, R1 AR1 R1A

    sd

  • INC R5 ;0DH;R51R5R5RAM

    4-2 INC R5

    sd

  • CPU

    sd

  • sd

  • 3

    sd

  • MOV A,45H45HA45HE5H45HE5H45H

    sd

  • MOV A,45H 0100H 0101H45H34HA=34HA

    4-3 MOV A, 45H

    sd

  • 4:R0R1DPTR @

    sd

  • MOV A ,@R0 ;R0AR031H31H51HA51H

    4-4 MOV A,@R0

    sd

  • 5PCAA+PCDPTRAA+DPTR

    sd

  • MOVC A,@A+PCMOVCPCA 0100 7402 MOV A, #02 0102 83 MOVC A, @A+PC 0103 00 NOP 0104 00 NOP 0105 64 DB 64H

    MOVC A,@A+PCA=2PC=0103HA+PC=0105H@A+PC0105HA0105H64HA

    sd

  • MOVC A,@A+DPTRDPTRA MOV A,#02H MOV DPTR,#TABLE MOVC A,@A+DPTR TABLE: DB 30H DB 31H DB 32H

    sd

  • DPTR MOVC A,@A+DPTR

    sd

  • 6 PC

    sd

  • PC-128+127 JC 80H C=0PCC=1PC80H

    sd

  • JC 80H1005H80H-80H

    4-5 JC 80H

    sd

  • 7 MOV C,P1.0 ;P1.0C SETB 20H.6 ;20H61 CLR 25H ;25H

    sd

  • sd

  • 4.4 PSW

    sd

  • 1MOV2MOVX3MOVC

    sd

  • 1MOVMOVRn;@RiRAM;RAM00H7FH

    sd

  • RAMASFRMOV16bitDPTRMOV , MOV

    sd

  • 1ARnRAMSFR MOV A, #data8 MOV addr8,#data8 MOV @Ri, #data8 MOV Rn, #data8 @RiRiRAMRii=01;A #data8;addr8 #data8;Ri #data8;Rn #data8

    sd

  • : MOV R0, #60H ;60HR0 MOV @R0, #56H ;56HR0 ;60H56H RAM MOV 20H, #56H ;56H20H MOV P1, #80H ;80HP190H

    sd

  • 2RnRAMSFRA6 MOV A, addr8 MOV A, @Ri MOV A, Rn MOV addr8, A MOV @Ri, A MOV Rn, A ;A addr8;A Ri;A Rn;addr8 A;Ri A;RnA

    sd

  • @RiRiRi800HFFH MOV R1, #82H MOV A, @R1 STC12C5A60S2RAM82HA80HFFHRAM

    sd

  • DPLA MOV A, 82H ;ADPL MOV A,DPL

    sd

  • 3RnSFRRAM5 MOV addr8, addr8 MOV addr8@Ri MOV addr8, Rn MOV @Ri, addr8 MOV Rn, addr8 ;(addr8)(addr8);addr8Riaddr8Rn;Riaddr8;Rnaddr8

    sd

  • MOV 60H, 50H ;50H60HPSWRS1RS0011 MOV 40H, R0 MOV 40H, 08H RAM30HP1 MOV 30H, #25H MOV P1, #0CAH 30H=25HP1=0CAH

    sd

  • 416 MOV DPTR ,#data16 MOV DPTR ,#0150H16DPTR=0150HDPH=01HDPL=50H

    sd

  • 2I/OAMOVX ARAMI/O

    sd

  • R1R0I/O256P28P2RiMOVX16DPTR64KBI/O

    sd

  • MOVX , 4 MOVX A, @DPTR ;ADPTR MOVX A, @Ri ;ARi MOVX @DPTR,A ;DPTRA MOVX @Ri, A ;RiAR1R0256DPTR

    sd

  • 0100H=60H0101H=2FH MOV DPTR ,#0100H MOVX A, @DPTR ;A=60H

    sd

  • 3AMOVCPCDPTRAMOVCA

    sd

  • MOVC A ,@A+PC ; PCPC+1AA+PC MOVC A ,@A+DPTR ; AA+DPTRAPCDPTRA168

    sd

  • MOVC A ,@A+PCMOVC A ,@A+DPTR

    sd

  • MOVC A ,@A+PCMOVC A ,@A+DPTRPCCPUPC11PCPC+18PC256DPTRDPTR64KBDPTR

    sd

  • 4-1 A09 COUNT PUSH DPH PUSH DPL ;DPTR MOVDPTR ,#TABLE;DPTR MOVC A ,@A+DPTR;A POP DPL POP DPH ;DPTR RET ; TABLE DB 00,01,04,09,16,25,36,49,64,81

    sd

  • 1 XCH A,addr8 ;Aaddr8 XCH A,@Ri ;ARi XCH A,Rn ;ARn A

    sd

  • R0=20HA=3FH20H=75H XCH A,@R0 ;A=75H20H=3FH

    sd

  • 2 XCHD A,@Ri ;A3~0Ri3~0 A4RAM44

    R130HA69HRAM30H87H XCHD A,@R1 ; A=67H30H=89H

    sd

  • sd

  • :PCPC:PUSH,POP

    sd

  • LIFOLast In First Out,SPSP4-6

    sd

  • PUSH addr8;SPSP+1SPaddr8 POP addr8;addr8SPSPSP- 1 PUSHPOP

    sd

  • STC15F2K60S2SP+1SPSPSP- 1SPPUSHPOP

    sd

  • PUSH ACC ;ACC PUSH PSW ; ; POP PSW ; POP ACC ;ACC ACCPSW

    sd

  • PUSH ACC PUSH PSW ; POP ACC POP PSW ACCPSW

    sd

  • POPMOVPSWPSWPSFRSFR

    sd

  • STC15F2K60S2RAM80HFFH@RiAPUSH ACCPOP ACCPUSH APOP AAACCAACC

    sd

  • 4.5024A0AAARnRAMSFR

    sd

  • sd

  • 4.5 A A0

    1A0 CLR A ;A000HA

    2A CPL A ;A A

    sd

  • A67HCLR A00HCPL A0FFH

    3A RL A; RLC A;CY RR A; RRC A;CY SWAP A; 22

    sd

  • MOV A ,#01H;A01H RL A ;A02H RL A ;A04H RL A ; A08H A=08H RR A ;A04H RR A ;A02H RR A ;A01H1

    CY

    sd

  • 4-2 40H41H1641H40H222CY CLR C ; MOV A, 41H RRC A MOV 41H, A; MOV A, 40H RRC A MOV 40H, A

    sd

  • SWAPA30744 MOV A,#0A5H SWAP A ; A=5AH

    sd

  • AAANL 00 1;ORL1 110;XRL 10

    sd

  • 1A

    ANLORLXRL A,

    sd

  • AB 01=10=00=0 00 11=1 11AB1+0=0+1=1+1=1 11 0+0=0 00AB 01=10=1 1 00=11=0 0

    sd

  • A63HR20AAHANLORLXRL ANL A,R2 ORL A,R2 XRL A,R2 ;A=22H;A=0EBH;A=0C9H

    sd

  • 2RAMSFRA ANLORL,XRL addr8, A ANLORL,XRL addr8, #data8 RAMSFRARAMSFR

    sd

  • 50H0AAHA15H ANL 50H,#0F0H ;50H=0A0H50H4 ORL 50H,#0FH ;50H=0AFH50H41 XRL 50H,A ;50H=0BFH I/O

    sd

  • 4-3 ASCII40H41HBCD40H ANL 40H,#0FH ;40HASCBCD MOV A,41H ANL A,#0FH ;41HASCBCD RL A ;4 RL A RL A RL A ORL 40H, A ;40H

    sd

  • SWAP ANL 40H,#0FH ;40HASCBCD MOV A, 41H ; ANL A,#0FH ;41HASCBCD SWAP A ;4 ORL 40H, A ;40H

    sd

  • 4.6 PSW4-3

    sd

  • A OVCYACP

    sd

  • 1 ADD A,#data8 ;AA+#data8 ADD A,addr8 ;AA+addr8 ADD A,@Ri ;AA+Ri ADD A,Rn ;AA+Rn ACCYOVP

    sd

  • MOV A, #0C3H ADD A, #0AAHCY=1OV=1AC=0PSW=85H A=6DH OV67OV1OV0OV=1

    sd

  • 2 ADDC A, #data8 ;AA+#data 8+CY ADDC A, addr8 ;AA+addr8+CY ADDC A, @Ri ;AA+Ri+CY ADDC A, Rn ;AA+Rn+CY

    sd

  • A0AAHR055HC1 ADDC A,R0

    A=00000000B AC=1CY=1OV=0

    sd

  • 4-420H21H30H31H40H41HOVER ADDMMOVA,20H; ADDA,30H; MOV40H,A;40H MOVA,21H; ADDC A,31H; MOV41H,A ;41H JC OVER ;OVER OVER

    sd

  • 3

    SUBB A,#data8;AA - #data8 - CY SUBB A,addr8;AA -addr8- CY SUBB A,@Ri ;AA -Ri- CY SUBB A,Rn ;AA - Rn CY

    CY=1CY=0CY=1CY=0

    sd

  • OV=167

    sd

  • AD9HR087H CLRC SUBB A,R0 A=52HCY=0OV=0 OVCY1OV

    sd

  • 4-5 20H21H30H31H40H41H SUBMCLRC ;CY0 MOV A,20H;A SUBB A,30H ; MOV 40H,A ;40H MOV A,21H;A SUBB A,31H; MOV 41H,A;41H JC OVER ;OVER OVER

    sd

  • A BAB

    sd

  • 1 MULAB A B816AB2550FFH10CY0

    sd

  • A=82H130B=38H56 MULAB1C70H7280 A=70HB=1CHOV=1CY=0

    sd

  • 4-6 830H831H40H50H51H52H

    XY X228+X1Y=X2Y28+X1Y

    sd

  • MULX2YX1YX1YX1Y8RES0X1YRES1X1Y+X2YRES2X2YX1Y+X2Y

    sd

  • MOVA,30H MOVB,40H MULAB ;X1Y MOV51H,B ;51H MOV50H,A ;50H MOVA,31H MOVB,40H MULAB ;X2Y ADD A,51H ;X2Y8X1Y8 MOV51H,A MOVA,B ADDCA,#00H ; MOV 52H,A ;52H

    sd

  • 2 DIV AB A8B8ABCYOV0

    sd

  • B00HOV14793HB130DH DIV AB A=0BHB=04HOV=0CY=0

    sd

  • 111 INCA INCaddr8 INC@Ri INCRn INCDPTR;A A+1;addr8 addr8+1;Ri Ri+1;Rn Rn+1;DPTR DPTR+1

    sd

  • INC10FFH100HR0=7EHRAM7EH=0FFH7FH=40H INC@R0 INC R0 INC@R0;7EH 00H;R0 R0+1R0=7FH;7FH 41H

    sd

  • 2 DECA DECaddr8 DEC@Ri DECRnDEC100H10FFH;A A1;addr8 addr81Ri Ri1;Rn Rn 1

    sd

  • MOVR1,#7FHMOV7EH,#00HMOV7FH,#40HDEC@R1DECR1 DEC@R1;R1 7FH;7EH 00H;7FH 40H;7FH 3FH;R1 R1-1R1=7EH;7EH 0FFH

    sd

  • DAAA3-0>9AC=1A3-0A3-006HA7-4>9CY=1A7-4A7-460HA7-4=94A7-0A7-066H49AC=106H49CY=160H49466H

    sd

  • DABCDBCD87H+68HACCYADDADDCABCDBCDADDADDCDA ADA A

    sd

  • 4-76BCDRAM32H31H30H42H41H40H52H51H50HBCDADDMOVA,30H; ADDA,40H DAA MOV50H,A;BCD MOVA,31H; ADDCA,41H DAA MOV51H,A;BCD MOVA,32H; ADDCA,42H DAA MOV52H,A;BCD

    sd

  • 4-830H40H50H9AH10010BCDSUBCLRC;MOVA,#9AH;SUBBA,40H ADDA,30H;DAAMOV50H,A;50H

    sd

  • 4.7 17 .0B8H.020H.1CEA.P1.0PSW.4

    sd

  • 4-4

    MOVC, bitbit,CCLRC bitbitCPLSETBANLCbit CC/bit C/bitORLCJCrelrelJNCJBbit,relJNB0JB1JNBJBC10

    sd

  • MOVC,bit; CY bit MOVbit,C;bit CY CYbit

    sd

  • RAM20H=79H MOVC,07H ;07H20H7CY=0

    sd

  • 010 CLRbit;bit 0 CLRC; CY 0 bitCY0

    sd

  • RAM25H34H0011 0100B CLR 2AH ;2AH25H225H30H0011 0000B

    sd

  • 2 CPL bit;bit CPL C; CY bitCY

    MOV25H, #5DH CPL2BH CPLP1.2;(25H)=0101 1101B;(25H)=0101 0101B; P1.2

    sd

  • 3 SETBbit;bit 1 SETBC; CY 1 CY1

    P149H0100 1001B SETBP1.7 P1C9H1100 1001B

    sd

  • 1 ANL C,bit; CY CYbit ANL C,/bit; CY CY CYCY/bit

    sd

  • 4-7 ANLa) ANL C,bit b) ANL C,/bit

    sd

    &

    (bit)

    CY

    (a)

    CY

    (bit)

    (b)

    &

    CY

    CY

    1

  • 7FH=1ACC.7=1C1C0 MOVC,7FH ;CY7FH ANLC,ACC.7;CYCY ACC.7

    sd

  • 2 ORL C,bit;CY CY bit ORL C,/bit;CY CY /bit CYCY

    sd

  • 4-8 ORL

    sd

  • 7FHACC.7 MOV C,7FH ORL C,ACC.7 ;CY

    sd

  • CY1CY JC rel JNC rel CY10PCPCPC2; CY= 1PCPCrel; CY= 0PCPCrel

    sd

  • JC rela)JNC relb)

    4-9 JCJNCaJC relbJNC rel

    sd

  • rel ADD A,#30H ; C JC L2;C=1L2L1:L2:

    sd

  • 2 JB bit,rel ;bit=1PCPC+rel JNB bit,rel ;bit=0PCPC+rel JBC bit,rel ;bit=1PCPC+rel bit0

    sd

  • a)b)c)

    4-10 JBJNBJBCa) JB bit,rel b) JNB bit,rel c) JBC bit,rel

    sd

  • rel MOV P1, #0CAH MOV A, #56H JB P1.2, L1 JNB ACC.3, L2 L1: L2: ;P10CAH11001010B;A56H01010110B; P1.2=0 ; ACC.3=0 L2

    sd

  • MOV A,#43H JBC ACC.2,L1 JBC ACC.6,L2 L1: L2: L2ACC.30ACC.6=10; A 43H01000011B; ACC.2=0 ;ACC.6=1 L2,ACC.6 0

    sd

  • 4.8

    sd

  • 4-5

    sd

  • 11

    2

    sd

  • 1PCLJMPAJMPSJMP JMP

    sd

  • 1 LJMP addr16 ;PCaddr16 16PC8816bit64KB

    sd

  • 0000H LJMP 0100H 0100H

    sd

  • 2 AJMP addrll ;PCPC+2PC15~11PC10~0addr10~0 85673a10~a8AJMPPC2AJMP2KB2KB

    sd

  • 38PC11PC5PC22KB

    4-11 AJMP

    sd

  • 3 SJMP rel ;PCPC2PCPCrel rel8 PC128127

    sd

  • 4 JMP@A+DPTR; PCA+DPTR 8DPTR16PC168

    sd

  • JMP@A+DPTR; PCA+DPTR 3 DPTRADPTR256

    sd

  • LJMP AJMP SJMP AJMPSJMPLJMPLJMPAJMPSJMP

    sd

  • 2-128+127

    sd

  • 2

    sd

  • 1 JZ rel ; 0 JNZ rel ; 0

    PCPC2

    sd

  • JZ rel JNZ rel 4-12 JZJNZ

    sd

  • MOVA,P0 ; P0AJZL1 ; A0A=0L1DECA ; A1L1:

    sd

  • 2 CJNErelPCPC3 PC0

    sd

  • 4RAM4-13 4-13 CJNE

    sd

    addr8

    ()

    A

    ()

    #data8

    ()

    Rn

    ()

    @Ri

    ()

  • 4CJNE A,#data8,rel CJNEA,addr8,relCJNE@Ri,#data8,relCJNERn,#data8,rel

    sd

  • CJNEPCPCPC3PC3PC31271284-14 CJNE

    sd

  • R7=53H CJNE R7,#68H,K1 ; R768HK1CY1 ; K1 : JC K3 ; CY=1R768HK3 K3:

    sd

  • 3 DJNZ,rel 10100 00H0FFH

    sd

  • DJNZdirect, relDJNZRn, rel 4-15 DJNZ DJNZ

    sd

  • DJNZ CPUCPU

    sd

  • DJNZ DJNZ12MHz2449usP1.050s CLRP1.0; P1.7 MOVR2,#18H; HERE : DJNZ R2,HERE ;R2 R21, SETBP1.0 ; P1.7

    sd

  • DJNZ R0R120H256CLRA; A0SUMC:ADDA,@R1; INCR1; 1DJNZ R0,SUMC; 10MOV20H,A; 20H

    sd

  • 12NOP

    sd

  • sd

  • STC15F2K60S2LCALLACALLRET

    sd

  • 1

    LCALL addr16 ;

    LJMP1664KB LCALL STR STR PC PC3 SPSP+1SPPC7~0 SP SP+1 SPPC15~8 PC addr16

    sd

  • 2

    ACALL addr11

    112KB2KBLCALL PC PC2SPSP+1SPPC7~0SPSP+1SPPC15~8PC10~0 addr11PC15~11

    sd

  • 3 RET

    RETLCALLACALL PC15~8SP SPSP1 PC7~0SP SPSP1

    sd

  • 4

    RETI

    RET

    sd

  • 5NOP

    NOP PCPC1

    PC1

    sd

  • NOPLOOP:CLRP2.7;P2.70NOP;NOP NOPNOPSETBP2.7;P2.7 NOPNOP;NOPNOP LJMPLOOP

    sd

  • 4.9 CPUPseudo-InstructionCPUMOV A#30H30HA

    sd

  • 1ORGORIGIN ORG xxxxH ORGxxxxxxxxH

    sd

  • ORG 0000H0000H ORG 0000HSTART:LJMP MAIN MOV A,#00H ORG 0100HDELAY:MOV R0,#30H

    sd

  • ORGPC0000H0000HORG 0000HDELAY ORG 0100H0100HORG 0100HDALAY

    sd

  • 2 [] [] []

    sd

  • DBDW1DBDefine Byte [] DB ASCIIASCII 1

    sd

  • 2DWDefine Word

    DW2

    sd

  • ORG1000HSEG DB 23H; DW1000H; DBMCS-51; END 1000H=23HSEG1000H 1001H=00H 1002H=10H 1003H=4DHMASCII 1004H=43H C ASCII 1005H=53HS ASCII 1006H=2DH-ASCII 1007H=35H 5ASCII 1008H=31H 1ASCII

    sd

  • DBDWASCII

    sd

  • DDecimalBBinary10101001BHHexadecimal09AF0ASCIIA8

    sd

  • */000FFH

    sd

  • 3EQUEquate EQU

    EQUEQU

    sd

  • 4-9 COLUMN EQU 32H ROW EQU 68H BUFFER DB MOV A#COLUMN MOV B#ROW MUL AB MOV BUFFERA MOV BUFFER+1,B COLUMN ROW BUFFERBUFFER+1COLUMN ROW

    sd

  • EQU

    sd

  • 4DATA DATA

    RAM00H0FFH BUFFER DATA 40H

    sd

  • 5XDATAExtenal Data XDATA

    RAM0000H0FFFFH MYDATA XDATA 0100H

    sd

  • 6BIT BIT

    DOGOUT BIT P3.4 DOGOUTP3.4

    sd

  • 7INCLUDEINCLUDE.INCC#include $INCLUDE ()

    sd

  • STC15F2K60S2STC15.INC $INCLUDE (STC15.INC)STC15F2K60S2 MOV CMOD,#10000000B ;PCA

    sd

  • 8: IF [ 1 ] [ ELSE ] [ 2 ] ENDIF

    sd

  • IF1IF2IF63Keil uVision10IF ELSEIFELSE

    sd

  • 9 END []ENDEND

    sd

  • sd

  • RAM

    sd

  • $INCLUDE (STC12.INC) ;STC15F2K60S2;------EQUDATABIT ORG0000HSTART: LJMPMAIN ; ORG0003H LJMPINT0_ISR ;0 ORG000BH LJMPT0_ISR ;0 ORG0013H LJMPINT1_ISR ;1 ORG001BH LJMPT1_ISR ;1 ORG0023H LJMPUART1_ISR ;1

    sd

  • ORG002BH LJMPADC_ISR ;ADC ORG0033H LJMPLVD_ISR ; ORG003BH LJMPPCA_ISR ;PCA ORG0043H LJMPUART2_ISR;2 ORG004BH LJMPSPI_ISR ;SPI

    sd

  • ORG0053H LJMPINT2_ISR;INT2 ORG005BH LJMPINT3_ISR ;INT3 ORG0063H LJMPT2_ISR ;2 ORG0083H LJMPINT4_ISR ;INT4

    sd

  • ORG0100HMAIN: MOVSP,#70H ; ; ;SFR;MAINLOOP: ; LJMP MAINLOOP

    sd

  • ;INT0_ISR: ;0 ;RETIINT1_ISR: ;1 ;RETIT0_ISR: ;0 ;RETIT1_ISR: ;1 ;RETIUART1_ISR: ;1 ;RETI

    sd

  • UART2_ISR:;2 ;RETIADC_ISR: ;ADC ;RETISPI_ISR:;SPI ;RETILVD_ISR:; ;RETIPCA_ISR:;PCAPWM ;RETI ;

    sd

  • INT2_ISR: ;INT2 ; RETIINT3_ISR: ;INT3 ; RETIT2_ISR: ;2 ; RETIINT4_ISR: ;INT4 ; RETI; END

    sd

  • 0003H000BH0013H001BH0023H 002BH0033H003BH0043H004BH0053H005BH0063H0083H0100HMAINMAIN ORG 0100HMAIN0100H

    sd

  • 0003H0083H0000H

    sd

  • sd

  • sd

  • 4-16

    sd

  • 4-17

    sd

  • 123456

    sd

  • 1 JZJNZCJNEDJNZJCJNCJBJNBJBC

    sd

  • 4-9xR0y SIGNCJNECJC

    sd

  • SIGN EQU 50HORG0000HLJMPMAINORG 0100HMAIN:CJNE R0,#37,NOTEQ ;R037NOTEQMOV SIGN,#00H ;,SIGN0LJMP ENDMNOTEQJC NEG ;,R037NEGMOV SIGN,#01H ;R037,SIGN+1LJMP ENDMNEG MOV SIGN,#0FFH ;R037,SIGN-1ENDMNOPEND

    sd

  • 2

    sd

  • LEDLEDMOVC A@ADPTR

    sd

  • ALEDLED MOVDPTR, #SEGTAB; MOVCA,@A+DPTR; ;SEGTABDB0C0H ;0 DB0F9H;1 DB0A4H;2 DB0B0H;3 DB99H;4 DB92H;5 DB82H;6 DB0F8H;7 DB80H;8 DB90H;9

    sd

  • 34-18

    sd

  • MOV R7,#150 ;2LOOP DJNZ R7,LOOP;4 RET

    STC15F2K60S21T80516MHz1/6us0.1msNOP

    sd

  • 0.1ms0.125.5msN0.1msR0

    DELAY:MOV R7, #150 ;6MHz0.1ms LOOPDJNZ R7,LOOP DJNZ R0,DELAY RET

    sd

  • 4 BCD1BCD DA AADDADDC9AH

    sd

  • R1R0R2R0R3 07H01

    sd

  • SUBCD MOV R3,#00H;0 CLR 07H;0 CLR C;C0SUBCD1: MOV A,#9AH SUBB A,@R0; ADD A,@R1 DA A MOV @R0,A INC R0;1 INC R1 INC R3;1

    sd

  • CPL C ; DJNZ R2,SUBCD1 ; JNCSUBCD2 ;SUBCD2 SETB 07H;1SUBCD2: RET;

    sd

  • DA AC=0C=1

    sd

  • BCD8943H - 7649H=? 10011010 9A 01001001 49 01010001 4910051 + 01000011 43 0 10010100 94

    C=0C=1

    sd

  • 10011010 9A 01110110 76 00100100 7610024 00000001 C=1 00100011 123 10001001 89 10101100 + 01100110 66 1 00010010 12

    sd

  • C=0C=1C=01294H

    sd

  • 2STC15F2K60S2MUL AB81616

    sd

  • 16R2R3R6R733H32H31H30H(R3R7)LR3R78(R3R7)HR3R78

    4-19

    sd

  • DMUL MOV A,R3 MOV B,R7 MUL AB ;R3R7 MOV 30H,A ;(30H) (R3R7)L MOV 31H,B ;(31H) (R3R7)H MOV A,R2 MOV B,R7 MUL AB ;R2R7 ADD A,31H ;(R3R7)H+(R2R7)L MOV 31H,A CLR A ADDC A,B MOV 32H,A ;(32H) (R2R7)H

    sd

  • MOV A,R3MOV B,R6MUL AB ;R3R6ADD A,31HMOV 31H,AMOV A,BADDC A,32H ;(R2R7)H+(R3R6)HMOV 32H,AMOV F0,C ;Cy

    sd

  • MOV A,R2MOV B,R6MUL AB ;R2R6ADD A,32HMOV 32H,ACLR AMOV ACC.0,CMOV C,F0 ;ADDC A,BMOV 33H,ARET

    sd

  • 5

    sd

  • RAM 30H~37HR707HF0F0=0F0=1R0RAM30H4-20

    sd

  • SORT: MOV R6,#07HGOON: CLR F0 ;0 MOV R0,#30H ;R0 MOVA,R6 MOV R7,A ;R7LOOP: MOV A,@R0 ; MOV3BH,A ; INC R0 MOV 3AH,@R0 ; CLR C CJNE A,3AH,EXCH LJMP NEXT

    sd

  • EXCH: JC NEXT ; MOV @R0,3BH DEC R0 MOV @R0,3AH ; INC R0 SETB F0 ;NEXT: DJNZ R7,LOOP ; JNBF0,DONE ; DJNZR6,GOON;DONE: RET;

    sd

  • 6/A/DD/ABCDASCII

    sd

  • 14ASCIIASCII41030HASCII101037H4R2ASCIIR2

    sd

  • ASCB1MOVA,R2 ANL A,#0FH;4 CJNEA,#0AH,NOTA ;CYANOTA: JC LOOP;
  • 2ASCII4ASCIIR2R2BCDB1MOVA,R2 CLRC SUBBA,#30H ;ASCII30H MOVR2,A ;R2 SUBBA,#0AH JC LOOP ;
  • 3BCDBCD4R1R2R2R1BCD100003E8H100=0064H10=000AHBCD

    sd

  • BCDR1R2 R1 R2

    20H21H20H21H

    sd

  • BCDB11:MOV20H,#00H MOV 21H,#00H ;0 MOV R3,#0E8H MOV R4,#03H ;1R3R4 MOV A,R2 ANL A,#0F0H ; SWAP A ; JZ BRAN1 ;0BRAN1LOOP1: DEC A LCALL ADDT ;0 JNZ LOOP1

    sd

  • BRAN1:MOV R3,#64H MOV R4,#00H ;R3R4 MOV A,R2 ANL A,#0FH ; JZ BRAN2 ;0BRAN2LOOP2: DEC A LCALL ADDT JNZ LOOP2 ;

    sd

  • BRAN2: MOV R3,#0AH MOV A,R1 ANL A,#0F0H ; SWAPA JZ BRAN3 ;0BRAN3LOOP3: DEC A LCALL ADDT JNZ LOOP3 ;BRAN3: MOV A,R1 ANL A,#0FH MOV R3,A LCALL ADDT RET

    sd

  • ADDT: PUSH PSWPUSHACC CLR C MOV A,20H ;20H21H ADD A,R3 ; MOV 20H,A MOV A,21H ADDC A,R4 MOV 21H,A POPACC POP PSW RET

    sd

  • 7STC15F2K60S216DPTR0DPTR1DPTRAUXR1DPSDPS0DPTR0DPS1DPTR1AUXR1

    sd

  • DPSDPTR0DPTR0 1DPTR1

    D7D6D5D4D3D2D1D0S1_S1S1_S0CCP_S0CCP_S1SPI_S1SPI_S00DPS

    sd

  • 4-10RAM0000H000FH0040H004FHDPTR0DPTR1

    sd

  • AUXR1 DATA 0A2HORG0000HLJMPMAINORG 0100HMAIN:MOV SP,#30H; MOV R2,#10H; ANL AUXR1,#0FEH;DPS.0=0,DPTR0 MOV DPTR,#0000H; ORL AUXR1,#01H;DPS.0=1,DPTR1 ;INC AUXR1 MOV DPTR,#0040H;LOOP: ANL AUXR1,#0FEH ;INC AUXR1 MOVX A,@DPTR INC DPTR ; ORL AUXR1,#01H ;INC AUXR1 MOVX @DPTR,A INC DPTR ; DJNZ R2,LOOP SJMP$ ;$SJMP $HERE: SJMP HERE END

    sd

  • 8STC15F2K60S2FlashEEPROMSTC15F2K60S21KBFlashEEPROM

    sd

  • 4-11Flash$INCLUDE (STC15.INC) ;STC15F2K60S2;ISP/IAP ISP_IAP_BYTE_READ EQU 1H ;ISP_IAP_BYTE_PROGRAM EQU 2H ;ISP_IAP_SECTOR_ERASE EQU 3H ;;FlashIAP/ISPIAP_CONTRENABLE_IAP EQU 82H ;
  • ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP, #70H ; 70H LCALL Delay ; ;EEPROMMAIN1: MOV DPTR, #START_ADDRESS ;EEPROMDPTR LCALL Byte_Read MOV 40H, A ;EEPROM 40H CJNE A, #DEBUG_DATA, NOT_EQU_DEBUG_DATA ;,;, LCALL Delay ; SJMP $ ;CPU

    sd

  • NOT_EQU_DEBUG_DATA:;EEPROM;EEPROM, LCALL Delay ; MOV DPTR,#START_ADDRESS ;EEPROMDPTR LCALL Sector_Erase ; MOV DPTR, #START_ADDRESS ;EEPROMDPTR MOV A, #DEBUG_DATA ; EEPROM #DEBUG_DATA LCALL Byte_Program ; SJMP $ ;,CPU

    sd

  • ;--------- -------------------------------- ;IAP:DPTR=:A=Byte_Read: MOV IAP_CONTR,#ENABLE_IAP ;IAP,Flash MOV IAP_CMD,#ISP_IAP_BYTE_READ ;IAP/ISP MOV IAP_ADDRH, DPH ;8 MOV IAP_ADDRL, DPL ;8 MOV IAP_TRIG, #5AH ;5AH,A5HISP/IAP MOV IAP_TRIG, #0A5H ;A5HISP/IAP NOP MOV A,IAP_DATA ;IAP_DATA,A LCALL IAP_Disable ;IAP, RET

    sd

  • ;------------------- ------------------------ ;IAP:DPTR=, A=Byte_Program: MOV IAP_CONTR, #ENABLE_IAP;IAP, Flash MOV IAP_CMD, #ISP_IAP_BYTE_PROGRAM ; MOV IAP_ADDRH, DPH ;8 MOV IAP_ADDRL, DPL ;8 MOV IAP_DATA, A ;ISP_DATA MOV IAP_TRIG, #5AH ;5AH,A5HISP/IAP MOV IAP_TRIG, #0A5H ;A5HISP/IAP NOP LCALL IAP_Disable ; IAP , RET

    sd

  • ;------------------- ------------------------ ;IAP:DPTR=, A=Byte_Program: MOV IAP_CONTR, #ENABLE_IAP;IAP, Flash MOV IAP_CMD, #ISP_IAP_BYTE_PROGRAM ; MOV IAP_ADDRH, DPH ;8 MOV IAP_ADDRL, DPL ;8 MOV IAP_DATA, A ;ISP_DATA MOV IAP_TRIG, #5AH ;5AH,A5HISP/IAP MOV IAP_TRIG, #0A5H ;A5HISP/IAP NOP LCALL IAP_Disable ; IAP , RET

    sd

  • ;------------------- ------------------------ ;IAP:DPTR=, A=Byte_Program: MOV IAP_CONTR, #ENABLE_IAP;IAP, Flash MOV IAP_CMD, #ISP_IAP_BYTE_PROGRAM ; MOV IAP_ADDRH, DPH ;8 MOV IAP_ADDRL, DPL ;8 MOV IAP_DATA, A ;ISP_DATA MOV IAP_TRIG, #5AH ;5AH,A5HISP/IAP MOV IAP_TRIG, #0A5H ;A5HISP/IAP NOP LCALL IAP_Disable ; IAP , RET MOVCMOVCFlashF000H~F3FFH

    sd

  • 4.10

    Keil uVision

    sd

  • KeilKeilHEX

    sd

  • sd

  • 4.11ISPISP

    4-41 STC15F2K60S2ISP

    sd

  • ISPP3.0P3.1RS-485P3.2/P3.3=0/0ISPISPISPms~ms

    sd

  • ISP P3.2P3.30P3.2P3.3050uSP3.2P3.30ISPISP

    sd

  • ISP

    sd