- •Проектирование микропроцессорных систем на базе учебного стенда sdk 1.1
- •Введение
- •1. Описание компонентов мп системы.
- •Микропроцессорный стенд sdk - 1.1.
- •Микроконтроллер aDuC812
- •Плис max3064
- •Дискретные входы-выходы
- •Аналоговые входы-выходы
- •Инструкция по работе с программой
- •Обзор основных свойств, методов, событий компоненты ComPort
- •4. Датчики
- •5. Пример 1
- •Расчет параметров технологического процесса
- •5.2. Описание функций для работы с sdk 1.1
- •5.3. Алгоритм программы для sdk
- •5.4. Программа для sdk
- •5.5. Интерфейс программы для пк
- •5.6. Алгоритм программы для пк
- •5.7. Программа для пк
- •6. Пример 2
- •6.1. Алгоритм работы системы
- •6.2. Имитация датчиков
- •6.3. Расчет параметров технологического процесса
- •6.4. Программа для работы микропроцессорного контроллера на языке Ассемблер
- •6.5. Программа для работы цап и ацп на языке c
- •6.6. Программа для персонального компьютера на языке с в среде c-Builder
- •6.7. Интерфейс программы для пк
- •7. Графическая часть
- •Sdk 1.1
- •5.2. Описание функций для работы с sdk 1.1 …………………... 21
- •5.4. Программа для sdk ………………………………………….. 35
- •5.5. Интерфейс программы для пк ………………………………. 41
- •5.6. Алгоритм программы для пк ………………………………... 43
6.4. Программа для работы микропроцессорного контроллера на языке Ассемблер
При работе с толщиномером приходится обрабатывать дробные числа. В языке Assembler предусмотрена специальная библиотека для работы с числами типа float. Но мы ей пользоваться не будем, а поступим следующим образом.
Подпрограммы для работы ЦАЦ и АЦП напишем на языке C и объявим их как внешние. Для этого воспользуемся директивой
EXTRN CODE (_имя1, имя2, …,имяN).
Затем будем вызывать их из основной программы с помощью команды
СALL _имя.
Оба файла (основная программа и подпрограмма для ЦАП и АЦП) должны находиться в одной папке.
A51MACROASSEMBLERKURS
MACROASSEMBLERA51V6.20e
OBJECT MODULE PLACED IN kurs.OBJ
ASSEMBLER INVOKED BY: c:\keil\c51\bin\A51.EXE kurs.a51
LOC
|
OBJ |
LINE |
SOURCE |
Комментарии |
0084
00A1
00A6
00D7
009D
009E
00FD 00DA 00D9 00FA 00FC 00F9 00FB 00EF 00D8 00F5
0000 0000 0023 0023
0025
0025 0028 002B
002E
0031 0034 0036 0039
003C 003C 003E 0041
0044 0044
0046
0048 004B 004B 004D 0050
0052 0052 0053 0054 0055 0056 0058 005B 005D 005F 0061 0063
0065 0068 006B
006D 006D 0070 0072 0074 0076 0078 007A 007D 0080
0082 0082 0085 0087 0089 008B 008D 008F 0092 0095
0097 0097 009A 009C 009E 00A0 00A2 00A4 00A7 00AA
00AC 00AC 00AF 00B1 00B3 00B5 00B7 00B9 00BC
00BF 00BF 00C1 00C4 00C5
00C7 00C7 00C9 00CB 00CC
00CE 00CE 00D1
00D4 00D4 00D6 00D8 00DA 00DC 00DF 00E1
00E3 00E3 00E6
00E8 00E8 00EB 00EE
00F0 00F0 00F3 00F5
00F7 00F7 00FA 00FC 00FF
0101 0101 0104 0107
0109 0109 010B 010D 010F 0111
0112 0112 0115 0117
0118 0118 011A 011C 011E 0120 0122 0124 0126 0128 012A
012B 012B 012D 012F 0131 0133 0135 0137 0139 013B 013D 013F 0141 0143 0145 0147 0149 014B 014D 014F 0151 0153 0155 0157 0159 015B 015D 015F 0161 0163 0165 0167 0169 016B 016D 016F 0171 0173 0175 0177 0179
017A 017A 017C 017E
0180 0180 0182 0184 0186 0188
018A 018A
018C
018F 018F
0192 0192 0194 0196
0199 019B
019E 019E 01A0 01A2 01A4 01A6 01A8
01A9 01A9 01AB 01AD 01AF
01B0
01B1 01B1 01B2 01B3 01B4 01B5 01B8 01B9 01BA 01BB 01BC 01BF
01C0 01C0 01C1 01C3 01C5 01C7 01C9 01CB
01CC 01CC 01CE 01D0 01D2 01D4 01D6
01D7 01D7
01D9 01DB
01DE 01E0 01E2
01E4 01E4 01E6 01E9 01EC 01EE
01F0 01F2
01F4 01F4 01F6
01F9 01FB 01FE 0201 0203
0205 0207
0209 0209
020B
020E 0210 0212 0214 0216 0218
021A
021B 021B 021D 021F
0221 0224
0225
0226
0228
0229 0229 022B 022D 022F 0232 0233 0235
0236
0236 0238 023A
023C 023E 0240 0242 0244 0246 0248
0249
0249 024B 024D
024F 0251 0253 0255 0257 0259 025B
025C 025C 025E 0260 0260 0262 0264
0265 0265 0267 0269 0269 026B 026D
026E 026E 026F 0270 0271 0272 0273 0274 0275 0276 0277
|
8023
01CE
759E83 759D2D 75A601
759850
75A810 D2AF 75FD7F 75EFAC
E599 B401FB 75994B
C2D5
317A
30D5F9
E599 B44D02 8075
E8 23 23 29 F520 B40512 7C3F 7D00 7E00 7F00 D200 F
120000 F 120000 F 8052
B40612 7C3F 7D80 7E00 7F00 D200 F 120000 F 120000 F 803D
B40712 7C3F 7DC0 7E00 7F00 D200 F 120000 F 120000 F 8028
B40812 7C40 7D00 7E00 7F00 D200 F 120000 F 120000 F 8013
B40910 7C40 7D20 7E00 7F00 D200 F 120000 F 120000 F
E520 90026E 93 F599
5165 5165 E4 0144
209803 20993E
F520 8E21 8F22 8D23 3098F5 C298 E599
B40102 8021
B40005 75994C 8019
B40204 3118 8012
B40307 75994D 312B 8008
B40405 75994E 8000
E520 AE21 AF22 AD23 32
3099FD C299 32
7D01 7E07 7F00 511B 5165 7D00 7E07 7F00 511B 22
7E01 7F00 7D82 511B 5136 7450 31C0 7479 31C0 74BB 31C0 746F 31C0 74BD 31C0 7420 31C0 74BD 31C0 7461 31C0 74B2 31C0 7470 31C0 7461 31C0 74BD 31C0 7DFF 7E07 7F00 511B 31D7 7D00 7E07 7F00 511B 31CC 22
7800 7900 7DFE
7900 7C10 7E00 7F00 511B
31A9
B40022
75A103
E5A1 5407 B407F9
31A9 B40013
D2D5 7E00 7F00 7DFF 511B 22
7E00 7F00 5129 5C
22
EC 23 FC 09 B904D2 ED 23 FD 08 B804C1 22
FD 7E01 7F00 511B 7D05 5149 22
7E01 7F00 7D01 511B 5136 22
E5D7
F5F0 75D704
79FF 7A03 7802
C28E 758D0F 758B00 D28E 7D10
7E04 7F00
511B 308FFB
C28E 758D0F 758B00 D28E 7D08
7E04 7F00
511B
308FFB
C28E D9D2 DAD0 D8CE E5F0 F5D7
22
8E82 8F83 AF84
758408 ED
F0
8F84
22
8E82 8F83 AF84 758408 E0 8F84 22
7E06 7F00 7D01
511B 7D00 7E06 7F00 511B 515C 22
7E06 7F00 7D05
511B 7D00 7E06 7F00 511B 515C 22
7EFF 7F9F
DEFE DFFC 22
7EFF 7FFF
DEFE DFFC 22
41 42 43 44 45 46 47 48 49 4A
|
1
2
3
4
5
6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
30
31 32 33 34 35 36 37 38 39 40 41 42
43
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
229 230 231 232 233 234 235 236 237 238
239 240 241 242
243 244 245 246 247
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
298 299
300 301 302 303 304 305 306 307 308 309
310 311 312 313 314 315
316 317 318 319 320
321 322 323 324 325
326
327 328 329 330 331 332
333 334 335 336 337 338
339 340
341
342
343 344 345 346 347 348 349 350 351 352 353 354
355 356 357
358 359 360 361 362 363 364 365 366
367 368 369
370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406
|
DPP DATA 84H
TIMECON DATA 0A1H
INTVAL DATA 0A6H
PLLCON DATA 0D7H
T3FD DATA 9DH
T3CON DATA 9EH
DACCON DATA 0FDH ADCDATAH DATA 0DAH ADCDATAL DATA 0D9H DAC0H DATA 0FAH DAC1H DATA 0FCH DAC0L DATA 0F9H DAC1L DATA 0FBH ADCCON1 DATA 0EFH ADCCON2 DATA 0D8H ADCCON3 DATA 0F5H
org 0000H jmp START org 0023H jmp P_PORT
START: EXTRN CODE (_SetVoltage) EXTRN CODE (_GetVoltage) EXTRN BIT (channel) mov T3CON,#83H mov T3FD,#2DH mov INTVAL,#1
mov SCON,#01010000B
mov IE,#00010000B setb EA mov DACCON,#01111111B mov ADCCON1,#10101100B
PYSK: mov A,SBUF cjne A,#1,PYSK mov SBUF,#75
MAIN: clr F0
call SCAN_KLAV
jnb F0,MAIN NOMER_KNOPKI: mov A,SBUF cjne A,#77,N1 jmp N2
N1: mov A,R0 rl A rl A add A,R1 mov 20H,A cjne A,#05H,K_8 mov R4,#3Fh mov R5,#00h mov R6,#00h mov R7,#00h setb channel
call _SetVoltage call _GetVoltage jmp K
K_8: cjne A,#06H,K_0 mov R4,#3Fh mov R5,#80h mov R6,#00h mov R7,#00h setb channel call _SetVoltage call _GetVoltage jmp K
K_0: cjne A,#07H,K_3 mov R4,#3Fh mov R5,#0C0h mov R6,#00h mov R7,#00h setb channel call _SetVoltage call _GetVoltage jmp K
K_3: cjne A,#08H,K_6 mov R4,#40h mov R5,#00h mov R6,#00h mov R7,#00h setb channel call _SetVoltage call _GetVoltage jmp K
K_6: cjne A,#09H,K mov R4,#40h mov R5,#20h mov R6,#00h mov R7,#00h setb channel call _SetVoltage call _GetVoltage
K: mov A,20H mov DPTR,#TABLE movc A,@A+DPTR mov SBUF,A
N2: call DELAY1 call DELAY1 clr A JMP MAIN
P_PORT: jb RI,WAIT_IN jb TI,WAIT_OUT
WAIT_IN: mov 20H,A mov 21H,R6 mov 22H,R7 mov 23H,R5 jnb RI,WAIT_IN clr RI mov A,SBUF
M0: cjne A,#1,M1 jmp M5
M1: cjne A,#0,M2 mov SBUF,#76 jmp M5
M2: cjne A,#2,M3 call ONE_VITOK jmp M5
M3: cjne A,#3,M4 mov SBUF,#77 call RYLON_NABRAN jmp M5
M4: cjne A,#4,M5 mov SBUF,#78 jmp M5
M5: mov A,20H mov R6,21H mov R7,22H mov R5,23H reti
WAIT_OUT: jnb TI,WAIT_OUT clr TI reti
ONE_VITOK: mov R5,#01H mov R6,#07H mov R7,#00H call WRITE call DELAY1 mov R5,#00H mov R6,#07H mov R7,#00H call WRITE ret
RYLON_NABRAN: mov R6,#01H mov R7,#00H mov R5,#82H call WRITE call STROBE mov A,#50H call LCD_PUTCH mov A,#79H call LCD_PUTCH mov A,#0BBH call LCD_PUTCH mov A,#6FH call LCD_PUTCH mov A,#0BDH call LCD_PUTCH mov A,#20H call LCD_PUTCH mov A,#0BDH call LCD_PUTCH mov A,#61H call LCD_PUTCH mov A,#0B2H call LCD_PUTCH mov A,#70H call LCD_PUTCH mov A,#61H call LCD_PUTCH mov A,#0BDH call LCD_PUTCH mov R5,#0FFH mov R6,#07H mov R7,#00H call WRITE call SOUND mov R5,#00H mov R6,#07H mov R7,#00H call WRITE call CLEAN_SCREEN ret
SCAN_KLAV: mov R0,#00H mov R1,#00H moV R5,#0FEH
COL: mov R1,#00H mov R4,#10H mov R6,#00H mov R7,#00H call WRITE
ROW: call CHEK
cjne A,#00H,CONTINUE_SCAN_KLAV
DREBEZG: mov TIMECON,#00000011B
WAIT: mov A,TIMECON anl A,#00000111B cjne A,#00000111B,WAIT
call CHEK cjne A,#00H,CONTINUE_SCAN_KLAV
INIT_KLAV: setb F0 mov R6,#00H mov R7,#00H mov R5,#0FFH call WRITE ret
CHEK: mov R6,#00H mov R7,#00H call READ anl A,R4
ret
CONTINUE_SCAN_KLAV: mov A,R4 rl A mov R4,A inc R1 cjne R1,#04H,ROW mov A,R5 rl A mov R5,A inc R0 cjne R0,#04H,COL ret
LCD_PUTCH: mov R5,A mov R6,#01H mov R7,#00H call WRITE mov R5,#05H call STROBE1 ret
CLEAN_SCREEN: mov R6,#01H mov R7,#00H mov R5,#01H call WRITE call STROBE ret
SOUND: mov A,PLLCON
mov B,A mov PLLCON,#4
mov R1,#255 mov R2,#3 mov R0,#02H
AGAIN: clr TR1 mov TH1,#0FH mov TL1,#00H setb TR1 mov R5,#010H
mov R6,#04H mov R7,#00H
REP1: call WRITE jnb TF1,REP1
clr TR1 mov TH1,#0FH mov TL1,#00H setb TR1 mov R5,#08H
mov R6,#04H mov R7,#00H
REP2: call WRITE
jnb TF1,REP2
clr TR1 djnz R1,AGAIN djnz R2,AGAIN djnz R0,AGAIN mov A,B mov PLLCON,A
ret
WRITE: mov DPL,R6 mov DPH,R7 mov R7,DPP
mov DPP,#08H mov A,R5
movx @DPTR,A
mov DPP,R7
ret
READ: mov DPL,R mov DPH,R7 mov R7,DPP mov DPP,#08H movx A,@DPTR mov DPP,R7 ret
STROBE:
mov R6,#06H mov R7,#00H mov R5,#01H
call WRITE mov R5,#00H mov R6,#06H mov R7,#00H call WRITE call DELAY ret
STROBE1:
mov R6,#06H mov R7,#00H mov R5,#05H
call WRITE mov R5,#00H mov R6,#06H mov R7,#00H call WRITE call DELAY ret
DELAY: mov R6,#9FH mov R7,#0FFH LOOP: djnz R6,LOOP djnz R7,LOOP ret
DELAY1: mov R6,#0FFH mov R7,#0FFH LOOP1: djnz R6,LOOP1 djnz R7,LOOP1 ret
TABLE: DB 65 DB 66 DB 67 DB 68 DB 69 DB 70 DB 71 DB 72 DB 73 DB 74
END
|
; указатель адреса станицы данных
; указатель адреса регистра TIMECON ; указатель адреса регистра INTVAL
; указатель адреса регистра настройки частоты ядра ; указатель адреса регистра T3FD
; указатель адреса регистра T3CON
; указатели адресов регистров для работы с ЦАП и АЦП
; объявление внешних функций
; настройка СОМ-порта на скорость 9600 Кбод ; определяем временной промежуток для учета дребезга контактов
; разрешаем прерывание от UART
; настраиваем ЦАП ; настраиваем АЦП
; ожидание сигнала "ПУСК" (1) ; отправка в порт символа "К"
; F0 - бит нажатия клавиши (1 – нажата, 0 – не нажата) ; подпрограмма сканирования клавиаткры
; вычисляем ; номер ; кнопки
; если нажата клавиша «8» ; имитируем подачу напряжения 0,5 В ; в регистрах R4,R5,R6,R7 содержится код числа 0,5 ; задаем канал преобразования ЦАП и АЦП (здесь канал 1) ; вызываем внешние функции
; если нажата клавиша «0» ; имитируем подачу напряжения 1 В
; если нажата клавиша «3» ; имитируем подачу напряжения 1,5 В
; если нажата клавиша «6» ; имитируем подачу напряжения 2 В
; если нажата клавиша «9» ; имитируем подачу напряжения 2,5 В
; выбираем символ, ;соответствующий ; каждой клавише, ; для отправки
; задержка
; обработчик прерывания
; сохраняем ; значения ; переменных, которые меняются в прерывании ; ждем конца приема
; помещение в А принятые данные и дальнейшее их сравнение
; сигнал "ПУСК"
; сигнал "СТОП" ; отправка символа "L"
; сигнал "1 ВИТОК НАБРАН"
; сигнал "РУЛОН НАБРАН" ; отправка символа "M"
; сигнал "ЗАПУСК" ; отправка символа "N"
; восстанавливаем ; значения ; переменных
; ждем окончания отправки
; зажигаем 1 светодиод
; установка ; позиции экрана ; на 2 знакоместо
; 'Р'
; 'у'
; 'л'
; 'о'
; 'н'
; '_'
; 'н'
; 'а'
; 'б'
; 'р'
; 'а'
; 'н'
; включаю ; все ; светодиоды
; выключаю ; все ; светодиоды
; номер сканируемого столбца ; номер сканируемой строки ; текущий сканируемый столбец
; номер сканируемой строки ; текущая сканируемая строка
; вызов функции проверки нажатия клавиши
; запуск часов и счетчика временных интервалов (TIC)
; ждем перепонение счетчика (через 8 мс)
; инициализация клавиатуры ; установка бита F0 в 1
; ф-ия проверки нажатия клавиши
; для определения нажатой клавиши
; переход на следующую строку
; переход на следующий столбец
; ф-ия вывода символов на дисплей
; код команды для очистки экрана
; сохраняем текущее значение частоты ядра
; задаем частоту ядра для звукового сигнала ; задаем продолжительность сигнала
; выключаем таймер ; инициализация таймера ; включаем таймер ; записываемое число в регистр DPTR соответствует высокому уровню напряжения ; нам нужен 4-й байт 8-й страницы
; включаем сигнал ; удерживаем значение в течение полупериода ; выключаем таймер ;инициализация таймера
; включаем таймер ; записываемое число в регистр DPTR соответствует низкому уровню напряжения ; нам нужен 4-й байт 8-й страницы
; выключаем сигнал 0-е напряжение ; удерживаем значение в течение полупериода ; выключаем таймер
; восстанавливаем значение частоты ядра
; функция записи в регистр ПЛИС ; через регистры R6 иR7 ; передаем адреса ; сохраняем текущую страницу данных ; переходим на 8 страницу ; записываем значение в аккумулятор ; помещаем значение в регистр DPTR ; восстанавливаем страницу данных
; функция чтения из регистра ПЛИС
; ф-ия подачи строба для выполнения команды очистки экрана ; адрес регистра C_IND
; подача строба "запись команды"
; снятие строба
; ф-ия подачи строба для выполнения команды вывода символа на экран
; подача строба "запись данных"
; снятие строба
; задержка для выполнения команды очистки дисплея, установка позиции экрана, вывода данных на дисплей (>39 мс)
; А ; B ; C ; D ; E ; F ; G ; H ; I ; J
|
A51 MACRO ASSEMBLER KURS 12/14/2009 01:59:20
PAGE 8
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ADCCON1. . . . . . D ADDR 00EFH A
ADCCON2. . . . . . D ADDR 00D8H A
ADCCON3. . . . . . D ADDR 00F5H A
ADCDATAH . . . . . D ADDR 00DAH A
ADCDATAL . . . . . D ADDR 00D9H A
AGAIN. . . . . . . C ADDR 01E4H A
B. . . . . . . . . D ADDR 00F0H A
CHANNEL. . . . . . B ADDR ----- EXT
CHEK . . . . . . . C ADDR 01A9H A
CLEAN_SCREEN . . . C ADDR 01CCH A
COL. . . . . . . . C ADDR 0180H A
CONTINUE_SCAN_KLAV C ADDR 01B1H A
DAC0H. . . . . . . D ADDR 00FAH A
DAC0L. . . . . . . D ADDR 00F9H A
DAC1H. . . . . . . D ADDR 00FCH A
DAC1L. . . . . . . D ADDR 00FBH A
DACCON . . . . . . D ADDR 00FDH A
DELAY. . . . . . . C ADDR 025CH A
DELAY1 . . . . . . C ADDR 0265H A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
DPP. . . . . . . . D ADDR 0084H A
DREBEZG. . . . . . C ADDR 018FH A
EA . . . . . . . . B ADDR 00A8H.7 A
F0 . . . . . . . . B ADDR 00D0H.5 A
IE . . . . . . . . D ADDR 00A8H A
INIT_KLAV. . . . . C ADDR 019EH A
INTVAL . . . . . . D ADDR 00A6H A
K. . . . . . . . . C ADDR 00BFH A
K_0. . . . . . . . C ADDR 0082H A
K_3. . . . . . . . C ADDR 0097H A
K_6. . . . . . . . C ADDR 00ACH A
K_8. . . . . . . . C ADDR 006DH A
LCD_PUTCH. . . . . C ADDR 01C0H A
LOOP . . . . . . . C ADDR 0260H A
LOOP1. . . . . . . C ADDR 0269H A
M0 . . . . . . . . C ADDR 00E3H A
M1 . . . . . . . . C ADDR 00E8H A
M2 . . . . . . . . C ADDR 00F0H A
M3 . . . . . . . . C ADDR 00F7H A
M4 . . . . . . . . C ADDR 0101H A
M5 . . . . . . . . C ADDR 0109H A
MAIN . . . . . . . C ADDR 0044H A
N1 . . . . . . . . C ADDR 0052H A
N2 . . . . . . . . C ADDR 00C7H A
NOMER_KNOPKI . . . C ADDR 004BH A
ONE_VITOK. . . . . C ADDR 0118H A
PLLCON . . . . . . D ADDR 00D7H A
PYSK . . . . . . . C ADDR 003CH A
P_PORT . . . . . . C ADDR 00CEH A
READ . . . . . . . C ADDR 0229H A
REP1 . . . . . . . C ADDR 01F4H A
REP2 . . . . . . . C ADDR 0209H A
RI . . . . . . . . B ADDR 0098H.0 A
ROW. . . . . . . . C ADDR 018AH A
RYLON_NABRAN . . . C ADDR 012BH A
SBUF . . . . . . . D ADDR 0099H A
SCAN_KLAV. . . . . C ADDR 017AH A
SCON . . . . . . . D ADDR 0098H A
SOUND. . . . . . . C ADDR 01D7H A
START. . . . . . . C ADDR 0025H A
STROBE . . . . . . C ADDR 0236H A
STROBE1. . . . . . C ADDR 0249H A
T3CON. . . . . . . D ADDR 009EH A
T3FD . . . . . . . D ADDR 009DH A
TABLE. . . . . . . C ADDR 026EH A
TF1. . . . . . . . B ADDR 0088H.7 A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TIMECON. . . . . . D ADDR 00A1H A
TL1. . . . . . . . D ADDR 008BH A
TR1. . . . . . . . B ADDR 0088H.6 A
WAIT . . . . . . . C ADDR 0192H A
WAIT_IN. . . . . . C ADDR 00D4H A
WAIT_OUT . . . . . C ADDR 0112H A
WRITE. . . . . . . C ADDR 021BH A
_GETVOLTAGE. . . . C ADDR ----- EXT
_SETVOLTAGE. . . . C ADDR ----- EXT
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0WARNING(S), 0ERROR(S)