ВУЗ:
Составители:
260
POP PSW ; восст контекста и глоб разр прер
SETB EA ;---------------------------------
RETI ;возврат из блока обраб прерываний
;Начало осн программы---------------------------------------------------------
ORG 100h
Lab_START: MOV SP,#080h ;определить указатель стека
MOV PLLCON,#00000000b ;уст макс частоту ядра (12,58 МГц)
NOP ;
LCALL Pod_INIT_RSN ;иниц РСН
LCALL Pod_INIT_RON ;иниц РОН
LCALL Pod_INIT_LCD ;иниц ЖКИ
LCALL Pod_CLEAR_LCD ;стирание ЖКИ
MOV R5,#021h ; задание нач значения байта для
MOV OUT_I2C_R,R5 ; передачи ведущему по I2C
MOV DATA_IND_R,R5 ;-----------------------------------
MOV ADR_IND_R,#0 ; индикация байта (символа)
ACALL Pod_PER_DAT_LCD ;-----------------------------------
;Начало основного цикла--------------------------------------------------------
La_OSN: NOP ;метка возврата в осн цикле
;Блок, предшествующий вызову подпрограммы опроса кнопки 0.
MOV R0,#KNOP0_R ;
MOV R1,#NAKOPL0_R ;
LCALL Pod_OPR_KNOP0 ;
;Блок, следующий за вызовом подпрограммы опроса кнопки (уст факта ее наж)
MOV ACC,@R0 ;
JNB ACC_1,La_100 ;
CLR ACC_1 ;кн была нажата, сброс флага нажат кн
MOV @R0,ACC ;
INC R5 ;-----------------------------------
CJNE R5,#06Fh,La_00 ; перебор возможн знач индицир байта
MOV R5,#021h ;------------------------------------
La_00: MOV OUT_I2C_R,R5 ;подгот байта для перед в ведущ по I2C
MOV DATA_IND_R,R5 ;------------------------------------
MOV ADR_IND_R,#0 ; индикация байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
La_100: JNB _DAT_I2C,La_OSN ;не было ли приема байта от ведущего I2C
CLR _DAT_I2C ;да, сбр фл "принят байт адр устр по I2C"
MOV DATA_IND_R,IN_I2C_R ;------------------------------------
MOV ADR_IND_R,#8 ; индикация принятого байта (символа)
ACALL Pod_PER_DAT_LCD ;------------------------------------
LJMP La_OSN ;закрыть основной цикл
;Подпрограммы------------------------------------------------------------------
;-----------------------------------------------------------------------------
;Подпрограмма инициализации РСН.
;-----------------------------------------------------------------------------
Pod_INIT_RSN:
MOV PORT_KNOP,#11111111b ;сделать вх все линии порта кн
MOV PORT_IND,#00000000b ;сделать вых все линии порта индик
;настройка модуля I2C
MOV IEIP2,#00000001b ;разрешить прерывания от I2C
Страницы
- « первая
- ‹ предыдущая
- …
- 258
- 259
- 260
- 261
- 262
- …
- следующая ›
- последняя »
