- •Сандық техниканы және басқару микробақылауыштарын программалау
- •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- Автоматтандыру және басқару мамандығының студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқау
1.4 Бақылау сұрақтары
Программа қай банкпен жұмыс істегені қалай анықталады?
ADDWFR1,F нұсқауынені орындайды?
ANDWFR1,Fнұсқауынені орындайды?
XORWFR2,Wнұсқауынені орындайды?
Битті орнату және тазарту нұсқауларын атаңыздар.
R1,R2жәнеREZ регистрлері қай банкта орналасқан.
230+60 қосқанда МБ регистрінде қандай нәтиже болады?
130-135 азайтқанда МБ регистрінде қандай нәтиже болады?
TRISCРСН қызметі және оның орналасуы.
W аккумулятордың адресі қандай?
2 Зертханалық жұмыс. Маскілеу. Массив қосындысын алу
Жұмыс мақсаты: мәліметтерді маскілеуді үйрену, массивтің қосындысын табудың алгоритмін және программасын құру.
2.1 Зертханалық жұмыс тапсырмасы
Жанама адрестеу программасын ұйымдастыруды блок-сұлба және Л2 программасы мысалында, ал теориялық мәліметтерді 2.3 тармақтан оқыңыз. FSR регистрі көрсеткіш, ол жұмыс істейтін ұяшықтың адресін сақтайды, ал ұяшықпен жұмыс INDF физикалық емес регистрі арқылы орындалады.
Есеп.Массивке төрт айда тұтынған энергия мөлшері жазылған. Көрсетілген периодқа кеткен суммарлық энергия шығынын және орташа мәнін анықтау керек.
2.1-суретте массивті суммалау және орташаны табу блок-сұлбасы келтірілген. Блок-сұлбада массивке мәлімет жазылған деп қарастырылған.
2.1 Сурет– Массивті суммалау және орташаны табу блок-сұлбасы
Л2. Массивті суммалау программасының фрагменті.
Include<p16f877.inc> EL_MAS_0 EQU h'40' ; массивтің нөлінші элементі.
EL_MAS_1 EQU h'41' ; массивтің бірінші элементі.
EL_MAS_2 EQU h'42' ; массивтің екінші элементі.
EL_MAS_3 EQU h'43' ; массивтің үшінші элементі.
IND_EL EQU h'50' ; қосылатын массив элементінің индексін жазу үшін.
SHAG EQU h'22' ; мәліметтердің өзгеру қадамы.
KOL_EL EQU h'44' ; массив элементтерінің санын сақтауға арналған регистр.
SUM EQU h'51' ; қосындыны сақтауға арналған регистр.
SREDNEE EQU h'52' ; энергияның орташа шығынын сақтауға арналған регистр.
; МБ стандартты реттеу командалары көрсетілмеген.
; массивті 11-17-ге дейін 2 қадаммен мәліметтермен толтыру
;{
MOVLW D'2'
MOVWF SHAG
MOVLW D'11'
MOVWF EL_MAS_0
ADDWF SHAG, W; W= EL_MAS_0+SHAG
MOVWF EL_MAS_1
ADDWF SHAG, W; W= EL_MAS_1+SHAG
MOVWF EL_MAS_2
ADDWF SHAG, W; W= EL_MAS_2+SHAG
MOVWF EL_MAS_3
;}
CLRF SUM
CLRF IND_EL
MOVLW D'4' ; массив элементтерінің саны.
MOVWF KOL_EL
MOVLW EL_MAS_0 ; 0-ші элемент тұрған ұяшық адресін жанама
MOVWF FSR ; FSR адрестеу регистріне жазу.
NEXT_ELEM
MOVF SUM, W
ADDWF INDF, W ; W мен ағымдағы массив элементін қосу.
MOVWF SUM ; алынған қосындыны сақтаймыз.
; Келесі циклға дайындалу
INCF FSR, F ; массивтің келесі элементінің адресіне өту.
INCF IND_EL, F ; сол массив элементінің индексін аламыз.
MOVF KOL_EL, W
XORWF IND_EL, W ; элемент индексінің 4-ке теңдікке тексереміз
BTFSS STATUS, Z ; Z=1 екенін тексереміз
GOTO NEXT_ELEM ; тек Z =0 болса циклды қайталаймыз.
,; Орташа мәнді есептеуге дайындық
MOVF SUM, W ; Z=1 болғандағы қосындыны аламыз.
MOVWF SREDNEE ; SUM-ды SREDNEE регистріне көшіреміз.
; Орташа мәнді есептеуді ары қарай жалғастыру керек.
. . . .
END
Өздігіңізше 4-ке бөлуді SREDNEE регистрін RRF арқылы екі рет оңға жылжыту арқылы орындаңыз, 2.1 кестеге қараңыз. Жылжытар алдында Carryбитін тазартуды ұмытпаңыздар.
Циклды қайталау келесідей: алдымен Kol_El регистріне элементтер саны жазылады, содан кейін циклды әр қайталаған сайын элемент индексін 1-ге өсіріп отырамыз да XORWFIND_EL,W командасының нәтижесі 0 шыққанын тексереміз,мұнда W=Kol_El.Индексі 4 болатын регистрді өңдеп қойғандықтан IND_El=4 болғанда циклдан шығамыз.