Список использованных источников. 1. Новиков Ю.В. Скоробогатов П.К




 

1. Новиков Ю.В. Скоробогатов П.К. - Основы микропроцессорной техники М.: ИНТУИТ.РУ, 2003.-440с.

2. Перевод технической документации DS30292C на микроконтроллер PIC серии 16Fxxx

3. Хлуденев А.В. - Курс лекций 2004г

 


Приложение А

 

Листинг трансляции

03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 1OBJECT CODE LINE SOURCE TEXT

#include p16f877.inc

LIST

; P16F877.INC Standard Header File, Version 1.00 Microchip Technology, Inc.

LIST

LIST

;P16F877.INC Standard Header File, Version 1.00.

 

LIST

errorlevel 2

 

cblock 0x20

00014 Delay;задержка

00015 WW

00016 Max_In;МАХ входной сигнал

00017 Min_In;MIN входной сигнал

00018 _IN;текующий

00000025 00019 TEMP1

00020 TEMP2

00021 Z100

00022 Z10

 

 

endc

 

 

#define Data PORTE,1

#define Clk PORTE,0

#define CS PORTB,3

 

 

00041 org 0x000

0000 00042 nop

2900 00043 goto Begin

 

 

03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 2OBJECT CODE LINE SOURCE TEXT

; BEGIN PROGRAMM

 

 

00054 org 0x100

 

00056 Begin

 

2176 00058 call Init

 

 

00061 ACP_Start

 

3014 00063 MOVLW.20;выдержка

00A0 00064 MOVWf Delay

00065 DEL

0BA0 00066 DECFSZ Delay,1;Задержка

2903 00067 GOTO DEL

 

 

151F 00070 BSF ADCON0,GO;запуск АЦП

00072 lab1

; BCF ADCON0,2;ТОЛЬКО ДЛЯ ОТЛАДКИ!!!! СТАВИТ ФЛАГ ОКОНЧАНИЯ ПРЕОБРАЗОВАНИЯ

0106 191F 00074 BTFSC ADCON0,GO

0107 2906 00075 goto lab1

 

; MOVLW.247;ТОЛЬКО ДЛЯ ОТЛАДКИ!!!!

; MOVWF ADRESH;ТОЛЬКО ДЛЯ ОТЛАДКИ!!!!

; addWF ADRESH,0;;ТОЛЬКО ДЛЯ ОТЛАДКИ!!!!

2168 00081 call ACP

 

; BSF PORTB,1;!!!!!!!!!!!!!!!!

 

1C86 00085 btfss PORTB,1

A 2936 00086 goto Drebezg1

B 1D06 00087 btfss PORTB,2

C 294C 00088 goto Drebezg2

 

 

D 00091 lab2

 

D 3001 00093 movlw 1

E 0225 00094 subwf TEMP1,0

F 1D03 00095 btfss STATUS,Z

2916 00096 goto lab3

0824 00097 movf _IN,0

00A6 00098 movwf TEMP2

0188 00099 CLRF PORTD;очистить

1408 00100 bsf PORTD,0

2934 00101 goto lab10

 

00103 lab303.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 3OBJECT CODE LINE SOURCE TEXT

3002 00104 movlw 2

0225 00105 subwf TEMP1,0

1D03 00106 btfss STATUS,Z

291F 00107 goto lab4

A 0822 00108 movf Max_In,0

B 00A6 00109 movwf TEMP2

011C 0188 00110 CLRF PORTD;очистить

011D 1488 00111 bsf PORTD,1

E 2934 00112 goto lab10

 

F 00114 lab4

F 3003 00115 movlw 3

0225 00116 subwf TEMP1,0

1D03 00117 btfss STATUS,Z

2928 00118 goto lab5

0823 00119 movf Min_In,0

00A6 00120 movwf TEMP2

0188 00121 CLRF PORTD;очистить

1508 00122 bsf PORTD,2

