Читать курсовая по Отсутствует: "Проектирование устройства сбора информации на базе микроконтроллера МК51" Страница 4

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

байта

01DC B4 FF 03 cjneA,#Error,$M; был ли ответ датчика

01DF 02 01 E7 jmpPrNach

$M:;-был

01E2 12 02 AA callPriem; прием мл-го байта данных с датчика

01E5 C2 8C clrTR0;если байт принят,

;останавливаем таймер T0

PrNach:;-небыло

01E7 05 22 incAddr;вычисление

01E9 A8 22 movR0,Addr;адреса

01EB E5 25 movA,Data

01ED F6 mov@R0,A;сохранение мл-го байта данных с датчика

01EE A8 20 movR0,NumDat

01F0 B8 10 01 cjneR0,#NDMax,$Dal;пока не опросим все

01F3 22 ret

01F4 $Dal:

01F4 21 AA jmpMetNach;опрос следующего датчика ;=----------------------------------------------

Work:;подпрограмма "Рабочего режима". ;попытка опроса

01F6 85 20 25 movData,NumDat;посылка в линию № датчика

01F9 12 02 76 callPosl;посылаем запрос на датчик

;с номером NumDat

01FC 75 F0 02 movB,#2;вычисление адреса

01FF A4 mulAB;для хранения данных

0200 24 30 addA,#30h;и ожидание 5мс

0202 F5 22 movAddr,A

217 0204 TimeTime_Dog;запуск сторожевого таймера

0204 75 8C E8 movTH0,#>Time_DogNov 20 2011 15:24 Page 5

0207 75 8A 90 movTL0,# максимума, обнуляем

0221 05 20 incNumDat; следующий датчик

0223 $D:

0223 A8 22 movR0,Addr;вычисление адреса для

0225 E5 25 movA,Data; записи полученного байта

0227 F6 mov@R0,A;сохранение ст-го байта

0228 B4 FF 03 cjneA,#Error,$M; был ли ответ датчика

022B 02 02 33 jmpPrWork

$M:;-был

022E 12 02 AA callPriem; прием мл-го байта данных с датчика

0231 C2 8C clrTR0;если байт принят, останавливаем таймер

PrWork:; -небыло

0233 05 22 incAddr; вычисление

0235 A8 22 movR0,Addr;адреса

0237 E5 25 movA, Data

0239 F6 mov@R0,A; сохранение мл-го байта данных с датчика

023A 22 ret

;=----------------------------------------------

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

023B C0 E0 pushA

023D C0 82 pushDPTR

023F C0 A8 pushIE

0241 75 A8 00 movIE,#0;запрет всех прерываний

0244 74 00 movA,#0

0246 90 02 C7 movDPTR,#Tabl_Ind;загрузка таблицы

0249 E5 21 movA,N_Ind; дешефрирование

024B 75 F0 10 movB,#10h;№ индикации

024E 84 divAB;в код семисегментного

024F 93 movcA,@A+DPTR;индикатора

0250 F5 80 movP0,A;P0 - старший байт

260 0252 E5 F0 movA,B

0254 93 movcA,@A+DPTR

0255 F5 90 movP1,A;P1 - младший байт

0257 D2 87 setbBit_Ind

0259 D0 A8 popIE

025B D0 82 popDPTR

025D D0 E0 popA

025F 22 ret

268;=----------------------------------------------

Signal:; Подпрограмма сигнализации ошибки

0260 78 28 movR0,#Kol_Pause;высвечиваем сигнал ошибки

271 $Wait:;заданное время

0262 TimeTime_Pause

0262 75 8C 3C movTH0,#>Time_Pause

0265 75 8A B0 movTL0,#


Интересная статья: Основы написания курсовой работы