Коммерциялық емес акционерлік қоғам
АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ
«Электроника» кафедрасы
АҚПАРАТТЫҚ БАСҚАРУ ЖҮЙЕЛЕРІ
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 ; банк 3
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 =
инструкцияның
енгізілуі |
Pin no. 5 |
R/W |
0 =
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 Line – RW линиясы үшін порт таңдау – 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