ту в акумулятор;
; ========================================= =============
; Процедура оновлення CRC. Параметр в A._CRC: PUSH ACC; save accumulatorB; save the B registerACC; save bits to be shiftedB, # 8; set shift=8 bits; _LOOP: XRL A, CRC; calculate CRCA; move it to the carryA, CRC; get the last CRC valueZERO; skip if data=0A, # 18H; update the CRC value
;: RRC A; position the new CRCCRC, A; store the new CRCACC; get the remaining bitsA; position the next bitACC; save the remaining bitsB, CRC_LOOP; repeat for eight bitsACC; clean up the stackB; restore the B registerACC; restore the accumulator
; -------------------------------------------------------------------------------
Висновок
У процессе виконан курсового проекту Було розроблено систему управління мікрокліматом теплиці. Во время виконан даної роботи, я навчився створюваті та опісуваті структурні и прінціпові схеми, складаті алгоритми та програми на мові асемблера для мікропроцесора AT89С 51. Модель мікропроцесорної системи Було спроектовано в програмному комплексі Proteus Professional 7.7.
Література
1.В.В. Сташін А.В. Урус О.Ф. Мологонцева Проектування цифрових пристроїв на однокристальних мікроконтролерах Москва Енергоатоміздат 1990р.
2.А.С. Басманов МП і ОЕВМ raquo ;, Москва, Світ raquo ;, тисячу дев'ятсот вісімдесят вісім.
. Мікропроцесори raquo ;, Навчальний посібник в 5-ти книгах, під редакцією В.А. Шахнова, Москва Вища школа raquo ;, 1 988.
.Фрунзе Мікроконтролери? Це ж просто! Raquo;
.Магда Ю.С. Мікроконтролери серії 8051: практичний підхід
6.https: //sites.google/site/laboratoria101/mps
7. # justify gt; Додаток 1. Текст програми
$ include (mod51) 0
; ***************************************** ********************
; Порт 0._1WIRE_1 bit P0.0 _1WIRE_2 bit P0.1 _dat bit 01h bit 7fhbit 7eh
; ***************************************** ********************
fCOUNTER EQU 19hEQU 1AhEQU 1BhEQU 1Ch
; Температура._L EQU 36h _H EQU 37h _OK BIT 00h.
;-------------------------------------------------------------r1,#1:p1,#0p3,#0p0.2p0.3p0.4p0.5p0.6p0.7p2.0p2.1p2.2:p2.3,waitp0.7p2.4,nok1bitkl1,nok11bitkl1r1,#5,no01nok11:r1nok11:bitkl1:p2.5,nok2bitkl2,nok22bitkl2r1,#1,no02nok22:r1nok22:bitkl2:r1,#1,ex11p0.2p0.3st:r1,#2,ex2p0.3p0.2p0.4st:r1,#3,ex3p0.4p0.3p0.5st:r1,#4,ex4p0.5p0.4p0.6st:p0.6p0.5:T_1WIRE_1T_1WIRE_2type_dat GetTemp type_dat GetTemp start
; ========================================= =============: type_dat, next1_1Reset_1Wire_1next1_2_1: call Reset_1Wire_2_2: a, # 0CCh; RW_Bytea, # 044h; RW_Byte
; затримка, що не менше 750 мсA, # 0Big_delayBig_delayBig_delayBig_delay
type_dat, next6_1Reset_1Wire_1next6_2_1: call Reset_1Wire_2_2: A, # 165; (500 - 4)/3=165delaya, # 0CCh; RW_Byte a, # 0BEh; RW_Byte
a, # 1hdelay
CRC, # 0
A, # 0FFhRW_Byte; byte 0.fTEMPER_L, A DO_CRCA, # 0FFhRW_Byte; byte 1.fTEMPER_H, A DO_CRCA, # 0FFhRW_Byte; byte 2.DO_CRC
A, # 0FFhRW_Byte; byte 3.DO_CRCA, # 0FFhRW_Byte; byte 4.
DO_CRCA, # 0FFhRW_Byte; byte 5.
DO_CRCA, # 0FFhRW_Byte; byte 6.DO_CRCA, # 0FFhRW_Byte; byte 7.DO_CRCA, # 0FFhRW_Byte; byte 8 (CRC).
CA, CRC; A=A - CRCGT_CRC_OKA, # ??10Big_Delay
CRC_OK
GT_exit
_ CRC_OK:
a, fTEMPER_la, # 0f0h a fTEMPER_l, aa, fTEMPER_h b, # 16 AB a, fTEMPER_l type_dat, nnext7_1next7_1_1: r0, ar1, # 1, no11a, # 17e1no1p2.0p2.2 GT_exno1: a , # 6e1no2p2.2p2.0GT_exno2: p2.2p2.0GT_ex: r1, # 2, no21a, # 19e2no1p2.0 p2.2GT_exno1: a, # 5e2no2p2.0p2.2GT_exno2: p2.2p2.0GT_ex: r1, # 3, no31a , # 18e3no1p2.0p2.2 GT_exno1: a, # 4e3no2p2.2p2.0Gt_exno2: p2.2p2.0GT_ex: r1, # 4, no41a, # 21e4no1p2.0p2.2 GT_exno1: a, # 4e4no2p2.0p2.2Gt_exno2: p2. 2p2.0GT_ex: a, # 25e5no1p2.2p2.0 GT_exno1: a, # 6e5no2p2.0p2.2GT_exno2: p2.0p2.2_ex: a, r0
b, # 10 ab a p1, a
GT_exit_1: r0, ar1, # 1, no1a, # 30e1nop2.1 GT_exit1no: p2.1GT_exit1: r1, # 2, no2a, # 60e2nop2.1 GT_exit1no: p2.1Gt_exit1: r1, # 3 , no3a, # 35e3nop2.1 GT_exitno: p2.1Gt_exit1: r1, # 4, no4a, # 70e4nop2.1 GT_exitno: p2.1Gt_exit: a, # 40e5nop2.1 GT_exit1no: p2.1_exit1: a, r0
b, # 10 ab aa, b p3, a _exit:
; ===============...