Коммерциялық емес акционерлік қоғам

АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ

«Электроника» кафедрасы 

 

 

АҚПАРАТТЫҚ  БАСҚАРУ ЖҮЙЕЛЕРІ

PIC СЕРИЯСЫНЫҢ МИКРОКОНТРОЛЛЕРІ 

6М071900 – Радиотехника, электроника және телекоммуникация мамандығы студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқау

 

 

Алматы 2011

ҚҰРАСТЫРУШЫЛАР: К.О.Амантаев. PIC сериясының микроконтроллері. «Ақпаратты басқару жүйелері» пәні бойынша 6М071900 – Радиотехника, электроника және  телекоммуникация мамандығы студенттері үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқау – Алматы: АЭжБУ, 2011. – 30 б.

  

Әдістемелік нұсқауда құрастырушыға жазылған бағдарламаны кейінге қалдыруға және тексеруді жүзеге асыруына мүмкіндік беретін IDE симуляторының көмегімен Microchip фирмасының кең таралған  PIC16F877 микроконтролерін қолдана отырып зертханалық жұмыс қарастырылған. Басқару параметрлерінің тұрақтылығы және басқару жүйесінің барлық кезеңіндегі технологиялық процесіндегі негізгі бағдарламаны қабылдау, цифрлау, өңдеу, сақтау және ақпаратты кескіндеу келтірілген. АЦТ модулін және EEPROM деректер жадын пайдаланып, тіркеушілердің басқару параметрлерін бағдарламалық қолдана отырып, оларды LCD-де кескіндеу арқалы USART модулінің көмегімен орталық процессорге жіберіп, параметрлерді тұрақтандыру және қадамдық қозғалтқышпен басқару мысалдары қарастырылды.

Әдістемелік нұсқау дәрістік мәліметтерді бекіту мақсатында құрылған және 6М071900 – Радиотехника, электроника және телекоммуникация мамандығында оқитын студенттеріне арналған.

Без. 11, кесте. 3, әдеб.көрсеткіші – 4 атау. 

 

Пікір беруші: техн.ғыл.д-р., проф. Ш.А.Бахтаев 

 

«Алматы энергетики және байланыс университетінің» коммерциялық емес акционерлік қоғамының 2011ж. баспа қосымша жоспары бойынша басылады. 

 

 

©  «Алматы энергетика және байланыс университетінің» КЕАҚ, 2011 ж.

 

Қос. жоспар 2011 ж., поз. 35

 

 Кіріспе 

Intel компаниясы Atmel және Microchip фирмаларына нарықтың микроконтроллер бөліміне орын бере отырып, негізгі күшті компьютер үшін күрделі микропроцессор жасауға жұмсады. Осы нұсқауда тереңірек қарастырып отырған Microchip фирмасының PIC сериялы микроконтроллері орнатылған басқару жүйесі біздің елімізде кеңінен қолданыс тапты.

Әдістемелік нұсқаудың негізгі мақсаты - Microchip фирмасының IDE симуляторы көмегімен ассемблер арқылы программалауды тәжірибелік денгейде меңгеру, басқару параметрлерінің технологиялық процессінің тұрақтылығын және цифрлық басқару жүйесін жобалау білімін бекіту болып табылады. Микроконтроллер көлемі жағынан дәл микропроцессордей болса да, ол толық микропроцессор жүйесіндегідей функционалдық мүмкіндіктерге, яғни салыстыру және ШИМ, ұстау режимі үшiн ССР, қабылдап-таратқыш USART, АЦТ, EEPROM мәліметі және FLASH жад бағдарлары сияқты модульдерге ие.

IDE симуляторы – программа жасаушыларының Windowsтық интегралданған BASIC компиляторымен, ассемблермен, дизассемблермен және жинақтаушының цифрлық жүйесінің графикалық қосымша ортасы болып табылады. Бағдарламаны орындауда және жинақтауда жұмыс столында микроконтроллер мнемоникасының ағымдағы және келесі нұсқауы, PC мазмұндас және W аккумуляторының нақты уақыт тәртібіндегі есептеуіші бейнеленеді. .

Tools мәзір командасы көмегімен  жұмыс үстелінде мүмкiн болатын жағдайлар:

-       таңдалған Microcontroller View микроконтроллерінің барлық порттарын көрсетуге;

-       00-FF – EEPROM Memory Editor мекенінің көмегімен EEPROM жад мәліметі мазмұнын ашуға;

-       бағдарламаны жазу үшiн алаңқай ашуға, Assembler - екiлiк кодымен бағдарламаның жадын жүктеу және құрастыру;

-       8xLED board – жарықдиод панеліне қою;

-       Keypad Matrix пернелік панеліне қою;

-       LCD module СКИ модуліне қосу;

-       Hardware UART Simulation Interface – USART модулін қосу;

Алдын-ала белгілі және күрделенбеген алгоритмдерді іске асырып, жеткілікті үлкен көлемдегі жады мен шектеулі құрамды белгісіз модульді сыртқы құрал және ақпарат өңдейтін негізгі әрі өте сенімді құрылғы болып табылады. Микроконтроллер аспап құруды, станок құруды авиациялық және автомобильдік өнеркәсіпте, байланыста, тұрмыстық аппараттарда және т.б. өндірістің салаларында қолданылады.

PIC Simulator IDE симуляторы өте ыңғайлы, қолдануда қарапайым және дербес компьютермен басқару жүйесі мен цифрлық құралдарды жобалауға және өңдеуге болады.


1     Зертханалық жұмыс. Визуалды сигнал беру

 

Жұмыстың мақсаты: басқару системасындағы сигнал беруші құрал ретінде қолданылатын 8xLED Board жарықдиод панеліндегі бағдарламалық басқаруды зерттеу.

 

1.1      Жалпы ережелер

 

Штаттан тыс жағдай болғанда операторға дауыс және бейнелілік сигнал ретінде ақпарат керек.

Тек кіріс-шығысты B, D және C (1.1 суретін қара) 3-ші портына ғана қосуға болатын бейнелілік сигнал беруді жасаған кезде 8xLED Board жарықдиодының панелі қолданылады.