2934 00123 goto lab10

 

00125 lab5

3004 00126 movlw 4

0225 00127 subwf TEMP1,0

A 1D03 00128 btfss STATUS,Z

B 2934 00129 goto lab10

C 0822 00130 movf Max_In,0

D 0723 00131 addwf Min_In,0

E 00A1 00132 movwf WW

F 0C21 00133 rrf WW,0

00A6 00134 movwf TEMP2

0188 00135 CLRF PORTD;очистить

1588 00136 bsf PORTD,3

2934 00137 goto lab10

 

00139 lab10

21AB 00140 call Data_7

 

 

2901 00143 goto ACP_Start

 

 

00148 Drebezg1

 

301E 00150 movlw.30

00A1 00151 movwf WW

03A1 00152 Dr1_1 Decf WW,1

2163 00153 call Del1

A 1903 00154 btfsc STATUS,Z

B 2938 00155 goto Dr1_1

03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 4OBJECT CODE LINE SOURCE TEXT

C 1886 00157 btfsc PORTB,1

D 2938 00158 goto Dr1_1; "+" нажата???

 

 

E 301E 00161 movlw.30

F 00A1 00162 movwf WW

03A1 00163 Dr1_2 Decf WW,1

2163 00164 call Del1

1903 00165 btfsc STATUS,Z

2940 00166 goto Dr1_2

 

1C86 00168 btfss PORTB,1

2940 00169 goto Dr1_2; "+" отжат???

 

 

3004 00172 movlw 4

0225 00173 subwf TEMP1,0

1903 00174 btfsc STATUS,Z

01A5 00175 clrf TEMP1; если в TEMP1 больше 3 то очищаем

014A 0AA5 00176 Incf TEMP1,1; а потом инкремент

014B 290D 00177 goto lab2

 

 

C 00180 Drebezg2

 

C 301E 00182 movlw.30

D 00A1 00183 movwf WW

E 03A1 00184 Dr2_1 Decf WW,1

F 2163 00185 call Del1

1903 00186 btfsc STATUS,Z

294E 00187 goto Dr2_1

 

1906 00189 btfsc PORTB,2

294E 00190 goto Dr2_1; "-" нажат???

 

 

301E 00193 movlw.30

00A1 00194 movwf WW

03A1 00195 Dr2_2 Decf WW,1

2163 00196 call Del1

1903 00197 btfsc STATUS,Z

2956 00198 goto Dr2_2

 

A 1D06 00200 btfss PORTB,2

B 2956 00201 goto Dr2_2; "-" отжат???

 

C 3001 00205 movlw 1

D 0225 00206 subwf TEMP1,0

E 3005 00207 movlw 5

F 1903 00208 btfsc STATUS,Z

0160 00A5 00209 movwf TEMP1; если в TEMP1 меньше 2 то 5

MPASM 03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 5OBJECT CODE LINE SOURCE TEXT

VALUE

03A5 00210 Decf TEMP1,1; а потом декремент

0162 290D 00211 goto lab2

 

 

00214 Del1

3096 00215 movlw.150

00A1 00216 movwf WW;Задержка на 500 мкС

0BA1 00217 Del2 Decfsz WW,1

2965 00218 goto Del2

0008 00219 Return

 

 

; Подпрограмма обработки значения АЦП

00225 ACP

081E 00226 movf ADRESH,W

00A4 00227 MOVWF _IN

 

A 0222 00229 subwf Max_In,0

B 1803 00230 btfsc STATUS,C;if "1" to next+1

C 296F 00231 goto ACP1

D 0824 00232 movf _IN,0

E 00A2 00233 movwf Max_In

 

F 00235 ACP1

F 0824 00236 movf _IN,0

0223 00237 subwf Min_In,0

1C03 00238 btfss STATUS,C;if "0" to next+1

2975 00239 goto ACP2

0824 00240 movf _IN,0

