Global Informatics

- Информатика и вычислительная техника

Листинг ПО

контроль температура метрологический микроконтроллер

В данном разделе представлен листинг разработанной программы. Программа написана на языке ассемблер.

Листинг ПО:

$NOLIST

$NOMOD51

$LIST

$include(fp51s.lib)

;======================================================

=====================AT 0START0x0BPORT_PRER

;======================================================

=====================_main segment CODEPR_main AT 0x15: ds 1;флаг(0=номер датчика для вывода на дисплей не введен,

;1=запрос на вывод Тх 1-го датчика, 2=запрос Tx ;второго .5=запрос Tx

-го датчика): ds 1;флаг В и Н уставок(0=Н уставка, 1=В уставка): ds 1;флаг-номер датчика(для передачи номера датчика на

;котором обнаружена ошибка в П/П вывода сообщения об ;ошибке)

;======================================================

=====================

;Начальные установки

;Fsys=500 Khz

;======================================================

=====================

INIT:MOV CKCON,#00000111b ;T/C TAKT F/12

MOV SCON,#000000000b ;Fxtal/12IEN1,#00000001b ;use interrapt from keyboardKBE,#00001111b ;ENABLE INTERRUPR REQUEST FOR P0.4-.7TCON,#01010000b ;T/C1 - ON, T/C2 - ON

MOV TMOD,#00010001b ;оба таймеры в 16разр режиме

CLR TH0TL0TH1

CLR TL1:

;======================================================

=====================

;MAIN

;программа измерения температуры

;P0.2-START PIN

;P0.1-END PIN

;R6-DATA ADRESS

;R7-IMPULSE COUNTER

;R4 - BUF FOR SAVE TX

;======================================================

=====================:INIT0R7,#5;загрузка счетчика импульсов

MOV R5,#20 ;начальный адрес хранения Тх

NEW: SETB P0.2;START-IMPULSE

NOPP0.2P0.1,#1,$;ожидание 1-го уровня на Р0.1TR1: MOV R6,#0X47h;начальный адрес хранения Nl и NhP0.1,#0,$;ожидание 0-го уровня на Р0.1TR1TR0@R6,TH1;запись в память Nh для периода высокого уровняR0,R6 ;запись в R0 адреса ячейки (для П/П MAKE_TEMP)R6@R6,TL1;запись в память Nl для периода высокого уровняR1,R6 ;запись в R1 адреса ячейки (для П/П MAKE_TEMP)

INC R6TH1TL1

CJNE P0.1,#1,$;ожидание 1-го уровня на Р0.1TR0TR1@R6,TH0;запись в память Nh для периода низкого уровняR2,R6 ;запись в R3 адреса ячейки (для П/П MAKE_TEMP)R6@R6,TL0;запись в память Nl для периода низкого уровняR3,R6 ;запись в R3 адреса ячейки (для П/П MAKE_TEMP)MAKE_TEMP;вызов П/П вычисления Tx для измеренного

импульса

;на вых - 0х40h адрес ячейки с целым Tx

; 0x41h адрес ячейки с дес. остатком Tx

MOV R4,@40@R5,R4R5R4,@41@R5,R4

LCALL CHECH_Tx;вызов П/П сравнения Tx с уставками

INC R6TH0TL0R7,CICLE: MOV A,FLAG1

JNB NODISPOUT;проверка флага запроса вызова, если flag=0 то не

;надо выводитьDISP_TEMP;вызов П/П вывода Tx N-го датчика на дисплей: JMP START

;======================================================

==================

;П/П вывода Тх на дисплей

;входные переменные:

;flag1 - значение флага определяет для какого датчика выводить tx

;результат выполнения П/П - вывод Тх N-го датчика на дисплей

;======================================================

==================_TEMP:USING 3

;проверка какая кнопка нажата

MOV A,FLAG1A,#1,NED1R0,@0X20hR1,@0X21h:CJNE A,#2,NED2R0,@0X22hR1,@0X23h:CJNE A,#2,NED3R0,@0X24hR1,@0X25h:CJNE A,#2,NED4R0,@0X26hR1,@0X27h:CJNE A,#2,NED5R0,@0X28hR1,@0X29h:MOV R0,@0X30hR1,@0X31h

;преобразование Tx(разбиение числа на цифры)

MOV A,R0B,#00001010bABR6,BA,BB,#00001010bABR5,BR4,A

MOV R7,R1

;В РЕЗУЛЬТАТЕ R4 R5 R6 - ЦИФРЫ ЦЕЛОГО

;R7 - ЦИФРА ДЕСЯТИЧНОГО ОСТАТКА Тх

;преобразование r4-r7 в когды для пересылки(ДОПИСЫВАЕМ 3 В

СТАРШУЮ ТЕТРАДУ)

ORL R4,#00110000b

ORL R5,#00110000b

ORL R6,#00110000b

ORL R7,#00110000b

;ПЕРЕСЫЛКА КОДОВ

1SIMV:MOV P2,R4P0.7P0.7P2,#11111111b,#1d

SIMV:MOV P2,R5P0.7P0.7P2,#11111111b,#1d

SIMV:MOV P2,R6P0.7P0.7P2,#11111111b,#1d

SIMV:MOV P2,#00101110b ;POINTP0.7P0.7P2,#11111111b,#1d

SIMV:MOV P2,R7P0.7P0.7P2,#11111111b,#1d

RETI

;======================================================

==================

Перейти на страницу: 1 2 3 4 5 6

Статья в тему

Системы спутникового мониторинга Глонасс на автотранспорте
Теория нечетких множеств (fuzzy sets theory) ведет свое начало с 1965г., когда профессор Лотфи Заде (Lotfi Zadeh) из университета Беркли опубликовал основополагающую работу “Fuzzy Sets” в журнале “Information and Control”. Прилагательное "fuzzy", которое можно перевест ...

Главные разделы


www.globalinformatics.ru © 2024 - Все права защищены!