The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers.    


Datasheet Search Engine   
 
Part # or Description: • 5V RS232 Driver • 2SC5066* • "Real Time Clock" • "USB connector" • "blue led" 5mm • 10 watt zener diode • 2N3055* motorola
 
Search Tip: Try entering the part number only. Include a wildcard (eg. lm317* or 1n4148*)

 

 

Interfacing X9241 XDCPs 8051 Microcontrollers followed "dummy" in


Datasheet Thumbnail

  

Download PDF



Top Searches for this datasheet



X9241 variety different instructions that provide flexibility designer. Additionally, nonvolatile nature device allows stored wiper positions that retrieved after power cycles. following code implements available X9241 instructions using standard bi-directional protocol. Although routines occupy less than bytes program memory, designers won't need implement X9241 instructions shorten code removing unnecessary routines. However, this will necessitate reassembly code. those instructions which program nonvolatile data registers (XFR_WCR, GXFR_WCR, WRITE_DR), acknowledge polling been implemented determine early completion internal write cycle. Although this automatically handled routines, word regarding procedure order. After issuing start condition, master sends slave address receives acknowledge. then issues instruction byte X9241 again receives acknowledge. necessary, transmits data byte receives final acknowledge. master must then initiate stop condition which will cause X9241 begin internal write cycle. X9241 pins high impedance until this internal cycle complete. master begin acknowledge polling successively sending start conditions
Interfacing X9241 XDCPs 8051 Microcontrollers
followed "dummy" instructions. When X9241 finally answers with acknowledge, internal write cycle been completed master must initiate stop condition. After next start condition, X9241 ready receive further instructions. code listing, assumption made that code would execute upon reset microcontroller. code also loaded into memory, however this changed with assembler directive. simple MAIN program exercise these routines included next page. this listing, commands cause X9241 A3A2A1A0 0000) accessed XDCP rewritten with value (for wiper position #43). Then pulse decrement wiper initiated, causing selected reduced value (for wiper position #28). issuing other commands follows same general procedure. Figure representative hardware connection between X9241 8051 family microcontroller shown. pull-up resistors lines determined total capacitance devices connected bus, which about 18pF this case, however these necessary since port pins 8051 family devices have internal pull-ups.
June, 2000
www.xicor.com
PSEN
Figure Typical connection between 80C31 X9241 (with A3A2A1A0 0000)
Code Listing Sample MAIN Code Listing Using Following Interface Routines
MAIN: ADDR_BYTE,#01010000b ID,#00001000b COMMAND,#4 DATA_BYTE,#00101011b call INTERPRET ID,#00001000b PULSES,#00001111b COMMAND,#32 call INTERPRET LOAD SLAVE ADDRESS BYTE LOAD BYTE (EEPOT WRITE D5D4D3D2D1D0 101011
RELOAD BYTE (EEPOT PULSES INCREMENT/DECREMENT WIPER
Code Listing 80C31 Microcontroller Routines Manipulating X9241
0090 0091 80C31 MICROCONTROLLER ROUTINES MANIPULATING X9241 QUAD XDCP XICOR INC. 1993 TEMP COUNT p1.0 p1.1 80C31 USED 80C31 USED SCRATCH REGISTER LOOP COUNTING REGISTER
June, 2000
www.xicor.com
0000 0000 0003 0006 0007 0008 000B 000C 000F 0010 0013 0014 0017 0018 001B 001C 001F 0020 0023 0024 0027 0028 002B PULSES COMMAND ADDR_BYTE DATA_BYTE
BITS X###### INSTRUCTION (I.E. 0,4,8,12,16,.) BITS BITS BITS
INSERT "JUMP MAIN" INSTRUCTION INTO 80C31 RESET VECTOR POSITION 0000h MAIN RESET VECTOR HANDLER THIS ADDRESS
NAME: INTERPRET FUNCTION: DETERMINES WHICH X9241 INSTRUCTION ISSUED, THEN EXECUTES INPUTS: COMMAND OUTPUTS: NONE CALLS: READ WCR, READ_DR, WRITE_WCR, WRITE_DR, XFR_DR, XFR_WCR, GXFR_DR, GXFR_WCR,INC_WIPER AFFECTED: DPTR,A INTERPRET: call call call call call call call call call dptr,#FIRST a,COMMAND @a+dptr READ_WCR WRITE_WCR READ_DR WRITE_DR XFR_DR XFR_WCR GXFR_DR GXFR_WCR INC_WIPER BASE ADDRESS OFFSET JUMP INSTRUCTION HANDLER COMMAND
FIRST:
COMMAND COMMAND COMMAND COMMAND COMMAND COMMAND COMMAND COMMAND
June, 2000
www.xicor.com
002C 002D 002F 0030 FOLLOWING ROUTINES HANDLE EACH X9241 INSTRUCTIONS. THESE CALLED INTERPRET ROUTINE STRAIGHT FORWARD READ_WCR READS RETURNS ITS' VALUE DATA_BYTE WRITE_WCR WRITES VALUE DATA_BYTE READ_DR READS DATA REGISTER RETURNS ITS' VALUE DATA_BYTE WRITE_DR WRITES VALUE DATA_BYTE DATA REGISTER XFR_DR TRANSFERS VALUE DATA REGISTER ITS' XFR_WCR TRANSFERS VALUE ITS' DATA REGISTERS GXFR_DR GLOBAL TRANSFER LIKE DATA REGISTERS THEIR WCRS GXFR_WCR GLOBAL TRANSFER WCRS THEIR LIKE DATA REGISTERS INC_WIPER SINGLE STEP INCREMENT/DECREMENT WIPER POSITION FUNCTION: APPENDS BITS P1,P0,R1,R0 APPROPRIATE INSTRUCTION CODE PASSES INSTRUCTION BYTE INSTRUCTION GENERATOR INPUTS: OUTPUTS: NONE CALLS: INSTR_GEN AFFECTED: ID,A,DPTR READ_WCR: a,ID a,#090h ID,a dptr,#CASE1 BITS APPEND READ_WCR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
0033 0036 0037 0038
003A 003B 003E 0041 0042 0043
0045 0046
WRITE_WCR:
call call
INSTR_GEN a,ID a,#0A0h ID,a dptr,#CASE2 INSTR_GEN a,ID a,#0B0h ID,a dptr,#CASE1 BITS APPEND READ_DR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS BITS APPEND WRITE_WCR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
READ_DR:
June, 2000
www.xicor.com
0049 004C 004D 004E 0050 0051 0054 0057 0058 0059 005B 005C 005F 0062 0063 0064 INSTRUCTION call INSTR_GEN a,ID a,#0C0h dptr,#CASE3 WRITE_DR: BITS APPEND WRITE_DR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
call INSTR_GEN XFR_DR: a,ID a,#0D0h dptr,#CASE4 BITS APPEND XFR_DR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
XFR_WCR:
call INSTR_GEN a,ID a,#0E0h dptr,#CASE5
0066 0067 006A 006D 006E 006F
BITS APPEND XFR_WCR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
GXFR_DR:
call INSTR_GEN a,ID a,#010h dptr,#CASE4
0071 0072 0075 0078 0079 007A
BITS APPEND GXFR_DR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
GXFR_WCR:
call INSTR_GEN a,ID a,#080h dptr,#CASE5
007C 007D 0080 0083 0084 0085
BITS APPEND GXFR_WCR INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
INC_WIPER:
call INSTR_GEN a,ID a,#020h ID,a dptr,#CASE6
0087 0088 008B 008E
BITS APPEND INC_WIPER INSTRUCTION CODE SAVE RESULT BASE ADDRESS THIS INSTRUCTION
call INSTR_GEN
June, 2000
www.xicor.com
008F 0092 0093 0096 0097 009A 009B 009C 009D 009F 00A0 00A1 00A3 00A6 [00A3] 00A8 00AB 00AC 00AF 00B2 00B5 00B8 00B9 00BC 00BF 00C2 00C5 00C8 00CB 00CE NAME: INSTR_GEN (INSTRUCTION GENERATOR) FUNCTION: ISSUES APPROPRIATE PROTOCOL EACH X9241 INSTRUCTION INPUTS: OUTPUTS: DATA_BYTE CALLS: START_COND, STOP_COND, SEND_BYTE, SEND_BIT, GET_BYTE, POLLING AFFECTED: DATA_BYTE,A,COUNT INSTR_GEN: call START_COND a,ADDR_BYTE call SEND_BYTE a,ID call SEND_BYTE CASE6: WIPER_LOOP: call djnz CASE4: CASE2: call call call call call call call call NAME: SEND_BYTE +dptr a,PULSES a,#00111111b COUNT, a,PULSES a,#10000000b ISSUE START CONDITION SEND X9241 ADDRESS BYTE SEND X9241 INSTRUCTION BYTE OFFSET (DON'T NEED OFFSET) JUMP VARIOUS INSTRUCTION CASES BITS BITS SAVE NUMBER PULSES
CASE1: CASE3:
CASE5: STOP_GEN:
BITS SEND_BIT SEND SINGLE PULSE) COUNT,WIPER_LOOP CONTINUE UNTIL PULSES SENT STOP_GEN PROGRAM GETS HERE, THEN IT'S DONE a,DATA_BYTE SEND X9241 DATA BYTE SEND_BYTE STOP_GEN GET_BYTE RECEIVE X9241 DATA BYTE STOP_GEN a,DATA_BYTE SEND X9241 DATA BYTE SEND_BYTE STOP_COND ISSUE STOP CONDITION POLLING BEGIN ACKNOWLEDGE POLLING STOP_GEN STOP_COND ISSUE STOP CONDITION POLLING BEGIN ACKNOWLEDGE POLLING STOP_COND TRANSMISSION OVER!
June, 2000
www.xicor.com
00CF 00D1 00D2 00D3 00D5 00D8 00D9 00DA 00DB 00DD 00E0 [00D2] 00E1 00E3 00E5 00E7 00EA [00E7] FUNCTION: SENDS BITS (FROM LSB) READS FROM INPUTS: OUTPUTS: NONE CALLS: SEND_BIT,GET_BIT AFFECTED: COUNT,TEMP,A SEND_BYTE: BIT_LOOP: COUNT,#8 TEMP,a a,TEMP a,#10000000b LOOP REPETITIONS STORE SHIFTED BYTE SHIFT) RETRIEVE LAST SAVED SHIFTED BYTE MASK (MOST SIGNIFICANT BIT) PLACE THIS RETRIEVE LAST SAVED SHIFTED BYTE ROTATE BITS POSITION LEFT STORE THIS UPDATED SHIFTED BYTE
NEXT_BIT:
call SEND_BIT a,TEMP TEMP,a
djnz COUNT,BIT_LOOP call CLOCK WHEN DONE BITS, READ LINE NAME: SEND_BIT FUNCTION: PLACES INITIATES CLOCK PULSE INPUTS: OUTPUTS: NONE CALLS: CLOCK AFFECTED: SEND_BIT: setb SENT_ZERO: call SENT_ZERO CLOCK PULL SHOULD REALLY LOW? NOT, PULL HIGH INITIATE CLOCK PULSE
NAME: CLOCK FUNCTION: ISSUES LOW-HIGH-LOW CLOCK PULSE SUFFICIENT DURATION READS DURING HIGH PHASE, JUST CASE IT'S NEEDED INPUTS: NONE OUTPUTS:
June, 2000
www.xicor.com
00EB 00EC 00EE 00EF 00F0 00F1 00F3 00F5 00F6 00F8 00FA [00EB] 00FC 00FD [00FA] 00FF 0100 0101 [00E1] 0103 0104 0106 0108 0109 CALLS: NONE AFFECTED: SCL,C CLOCK: setb c,SDA SET-UP PULL HIGH HOLD
MOVE INTO CARRY FLAG PULL
NAME: GET_BYTE FUNCTION: RECEIVES BITS FROM (MSB LSB) SENDS INPUTS: NONE OUTPUTS: DATA_BYTE CALLS: CLOCK,SEND_BIT AFFECTED: COUNT,SDA,A,DATA_BYTE RECEIVER SHOULDN'T DRIVE COUNT,#8 LOOP COUNTER REPETITIONS GET_LOOP: call CLOCK CLOCK CURRENT RECONSTRUCT BYTE USING LEFT SHIFTS djnz COUNT,GET_LOOP DATA_BYTE,a STORE RETRIEVED BYTE USER (SENDING call END_BIT SEND ACKNOWLEDGE NAME: START_COND (START CONDITION) FUNCTION: ISSUES START CONDITION INPUTS: NONE OUTPUTS: NONE CALLS: NONE AFFECTED: SDA,SCL START_COND: setb setb PULL HIGH ALLOW SET-UP PULL HIGH HOLD GET_BYTE: setb
June, 2000
www.xicor.com
010A 010B 010C 010E 010F 0110 0111 0112 0114 0115 0117 0119 011A 011B 011C 011D 011F 0120 0121 [00E1] 0123 PULL (SCL=HIGH) HOLD
COMPLETE CLOCK PULSE
NAME: STOP_COND (STOP CONDITION) FUNCTION: ISSUES STOP CONDITION INPUTS: NONE OUTPUTS: NONE CALLS: NONE AFFECTED: SDA,SCL STOP_COND: setb setb PULL HOLD PULL HIGH HOLD
PULL HIGH (SCL=HIGH)
NAME: ACK_SEND (SEND ACKNOWLEDGE) FUNCTION: SENDS ACKNOWLEDGE COMPLETE LINE DATA READS INPUTS: NONE OUTPUTS: NONE CALLS: SEND_BIT AFFECTED: ACK_SEND: call SEND_BIT (SENDING SEND BIT!
NAME: POLLING (ACKNOWLEDGE POLLING XFR_WCR, WRITE_DR, GXFR_WCR) FUNCTION: SENDS DUMMY COMMANDS X9241 DURING INTERNAL WRITE CYCLE THAT CYCLE MARKED ACKNOWLEDGE INPUTS: ADDR_BYTE
June, 2000
www.xicor.com
0124 [0104] 0126 0127 [00CF] 0129 [0124] 012B 012C OUTPUTS: NONE CALLS: START_COND,SEND_BYTE AFFECTED: POLLING: call START_COND a,ADDR_BYTE call SEND_BYTE POLLING MAIN PROGRAM HERE. MAIN: REESTABLISH PROTOCOL ATTEMPT SEND DUMMY COMMAND C=1, THEN THERE ACKNOWLEDGE
AGAIN:
ASSEMBLY END, ERRORS:0, LAST CODE ADDRESS:012BH, TOTAL BYTES:299
June, 2000
www.xicor.com

Other recent searches


TKDD40A - TKDD40A   TKDD40A Datasheet
TDA9207 - TDA9207   TDA9207 Datasheet
Si7110ADN - Si7110ADN   Si7110ADN Datasheet
MX29F040 - MX29F040   MX29F040 Datasheet
MC33790 - MC33790   MC33790 Datasheet
LM118 - LM118   LM118 Datasheet
LM218 - LM218   LM218 Datasheet
LM318 - LM318   LM318 Datasheet
ISD5216 - ISD5216   ISD5216 Datasheet
2SA1879 - 2SA1879   2SA1879 Datasheet

 

Privacy Policy | Disclaimer
© 2012 Datasheet Archive