- •Сандық техниканы және басқару микробақылауыштарын программалау
- •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.2 Жұмысты орындау тәртібі
MPLAB-та жаңа файлға ассемблерде программа жазыңыз, оны бумада сақтаңыздар. Осындай атпен сол бумада жаңа жоба құрыңыз. «;» символынан кейін түсініктеме тұрады. Программа кодын МБ-ға жазыңыз. Программада қолданылатын регистрлерді көрсетіп, Watch Window бақылау терезесін құрыңыз, сандар форматын қадағалаңыз. Программаны қадамдық режимде орындап, барлық операция нәтижелерін 1.2 кестеге жазыңыз. Есептемеде қосымша қолмен есептеулер жүргізіңіздер, олардың STATUS регистріне әсерін көрсетіңіздер.
1.2кесте -Командалар жұмысының нәтижелерін көрсету мысалы
Кірістегі сан |
Амал |
REZ-дегі нәтижелер |
Status мәндері B түрі | ||
B немесе D түрінде |
B немесе D түрінде |
D түрі |
B түрі | ||
R1=D’240’ |
R2=D’130’ |
R1-R2=240-130 |
D’110’ |
- |
00011001 |
R1=D’240’ |
R2=D’130’ |
R1+R2=240+130 |
D’114’ |
- |
00011001 |
R1=D’240’ |
R2=D’130’ |
R2-R1=130-240 |
D’146’ |
- |
00011010 |
R2=D’130’ |
R3=D’5’ |
R2+R3=130+5 |
D’135’ |
- |
00011000 |
R2=D’130’ |
R2=D’130’ |
R2-R2130-130 |
D’0’ |
- |
00011111 |
R1=D’240’ |
R2=D’0’ |
R2-R1=0-240 |
D’16’ |
- |
00011010 |
R1=b’11110000’ |
R2=b’10000010’ |
R1 AND R2 |
- |
10000000 |
00011011 |
R1=b’11110000’ |
R2=b’10000010’ |
R1 OR R2 |
- |
11110010 |
00011011 |
R1=b’11110000’ |
R2=b’10000010’ |
R1 XOR R2 |
- |
01110010 |
00011011 |
1.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат
Программада қолданылатын регистрлер әртүрлі банктарда орналасуы мүмкін. Банк нөмірін Status арнайы қызмет регистрі (РСН) арқылы орнатуға болады, А қосымшасын қараңыздар. Сонымен қатар бұл регистр операциялардың орындалу нәтижесін қадағалайды, регистрлер толуын, нөл болуын жазады. Осының нәтижесінде алгоритмнің тармақталуы жүреді [1, 2].
BSF, BCF, ADDWF, SUBWF, ANDWF, IORWF, XORWF нұсқауларының форматы және сипаттамасы Б қосымшасында келтірілген.
Қосу және азайту операциялары екілік санақ жүйесінде жүреді. Азайту азайғышқа кері кодтағы азайтқышты қосу арқылы орындалады.
240+4 қосуды орындайық, ондық санақ жүйеде сол жағында, екілік санақ жүйеде оң жағында (мысал а). Мысал б) азайту операциясын көрсетеді.Екілік кодта азайту орындалғанда азайту орнына қосу орындалады:
мысала) 240+4мысалб) 240-128
240 11110000 240 11110000
+ 4+ 00000100 -128 + 01111111 -128 санының инверсиясы
244 11110100 112 101101111 -қосындысы+ 1 -қосымша код
01110000 -нәтиже.
Азайту нәтижесінде регистр 8 разрядты болғандықтан оның толуы болды.Тоғызыншы разрядта тұрған 1 StatusрегистрініңС битіне ауысады.Ал сол регистрде тек 8 разряд қалады, ондық санақ жүйесінде ол 112 көрсетеді.Және де 3 разрядтан 1-лік4-ші разрядқа өтті,яғни кіші жартыбайттан үлкен жартыбайтқа,сондықтан StatusрегистрініңDCбиті де 1-ге тең.
1.3 кесте– ЛогикалықфункцияларY=f(X1,X2)
Нұсқау |
Шындық кестесі |
Шартты белгіленуі |
Электрлік сұлбалардағы баламасы | ||
Х1 |
Х2 |
Y | |||
IORWFOR (немесе) функциясы
|
0 0 1 1 |
0 1 0 1 |
0 1 1 1 |
Х1 Y Х2 |
Y
Х2 Кез келген контакт қосылғанда тізбекте тоқ болады |
ANDWF AND (және) функциясы |
0 0 1 1 |
0 1 0 1 |
0 0 0 1 |
Х1 Y Х2 |
Y
Тек екі контакт қосылғанда ғана тізбекте тоқ болады |
XORWFФункция XOR (Исключи- тельно ИЛИ) |
0 0 1 1 |
0 1 0 1 |
0 1 1 0 |
Х1 Y Х2 |
екі контакт әртүрлі күйде болғанда ғана тізбекте тоқ болады |
Барлық логикалық операциялар әрбір разряд үшін орындалады.