- •Сандық техниканы және басқару микробақылауыштарын программалау
- •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- Автоматтандыру және басқару мамандығының студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқау
4 Зертханалық жұмыс. Көбейту және бөлу
Жұмыс мақсаты: көбейту және бөлуді орындау алгоритмін оқып, сандарды салыстыру мен алгоритмді тармақтауды орындауды үйрену.
4.1 Зертханалық жұмыс тапсырмасы және берілгендер
6 санын 0,8-ге көбейтуді орындау мысалын оқыңыз. Алдымен калькуляторда жуықпен берілген коэффициентті алу үшін бүтін көбейткішін және бүтін бөлгішін келтіріп аламыз. Бұл жағдайда көбейткіш 4және бөлгіш5 дәл келеді,өйткені4/5=0,8.Ары қарай берілген санды 4 көбейтеміз де нәтижесін 5-ке бөлеміз.Қалдығы өткізілген есептеулердің қателігін көрсетеді. Көбейту және бөлуді ішкі программалар түрінде жазамыз.
4.1 кесте – Бүтін бөлу алгоритмі
Цикл |
Бүтін бөлігі |
Жұмысшы регистрі |
Әрекет |
Жұмыс регистрі |
«С» битінің мәні |
С=0? |
Әрекет |
1 |
1 |
35 |
Rab_peg= Rab_peg- Delitel |
25 |
1 |
Жоқ |
Циклды қайталау |
2 |
2 |
25 |
15 |
1 |
Жоқ |
Циклды қайталау | |
3 |
3 |
15 |
5 |
1 |
Жоқ |
Циклды қайталау | |
4 |
4 |
5 |
-5 |
0 |
Иә |
1 қадамға артқа қайтамыз | |
|
3 |
5 |
|
|
|
|
Қалдық =5 |
Бөлу нәтижесі: бүтін бөлігі =3, қалдық =5, яғни 35/10=3 (5) |
Л4 көбейту және бөлу программасының фрагменті.
Микробақылауыштың стандартты реттеулері келтірілмеген.
; Программаның жұмыс бөлігі
CLRF PORTC ; PORTC-ға нөл жазу (жарықдиодтарын өшіру).
CLRF Delitel ; бөлгіш адресін тазарту.
; 60,8 көбейтеміз, =64/5=4(4)
MOVLW D'6'
MOVWF Chislo ; берілген сан
MOVWF Umn_Chislo ; Umnozhenie ішкі прогаммасындағы регистр
MOVLW D'4'
MOVWF Mnozh ;көбейткіш.
MOVLW D'5'
CALL Umnozhenie ; ішкі прогаммадан кейін көбейтінді Pr -ға жазылады.
; Бөлуге дайындық
Movf Pr, W ; Pr мәні Umnozhenie ішкі прогаммасынан алынады.
Movwf Delimoe
Movlw D'5'
movwf Delitel ; егер мәні берілмесе 0-ге бөлу болады.
CALL Delenie
Goto$
; Ішкі программа.
Umnozhenie ; Umn_Chislo және Mnozh кірістері, шығысы Pr.
Clrf Pr
Clrf Kol_slag
Sled_slag
Movf Pr, W
Addwf Umn_Chislo, W ; келесі қосылғышты қосу.
Movwf Pr
Incf Kol_slag, F ; қосылғыштар санын есептейміз.
MOVF Kol_slag, W
XORWF Mnozh, F ; Kol_slag=Mnozh теңдігін маскалау арқылы тексеру.
BTFSS STATUS, Z
Goto Sled_slag ; Z=0 болғанда орындалады.
RETURN
; Ішкі программа.
Delenie ; Delimoe, Delitel кірістері, Chastnoe, Ostatok шығыстары.
CLRF Chastnoe
Movf Delimoe, W;
MOVWF Rab_peg ; Delimoe .
MOVF Delitel, W ; нөлге тексеру.
BTFSC STATUS, Z ; нөлге бөлуден қорғау.
GOTO NUL ; Z=1 болғанда орындалады.
Metka
INCF Chastnoe, F ;бүтін бөліктің мәнін санау.
SUBWF Rab_peg, F ; Rab_peg=Rab_peg – Delitel шегереміз.
BTFSC STATUS, C ;айырмасы теріс екендігін тексереміз?
GOTO Metka ; C=1 болғанда орындалады.
; Бір қадамға кейін қайту
DECF Chastnoe, F ; бүтін бөлікті қайта орнына келтіреміз.
ADDWF Rab_peg, W ; Rab_peg қайта орнына келтіреміз.
MOVWF Ostatok ; қалдықты аламыз.
RETURN
NUL MOVLW D'255' ; нөлге бөлген кезде программаны аяқтау белгісі.
MOVWF PORTC ; нөлге бөлу болғаны жайлы сигнал береміз.
GOTO $
END
Қолданылған жалпы қызмет регистрлері 4.1 суретте келтірілген.
Зертханалық жұмысқа тапсырма. 4.2 кестедегі нұсқа үшін бөлшек санға көбейту программасын жазыңыз.