А порты 6 разрядты, Е порты 3 разрядты, ал 8 жарықдиодтан тұратын жарықдиодтың панельді басқаруға тек 8 разрядты порт қажет.

 

1.1    сурет – Визуалды сигнал берушінің көрінісі

 

Датчиктің қосылуын имитациялау үшін (бұрылу бұрышы, қысым және т.б.) Keypad Matrix пернелік панелі пайдаланылады, тігіне 4 разрядты шинаға В – RB0-RB3 шығыс портына, ал көлденең шығысына RB4-RB7 жалғанады.

Кез-келген 16 перненің басылуын белгілеп алу үшін RB0-RB3 түйінін дәл цифрлық шығыстағыдай күйін келтіру керек, ал RB4-RB7-ні дәл TRISB бағыттауыш тіркеуішінің кірісі сияқты:

MOVLW 0xF0

MOVWF TRISB.

RBO – RB3-тің В портына бірлік сигналы «1» енгізіп, кез-келген пернені басқанда бұл сигнал RB4 – RB7-нің тиісті кірісіне барады.

 

1.2      Сигналды беру жүйесін моделдеу

 

1.2.1     Визуалды сигнал беру бағдарламасы

Келесі әрекеттерді орындау қажет

-       PIC симуляторы IDE-ні іске қосу;

-       Options/Select Microcontroller-ді басу;

-       PIC 16F8770-ні таңдау және Select-ні басу;

-       File/Load Program-ды басу;

-       signal.hex file-ды таңдап және  Open-ді басу. PIC жадынан бағдарлама жүктеле бастайды;

-       Tools/Keypad Matrix-ті басу – пернелі панель ашылады (үнсіз В порты);

-       Tools 8xLED Board-ты басу – жарықдиод панелі ашылады (С портын қойамыз).

Портты ауыстыру үшін терезедегі ЛМК-ні басу керек, PORTB,0-ден бастап, Select Pin терезесі шығады, ол терезеде өзімізге керек портты таңдауға болады, мысалы: PORTC 0-ді шығысын көрсетіп; келесі PORTB,1 және т.б.

-       Rate/Fast-ты таңдау;

-       Simulation/Start-ты басу – моделдеу басталады.

Барлық жарықдиодтар үнсіздікпен жасыл түске жанады. Жарықдиодтың түсін өзгерту үшін оның жанындағы жасыл квадратты басу керек, таңдаған порттың шығысының қарама-қарсы жағынан Green, Red, Yellow, Blue сияқты түстер көрсетілген терезе пайда болады.

1.2.2     Бағдарлама листингі.

MLSEK   EQU 0xAA

ORG 000H

GOTO START

ORG 100H

START

CLRF STATUS                   ; банк 0

BSF STATUS,RP0              ; банк 1

MOVLW 0xF0

MOVWF TRISB                 ; RB0-RB3 – шығыс, RB4-RB7 - кіріс

CLRF TRISC                      ; C порты  – жарықдиод шығысына

BCF STATUS,RP0             ; банк 0

KEY_1

CLRF PORTC

MOVLW 0x01

MOVWF PORTB

BTFSS PORTB,4                ; RB0/RB4 пернесін сұрау

GOTO KEY_1

MET_1

MOVLW 0x0F

MOVWF PORTC                ; жоғарғы жарты жарықдиод жанады

CALL  ZADR                      ; шақыру п/п кешігу

MOVLW 0xF0

MOVWF PORTC                ; төменгі жарты жарықдиод жанады

CALL  ZADR

GOTO KEY_1

ZADR                                  ; п/п уақыттық кешігу

MOVLW 0x03

MOVWF MLSEK

MET_2

DECFSZ MLSEK,1

GOTO MET_2

RETURN

 

1.2 сурет Бағдарламаның орындалуының экрандағы көрінісі

 

1.3     Есеп берудің мазмұны:

 

-       жұмыс мақсаты;

-       бағдарлама листингі;

-       бағдарламаның экрандағы көрінісі;

-       қорытынды.

 

1.4     Бақылау сұрақтары

 

1)       PIC16F877-де неше порт бар және оның атқаратын міндеті?

2)       Порттардың бағытын қалай өзгертуге болады?

3)       D портын қалай параллель бастаушы жасауға болады?

4)       А портының басқалардан айырмашылығы неде?

5)       АТС модуліне қанша аналогты датчик қосуға болады?


2   Зертханалық жұмыс. Параметр регистрінің жад блокноты

 

Жұмыс мақсаты: басқарылатын параметрлі регистрінің жад блокнотын ұйымдастыруды зерттеу.

 

2.1     Жалпы ережелер

 

Басқарылатын параметр регистрінің блокнотын жад басқару үшін EEPROM жад микроконтроллері қолданылады. Басқарылатын параметрдің ен жоғарғы мәнін цифрлық мәнге 256 байт көлемдегі EEPROM  мәлімет жадына W аккумулятор арқылы жазады.

-     EEDATA

-     EEADR

-     EECON1

-     EECON2

Блокнот жадымен жасалатын операция басқару бағдарламасының орындалуын тоқтатпайды

EEADR регистрі жадтық мекен ұяшығына жүктеледі. Параметр байты W аккумулятордан  EEDATA регистріне енгізіледі.

EECON1 регистрі жадты басқару үшін қызмет етеді.

EECON2 регистрі тек басқару үшін жазу кезінде қолданылады.

Жазу  операциясы кезінде EECON1 регистрінің EEIF, екі биттті статусы WRERR және WREN, екі көмекші WR биті қолданылады. WREN бит жазуды рұқсат ету/тыйым салу үшін қолданылады. EEIF PIR 2<4> жоғарылату жолаушысы  жазу аяқталысымен 1-ге орнытылады.

Жад блакнотын оқу үшін тек EEADR регистріне мекен-жайын жазу EEPRG битін нөлге тастау керек. Байт параметріне жазылған RD битіне 1-ді орнатқан соң EEDATA регистріне берілетін болады. Содан кейін аккуммулятор арқылы параметр басқару жүйесінің орталық процессорындағы USART модульінің TXREG таратушысының буферлік регистріне берілуі мүмкін.

 

