Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kharakhnin / Методичка_проектирование МП систем.doc
Скачиваний:
116
Добавлен:
08.03.2016
Размер:
1.92 Mб
Скачать

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)