- •Сандық техниканы және басқару микробақылауыштарын программалау
- •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.1 Зертханалық жұмыс тапсырмасы және берілгендер
Буып-түю машинасын автоматтандыру тапсырмасы.Қондырғыға кернеу бергенде оператор пультындағы L2 лампасын және ескертуші дыбыстықсигнализацияныS1 қосу. 2 секундтан кейінS1 сигнализациясын өшіріп D1 конвейерін қосу.Конвейерарқылы изоляторлар жылжиды, фотодатчик изолятордыңқорапқа түскенін байқайды.Екі изолятор түскеннен кейін L1 лампасын қосу керек.Төрт изолятор келгенненкейін екі секундқа буып-түю механизмін қосу,ол толы қорапты бос қораппен алмастырады. Қораптар санын санау, фотодатчиктерді клавиатураның K5 және K6 кнопкаларымен имитациялау керек.
7.1 кесте – PORTC биттерінің және клавиатуры аяқшаларының қызметі
Регистр PORTC |
Клавиатура кнопкалары |
Кнопка жұмысы |
0 разряд - S1 ескертуші дыбыстық сигнализация |
5 немесе 6 |
Фотодатчик |
1 разряд – D1конвейерінің қозғалтқышы |
|
|
2 разряд – D2 буып-түюші механизмнің қозғалтқышы |
|
|
3 разряд – L1 жарықтық сигнализация |
|
|
7 разряд – оператор пультіндегі L2 жарықтық сигнализация |
|
|
7.1 сурет–Бақылау терезесі |
7.2 Жұмысты орындау тәртібі
Программаны жөндеу. Қадамдық режимде Timer ішкі программасының уақытын шектеңіз, яғни Wмәнін Sch3 санағышына жазатын команданы ғана қалдыру керек.Программа жөндеуден өткеннен кейін PORTC«0» битінсирена клеммасымен қосыңыз.
7.1 суретте көресетілген бақылау терезесін құру қажет.
7.2 кесте–Тапсырма нұсқасы
Нұсқа |
Қондырғыны қосу биттері S1, D1, D2, L1, L2. |
Нұсқа |
Қондырғыны қосу биттері S1, D1, D2, L1, L2. |
1 |
1, 2, 3, 4, 5 |
6 |
6, 7, 0, 1, 2 |
2 |
2, 3, 4, 5, 6 |
7 |
7, 0, 1, 2, 3 |
3 |
3, 4, 5, 6, 7 |
8 |
0 ,1 ,2 ,3, 4 |
4 |
4, 5, 6, 7, 0 |
9 |
1, 3, 5, 7, 0 |
5 |
5, 6, 7, 0, 1 |
10 |
2, 4, 6, 0, 1 |
Л7 программасының фрагменттері.
include<p16F877.inc> ; төменде РОН аттары, таймер үшін көрсетілмеген.
KOL_IZOL EQU h'45' ; изоляторлар санын жазуға арналған регистр.
KOL_KOROB EQU h'46' ; қораптар санын жазуға арналған регистр.
Inver_Bit EQU H'47' ; терістелетін битті анықтайтын регистр.
_PORTC EQU H'48' ; PORTC күйін сақтауға арналған регистр.
; МБ және клавиатураның стандартты реттеу операциялары жазылмаған.
; Программаның жұмысшы бөлігі
CLRF KOL_KOROB
MOVLW B'10000001'
MOVWF PORTC ; пульттағы L2 сигнализациясын және S1 сиренаны қосу.
Сиренаның үзілісті сигналын қосуға арналған командалар.
MOVLW b'00000001'
MOVWF Inver_Bit ; терістеу битін береміз.
MOVF PORTC, W
MOVWF _PORTC ; PORTC күйін сақтаймыз.
MOVLW d'40' ; сиренаның жұмыс уақытын беру. Тексеру кезінде d’2’.
CALL Timer
MOVF _PORTC, W
MOVWF PORTC ; PORTC күйін қайта қалпына келтіреміз.
CLRF Inver_Bit ; Timer і/п келесі шақырулар кезінде сиренаны өшіріп қоямыз.
BCF PORTC, 0 ; S1 сиренаның қорек кернеуін өшіру.
MOVLW B'10000010'
M1 MOVWF PORTC ; D1 транспортерды өшіреміз, L2 жұмыс істей береді.
CLRF KOL_IZOL
Prov_dat
BTFSS PORTD, 2 ; датчиктің істегенін тексереміз ("5", "6" кнопкалары).
GOTO Prov_dat
MOVLW D'10'
CALL Timer ; датчик контакттарының «дребезгтерін» жоямыз.
INCF KOL_IZOL, F ; изолятордың қорапқа түсуін көрсетеміз.
MOVLW D'2';
XORWF KOL_IZOL, W ; екі изолятор түскенін тексереміз
BTFSC STATUS, Z ; Z = 0? тексерміз.
BSF PORTC, 3 ; Z=1 кезінде ғана, L1 лампасын қосамыз.
MOVLW D'4' ; 4 изолятор түскенін тексереміз.
SUBWF KOL_IZOL, W ; W=KOL_IZOL-4.
BTFSS STATUS, Z ; Z = 1? тексерміз (4 изолятор түсті ме?)
GOTO Prov_dat ; Z=0 болғанда датчик істегенін тексереміз.
MOVLW b'10000110' ; тек Z=1 кезінде, қорапты ауыстырып ; (D2 қосу) және L1 сигнализациясын өшіру керек.
MOVWF PORTC ; информацияны PORTC-ға жібереміз
INCF KOL_KOROB, F ; келесі қораптың толғанын көрсетеміз.
MOVLW d'50' ;қорапты ауыстыру уақыты.
CALL Timer
MOVLW b'10000010' ; D2-ні өшіруге дайындық.
GOTO M1;
GOTO$
Timer ; Timer ішкі программасы
MOVWF Sch3 ; W таймер аргументі.
; RETURN ; бұл команда тек программаны тексеру кезінде қолданылсын.
M3 MOVLW D'150'
MOVWF Sch_out ; сыртқы санағыштың мәнін орнатамыз.
M_out ; сыртқы санағыштың белгісі.
;Сиренаның үзілісті сигналына немесе жылтылдауға арналған нұсқаулар
MOVLW b'00000000' ;сиренаны қосу қажет емес деп аламыз.
MOVF Inver_Bit, F ; Inver_Bit регистрін =0 тексеру.
BTFSS STATUS, Z ; Z=1 тексереміз?
MOVF Inver_Bit, W ; тек Z=0 кезінде S1 үшін битті терістейміз.
XORWF PORTC, F ;маска арқылы PORTC битін сирена үшін терістейміз.
MOVLW D'255';
MOVWF Sch_in ;ішкі санағыштың мәнін орнатамыз.
M_in ; ішкі санағыштың белгісі. Timer-дің басқа нұсқаулары көрсетілмеген.
RETURN ; ішкі программаның соңы.
END