
3–255
Motorola Sensor Device Data
For More Information On This Product,
  Go to: www.freescale.com
092D 23 0C     BLS    $093B       
{ /* we have a set–up error in wire jumpers J1 – J3 */
092F 3F 02     CLR    $02              portc = 0;     /*   */
0931 A6 6E     LDA    #$6E             portb = 0x6e;  /* S */
0933 B7 01     STA    $01         
0935 A6 CE     LDA    #$CE             porta = 0xce;  /* E */
0937 B7 00     STA    $00         
0939 20 FE     BRA    $0939             while(1);
}
093B B6 65     LDA    $65         sensor_index = k;
093D B7 60     STA    $60         
093F 97        TAX                sensor_model = type[k];
0940 58        LSLX               
0941 D6 08 12  LDA    $0812,X     
0944 B7 5E     STA    $5E         
0946 D6 08 13  LDA    $0813,X     
0949 B7 5F     STA    $5F         
094B 81        RTS                }
/***************************************************************************/
void sensor_slope()
{
094C B6 03     LDA    $03         k=portd & 0xf0;  /* we only care about bits 4..7 */
094E A4 F0     AND    #$F0        
0950 B7 65     STA    $65         
0952 34 65     LSR    $65          k = k >> 4;    /* right justify the variable */
0954 34 65     LSR    $65         
0956 34 65     LSR    $65         
0958 34 65     LSR    $65         
095A BE 65     LDX    $65         slope = slope_const[k];
095C 58        LSLX               
095D D6 08 1C  LDA    $081C,X     
0960 B7 59     STA    $59         
0962 D6 08 1D  LDA    $081D,X     
0965 B7 5A     STA    $5A         
0967 81        RTS                }
/***************************************************************************/
void delay(void)  /* just hang around for a while */
{
0968 3F 62     CLR    $62         for (i=0; i<20000; ++i);
096A 3F 61     CLR    $61         
096C B6 62     LDA    $62         
096E A0 20     SUB    #$20        
0970 B6 61     LDA    $61         
0972 A2 4E     SBC    #$4E        
0974 24 08     BCC    $097E       
0976 3C 62     INC    $62         
0978 26 02     BNE    $097C       
097A 3C 61     INC    $61         
097C 20 EE     BRA    $096C       
097E 81        RTS                }
/***************************************************************************/
read_a2d(void)
{
/* read the a/d converter on channel 5 and accumulate the result
in atodtemp */
097F 3F 56     CLR    $56         atodtemp=0;   /* zero for accumulation */
0981 3F 55     CLR    $55         
0983 3F 5B     CLR    $5B            for ( adcnt = 0 ; adcnt<100; ++adcnt) /* do 100 a/d conversions */
0985 B6 5B     LDA    $5B         
0987 A8 80     EOR    #$80        
0989 A1 E4     CMP    #$E4        
098B 24 21     BCC    $09AE       
{
098D A6 20     LDA    #$20               adstat = 0x20;  /* convert on channel 0 */
098F B7 09     STA    $09         
0991 0F 09 FD  BRCLR 7,$09,$0991          while (!(adstat & 0x80));  /* wait for a/d to complete */
0994 B6 08     LDA    $08                  atodtemp = addata + atodtemp;
0996 3F 57     CLR    $57         
0998 B7 58     STA    $58         
F
Freescale Semiconductor, Inc.
n
.