ВУЗ:
Составители:
287
MOV PLLCON,#00000000b ;уст макс частоту ядра (12,58 МГц)
NOP ;
LCALL Pod_INIT_RSN ;иниц РСН
LCALL Pod_INIT_RON ;иниц РОН
LCALL Pod_INIT_LCD ;иниц ЖКИ
LCALL Pod_CLEAR_LCD ;стирание ЖКИ
MOV DACH,#0 ;
MOV DACL,#0 ;момент уст в 0 напряж ЦАП
MOV DAC_H_R,#HIGH(64) ;
MOV DAC_L_R,#LOW(64) ;нач уст предельн знач на вых ЦАП
MOV R0,#BYTE_0_R ;
MOV R1,#DAC_L_R ;
MOV DAC_H_R+1,#0 ; обнуление ст незначащих РОНов
MOV DAC_H_R+2,#0 ;------------------------------
LCALL B32BCD ;преобр числа дискрет из дв в дв-дес
MOV R0,#BYTE_0_R ;
MOV R1,#IND_MILL_R ;
LCALL BCD10BCD ;пр числ дискр из уп дв-дес в неуп дес
MOV R0,#IND_MILL_R ; индицировать с РОНа IND_MILL_R
MOV R1,#0 ; индицировать с адр 0 ЖКИ
LCALL Pod_IND_10ZN ;индикация числа дискрет
SETB EA ;разрешить прерывания глобально
;Начало основного цикла---------------------------------------------------------
La_OSN: NOP ;метка возврата в осн цикле
;Блок, предшествующий вызову подпрограммы опроса кнопки 0.
MOV R0,#KNOP0_R ;
MOV R1,#NAKOPL0_R ;
LCALL Pod_OPR_KNOP0 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_OSN ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
CLR EA ;запретить прерывания глобально
MOV ACC,DAC_L_R ;---------------------------------
ADD A,#64 ; Блок перебора числа дискрет внутри
JC La_10 ; пространства предельных значений
MOV DAC_L_R,ACC ; 64 - 4032 с шагом 64
SJMP La_50 ;
La_10: MOV DAC_L_R,ACC ;
INC DAC_H_R ;
MOV ACC,DAC_H_R ;
CJNE A,#010h,La_50 ;
MOV DAC_L_R,#LOW(64) ;
MOV DAC_H_R,#HIGH(64) ;
La_50: NOP ;---------------------------------
MOV DACH,#0 ;
MOV DACL,#0 ;момент обнуления напряжения ЦАП
MOV R0,#BYTE_0_R ;
MOV R1,#DAC_L_R ;
MOV DAC_H_R+1,#0 ; обнуление ст незначащих РОНов
MOV DAC_H_R+2,#0 ;------------------------------
LCALL B32BCD ;пр числа дискр из двоичн в двоичн-дес
MOV R0,#BYTE_0_R ;
MOV R1,#IND_MILL_R ;
LCALL BCD10BCD ;пр числа дискр из уп дв-дес в неуп дес
Страницы
- « первая
- ‹ предыдущая
- …
- 285
- 286
- 287
- 288
- 289
- …
- следующая ›
- последняя »