2.2     Жад блокнотын моделдеу

 

2.2.1     Микроконтроллерді үйлестіру.

Келесі әрекеттерді орындау қажет:

-     PIC Simulator IDE-ні іске қосу ;

-     Options /Select Microcontroller-ді басу;

-     PIC16F877-ні таңдап Select пернесін басу;

-     File/Lоad Program-ды басу;

-     ecpr10.hex файлын таңдау және “Open”-ді басу. PIC жадындағы бағдарлама жүктеле бастайды;

-     Tools/EEPROM Memory Editor-ды басу. EEPROM Memory Editor терезесі ашылады және оны жақсы көріну үшін дұрыс орынға орналастыруға болады;

-     Options/Change EEPROM Write Time-ді басу. Жаңа мән үшін 100-ді енгізіп OK-ді басу;

-     Options/Infinite Loop Stops Simulation күйін белгілеу;

-     Rate/Extremely Fast-ты таңдау;

-     «Simulation/Start» басысымен моделдеу басталады.

2.2.2     Жад блокнотын жазу/оқу бағдарламалық листингі.

80H саны EEPROM жадының 01H адресіне жазылады. Содан кейін бұл сан бағдарламалық есептеліп және В портына қосылған 8xLED board жарықдиодқа тасталады.

ORG 0x0000

BCF PCLATH,3

BCF PCLATH,4

GOTO BEGIN

ORG 0x0004

BEGIN

CLRF STATUS                    ; банк 0

BSF STATUS, RP1

BSF STATUS, RP0               ; банк

ZAPIS:

BTFSC EECON1, WR          ; алдынғының біткенін тексеру

GOTO ZAPIS                       ; жазу операциясы

BCF STATUS, RP0              ; банк 2

MOVLW 0x01

MOVWF EEADR                  ; адрестік регистрына ұяшықтық адресті

орнату

MOVLW 0x80

MOVWF EEDATA               ; мәліметтер регистрына мәліметті орнату

BSF STATUS, RP0               ; банк 3

BCF EECON1, EEPGD         ; EEPROM мәлімет жадын таңдау

BSF EECON1, WREN          ; жазуға рұқсат беру

BCF INTCON, GIE               ; үзіліске рұқсат беру

MOVLW 0x55

MOVWF EECON2

MOVLW 0xAA

MOVWF EECON2                ; қырағылықты тексеру

BSF EECON1, WR               ; жазуды орнату

BSF INTCON, GIE               ; тоқтауға рұқсат бермеу

BCF EECON1, WREN          ; блокнотқа жазуға рұқсат бермеу

CLRF STATUS                    ; банк 0

BCF PIR2, EEIF                    ; үзілімдегі жалаушаны алу

; чтение из EEPROM

BSF STATUS, RP1               ; банк 2

MOVLW 0x01

MOVWF EEADR                  ; адрес регистріне адресті жазу

BSF STATUS, RP0               ; банк 3

BCF EECON1, EEPGD         ; жад блокнотын таңдау

BSF EECON1, RD                ; оқуды орнату

BCF STATUS, RP0              ; банк 2

MOVF EEDATA,W              ; EEDATA-ден W-ға қайта жіберу

BSF STATUS, RP0

BCF STATUS, RP1              ; банк 1

CLRF TRISB                        ; В порты – шығыс

BCF STATUS, RP0              ; банк 0

L0001:

MOVWF PORTB                  ; жарықдиодтарды өшіру

GOTO L0001

END

 

2.1 суреті - Бағдарламаның орындалуының экрандағы көрінісі

 

2.3      Есеп берудің мазмұны:

 

-     жұмыс мақсаты;

-     бағдарлама листингі және оның түсіндірмесі;

-     орындалған бағдарламаның экрандағы көрінісі;

-     қорытынды.

 

2.4      Бақылау сұрақтары

 

1)       Микроконтроллердің жадын қандай регистрлар басқарады?

2)       Жад блокнотының адресіне қандай регистрлер орнатылады?

3)       Блокнотқа жазылға не үшін EECON1 және EECON2-ні қолданылады?

4)       Қандай регистрға басқару параметрі орнатылады?

5)       Параметрлік жад блокнотын таңдау қалай жүргізіледі?


3   Зертханалық жұмыс. Қадамдық қозғалтқыш арқылы басқару

 

Жұмыстың мақсаты: жұмыс принціпін және қадамдық қозғалтқыш арқылы цифрлық басқару тәсілдерін зерттеу.

 

3.1    Жалпы ережелер

 

Қадамдық электрқозғалтқыш, (ҚҚ) бұл – статордың бір орамына ток берілген кезде роторда фиксация туындататын бірнеше орамды, щоткесіз синхронды электрқозғалтқыш. Қозғалтқыштың орамдарының тізбекті активациясынан ротордың дискретті бұрыштық ауыстырылуы (қадамдар) туындайды.

Симуляторда тұрақты магнитті төртфазалы қадамдық қозғалтқыш (ҚҚ) қолданылады.

3.1 сурет - PIC Simulator IDE- дағы қадамдық қозғалтқыш

 

ҚҚ- ның моделін(үлгісін) ашу үшін Tools мәзірінде Stepper Motor Phase Simulation пунктін таңдау қажет.

 

3.1 кесте – сағат тіліне қарсы айналдыруға арналған басқару байттары

Бағыты

орамдары

PORTB, 1-ге  орнатуға арналған  биттер

B

HEX

 

A

0

0001

01

 

А, D

3, 0

1001

09

D

3

1000

08

 

C, D

2, 3

1100

0C

 

C

2

0100

04

B, C

1, 2

0110

06

B

1

0010

20

A, B

0, 1

0011

03

3.2    Қадамдық қозғалтқыш жұмысын моделдеу

 

3.2.1     Қадамдық қозғалтқыштың басқару сұлбасы.

Келесі әрекеттерді орындау тиіс:

-       PIC Simulator IDE-ді іске қосу;

-       Options/Select Microcontroller басу;

