Проектирование автоматической системы взвешивания вагонов в статике

;скорость передачи 300 бод, - задаётся ТС1

ORG 00H;начальный адрес трансляции

SJMP BEGIN

ORG 03H;прерывание по INT0

JMP MAIN

ORG 23H;прерывание по последоват. порту

JMP UAPP

ORG 30H;программа инициализации

BEGIN:

MOV IE, #10010001B;разрешение прерываний по последоват.

;порту и по INT0

MOV IP, #00010000B;установка высшего приоритета у прерыв. по ПП >MOV TMOD, #00100000B;режим с перезагр TH1 в TL1

MOV TCON, #00000000B;обнуление битов управления ТС1

MOV PCON, #00000000B;работа МК без удвоения частоты

MOV SCON, #0101000B;настройка UAPP

MOV P0, #0FFH;настройка портов P0 и P2 на ввод

MOV P2, #0FFH

MOV TH1, #187;загрузка и запуск таймера

MOV TL1, #187

SETB TCON.6

MOV R5, #15;очистка смещений

MOV R1, #52

CALL CLEAR

CLR PSW.1;активация подпрограммы взвешивания

STOP:JMPSTOP ;зацикливание

;

;

;Nucleus of the Program

MAIN:

MOV R5, #0

MOV R0, #32;начальный адрес ячейки памяти

;для получаемого кода

MOV R1, #52;начальный адрес смещений

MOV P1, #11111000B;0 - настройка на вывод

MOV P1, R5;выбор канала 1 (MUX).

RETM:MOV P0, #0FFH;прием текущего значения

MOV R6, P0;кода с АЦП. "1"-линия настроена

MOV P2, #0FFH;на ввод

MOV R7, P2;в R6-младший байт кода,R7-старший

JNB PSW.1, MAIN0

MOV A, R6;запись полученных кодов в область смещений

MOV @R1, A;младший байт

INC R1

MOV A, R7

MOV @R1, A;старший байт

JMP COMMON

MAIN0:

CLR PSW.7

MOV A, R6

SUBB A, @R1 ;коррекция OffSet для младшего байта

MOV @R0, A;запись младшего байта

INC R0;вычисление адреса старшего байта

INC R1

MOV A, R7

SUBB A, @R1 ;коррекция OffSet для старшего байта

MOV @R0, A ;запись старшего байта

COMMON:

;подготовка к следующему циклу

INC R0;вычисление нового адреса младшего байта

INC R1

INC R5;вычисление адреса канала MUX

CLR PSW.7

MOV A, R5;проверка -> адрес канала > Last(8).

SUBB A, #8

JNZ GoOn

JB PSW.1, KALIB

ACALL OUT;вызов подпрограммы вывода инф. на ЭВМ

;и реинициализации управл. регистров.

KALIB:

CLR PSW.1

RETI

GoOn:

MOV P1, #11111000B;0 - настройка на вывод

MOV P1, R5;0 - 2 линии порта P1 - управляют MUX

MOV R4,#20 ;небольшая задержка для АЦП

DAC1:DJNZ R4, DAC1

JMP RETM

;End Nucleus of the Program

; _

; _

;Вывод полученного веса в компьютер через последовательный порт

OUT:

MOV R6, #0;временно - R6-мл. результат

MOV R7, #0 ;R7-ст. результат

;R5-счетчик

MOV R5, #8

MOV R0, #32

SUMM:

MOV A, @R0;суммирование младшего байта

ADD A, R6;и запись его в R6

MOV R6, A

INC R0

MOV A, @R0;суммирование старшего байта

ADDC A, R7;и запись его в R7

CLR PSW.7

MOV R7, A

INC R0

DJNZ R5, SUMM;в регR6-мл. результат

; R7-ст. результат

CLR IE.7;запрет всех прерываний на время передачи

MOV SBUF,R6;передача младшего байта результата

ACALL DELAY;вызов подпрограммы задержки

MOV SBUF,R7;передача старшего байта результата

ACALL DELAY;вызов подпрограммы задержки

CLR SCON.1;сброс флага прерывания по посл. порта

SETB IE.7;разрешение прерываний

MOV R5, #0

MOV R0, #32;начальный адрес ячейки памяти

;для получаемого кода

MOV R1, #52;начальный адрес смещений

CLR IE.0;запрещение прерывания по INT0

RET

;Конец передачи

; _

; _

;Прерывание по последовательному порту

UAPP:

CLR SCON.1;сброс флага прерывания

MOV R7, SBUF;прием управляющего слова

ACALL DELAY

MOV A, #00111100B;обнуление смещений и результатов

SUBB A, R7

JNZ NEXT0

MOV R5, #36;запуск очистки

MOV R1, #32

ACALL CLEAR

NEXT0:

MOV A, #11110000B;запрос на запуск преобразования и

SUBB A, R7;и на передачу в компьютер

JNZ NEXT1

;активация работы подпрограммы

CLR PSW.1;взвешивания в MAIN

SETB IE.0;разрешение прерывания по INT0

NEXT1:

MOV A, #00001111B;запрос на передачу в компьютер

SUBB A, R7

JNZ NEXT2

ACALL OUT

NEXT2:

MOV A, #0FFH ;запрос на калибровку

SUBB A, R7

JNZ NEXT3;активация работы подпрограммы

SETB PSW.1;калибровки в MAIN

NEXT3:

OTHERWISE:

RETI

; _

; _

;Подпрограмма задержки для последовательного порта

DELAY:

MOV R2,#25;задержка, небходимая для

A2:MOV R3,#250;принятия/передачи байта

A1:DJNZ R3,A1

DJNZ R2,A2

RET

; _

; _

CLEAR:

MOV @R1, #0;R5 - колличество

INC R1 ;R1 - начальный адрес

DJNZ R5, CLEAR

RET

; _

END;конец трансляции

Страница:  1  2  3  4  5 


Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы