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

3.2 Описание общего алгоритма работы системы

Данная программа работает в замкнутом цикле, который называется рабочий цикл устройства.

После нажатия кнопки «Start» происходит настройка таймера на режим 1, установка времени 50 мс, разрешение прерываний от таймера T0, источников int0 и int1. Затем происходит инициализация, она включает в себя настройку портов в исходное состояние. Затем проверяется условие нажатых кнопок. Если последний была нажата кнопка SB1, то дальше идет подпрограмма работы с АЦП, то есть снимаются значения приходящие с АЦП. После того эти значения обрабатываются в соответствии с таблицей сопротивлений терморезистора PT100-2, обработанные данные записываются в память контроллера. После проверяются данные по граничным условиям, если полученные значения не превышают номинальных(запланированных программно), то вызывается подпрограмма подготовки вывода этих данных на ССИ, и соответственно затем значения температуры выводятся на ССИ. Если же значения превысили или получились меньше запланированных, то выводится сообщение об ошибке ЕРР. Если же была нажата кнопка SB3, то вызывается подпрограмма расчета среднесуточной температуры, затем происходит подготовка значений для вывода на ССИ и соответственно вывод на ССИ. Алгоритмы системы и обработки прерываний представлены на рисунке 12.

Рисунок 12 – алгоритмы работы системы и обработки прерываний

3.3 Описание алгоритма решения задачи

Листинг программы приведен ниже:

NAME ANTIK_SUPER

CSEG AT 00H;; NACHALO RABOTI SCHETCHIKA

LJMP START1; PEREHOD NA GLAVNUU PROGRAMMU

;;;PRERIVANIE OT TAIMERA

PRER1 SEGMENT CODE

RSEG PRER1

PUBLIC PRER1

ORG 0FFH ;;ORGANIZACIY PRERIVANIY OT TAIMERA

PUSH 0004H

PUSH ACC

PUSH PSW

PUSH DPL

PUSH DPH

PUSH 045H

PUSH 047H

INC R5 ;SCHITAEM 50MS

CJNE R5,#20,SKIP

MOV R5,#0

INC R6 ;; SCHITAEM SEKUNDI

CJNE R6,#60,SKIP

MOV R6,#0

INC 048h ;SCHITAEM MINUTI

MOV A,048h

CJNE A,#60,SKIP

MOV 048h,#0

CLR A

INC 049H ;; OTSCHITIVAEM POLSUTOK

MOV A,049H

CJNE A,#12,SKIP

MOV 049H,#0

MOV 050H,045H ;; ZAPISIVAEM ZNACHENIE DATCHIKA CHEREZ 1/2 SUTOK

MOV 051H, 047H ;;

CLR A

INC 054H

MOV A,054H

CJNE A,#2,SKIP

MOV 054H,#0

MOV 052H,045H ;; ZAPISIVAEM ZNACHENIE DATCHIKA CHEREZ SUTKI

MOV 053H, 047H

SKIP:

POP 047H

POP 045H

POP DPH

POP DPL

POP PSW

POP ACC

POP 0004H

RET

;OBRABOTKA PRERIVANIY OT INT1

PRER2 SEGMENT CODE

RSEG PRER2

PUBLIC PRER2

CSEG

KLIN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

PUSH B

PUSH 042H

CLR C

MOV A,042H

MOV B,#2

DIV AB

MOV 042H,A

CALL WRITEWITHSSI

POP 042H

POP B

LJMP START

RET

;;VIZOV PRERIVANIY OT INT0

CSEG AT 03H

SETB P3.2

MOV 60H,#1

RETI

;PRERIVANIE VIZOV TAIMERA

CSEG AT 0BH

CALL PRER1

RETI

; VIZOV PRERIVANIY OT INT1

CSEG AT 013H

SETB P3.3

MOV 60H,#2

RETI

;;;VIZOV NASTROIKI TAIMERA

TAIMER SEGMENT CODE

RSEG TAIMER

PUBLIC TAIMER

CLR TCON.0 ;NASTROIKA INT0 NA SREZ

CLR TCON.2 ;NASTROIKA INT1 NA SREZ

MOV TMOD,#1 ;VIBOR REZHIMA TAIMERA 1

SETB IE.7 ; OBSCHEE RAZRESHENIE PRERIVANII

SETB IE.0; OT INT 0

SETB IE.1; OT TAIMER 0

SETB IE.2; OT INT 1

MOV TH0,#0FFH

MOV TL0,#0FAH

SETB TR0

RET

;;; VIZOV CHTENIY S ACP

ACP SEGMENT CODE

RSEG ACP

PUBLIC ACP

CSEG

CLR P2.2

clr p2.0

clr p2.1

setb p2.2

setb p2.0

setb p2.1

clr p2.2

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

clr p2.0

setb p2.2

NOP

NOP

mov 45H,P0

mov 46H,P2

SETB p2.0

CLR p2.2

CLR A

MOV A,46H

ANL A,#11110000B

SWAP A

MOV 47H,A

CLR A

MOV A,061H

CJNE A,#0,NETUDA

