Читайте также: |
|
8.1 сурет – Бақылау терезесі | Vybor_Seg ішкі программасы команда санағышының кіші байтына (h'02' адресі бойынша орналасқан PLC регистрі) W жұмысшы регистр арқылы берілетін N санын қосады. Осы операция нәтижесінде кестенің жолын таңдау орындалады. Мысалы, PCL ‘0’ цифрының коды бар retlw командасының адресін көрсетіп тұрады, бірақы N санын қосқаннан кейін ол бізге N-нші команданы көрсететін болады, бізге керегі де сол. Қолданылатын регистрлердің символдық аттары 8.1 суретте көрсетілген. |
Л8 программасының фрагменті.
МБ және клавиатураның стандартты реттеу операциялары және регистрлерді алдына ала тазарту жазылмаған.
MOVLW b'11101011'; берілген екілік сан.
MOVWF CHISLO
MOVWF Rab_Reg
; Жүздіктер санын санаймыз
MOVLW D'100'
MOVWF VYCH; Жүздіктер санын анықтаған кездегі азайтқыш.
M_SOT INCF K_SOT, F;
SUBWF Rab_Reg, F; Rab_Reg= Rab_Reg-100
BTFSC STATUS, C; азайту нәтижесі терістігін тексереміз (С=0)?
GOTO M_SOT; С=1 кезінде жүздіктер санын санау циклы қайталанады.
ADDWF Rab_Reg, F; қарызға алу болса, алдыңғы қадам мәніндерін кері
DECF K_SOT, F; қайтарамыз, жүздіктер санын да.
MOVLW D'10'
MOVWF VYCH; ондықтар санын анықтаған кездегі азайтқыш.
Ондықтар санын санау жүздіктер санын санау сияқты орындалады. Бұл программаны өздігіңізше орындаңыздар.
; бірліктер санын көрсететін кодты табамыз
MOVF Rab_Reg, W; қайтарудан соң Rab_Reg бірліктер санынан тұрады.
MOVWF K_ED; бірліктер санын басқа регистрге жазамыз.
SWAPF K_DES, W; ондықтарды жоғары разрядтарға жазамыз.
ADDWF K_ED, W; бірліктер санын кіші разрядтарға орнатамыз.
MOVWF R_D_ED; регистр енді ондықтар және бірліктер санынан тұрады.
MOVF K_ED, W; W аккумулятор мәні Vyb_Seg і/п аргументі.
CALL VYBOR_SEG; аргументі W і/п шақырамыз.
MOVWF Kod_seg_ed;бірліктер санын көрсететін кодты жазамыз.
; Осыған ұқсас ондықтар мен жүздіктер кодтарын анықтаңыздар.
GOTO $; негізгі программа мен ішкі программаны бөліп тұр
VYBOR_SEG; сегменттердің қосылу кодынан тұратын ішкі программа.
addwf PCL, f; команда санағышындағы жаңа адрес PLC=PCL+W
retlw b'00111111'; 0 цифрасының коды. W=0 болғанда қайтарылады.
retlw b'00000110'; 1 цифрасының коды. W=1 болғанда қайтарылады.
retlw b'10101101'; 2 цифрасының коды. W=2 болғанда қайтарылады.
retlw b'01001111'; 3 цифрасының коды. W=3 болғанда қайтарылады.
retlw b'01100110'; 4 цифрасының коды. W=4 болғанда қайтарылады.
retlw b'01101101'; 5 цифрасының коды. W=5 болғанда қайтарылады.
retlw b'01111101'; 6 цифрасының коды. W=6 болғанда қайтарылады.
retlw b'00000111'; 7 цифрасының коды. W=7 болғанда қайтарылады.
retlw b'01111111'; 8 цифрасының коды. W=8 болғанда қайтарылады.
retlw b'01101111'; 9 цифрасының коды. W= 9 болғанда қайтарылады.
; ішкі программаның соңы.
END; программың соңы.
8.1 кесте – Тапсырма нұсқалары
Нұсқа | Екілік сан | Нұсқа | Екілік сан |
8.1 суретте b'11101011' екілік сан 2 жүздік, 3 ондық 5 бірлік бар екені көрініп тұр, яғни бұл сан ондық санақ жүйесінде 235 саны болады. Осы сан таблоға шығады.
Дата добавления: 2015-07-19; просмотров: 88 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат | | | Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат |