8
List 1 (Continued)
LINE LOC OBJ SOURCE
61 402b ’00d3 JMP START
62
63 ;
64 ;Subroutine :– DATAIN
65 ;
66 402d 9122 DATAIN MOV ADATA,B ;Read ADC mode/channel
67 402f d10b MOV B,R11 ;Put ADC mode/channel
68 ;in R11
69 4031 53f0 AND #0F0H,B ;Retain channel number
70 4033 cc RR B ;* * * * * * * * *
71 4034 cc RR B ;* Map channel numbers *
72 4035 cc RR B ;* to registers R64–R91 *
73 4036 cc RR B ;* R10 contains storage *
74 4037 5c02 MPY #002,B ;* address *
75 4039 5840 ADD #40H,B ;* Even numbers – MS Byte*
76 403b d10a MOV B,R10 ;* Odd numbers – LS Byte *
77 ;* * * * * * * * *
78 403d f9 RTS
79 ;
80 ;Subroutine :– ADC
81 ;
82 403e 2203 ADC MOV #003H,A
83 4040 a4802e SBIT1 CSBIT ;Set ADC Chip Select high.
84 4043 b2 LOOP1 DEC A ;Chip Select stays high
85 4044 ’06fd JNE LOOP1 ;while A is not 0.
86 4046 c5 CLR B
87 4047 512e MOV B,DDATA ;CS goes low
88 4049 2207 MOV #7,A
89 404b 2131 MOV A,SPICTL ;Enable SPI transmission
90 404d ’76020b19 JBIT1 MSLSB,LS1ST
91 4051 120b MOV R11,A
92 4053 2139 MOV A,SPIDAT
93 ; MOV R11,SPIDAT ;Send mode/channel data
94 ;to TLC2543
95 4055 ’a74031fc FLAG1 JBIT0 SPIF,FLAG1;If SPIF=0, repeat check.
96 4059 a21437 MOV SPIBUF,R20 ;Put received MS Byte
97 ;in R20
98 405c 71390b MOV R11,SPIDAT ;Send mode/channel data
99 ;to TLC2543
100 405f ’a74031fc FLAG2 JBIT0 SPIF,FLAG2;If SPIF=0, repeat check.
101 4063 a21537 MOV SPIBUF,R21 ;Put received LS Byte
102 ; in R21
103 4066 ’77020b32 JBIT0 MSLSB,RETURN ;If MSLSB=0, go
104 ;to RETURN
105 406a 120b LS1ST MOV R11,A
106 406c 2139 MOV A,SPIDAT
107 406e ’a74031fc FLAG3 JBIT0 SPIF,FLAG3;If SPIF=0, repeat check.
108 4072 a21537 MOV SPIBUF,R21 ;Put received LS Byte
109 ;in R21
110 4075 120b MOV R11,A
111 4077 2139 MOV A,SPIDAT
112 4079 ’a74031fc FLAG4 JBIT0 SPIF,FLAG4;If SPIF=0, repeat check.
113 407d a21437 MOV SPIBUF,R20 ;Put received MS Byte
114 ;in R20
115 4080 2208 MOV #08,A ;* * * * * * * *
116 4082 d516 CLR R22 ;* *
117 4084 dd14 LOOP2 RRC R20 ;* Reformat MS Byte *
118 4086 df16 RLC R22 ;* *
119 4088 b2 DEC A ;* Put result in R20 *
120 4089 ’06f9 JNZ LOOP2 ;* *
121 408b 421614 MOV R22, R20 ;* * * * * * * *
122 408e 2208 MOV #08,A ;* * * * * * * *
123 4090 d517 CLR R23 ;* *
124 4092 dd15 LOOP3 RRC R21 ;* Reformats LS Byte *
125 4094 df17 RLC R23 ;* *
126 4096 b2 DEC A ;* Put result in R21 *
127 4097 ’06f9 JNZ LOOP3 ;* *
128 4099 421715 MOV R23,R21 ;* * * * * * * *
Comentários a estes Manuais