MOV 052H,045H

MOV 053H,047H

CLR A

MOV 061H,#1

NETUDA:

RET

;;;VIZOV ABRABOTKI DANNIX S ACP

OBRABOTKAaCP SEGMENT CODE

RSEG OBRABOTKAaCP

PUBLIC OBRABOTKAaCP

CSEG

;MOV 47H,#8H

;MOV 45H,#7AH

CLR C

MOV R0,#8H

MOV R4,#11001011B

CLR A

MOV A,R0

CLR C

SUBB A,47H

JC HLEB; PEREHOD V OSHIBKU

SJMP KON

HLEB:CALL ERR

RET

LJMP NEXT

KON:

CLR A

MOV A,47H

CJNE A,#8H,HLEB1; VIYVLENIE CHISLA

CLR A

MOV A,R4

CLR C

SUBB A,45H

JC HLEB3

; ESLI OSHIBKA, ZNACHENIE PRIVISHAET NUZHNOE

CLR A

MOV A,45H

CLR C

SUBB A,#91H

JC HLEB4

;;;;;;;;;;;;;;;;PEREHOD ESLI NE -50 -38

CLR A

MOV A,45H

MOV B,#0H

MOV B,#4H

DIV AB

;;;;;;;;;;;;;;;;;;;;;;;;MOHNO VIVODIT REZULTAT OT -50 DO -38

MOV 42H,A

CLR A

CALL NULL

SETB P1.7

CALL DELAY

CLR P1.7

LJMP NEXT

HLEB4: ; VIVODIM ZNACHENIY OT -36 DO -5

CLR C

MOV A,45H

MOV B,#0H

MOV B,#4H

DIV AB

ADD A,#4H

;;;;; VIVODIM -36 -5

MOV 42H,A

CLR A

CALL NULL ;;; VIVOD MINUSA

SETB P1.7

CALL DELAY ;;; ZADERZHKA

CLR P1.7

LJMP NEXT

;; ZNACHENIY OT -5 DO 0

HLEB1:

CLR A

MOV A,47H

CJNE A,#7H,HLEB5;;;PEREHOD V OSHIBKU

;

CLR A

MOV A,45H

CLR C

SUBB A,#11101011B

;;; ESLI ZNACHENIE PRIVISHAET -5 0 C TO PER

JC HLEB6

;VICHITAEM -5 0

CLR A

MOV A,11111111B

SUBB A,45H

MOV B,#0H

MOV B,A

MOV A,#5H

SUBB A,B

MOV 42H,A

CLR A

CALL NULL

SETB P1.7

CALL DELAY

CLR P1.7

LJMP NEXT

;;;VIVODIM OT 0 DO 50

HLEB6:

CLR C

CLR A

MOV A,45H

MOV B,#4H

DIV AB

SUBB A,#5H

MOV R7,A

CLR A

MOV A,#3AH

SUBB A,R7

MOV 42H,A

LJMP NEXT

;;; TEPER OSHIBKI

HLEB3:

HLEB5:

CALL ERR;;; VIZOV OSHIBKI

RET

NEXT:

CALL WRITEWITHSSI

RET

;;;PODPROGRAMMA OBRABOTKI OSHIBKI

ERR SEGMENT CODE

RSEG ERR

PUBLIC ERR

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

SETB P1.6; GORIT 2 SEGMENT @e@

CALL DELAY

CLR P1.6

CLR P3.7;; VIVODIM @R@

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

SETB P1.5

CALL DELAY

CLR P1.5

CLR P3.7;; VIVODIM @R@

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

SETB P1.4

CALL DELAY

CLR P1.4

RET

;;; VIVOD MINUSA

NULL SEGMENT CODE

RSEG NULL

PUBLIC NULL

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

RET

;;;ZADERZHKA

DELAY SEGMENT CODE

RSEG DELAY

PUBLIC DELAY

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

RET

;;;;ZAPIS NA SSI

WRITEWITHSSI SEGMENT CODE

RSEG WRITEWITHSSI

PUBLIC WRITEWITHSSI

CSEG

CALL READ;; VNOSIM ZNACHENIY IZ ACP V BUFER SSI

CJNE R1,#0,PER1

CALL NUMBER0

SETB P1.6

CALL DELAY

CLR P1.6

PER1: CJNE R1,#1,PER2

CALL NUMBER1

SETB P1.6

CALL DELAY

CLR P1.6

PER2:CJNE R1,#2,PER31

CALL NUMBER2

SETB P1.6

CALL DELAY

CLR P1.6

PER31: CJNE R2,#0,PER3 ;DESDESYTKI

CALL NUMBER0

SETB P1.5

CALL DELAY

CLR P1.5

PER3: CJNE R2,#1,PER4;

CALL NUMBER1

SETB P1.5

CALL DELAY

CLR P1.5

PER4: CJNE R2,#2,PER5

CALL NUMBER2

SETB P1.5

CALL DELAY

CLR P1.5

PER5: CJNE R2,#3,PER6

CALL NUMBER3

SETB P1.5

CALL DELAY

CLR P1.5

