- •Содержание
- •Введение
- •1 Разработка функциональной схемы системы
- •Описание принципа работы объекта
- •1.2 Функциональная схема микропроцессорной системы
- •2 Разработка аппаратной части системы
- •2.1 Краткое описание микропроцессорного комплекта
- •2.2 Организация памяти микропроцессорной системы Распределение памяти контроллера приведено на рисунке 4.
- •2.3 Расчет и выбор элементов сопряжения
- •2.3.1 Выбор терморезистора и элементов схемы сопряжения его с ацп.
- •2.3.2 Выбор ацп
- •2.3.3 Выбор индикатора и элементов сопряжения с ним
- •2.3.4 Расчет и выбор кнопок
- •2.3.5 Выбор конденсаторов
- •2.4 Описание схемы электрической принципиальной
- •3 Разработка программного обеспечения системы
- •3.1 Краткое описание системы команд микроконтроллера
- •Группа команд арифметических операций:
- •3.2 Описание общего алгоритма работы системы
- •3.3 Описание алгоритма решения задачи
- •Заключение
- •Список использованной литературы
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