- •Сандық техниканы және басқару микробақылауыштарын программалау
- •5В070200-Автоматтандыру және басқару мамандығының студенттері
- •Мазмұны
- •Кіріспе
- •1 Зертханалық жұмыс. Байттық және биттік командалар. Логика
- •1.1 Зертханалық жұмыс тапсырмасы
- •1.2 Жұмысты орындау тәртібі
- •1.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •1.4 Бақылау сұрақтары
- •2 Зертханалық жұмыс. Маскілеу. Массив қосындысын алу
- •2.1 Зертханалық жұмыс тапсырмасы
- •2.1 Сурет– Массивті суммалау және орташаны табу блок-сұлбасы
- •2.2 Жұмысты орындау тәртібі
- •2.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •2.4 Бақылау сұрақтары
- •3 Зертханалық жұмыс. Бояу камерасын автоматтандыру. Ішкі программалар
- •3.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •3.1 Сурет–Құрылғылардыжалғау сұлбасы
- •3.2 Сурет–Бояу камерасының уақыттық диаграммасы
- •3.2 Жұмысты орындау тәртібі
- •3.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •3.3 Сурет– Блок-сұлба
- •3.4 Бақылау сұрақтары
- •4 Зертханалық жұмыс. Көбейту және бөлу
- •4.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •4.2 Жұмысты орындау тәртібі
- •5 Зертханалық жұмыс. Газ шығынын реттеу
- •5.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •5.2 Жұмысты орындау тәртібі
- •5.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •5.4 Бақылау сұрақтары
- •6.3 Жұмысты орындау тәртібі
- •6.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •6.4 Бақылау сұрақтары
- •7 Зертханалық жұмыс. Буып-түю жұмысын автоматтандыру. Дыбыс түзу
- •7.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •7.2 Жұмысты орындау тәртібі
- •7. 3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •7.2 Сурет– Буып-түйгіш жұмысының уақыттық диаграммасы
- •7.4 Бақылау сұрақтары
- •8 Зертханалық жұмыс. Сандарды 2-санақ жүйесінен 2_10 санақ жүйесіне ауыстыру
- •8.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •8.2 Жұмысты орындау тәртібі
- •8.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •8.2 Сурет– Блок-сұлба
- •8.3 Сурет – Жеті сегментті индикатор
- •8.4 Бақылау сұрақтары
- •9 Зертханалық жұмыс. Таймер tmr1
- •9.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •9.2 Жұмысты орындау тәртібі
- •9.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •9.4 Бақылау сұрақтары
- •10 Зертханалық жұмыс. Үзулер
- •10.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •10.3 Жұмысты орындау тәртібі
- •10.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •10.4 Бақылау сұрақтары
- •11 Зертханалық жұмыс. Екі байттық сандарды қосу
- •11.1 Зертханалық жұмыс тапсырмасы және берілгендер
- •11.3 Жұмысты орындау тәртібі
- •11.1 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
- •11.4 Бақылау сұрақтары
- •А қосымшасы Status регистрі
- •Б қосымшасы pic* мб нұсқауларының сипаттамасы
- •В қосымшасы Модуль tmr1 таймері
- •Г қосымшасы pic16877 микропроцессорының жады картасы
- •Д қосымшасы умк-7 сипаттамасы
- •Әдебиеттер тізімі
- •5В070200- Автоматтандыру және басқару мамандығының студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқау
- •050013, Алматы, Байтұрсынұлы көшесі, 126
- •Сандық техниканы және микробақылауыштарды программалау
- •5В070200- Автоматтандыру және басқару мамандығының студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқау
7. 3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
Технологиялық қондырғыны қосар кезде әрқашан ескертуші үзілісті дыбыстық немесе жанып-өшіп жыпылықтайтын жарықтық сигнализация қосылады. Бұл қондырғы PORTCбиттеріне қосылады.7.2 суретте келтірілген уақыттықдиаграммаға сәйкесS1 дыбыстықсигнализациямен қатараL2 лампасы жанады. Сәйкесінше «0»битке пульстіккернеу беру керек, ал«1» битке тұрақты кернеу.
7.2 Сурет– Буып-түйгіш жұмысының уақыттық диаграммасы
Қосымша ішкі программа жазбас үшін пульстік кернеудіPORTC«0» битін терістеу арқылы аламыз, ол нақты бір уақыттан кейін Timerішкі программасының сыртқы циклында орындалады (№3 зертханалық жұмыстан).Терістеуді ХOR(ИсключительноеИЛИ) логикалық операциясымен орындауға болады.Inver_Bitрегистрінде терістелетін бит нөмірін жазамыз, өйткені сирена нөліншібитке жазылған,сондаInver_Bit=h’01’.
Программа келесі алгоритмді орындауы керек:
Inver_Bit=h’01’ ; нөлінші битті терістейтінімізді көрсетеміз.
_PORTC= PORTC ; PORTC күйін _ PORTC регистрінде сақтаймыз.
W=d’40’ ; сигнал беру уақытын береміз.
Call Timer ; ішкі программаны шақырамыз.
PORTC=_ PORTC ; PORTC сақталған мәнін қайтарамыз.
Inver_Bit=h’00’ ; PORTC битін терістеуге тыйым саламыз.
Timerішкі программасының өзгертілген бөлігінің блок-сұлбасы 7.3 суретте көрсетілген,оң жағында түсініктемесі келтірілген.
- мұнда W=h’00’ - XOR логикалық операциясының маскасы. Оны нөлге теңестіру арқылы PORTC битін терістеу қажет емесе деп шешеміз.
- терістелетін биттер көрсетілгенін тексереміз.
- инверсия қажет болса, онда маскаға инверсияланатын биттердің нөмірлерін жазамыз.
- маска(W)және PORTC арасындағы логикалық операцияны орындаймыз. Егер масканың қандай да бір разрядында ‘1’ жазылса,онда PORTC-дағы сәйкес разряд инверсияланады,PORTCқалған разрядтары өзгерусіз қалады.
| |
7.3 сурет– Timer ішкі программасы |
7.4 Бақылау сұрақтары
Timer ішкі программасының жұмыс уақыты қалай беріледі?
Клавиатура кнопкалары нені имитациялайды?
Контакттардың «дребезгі» қалай жойылады?
«Паразитнаянаводка» деген не?
Неге Stop кнопкасын Timer ішкі программасына қоюға болмайды?
Апаттық датчиктердің жұмысы қалай имитацияланады?
Изолятордың саны екіге тең екендігі қалай анықталады?
Қорап толғаны қалай көрсетіледі?
8 Зертханалық жұмыс. Сандарды 2-санақ жүйесінен 2_10 санақ жүйесіне ауыстыру
Жұмыс мақсаты: сандарды 2-к санақ жүйесінен 2_10 санақ жүйесіне ауыстыруды үйрену, шақырған программаға мән қайтаратын ішкі программалар құру.
8.1 Зертханалық жұмыс тапсырмасы және берілгендер
Тапсырма.8.1 кестеде берілген екілік санақ жүйесіндегісанды 2_10санақ жүйесіне ауыстырып, жеті сегментті таблоға жүздік, ондық бірліктер санын көрсететін кодты шығару керек. Жеті сегментті таблоны шартты түрде микробақылауыштың бір сегіз разрядты портына қосылған деп аламыз. Бұл таблоны қолдану бойынша ақпарат төменде берілген.
8.2 Жұмысты орындау тәртібі
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 кесте–Тапсырма нұсқалары
Нұсқа |
Екілік сан |
Нұсқа |
Екілік сан |
1 |
11010011 |
6 |
10100110 |
2 |
11110010 |
7 |
10110001 |
3 |
11101001 |
8 |
10111100 |
4 |
10010000 |
9 |
11000111 |
5 |
10011011 |
10 |
11010010 |
8.1 суретте b'11101011' екілік сан 2 жүздік, 3 ондық 5 бірлік бар екені көрініп тұр,яғнибұл санондық санақ жүйесінде 235 саны болады.Осы сан таблоға шығады.