-       PIC16F877-ды таңдау және Select пернесін басу;

-       Tools/ Stepper Motor Phase Simulatio-қа басу. АҚ-тың моделін В портынан С портына ауыстыру.;

-       Tools/Keypad Matrix.-қа басу. Пернелік матрица модулі В портын өзгеріссіз ауыстыру;

-       File/Load program-қа басу;

-       тізімнен stepdv.asm бағдарламасын таңдау;

-       Save-қа басу, stepdv.asm бағдарламасы микроконтроллердің жадына жүктеледі;

-       Rate/Fast-ты таңдау;

-       Options/Infinite Loop Stops Simulation; өрісін ерекшелеу;

-       «Simulation/Start» басқаннан соң моделдеу жүзеге аса бастайды.

RB0/RB4 пернесіне басқаннан бастап, қозғалтқыш сағат тілімен және оған қарама қарсы бағытта айнала бастайды. Қозғалтқыштың тоқтауы перненің бастапқы күйіне оралуымен жүзеге асады.

 

3.2.2     ҚҚ басқаруының stepdv.asm бағдарламасының листингі

SEC EQU 0x20

DVP EQU 0x21

ORG 0x0000

BCF PCLATH,3

BCF PCLATH,4

GOTO START

ORG 0x0004

RETFIE

START

CLRF STATUS

BSF STATUS, RP0               ; банк 1

CLRF TRISC                        ; PORTC – OUT

MOVLW B’11110000’

MOVWF TRISB                   ; RB0-RB3 – OUT, RB4-RB7 – IN

BCF STATUS, RP0              ; банк 0

ENTER_KEY

CLRF PORTB

BSF PORTB,0

BTFSS PORTB,4                  ; «Пуск» – RB0/RB4 пернесін тексеру

GOTO ENTER_KEY

CW:                                                ; п/п ҚҚ сағат бағытымен айналуы

MOVLW .1

MOVWF DVP

CALL PAUSE

MOVLW 0x02

MOVWF PORTC

CALL PAUSE

MOVLW 0x06

MOVWF PORTC

CALL PAUSE

MOVLW 0x04

MOVWF PORTC

CALL PAUSE

MOVLW 0x0C

MOVWF PORTC

CALL PAUSE

MOVLW 0x08

MOVWF PORTC

CALL PAUSE

MOVLW 0x09

MOVWF PORTC

CALL PAUSE

MOVLW 0x01

MOVWF PORTC

CALL PAUSE

MOVLW 0x03

MOVWF PORTC

CALL PAUSE

CCW:                                             ; п/п ҚҚ-ның сағат тіліне қарсы айналуы

MOVLW .1

MOVWF DVP

CALL PAUSE

MOVLW 0x01

MOVWF PORTC

CALL PAUSE

MOVLW 0x09

MOVWF PORTC

CALL PAUSE

MOVLW 0x08

MOVWF PORTC

CALL PAUSE

MOVLW 0x0C

MOVWF PORTC

CALL PAUSE

MOVLW 0x04

MOVWF PORTC

CALL PAUSE

MOVLW 0x06

MOVWF PORTC

CALL PAUSE

MOVLW 0x02

MOVWF PORTC

CALL PAUSE

MOVLW 0x03

MOVWF PORTC

CALL PAUSE

GOTO ENTER_KEY

PAUSE:

DECFSZ DVP, F

GOTO PAUSE

RETURN

 

3.2 сурет орындалып жатқан бағдарламаның экрандағы көрінісі

 

3.3     Есеп берудің мазмұны:

 

-     жұмыстың мақсаты;

-     бағдарламаның листингі және оның түсіндірмесі;

-     экран көрінісі;

-     қорытынды.

 

3.4     Бақылау сұрақтары

 

1) Пернелерді басу сұрақтары қалай жүзеге асырылады?

2) ҚҚ-тың басқарылуы қалай жүзеге асырылады?

3) ҚҚ қайсы портқа үнсіз келісіммен қосылған?

4) ҚҚ-тың кемшіліктері мен жетістіктері?

5) ҚҚ-тың айналу жылдамдығын қалай өзгертуге болады?


4    Зертханалық жұмыс. Аналогты сигналдарды цифрлау

 

Жұмыстың мақсаты: бақылаудағы нысан жағдайының аналогты датчик сигналдарын цифрлау үшін микроконтроллердің АЦТ модулімен бағдарлымалық басқаруды зерттеу.

 

4.1     Жалпы ережелер

 

Датчиктің аналогты сигналы арналар коммутаторы арқылы АЦТ СHOLD ішкі конденсаторын зарядтайды. АЦТ модулі СHOLD конденсаторында сақталып тұрған кернеуді біртіндеп жақындату әдісімен сәйкесті 10-разрядтық цифрлық кодқа өзгертеді. Жоғарғы және төменгі тіреу кернеуінің көзі VDD,  VSS,   RA2 немесе RA3 шығыстары бағдарламалы таңдалынып алынуы мүмкін. АЦТ модулі такт импульстарының көзі ретінде SLEEP режимінде жұмыс жасағанда RC генераторы  таңдалуы қажет.

Микроконтроллерінің АЦТ модулін басқару үшін 4 регистр пайдаланылады:

-       ADRESH (ескі байт) нәтиже регистрі;

-       ADRESL (жаңа байт) нәтиже регистрі;

-       ADCON0 басқару регистрі;

-       ADCON1 басқару регистрі.

ADCON0 регистрі АЦТ модулінің жұмысын үйлестіру үшін қажет, ал ADCON1 регистрі арқылы А және Е порттарының аналогты кірулерін таңдау жүзеге асады.

10-разрядтық цифрлау қорытындысы ADRESH: ADRESL регистрлеріне салынады, содан кейін GO/-DOHE (ADCON0<2>) жалауы түсіріліп, ADIF жалауы орнатылады.

Қайта жаңғыру алдында СHOLD  конденсаторын зарядтау үшін уақытылы п сақтап алу қажет.

Аналогты сигналды цифрлау алгоритмі:

1)                АЦТ модулін баптау:

-       аналогты кіру ретінде қорытындыларды үйлестіру (ADCON1);

-       АЦТ кіру каналын таңдау (ADCON0);

-       АЦТ (ADCON0) үшін такт импульстарының көзін таңдап алу;

-       тегістеу түрін таңдап алу;

-       АЦТ (ADCON0) модулін қосу.

2)                АЦТ модулінен үзілуді қалыпқа келтіру:

-       ADIF битін тастау;

-       ADIE битін 1-ге орнату;

-       PEIE битін 1-ге орнату;

-       GIE битін 1-ге орнату.

3)                СHOLD конденсаторын зарядтау үшін паузаны сақтау.

4)                Аналогты-цифрлық қайта жаңғыртуды бастау.

-       GO/-DOHE битін 1-ге (ADCON0) орнату.

5)                Қайта жаңғыру аяқталуын күту:

-       GO/-DOHE биті 0-ге түсуін күту;

-       қайта жаңғырту аяқталуымен үзілуін күту;

6)       ADRESH: ADRESL регистрлерінен қайта жаңғырту нәтижелерін санау, ADIF битін 0-ге түсіру.

7)       Келесі қайта жаңғырту үшін 1 және 2 пункттен бастап қимылдарды орындау қажет.

Қайта жаңғырту нәтижесін жазу ADCON1<7> регистрінің ADFM биті мағынасына байланысты оң жақ және сол жақ түзетуге болады. ADRESH: ADRESL регистрлерінің іске қосылмаған биттері «0» деп оқылады.

 

4.2    Аналогты сигналды цифрлауды модельдеу

 

4.2.1     АЦТ режимі үшін микроконтроллерді конфигурациялау.

Келесі әрекеттерді орындау қажет:

-       PIC Simulator IDE қосу;

-       Options/Select Microcontroller басу;

-       PIC16F877 таңдап алу және  Select түймесін басу;

-       Tools/Microcontroller  View- ті басу - барлық порттарымен терезе шығады;

-       Tools/8xLED board-ті басу - жарықдиод панелі шығады (порт В үнсіз);

-       File/Load program басу;

-       тізімнен  acp10. asm бағдарламасын таңдап алу;

-       Save бассаң  acp10. asm бағдарламасы микроконтроллер жадына енеді;

-       Rate/Fast таңдап алу;

-       Options/Infinite Loop Stops Simulation-дағы операцияны белгілеу;

-       «Simulation/Start» басқанда, модельдеу басталады.

RAO/ANO қорытындысына байланысты А түймесін басып АЦТ терезесінде шыққан бұл қорытындының аналогты мағынасын өзгертесіз. В портына қосылған жарықдиодтарда цифрлық мағына шығады.

 

4.2.2     acp10. asm бағдарламасының листингі

ORG 0x0000

BCF PCLATH, 3

BCF PCLATH, 4

GOTO START

ROG 0x0004

RETFIE                                 ; біртіндеп жаңғыртудан үзілуге рұқсат

                                             сұрап оралу

START

BSF STATUS, RP0               ; банк 1

CKRF TRISB                        ; PORTB -шығу

MOVLW 0x3F

MOVWF TRISA                   ; PORTA – RAO-RA5 кірістер

BCF STATUS, RP0              ; банк 0

MOVLW 0xC0

MOVWF ADCON0               ; арна 0-RAO, RC генератор

BCF STATUS, RP0              ; банк-1

CLRF ADCONI                    ; аналогты арналар, сол жақ түзету

BCF STATUS, RP0              ; банк-0

BSF ADCON0,0                    ; АЦТ қосу

NOP

NOP

L0001:

CALL L0002

MOVF ADRESH, W             ; W = ADRESH

MOVWF PORTB

GOTO L0001

L0004:

GOTO L0004                        ; шексіз цикл

L0002:

BSF ADCON0,2                    ; АС жаңғырту басталады

L0005:

BTFSS ADCON0,2

GOTO L0006

GOTO L0005

L0006:

MOVLW 0x1F

ANDWF STATUS, F            ; банк 0

RETURN

L0007:

GOTO L0007                        ; шексіз цикл

END

 

4.1 сурет – орындалу үстіндегі бағдарламаның экрандағы көрінісі

 

4.3     Есеп мазмұны:

 

-     жұмыс мақсаты;

-     бағдарлама листингі және оның сипаттамасы;

-     бағдарламаның экрандағы көрінісі;

-     қорытынды.

 

4.4     Бақылау сұрақтары

 

1)    АЦТ модулін қалай қосады?

2)    Түрлендіру алдында «пауза» неге ұстап тұрылады?

3)    АЦТ арналарын баптау қалай жасалады?

4)    Жаңғырту нәтижесінің байті қайда сақталады?

5)    Сол жақты тегістеуде нәтижесі неге 4-есеге көбейеді?


5     Зертханалық жұмыс. Сұйық кристалды индикатор

 

Жұмыс мақсаты: Hitachi фирмасының  HD44780 контроллері бар сұйық кристалды индикатор модулінің жұмысын әр түрлі режимде зерттеу.

 

5.1   Жалпы мәліметтер

 

Ең көп тараған түрі Hitachi фирмасының  HD44780 контроллері бар СКИ  (Liquid Christal Display - LCD).

 

5.1 сурет СКИ сыртқы бейнесі

 

5.1кесте СКИ қорытындыларының тағайындалуы

Pin No.

Аты

Сипаттамасы

Pin no. 1

VSS

қорек көзі(GND)

Pin no. 2

VCC

Қорек көзі (+5V)

Pin no. 3

VEE

Контрастты реттеу

Pin no. 4

RS

0 = инструкцияның енгізілуі
1 =
мәліметтердің енгізілуі

Pin no. 5

R/W

0 = LCD-ға жазу
1 =
LCD-ден оқу

Pin no. 6

EN

Сигналды қосу

Pin no. 7

D0

Шина мәліметтерінің сызығы 0 (LSB)

Pin no. 8

D1

Шина мәліметтерінің сызығы  1

Pin no. 9

D2

Шина мәліметтерінің сызығы  2

Pin no. 10

D3

Шина мәліметтерінің сызығы  3

