CPM2A_PROGRAMMING MANUAL (W353-E1-2) (986750), страница 58
Текст из файла (страница 58)
Each instruction is listed by mnemonic and by instruction name. Use thenumbers in the leftmost column as the left digit and the number in the columnheading as the right digit of the function code.Right digitLeftdigit01234567890NOPNOOPERATIONENDENDILINTERLOCKILCINTERLOCKCLEARJMPJUMPJMEJUMP END(@) FALFAILUREALARM ANDRESETFALSSEVEREFAILUREALARMSTEPSTEPDEFINESNXTSTEP START1SFTSHIFTREGISTERKEEPKEEPCNTRREVERSIBLECOUNTERDIFUDIFFERENTIATE UPDIFDDIFFERENTIATEDOWNTIMHHIGHSPEEDTIMER(@) WSFTWORDSHIFT(@) ASFTASYNCHRONOUS SHIFTREGISTER------2CMPCOMPARE(@) MOVMOVE(@) MVNMOVE NOT(@) BINBCD TOBINARY(@) BCDBINARY TOBCD(@) ASLSHIFT LEFT(@) ASRSHIFTRIGHT(@) ROLROTATELEFT(@) RORROTATERIGHT(@) COMCOMPLEMENT3(@) ADDBCD ADD(@) SUBBCDSUBTRACT(@) MULBCDMULTIPLY(@) DIVBCDDIVIDE(@) ANDWLOGICALAND(@) ORWLOGICAL OR(@) XORWEXCLUSIVEOR(@) XNRWEXCLUSIVENOR(@) INCINCREMENT(@) DECDECREMENT4(@) STCSET CARRY(@) CLCCLEARCARRY------------(@) MSGMESSAGEDISPLAY(@) RXDRECEIVE(@) TXDTRANSMIT---5(@) ADBBINARY ADD(@) SBBBINARYSUBTRACT(@) MLBBINARYMULTIPLY(@) DVBBINARYDIVIDE(@) ADDLDOUBLEBCD ADD(@) SUBLDOUBLEBCDSUBTRACT(@) MULLDOUBLEBCDMULTIPLY(@) DIVLDOUBLEBCDDIVIDE(@) BINLDOUBLEBCD-TODOUBLEBINARY(@) BCDLDOUBLEBINARY-TODOUBLEBCD6CMPLDOUBLECOMPARE(@) INIMODE CONTROL(@) PRVHIGHSPEEDCOUNTERPV READ(@) CTBLCOMPARISON TABLELOAD(@) SPEDSPEED OUTPUT(@) PULSSET PULSES(@) SCLSCALING(@) BCNTBIT COUNTER(@) BCMPBLOCKCOMPARE(@) STIMINTERVALTIMER7(@) XFERBLOCKTRANSFER(@) BSETBLOCK SET---(@) XCHGDATAEXCHANGE(@) SLDONE DIGITSHIFT LEFT(@) SRDONE DIGITSHIFTRIGHT(@) MLPX4-TO-16DECODER(@) DMPX16-TO-4ENCODER(@) SDEC7-SEGMENTDECODER---8(@) DISTSINGLEWORDDISTRIBUTE(@) COLLDATACOLLECT(@) MOVBMOVE BIT(@) MOVDMOVE DIGIT(@) SFTRREVERSIBLE SHIFTREGISTER(@) TCMPTABLECOMPARE(@) ASCASCIICONVERT------(@) INTINTERRUPTCONTROL9---(@) SBSSUBROUTINEENTRYSBNSUBROUTINEDEFINERETSUBROUTINERETURN---------(@) IORFI/OREFRESH---(@) MCROMACRONote The shaded areas are function codes to which expansion instructions are allocated by default or to which the user can allocate expansion instructions.
Thefollowing expansion instructions are available in addition to the ones listedabove with default function codes.MnemonicNameMnemonicName(@)ACCACCELERATION CONTROL(@)SCL3AVGAVERAGE VALUE(@)SECBCD TO SIGNED BINARYSCALINGHOURS TO SECONDS(@)FCSFCS CALCULATE(@)SRCHDATA SEARCH(@)HEXASCII-TO-HEXADECIMAL(@)STUPCHANGE RS-232C SETUP(@)HMSSECONDS TO HOURS(@)SUMSUM CALCULATE(@)MAXFIND MAXIMUMSYNC(@)MINFIND MINIMUMTIMLSYNCHRONIZED PULSECONTROLLONG TIMER(@)NEG2’S COMPLEMENTTMHHVERY HIGH-SPEED TIMERPIDPID CONTROL(@)PWMPULSE WITH VARIABLE DUTYRATIOSIGNED BINARY TO BCDSCALINGZCPZCPLAREA RANGE COMPAREDOUBLE AREA RANGECOMPARE(@)SCL2341SectionInstruction Tables7-67-6-3 SRM1(-V2) Function CodesThe following table lists the SRM1(-V2) instructions that have fixed functioncodes. Each instruction is listed by mnemonic and by instruction name. Use thenumbers in the leftmost column as the left digit and the number in the columnheading as the right digit of the function code.Right digitLeftdigit01234567890NOPNOOPERATIONENDENDILINTERLOCKILCINTERLOCKCLEARJMPJUMPJMEJUMP END(@) FALFAILUREALARM ANDRESETFALSSEVEREFAILUREALARMSTEPSTEPDEFINESNXTSTEP START1SFTSHIFTREGISTERKEEPKEEPCNTRREVERSIBLECOUNTERDIFUDIFFERENTIATE UPDIFDDIFFERENTIATEDOWNTIMHHIGHSPEEDTIMER(@) WSFTWORDSHIFT(@) ASFTASYNCHRONOUS SHIFTREGISTER------2CMPCOMPARE(@) MOVMOVE(@) MVNMOVE NOT(@) BINBCD TOBINARY(@) BCDBINARY TOBCD(@) ASLSHIFT LEFT(@) ASRSHIFTRIGHT(@) ROLROTATELEFT(@) RORROTATERIGHT(@) COMCOMPLEMENT3(@) ADDBCD ADD(@) SUBBCDSUBTRACT(@) MULBCDMULTIPLY(@) DIVBCDDIVIDE(@) ANDWLOGICALAND(@) ORWLOGICAL OR(@) XORWEXCLUSIVEOR(@) XNRWEXCLUSIVENOR(@) INCINCREMENT(@) DECDECREMENT4(@) STCSET CARRY(@) CLCCLEARCARRY------------(@) MSGMESSAGEDISPLAY(@) RXDRECEIVE(@) TXDTRANSMIT---5(@) ADBBINARY ADD(@) SBBBINARYSUBTRACT(@) MLBBINARYMULTIPLY(@) DVBBINARYDIVIDE(@) ADDLDOUBLEBCD ADD(@) SUBLDOUBLEBCDSUBTRACT(@) MULLDOUBLEBCDMULTIPLY(@) DIVLDOUBLEBCDDIVIDE------6CMPLDOUBLECOMPARE---------------(@) SCLSCALING(@) BCNTBIT COUNTER(@) BCMPBLOCKCOMPARE(@) STIMINTERVALTIMER7(@) XFERBLOCKTRANSFER(@) BSETBLOCK SET---(@) XCHGDATAEXCHANGE(@) SLDONE DIGITSHIFT LEFT(@) SRDONE DIGITSHIFTRIGHT(@) MLPX4-TO-16DECODER(@) DMPX16-TO-4ENCODER(@) SDEC7-SEGMENTDECODER---8(@) DISTSINGLEWORDDISTRIBUTE(@) COLLDATACOLLECT(@) MOVBMOVE BIT(@) MOVDMOVE DIGIT(@) SFTRREVERSIBLE SHIFTREGISTER(@) TCMPTABLECOMPARE(@) ASCASCIICONVERT---------9---(@) SBSSUBROUTINEENTRYSBNSUBROUTINEDEFINERETSUBROUTINERETURN---------------(@) MCROMACRONote The shaded areas are function codes to which expansion instructions are allocated by default or to which the user can allocate expansion instructions.
Thefollowing expansion instructions are available in addition to the ones listedabove with default function codes.MnemonicName(@)FCSFCS CALCULATE(@)HEXASCII-TO-HEXADECIMAL(@)NEG*2’S COMPLEMENTPID*PID CONTROL(@)STUPCHANGE RS-232C SETUPZCP*AREA RANGE COMPARENote *SCL(66), NEG(––), PID(––), and ZCP (––) are supported by theSRM1-C0-V2 CPUs only.342SectionInstruction Tables7-67-6-4 Alphabetic List by MnemonicDashes (“––”) in the Code column indicate expansion instructions, which do nothave fixed function codes. “None” indicates instructions for which functioncodes are not used.In the CPU Units column, “SRM1” indicates all versions of the SRM1 CPU Unitsand “SRM1(-V2)” indicates only version 2 of the SRM1 CPU Units.MnemonicCodeWordsNameCPU UnitsPageACC (@)––4ACCELERATION CONTROLCPM2A/CPM2C462ADB (@)504BINARY ADDAll437ADD (@)304BCD ADDAll427ADDL (@)544DOUBLE BCD ADDAll433ANDNone1ANDAll346AND LDNone1AND LOADAll347AND NOTNone1AND NOTAll346ANDW (@) 344LOGICAL ANDAll451ASC (@)864ASCII CONVERTAll419ASFT(@)174ASYNCHRONOUS SHIFT REGISTERAll380ASL (@)252ARITHMETIC SHIFT LEFTAll375ASR (@)262ARITHMETIC SHIFT RIGHTAll376AVG––4AVERAGE VALUECPM2A/CPM2C446BCD (@)243BINARY TO BCDAll410BCDL (@)593DOUBLE BINARY-TO-DOUBLE BCDCPM2A/CPM2C411BCMP (@)684BLOCK COMPAREAll404BCNT (@)674BIT COUNTERAll470BIN (@)233BCD-TO-BINARYAll409BINL (@)583DOUBLE BCD-TO-DOUBLE BINARYCPM2A/CPM2C410BSET (@)714BLOCK SETAll384CLC (@)411CLEAR CARRYAll427CMP203COMPAREAll402CMPL604DOUBLE COMPAREAll406CNTNone2COUNTERAll364CNTR123REVERSIBLE COUNTERAll365COLL (@)814DATA COLLECTAll387COM (@)292COMPLEMENTAll450CTBL(@)634COMPARISON TABLE LOADAll366DEC (@)392BCD DECREMENTAll454DIFD142DIFFERENTIATE DOWNAll350DIFU132DIFFERENTIATE UPAll350DIST (@)804SINGLE WORD DISTRIBUTEAll385DIV (@)334BCD DIVIDEAll431DIVL (@)574DOUBLE BCD DIVIDEAll436DMPX (@)77416-TO-4 ENCODERAll414DVB (@)534BINARY DIVIDEAll440END011ENDAll351FAL (@)062FAILURE ALARM AND RESETAll355FALS072SEVERE FAILURE ALARMAll355FCS (@)––4FCS CALCULATECPM2A/CPM2C/SRM1(-V2)471HEX (@)––4ASCII-TO-HEXADECIMALCPM2A/CPM2C/SRM1(-V2)421HMS––4SECONDS TO HOURSCPM2A/CPM2C424IL021INTERLOCKAll351343SectionInstruction TablesMnemonicCodeWordsNameCPU Units7-6PageILC031INTERLOCK CLEARAll351INC (@)382INCREMENTAll453INI (@)614MODE CONTROLAll369INT (@)894INTERRUPT CONTROLAll473IORF (@)973I/O REFRESHAll except SRM1469JME052JUMP ENDAll353JMP042JUMPAll353KEEP112KEEPAll349LDNone1LOADAll346LD NOTNone1LOAD NOTAll346MAX (@)––4FIND MAXIMUMCPM2A/CPM2C442MCRO (@) 994MACROAll457MIN (@)––4FIND MINIMUMCPM2A/CPM2C444MLB (@)524BINARY MULTIPLYAll440MLPX (@)7644-TO-16 DECODERAll412MOV (@)213MOVEAll382MOVB (@)824MOVE BITAll389MOVD (@)834MOVE DIGITAll390MSG (@)462MESSAGEAll468MUL (@)324BCD MULTIPLYAll430MULL (@)564DOUBLE BCD MULTIPLYAll436MVN (@)223MOVE NOTAll382NEG (@)––42’S COMPLEMENTCPM2A/CPM2C/SRM1(-V2)425NOP001NO OPERATIONAll351ORNone1ORAll346OR LDNone1OR LOADAll347OR NOTNone1OR NOTAll346ORW (@)354LOGICAL ORAll451OUTNone2OUTPUTAll347OUT NOTNone2OUTPUT NOTAll347PID––4PID CONTROLCPM2A/CPM2C/SRM1(-V2)396PRV (@)624HIGH-SPEED COUNTER PV READAll except SRM1371PULS (@)654SET PULSES458PWM (@)––4PULSE WITH VARIABLE DUTY RATIOCPM1A/CPM2A/CPM2C(Transistor outputs only)CPM2A/CPM2CRET931SUBROUTINE RETURNAll457ROL (@)272ROTATE LEFTAll376ROR (@)282ROTATE RIGHTAll377RSETNone2RESETAll348RXD (@)474RECEIVECPM2A/CPM2C/SRM1477SBB (@)514BINARY SUBTRACTAll438SBN922SUBROUTINE DEFINEAll457SBS (@)912SUBROUTINE ENTRYAll455SCL (@)664SCALINGCPM2A/CPM2C/SRM1(-V2)391SCL2 (@)––4SIGNED BINARY TO BCD SCALINGCPM2A/CPM2C393SCL3 (@)––4BCD TO SIGNED BINARY SCALINGCPM2A/CPM2C394SDEC (@)7847-SEGMENT DECODERCPM2A/CPM2C416SEC––4HOURS TO SECONDSCPM2A/CPM2C423SETNone2SETAll348344465SectionInstruction TablesMnemonicCodeWordsNameCPU Units7-6PageSFT103SHIFT REGISTERAll374SFTR (@)844REVERSIBLE SHIFT REGISTERAll379SLD (@)743ONE DIGIT SHIFT LEFTAll378SNXT092STEP STARTAll356SPED (@)644SPEED OUTPUT460SRCH (@)––4DATA SEARCHCPM1A/CPM2A/CPM2C(Transistor outputs only)CPM2A/CPM2CSRD (@)753ONE DIGIT SHIFT RIGHTAll378STC (@)401SET CARRYAll427STEP082STEP DEFINEAll356STIM (@)694INTERVAL TIMERAll475STUP––3CHANGE RS-232C SETUPCPM2A/CPM2C/SRM1480SUB (@)314BCD SUBTRACTAll428SUBL (@)554DOUBLE BCD SUBTRACTAll434SUM (@)––4SUMCPM2A/CPM2C448SYNC (@)––4SYNCHRONIZED PULSE CONTROLCPM2A/CPM2C467TCMP (@)854TABLE COMPAREAll403TIMNone2TIMERAll359TIMH153HIGH-SPEED TIMERAll360TIML––4LONG TIMERCPM2A/CPM2C362TMHH––4VERY HIGH-SPEED TIMERCPM2A/CPM2C361TXD (@)484TRANSMITCPM2A/CPM2C/SRM1478WSFT (@)163WORD SHIFTAll375XCHG (@)733DATA EXCHANGEAll385XFER (@)704BLOCK TRANSFERAll383XNRW (@)374EXCLUSIVE NORAll453XORW (@) 364EXCLUSIVE ORAll452ZCP––4AREA RANGE COMPARECPM2A/CPM2C/SRM1(-V2)407ZCPL––4DOUBLE AREA RANGE COMPARECPM2A/CPM2C408441345SectionLadder Diagram Instructions7-77-7Ladder Diagram InstructionsLadder diagram instructions include ladder instructions and logic block instructions and correspond to the conditions on the ladder diagram.