00A3 00241 movwf Min_In

0008 00243 ACP2 return

 

 

00252 Init;подпрограмма инициализации PIC16F877

1683 00254 BSF STATUS,RP0;bank1

1383 00255 BCF STATUS,IRP

1303 00256 BCF STATUS,RP1

 

30FF 00258 MOVLW b'11111111'

A 0085 00259 MOVWF TRISA^80h

 

B 30D7 00261 MOVLW b'11010111'

C 0086 00262 MOVWF TRISB^80h03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 6OBJECT CODE LINE SOURCE TEXT

 

D 3000 00264 MOVLW b'00000000'

E 0088 00265 MOVWF TRISD^80h

 

F 3000 00267 MOVLW b'00000000'

0089 00268 MOVWF TRISE^80h

 

300E 00270 MOVLW b'00001110'

009F 00271 MOVWF ADCON1^80h

 

1381 00273 BCF OPTION_REG,7

; movlw b'00000000'

; movwf PIE1

138C 00276 BCF PIE1,7

1283 00277 BCF STATUS,RP0;bank0

 

3000 00279 movlw b'00000000'

008B 00280 movwf INTCON

 

3041 00284 MOVLW b'01000001'

009F 00285 MOVWF ADCON0

 

A 01A2 00287 CLRF Max_In;очистить

018B 0188 00288 CLRF PORTD;очистить

018C 30FF 00289 MOVLW b'11111111'

D 00A3 00290 MOVWF Min_In

 

E 1089 00292 BCF Data

F 1186 00293 BCF CS

 

3007 00295 movlw.7

00A0 00296 movwf Delay

00297 Init1

2993 00298 goto $+1

2994 00299 goto $+1

2995 00300 goto $+1

1409 00301 bsf Clk

2997 00302 goto $+1

2998 00303 goto $+1

2999 00304 goto $+1

1009 00305 bcf Clk

A 03A0 00306 decf Delay,f

B 1D03 00307 BTFSS STATUS,Z

C 2992 00308 goto Init1

D 1489 00309 bsf Data

E 299F 00310 goto $+1

F 29A0 00311 goto $+1

A0 29A1 00312 goto $+1

A1 1409 00313 bsf Clk

A2 29A3 00314 goto $+1

A3 29A4 00315 goto $+103.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 7OBJECT CODE LINE SOURCE TEXT

A4 29A5 00316 goto $+1

A5 1009 00317 bcf Clk

 

A6 2163 00319 call Del1

; movlw.200;выдержка для драйвера 500 мкС

; movwf Delay

;Init2

; decfsz Delay,1

; goto Init2

A7 1586 00325 bsf CS

 

A8 3001 00327 movlw 1

A9 00A5 00328 movwf TEMP1

AA 0008 00330 RETURN

 

; МАКРОС ПЕРЕВОДА ИЗ 16 --> 10

HexToDec macro

 

clrf Z100

clrf Z10

 

 

LOOP1

MOVLW.100

SUBWF TEMP2,0

BTFSS STATUS,C; 0

GOTO LOOP2

INCF Z100,1

MOVWF TEMP2

GOTO LOOP1

LOOP2

MOVF TEMP2,0

 

 

LOOP3

MOVLW.10

SUBWF TEMP2,0

BTFSS STATUS,C

GOTO LOOP4

INCF Z10,1

MOVWF TEMP2

GOTO LOOP3

LOOP4

MOVF TEMP2,0

BCF STATUS,C

RLF Z10,1

RLF Z10,103.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 8OBJECT CODE LINE SOURCE TEXT

RLF Z10,1

RLF Z10,1

ADDWF Z10,1

endm

 

; Подпрограмма вывода на индикаторы

AB 00379 Data_7

HexToDec

AB 01A7 M clrf Z100

AC 01A8 M clrf Z10

AD M LOOP1

AD 3064 M MOVLW.100

AE 0226 M SUBWF TEMP2,0