Pin no. 11

D4

Шина мәліметтерінің сызығы  4

Pin no. 12

D5

Шина мәліметтерінің сызығы   5

Pin no. 13

D6

Шина мәліметтерінің сызығы  6

Pin no. 14

D7

Шина мәліметтерінің сызығы   7 (MSB)

EN «Қосу» (Enable) деп аталатын  сызығы мәліметтерді/бұйрықтарды жіберу барысында СКИ үшін импульс – строб ретінде қолданылады. Жіберуге дейін микроконтроллер бұл сызықтың төмен (EN=0) екендігіне сенімді болуы қажет, содан бақылаудың басқа екі сызығын орнатып, мәліметтерді мәліметтер шинасына орналастыруы қажет. Басқа сызықтар толығымен дайын болғанда, LCD мәліметтерін қабылдау үшін керекті уақыттың тұрақталуы бар жоғары   EN =1 жасау қажет.

RS сызығы «Регисторды таңдау» сызығы болып табылады. RS =0 болғанда, бұйрықтарды қабылдау үшін   СКИ-ға IR (instruct register) регистор бұйрығы қосылады (мысалы, экранды тазалау, курсордың орны, және т.б.).   RS=1 болғанда жіберілетін мәліметтерді қабылдауы үшін     DR (data register) регисторы қосылады.

RW сызығы– бұл "оқу / жазу- ды" басқару сызығы.   (Read/Write). Мұнда RW=0 жағдайында берілген шинаның ақпараты СК-дисплейіне жазылады. RW=1 болған жағдайда микроконтроллер LCD жағдайының хабарын оқиды, мысалы, "Get LCD status" командасы – 80Н-қа тең.

HD44780 модулінде әртүрлі екі жад қолданылады:

-       DDRAM – көрсетілетін мәліметтерді сақтау үшін;

-       CGRAM – 5x8 немесе 5x10 өлшемді матрицаға сәйкес келетін (символдың формасын анықтайды), биттік комбинацияны сақтуға арналған белгі генераторының жады.

Белгілердің таралуы 5.2 кестеде көрсетілген, мұнда символ байтының төрт үлкен разряды оны тігінен, ал төрт кіші разряды көлденеңінен орын ауыстыруын анықтайды (мысалы, "А" = 41Н).

 

5.2 кесте – Белгі генераторының символдарының терілуі

5.2      Ақпараттарды бейнелеу құрылғысын модельдеу

 

5.2.1      LCD модулін конфигурациялау.

Келесі әрекеттерді орындау міндетті:

-       IDE симуляторынан PIC-ті іске қосу;

-       Options/Select Microcontroller-ді басу.

-       PIC16F877-ті таңдау және Select-қа басу;

-       Tools/LCD Module-ге басу;

-       СКИ модулін қосу сұлбасының бапталуын жүзеге асыру;

-       File/Open-ға басып – lcd_ht.asm  бағдарламасын таңдау – lcd_ht.asm бағдарламасы микроконтроллердің жадына жүктеледі;

-       Rate/Fast-ді таңдау;

-       Options/Infinite Loop Stops Simulation күйін белгілеу;

-       «Simulation/Start»-қа басқанда - моделдеу іске қосылып бастайды.

LCD Module терезесінде СКИ қосылуының сұлбасын баптау үшін  Setup пернесіне басу тиіс(5.2- суретте қарау).

 

5.2 сурет СКИ бапталуы

 

LCD Type 2х16 – СКИ түрін таңдау – 2 қатарлы, қатарда 16 символды үнсіздікпен қалдырамыз.

Data Linesберілген шина үшін порт таңдау - В портын үнсіз келісім бойынша қалдыру.

Interface СКИ разрядтылығын таңдау – 8 bit.

RS Line RS линиясы үшін порт таңдау PORTD,1.

E Line EN линиясы үшін порт таңдау PORTD,3.

R/W LineRW линиясы үшін порт таңдау PORTD,2.

Setup LCD Module Busy Delays – мсің мәліметтер шинасының және бұйрықтар шинасының, үйлестіру шинасының кешігуін орнату.

Change LCD Module Color SchemeСКИ тақта түсін таңдау.

Баптаулар параметрін есте сақтап қалу үшін Apply пернесіне басу қажет.

 

5.2.2 lcd_ht.asm бағдарламасының листингі

R0L EQU 0x20

R0H EQU 0x21

R1L EQU 0x22

R1H EQU 0x23

R2L EQU 0x24

R2H EQU 0x25

R3L EQU 0x26

R3H EQU 0x27

R4L EQU 0x28

R4H EQU 0x29

ORG 0x0000

BCF PCLATH,3

BCF PCLATH,4

GOTO START

ORG 0x0004

START

; ЖК модулінің үйлестірушісі, курсор өшіп-жанады

CLRF STATUS                      ; bank 0

CLRF PORTD

CLRF PORTB

BSF STATUS,RP0                  ; bank 1

CLRF  TRISD                         ; PORTD - out

MOVWF TRISB                     ; PORTB - out

BCF STATUS,RP0                 ; bank 0

MOVLW 0x02

MOVWF R0L

MOVLW 0x00

MOVWF R0H                         ; 0002Н бөгелу (задержка)

CALL W001                            ; п\п бөгеледі

MOVLW 0x33                         ; СКИ- ға қосылу командасы

CALL LC02                            ; п/п бұйрықты тарату

MOVLW 0x33

CALL LC02

MOVLW 0x33

CALL LC02

MOVLW 0x38                         ; режимдер тапсырмаларының командасы

CALL LC02

MOVLW 0x0D                        ; 8-биттік интерфейс, жарқырауық. курсор

CALL LC02

MOVLW 0x01                         ;  дисплейді тазалау

CALL LC02

TEXT1:

; СКИ-дың 1-ші қатары үшін мәтін

MOVLW 0x80                         ; DDRAM-ды таңдау

CALL LC02

MOVLW  ‘P’

CALL LC01

MOVLW  ‘R’

CALL LC01

MOVLW  ‘I’

CALL LC01

MOVLW  ‘V’