PER6: CJNE R2,#4,PER7

CALL NUMBER4

SETB P1.5

CALL DELAY

CLR P1.5

PER7: CJNE R2,#5,PER8

CALL NUMBER5

SETB P1.5

CALL DELAY

CLR P1.5

PER8: CJNE R2,#6,PER9

CALL NUMBER6

SETB P1.5

CALL DELAY

CLR P1.5

PER9: CJNE R2,#7,PER10

CALL NUMBER7

SETB P1.5

CALL DELAY

CLR P1.5

PER10: CJNE R2,#8,PER11

CALL NUMBER8

SETB P1.5

CALL DELAY

CLR P1.5

PER11: CJNE R2,#9,PER12

CALL NUMBER9

SETB P1.5

CALL DELAY

CLR P1.5

PER12: CJNE R3,#0,PER13; EDINICI

CALL NUMBER0

SETB P1.4

CALL DELAY

CLR P1.4

PER13: CJNE R3,#1,PER14

CALL NUMBER1

SETB P1.4

CALL DELAY

CLR P1.4

PER14: CJNE R3,#2,PER15

CALL NUMBER2

SETB P1.4

CALL DELAY

CLR P1.4

PER15: CJNE R3,#3,PER16

CALL NUMBER3

SETB P1.4

CALL DELAY

CLR P1.4

PER16: CJNE R3,#4,PER17

CALL NUMBER4

SETB P1.4

CALL DELAY

CLR P1.4

PER17: CJNE R3,#5,PER18

CALL NUMBER5

SETB P1.4

CALL DELAY

CLR P1.4

PER18: CJNE R3,#6,PER19

CALL NUMBER6

SETB P1.4

CALL DELAY

CLR P1.4

PER19: CJNE R3,#7,PER20

CALL NUMBER7

SETB P1.4

CALL DELAY

CLR P1.4

PER20: CJNE R3,#8,PER21

CALL NUMBER8

SETB P1.4

CALL DELAY

CLR P1.4

PER21: CJNE R3,#9,PER22

CALL NUMBER9

SETB P1.4

CALL DELAY

CLR P1.4

PER22:

RET

;; VNOSIM ZNACHENIY IZ ACP V BUFER SSI

READ SEGMENT CODE

PUBLIC READ

RSEG READ

CSEG

SAVE EQU 42H; HRANIT VIVODIMOE ZNACHENIE

;MOV SAVE

CLR A

MOV A, SAVE

MOV B, #100

DIV AB

MOV R1,A

MOV A,B

MOV B,#10

DIV AB

MOV R2,A

MOV R3,B

RET

;;; DAL'SHE VIVODIM CIFRI OT 0 DO 9

NUMBER0 SEGMENT CODE

PUBLIC NUMBER0

RSEG NUMBER0

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

SETB P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;;

NUMBER1 SEGMENT CODE

PUBLIC NUMBER1

RSEG NUMBER1

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

RET

;;;

NUMBER2 SEGMENT CODE

PUBLIC NUMBER2

RSEG NUMBER2

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;

NUMBER3 SEGMENT CODE

PUBLIC NUMBER3

RSEG NUMBER3

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;

NUMBER4 SEGMENT CODE

PUBLIC NUMBER4

RSEG NUMBER4

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

RET

;;;

NUMBER5 SEGMENT CODE

PUBLIC NUMBER5

RSEG NUMBER5

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;

NUMBER6 SEGMENT CODE

PUBLIC NUMBER6

RSEG NUMBER6

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;

NUMBER7 SEGMENT CODE

PUBLIC NUMBER7

RSEG NUMBER7

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;

NUMBER8 SEGMENT CODE

PUBLIC NUMBER8

RSEG NUMBER8

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;

NUMBER9 SEGMENT CODE

PUBLIC NUMBER9

RSEG NUMBER9

CSEG

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

SETB P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

CLR P3.7

CLR P1.1

SETB P3.7

RET

;;;GLAVNAY PROGA

GLAVNAY SEGMENT CODE

RSEG GLAVNAY

PUBLIC GLAVNAY

CSEG ;AT 0FFH ; TEPER SCHETCHIK BUDET SCHITAT OT SUDA

START1:

CALL TAIMER

MOV 60H,#1

START:

CLR A

MOV A,60H

CJNE A,#1,KRAMA; PEREHOD NA PODSCET SREDNEGO ZNACHENIY

;CALL TAIMER

mov p0,#0FFH

mov p1,#0FFH

mov p2,#0FFH

mov p3,#0FFH

CLR P1.7

CLR P1.6

CLR P1.5

CLR P1.4

;ACALL TIMER; VIZOV NASTROIKI TAIMERA

CALL ACP; VIZOV CHTENIY S ACP

CALL OBRABOTKAaCP;VIZOV ABRABOTKI DANNIX S ACP

;CALL WRITEWITHSSI;ZAPIS NA SSI

LJMP START

KRAMA:

LJMP KLIN;;;;PEREHOD NA PODSCET SREDNEGO ZNACHENIY

END

Соседние файлы в папке Курсовой датчик температуры