AF 1C03 M BTFSS STATUS,C; 0

B0 29B4 M GOTO LOOP2

B1 0AA7 M INCF Z100,1

B2 00A6 M MOVWF TEMP2

B3 29AD M GOTO LOOP1

B4 M LOOP2

B4 0826 M MOVF TEMP2,0

B5 M LOOP3

B5 300A M MOVLW.10

B6 0226 M SUBWF TEMP2,0

B7 1C03 M BTFSS STATUS,C

B8 29BC M GOTO LOOP4

B9 0AA8 M INCF Z10,1

BA 00A6 M MOVWF TEMP2

BB 29B5 M GOTO LOOP3

BC M LOOP4

BC 0826 M MOVF TEMP2,0

BD 1003 M BCF STATUS,C

BE 0DA8 M RLF Z10,1

BF 0DA8 M RLF Z10,1

C0 0DA8 M RLF Z10,1

C1 0DA8 M RLF Z10,1

C2 07A8 M ADDWF Z10,1

C3 1186 00381 bcf CS

 

C4 3008 00383 movlw 8

C5 00A1 00384 movwf WW

C6 00385 Data_7_1

C6 29C7 00386 goto $+1

C7 29C8 00387 goto $+103.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 9OBJECT CODE LINE SOURCE TEXT

C8 29C9 00388 goto $+1

C9 1409 00389 bsf Clk

CA 29CB 00390 goto $+1; Пустой пятый индикатор

CB 29CC 00391 goto $+1

CC 29CD 00392 goto $+1

CD 1009 00393 bcf Clk

CE 0BA1 00394 decfsz WW,1

CF 29C6 00395 goto Data_7_1

 

 

D0 3008 00398 movlw 8

D1 00A1 00399 movwf WW

 

D2 00401 Data_7_2

D2 0DA7 00402 rlf Z100,1

D3 1089 00403 bcf Data

D4 1803 00404 btfsc STATUS,C

D5 1489 00405 bsf Data

D6 29D7 00406 goto $+1

D7 29D8 00407 goto $+1

01D8 29D9 00408 goto $+1; сотни

01D9 1409 00409 bsf Clk

DA 29DB 00410 goto $+1

DB 29DC 00411 goto $+1

DC 29DD 00412 goto $+1

DD 1009 00413 bcf Clk

DE 0BA1 00414 decfsz WW,1

DF 29D2 00415 goto Data_7_2

 

 

E0 3008 00418 movlw 8

E1 00A1 00419 movwf WW

E2 00420 Data_7_3

E2 0DA8 00421 rlf Z10,1

E3 1089 00422 bcf Data

E4 1803 00423 btfsc STATUS,C

E5 1489 00424 bsf Data

E6 29E7 00425 goto $+1

E7 29E8 00426 goto $+1

E8 29E9 00427 goto $+1

01E9 1409 00428 bsf Clk; десятки и единицы

01EA 29EB 00429 goto $+1

EB 29EC 00430 goto $+1

EC 29ED 00431 goto $+1

ED 1009 00432 bcf Clk

EE 0BA1 00433 decfsz WW,1

EF 29E2 00434 goto Data_7_3

 

F0 2163 00437 call Del1

; movlw.200;выдержка для драйвера 500 мкС

00439; movwf WW

;Data_7_403.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 10OBJECT CODE LINE SOURCE TEXT

; decfsz WW,1

; goto Data_7_4

F1 1586 00443 bsf CS

 

F2 0008 00445 RETURN

 

 