CALL LC01

MOVLW  ‘E’

CALL LC01

MOVLW  ‘T’

CALL LC01

MOVLW  ‘!’

;  2-ші қатар үшін мәтін

MOVLW 0xC0                        ; 2- қатар басындағы курсор

CALL LC02

MOVLW 0x40                         ; белгі генераторының CGRAM-н таңдау

CALL LC02

MOVLW 0x48                         ; H

CALL LC01

MOVLW 0x49                         ; I

CALL LC01

MOVLW 0x21                         ; !

CALL LC01

; 4 мс-қа бөгелу

MOVLW 0x01

MOVWF R0L

CLRF R0H

CALL W001

GOTO TEXT1                        ; шексіз цикл

; 1,64 мс-қа бөгелу

W001:

MOVF R0L,W

BTFSC STATUS,Z

GOTO W002

CALL W003

DECF R0L,F

NOP

NOP

NOP

NOP

NOP

GOTO W001

W002:

MOVF R0H,W

BTFSC STATUS,Z

RETURN

CALL W003

DECF R0H,F

DECF R0L,F

GOTO W001

W003:

MOVLW 0x0C

MOVWF R2H

W004:

DECFSZ R2H,F

GOTO W004

NOP

NOP

MOVLW 0x12

MOVWF R1L

W005:

DECFSZ R1L,F

GOTO W006

CALL W007

CALL W007

NOP

NOP

RETURN

W006:

CALL W007

GOTO W005

W007:

MOVLW 0x0D

MOVWF R2L

W008:

DECFSZ R2L,F

GOTO W008

NOP

RETURN

; 1 байт көлемде – 40мс-қа бөгелу

X001:

MOVLW 0x0A

SUBWF R4L,F

BTFSS STATUS,C

RETURN

GOTO X002

X002:

MOVLW 0x06

SUBWF R4L,F

BTFSS STATUS,C

RETURN

GOTO X002

; 2 байт көлемде – 100мс-қа бөгелу

Y001:

MOVLW 0x10

SUBWF R4L,F

CLRW

BTFSS STATUS,C

ADDLW 0x01

SUBWF R4H,F

BTFSS STATUS,C

RETURN

GOTO Y002

Y002:

MOVLW 0x0A

SUBWF R4L,F

CLRW

BTFSS STATUS,C

ADDLW 0x01

SUBWF R4H,F

BTFSS STATUS,C

RETURN

GOTO Y002

; мәлімет тарату

LC01:

BSF PORTD,1

BCF PORTD,2

MOVWF PORTB

CALL LCX1

MOVLW 0x32

MOVWF R4L

CALL X001

RETURN

LCX1:

BSF PORTD,3                        ; EN=1 жазба(запись)

NOP

BCF PORTD,3                        ;жазбаның қосылуы EN=0

NOP

RETURN

; бұйрық тарату

LC02:

BCF PORTD,1

BCF PORTD,2

MOVWF PORTB

CALL LCX1

MOVLW 0xD0

MOVWF R4L

MOVLW 0x07

MOVWF R4H

CALL Y001

RETURN

END

 

5.3 сурет орындалған бағдарлама экранының бейнесі

 

Ағылшын алфавитінің символдары индикаторға әдеттегі символдық тұрақтылар сияқты 'simvol′ түрінде шығарылады (енгізіліеді). Ағылшын алфавитін шығаруға  ASCII коды қолданылады,  5.2 кестесінде көрсетілген.

 

5.3      Есеп берудің мазмұны

 

-       жұмыстың мақсаты;

-       бағдарламаның листингі және оның бейнеленуі;

-       орындалған бағдарламаның экранының бейнесі;

-       қорытынды.

 

5.4      Бақылау сұрақтары

 

1) LCD басқарылуы қалай жүзеге асады?

2) IR және DR регистрі қандай функциялар атқарады?

3) В=1 жағдайында микроконтроллерге қандай хабар жеткізіледі?

4) DDRAM жады қандай мақсат үшін қызмет етеді?

5) CGRAM жады қандай мақсат үшін қызмет етеді?


6    Зертханалық жұмыс. Қабылдағыш-таратқыш UART

 

Жұмыс мақсаты: әмбебап UART қабылдағыш-таратқыш жұмысын асинхронды режимде орталық процессорге бақылау параметрлерінің байттарын жіберуін зерттеу.

 

6.1       Жалпы мәлімет

 

Жеке компьютерлермен байланысу үшін, дуплексті асихронды режимде жұмыс жасайтын әмбебап асинхронды қабылдағыш-таратқыш (UART) қызмет атқарады (6.1 суретке қара).

USART модулінің TXSTA (transmitter status) және RCSTA (receiver  status) регистрлері таратқыш және қабылдағышқа сәйкесті, басқару және мәртебе регистрлері болып табылады.

Асинхронды режимде UART стандартты формат (NRZ) пайдаланылады: бір стартты бит, 8 немесе 9 бит берілген және бір стопты бит.

Асинхронды режимде USART модулі келесі элементтерден тұрады:

-       ауыстыру жылдамдығының генераторы;

-       сауалнама тізбегі;

-       асинхронды таратқыш;

-       асинхронды қабылдағыш.

 

6.1 сурет. – Асинхронды режимде байланысты ұйымдастырудың құрылымдық сызбасы

 

USART таратқышында TXREG таратқышы буферінен мәліметтер алатын TSR қозғалғыш регистрі негізгі болып табылады.

Мәліметтер TXREG регистріне бағдарламалы түрде енгізіледі. Алдыңғы байттың стопты битін берген соң RRG циклінің соңғы машиналық тактінде TSR жаңа мағынамен TXREG-тен енгізіледі (егер бар болса), содан кейін ғана TXIF (PIR 1<4>) үзу жалауы орнатылады.Үзуді TXIE (PIR 1<4>) биті доғара алады немесе рұқсат ете алады. TXIF жалауы TXIE битінің жағдайына қарамай-ақ орнатылады және де  '0'-ге бағдарламалы түрде тасталмайды. TXIF жалауын тазалау TXREG регистріне жаңа мәліметтер енгізілгеннен кейін ғана жүзеге асады.

Таратуды рұқсат ету үшін TXEN (TXSTA<5>) битін '1'-ге орнату қажет. Мәліметтерді тарату TXREG-ге жаңа мәліметтер енгізілмей, BRG генераторынан жаңа тактты импульс келмей басталмайды.

 

6.2     Қабылдағыш – таратқышты модельдеу

6.2.1     UART модулінің сызбасы.

Келесі әрекеттерді орындау қажет:

-     PIC симулятор IDE-ні қосу;

-     Options/Select Microcontroller-ді басу;

-     Pic16f877-ні таңдап,  Select-ті басу;

-     Options/Change Clock Frequency-ді басу;

-     4-ті қосып, OK түймесін басу;

-     Options/Change UART Transmit/Receive Time-ды басу;

-     100-ді енгізіп, OK түймесін басу;

-     Tools/Hardware UART Simulation Interface-ді басу (UART аппаратты интерфейсті симуляциялау терезесі ашылады);

-     Tools/8xLED board түймесін басу – жарықдиодтар панелі шығады(порт В сөйлемей );

-     File/Load Program басу;

-     uart - receiver файлын таңдап, Open түймесін басу;

-     Rate/Flash simulation rate-ты таңдап алу;

-     Simulation/Start – ты басу( бағдарламаның орындалуы басталады ).

Бағдарлама UART жұмысын таратудың асинхронды және жоғары жылдамдық режимінде көрсетеді. Мәліметтерді жіберу үшін UART интерфейсінің екі пернесінің біреуі пайдаланылады:

-       0-9 дейін ондық  сан мағыналары үшін SendByte(Dec) ;

-       01H – 3FH байттары үшін SendByte(Hex). 09H-тан жоғары байттар бейне бетте CGRAM белгі генераторы символдары ретінде көрсетіледі, ал жарықдиодтар өзгермейді.

Екі перненің біреуін басып, бейнебетке шыққан терезеге кез - келген  санды немесе байтты қажеттілігіне қарай жазыңыз. Бейнебетте қабылданған сан немесе белгі генераторы шығады, ал жарықдиодтар екілік кодтағы мәліметтерді көрсетеді.

6.2.1     Бағдарлама листингі.

ZADERZH EQO 0x20

BUF EQU 0x21

ORG 0x0000

BCF PCLATH, 3

BCF PCLATH, 4

GOTO BEGIN

ORG 0x0004

BEGIN

CLRF STATUS                              ; 0 банкі

CLRF PORTB                                ; В портын тазалау

BSF STATUS, PRO                       ; 1 банк

CLRF TRISB                                 ; В порты - шығыс

MOVLW 0x19

MOVWF SPBRG                           ; беру жылдамдығы 9,6 Кбит/с

BSF TRI                                         ; RC6 - кіру

BSF, TRISK                                   ; RC7 - кіру

MOVLWW 0x24

MOVWF TXSTA                           ; АС және ВС режимі, таратуға рұқсаты

беру

BCF STATUS, PRO                       ; 0 банкі

MOVLW 0x90

MOVWF RCSTA                           ; UART қосу, қабылдауға рұқсат беру

CALL L0007                                  

CLRF W

L0001:

BTFSC PIR1, RCIF                        ; қабылдағыш буферін тексеру

GOTO L0002                                  ; толық буфер

GOTO L0001                                  ; бос буфер

L0002:

MOVF RCREG, W

MOVWF PORTB                           ; В портына берілген байт

MOVWF BUF

CALL L0007                                   ; п/п үзіліс

CLRF W

L0003:

BTFSC PIR1, TXIF                        ; таратқыш буферін тексеру

GOTO L0004                                  ; бос буфер

GOTO L0003                                  ; толық буфер

L0004:

MOVF BUF, W

ADDLW 0x30                                 ; CGDRAM адресін түзету

MOVWF TXREG                           ; таратқышты жүктеу

CLRF RCREG

CLRF TXREG

GOTO L0001

L0007:                                                      ; п/п үзіліс

MOVLW 0x05

MOVWF ZADERZH

L0005:

DECFSZ ZADERZH, 1

GOTO L0005

RETURN

L0006:

GOTO L0006                                  ; шексіз цикл

END

 

6.2 сурет – орындалу үстіндегі бағдарламаның экрандағы көрінісі

 

6.3       Есеп мазмұны

 

-       жұмыс мақсаты;

-       бағдарлама листингі және оның сипаттамасы;

-       бағдарламаның экрандағы көрінісі;

-       қорытынды.

 

6.4       Бақылау сұрақтары

 

1)    UART модулін қалай қосады?

2)    Қабылдау режиміне UART-ы қалай дайындайды?

3)    Жоғары жылдамдықта беру режиміне UART-ты қалай дайындайды?

4)    Қабылданған байт мағынасына 3 ОН не үшін қосылады?

5)    Жарықдиодтар нені көрсетеді?


Әдебиеттер тізімі

 

1.     Новиков Ю.В., Скоробогатов П.К. – Основы микропроцессорной техники. – М.: БИНОМ. Лаборатория знаний, 2006.

2.     Тавернье К. PIC – Микроконтроллеры. – М.: ДМК Пресс, 2003.

3.     Трамперт В. AVR-RISC микроконтроллеры. – К.: «МК-Пресс», 2006.

4.     Техническая документация. Однокристальные 8-разрядные FLASH микроконтроллеры. – М.: ООО «Микро-Чип», 2002.

  

Мазмұны

 

Кіріспе                                                                                                             3

1       Зертханалық жұмыс. Визуалды сигнал беру                                              4

2       Зертханалық жұмыс. Параметр регистрінің жад блокноты                       7

3       Зертханалық жұмыс. Қадамдық қозғалтқыш арқылы басқару                  10

4       Зертханалық жұмыс. Аналогты сигналдарды цифрлау                             14

5       Зертханалық жұмыс. Сұйық кристалды индикатор                                   18

6       Зертханалық жұмыс. Қабылдағыш-таратқыш UART                                 26

Әдебиеттер тізімі                                                                                             30