end03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 11TABLEVALUE000000050000000400000006000001680000016F00000175_Start 000001010000001F0000009F000000060000000700000003000000070000000600000006000000000000001E0000009E000000030000000300000000000000020000010000000000CON 00000017IE 00000002IF 00000002M0 00000000M1 00000001M2 00000002M3 00000003X 00000005Y 00000004CON 0000001DIE 00000000IF 00000000M0 00000000M1 00000001M2 00000002M3 00000003X 00000005Y 00000004H 00000016L 00000015H 0000001CL 0000001B000000030000000400000005000000060000000400000004PORTB,303.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 12TABLEVALUE00000007PORTE,000000005_ADDRESS 000000050000000100000103_A 00000005PORTE,1_7 000001AB_7_1 000001C6_7_2 000001D2_7_3 000001E2000001630000016500000020_1 00000138_2 00000140_1 0000014E_2 00000156000001360000014C0000010D0000010F0000018C0000018D0000010C0000010E000000040000000400000007000000010000000200000004000000070000000700000002_DONE 00000002C_DATA 00000005C_READ 00000002C_START 00000003C_STOP 000000040000000700000005000000000000000B000000040000000600000001000000070000017600000192000001AD03.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 13TABLEVALUE000001B4000001B5000001BC_In 00000022_In 00000023_A 00000005_ADDRESS 00000005_BO 00000000_BOR 00000000_DONE 00000002_PD 00000003_POR 00000001_RBPU 00000007_RC8 00000006_T1SYNC 00000002_TO 00000004_TX8 00000006_W 00000002_WRITE 000000020000000600000001_REG 000000810000000400000000000000010000000200000003000000020000000A0000008E00000006000000020000008C0000008D0000000C0000000D00000005000000060000000700000008000000090000009200000000000000010000000200000003000000070000000700000004000000020000000300000000_9 0000000603.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 14TABLEVALUE00000006000000000000000300000005000000050000001A0000001800000000_WRITE 0000000200000005000000060000000100000006D 00000000_W 00000002000000030000000000000007000000990000000700000005000000930000001300000014000000910000000500000003000000030000000000000001000000020000000300000006000000940000000300000004CS 00000005IE 00000005IF 00000002SE 00000004CKPS0 00000004CKPS1 00000005CON 00000010INSYNC 00000002OSCEN 00000003SYNC 00000002CKPS0 00000000CKPS1 00000001CON 00000012000000250000002600000001CS 0000000103.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 15TABLEVALUEH 0000000FIE 00000000IF 00000000L 0000000EON 0000000000000011IE 00000001IF 00000001ON 0000000200000003000000040000000500000006000000850000008600000087000000880000008900000000000000010000000200000001_9 0000000600000006D 0000000000000000000000050000000400000004000000190000009800000001000000000000000700000001000000020000000300000021000000020000002800000027

_BODEN_OFF 00003FBF

_BODEN_ON 00003FFF

_CPD_OFF 00003FFF

_CPD_ON 00003EFF

_CP_ALL 00000FCF

_CP_HALF 00001FDF

_CP_OFF 00003FFF

_CP_UPPER_256 00002FEF

_DEBUG_OFF 00003FFF

_DEBUG_ON 000037FF

_HS_OSC 00003FFE

_IN 0000002403.20 Released KURS.ASM 12-16-2004 15:59:48 PAGE 16TABLEVALUE

_LP_OSC 00003FFC

_LVP_OFF 00003F7F

_LVP_ON 00003FFF

_PWRTE_OFF 00003FFF

_PWRTE_ON 00003FF7

_RC_OSC 00003FFF

_WDT_OFF 00003FFB

_WDT_ON 00003FFF

_WRT_ENABLE_OFF 00003DFF

_WRT_ENABLE_ON 00003FFF

_XT_OSC 00003FFD

__16F877 0000000100000106000001340000010D000001160000011F00000128USAGE MAP ('X' = Used, '-' = Unused)

: XX-------------- ---------------- ---------------- ----------------

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

C0: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXX-------------other memory blocks unused.Memory Words Used: 245Memory Words Free: 7947: 0: 0 reported, 0 suppressed

Messages: 0 reported, 2 suppressed

 


Приложение Б

 

Схема электрическая принципиальная



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: