КІРІСПЕ
Қазіргі заманда микропроцессорларды қолданбайтын техника аймағын табу қиын. Олар
.
РЕФЕРАТ
Дипломдық жұмыс 70 беттен, 49 суреттен, 14 пайдаланған әдебиеттен
Негізгі ұғымдар: микроконтроллер, интерфейс, CodeWarrior, порт, программа, код, импульс,
Жұмыстың мақсаты: 16 разрядты микроконтроллердің перифериялы модульдерін терең зерттеу.
Зерттеу жұмыстарының өзектілігі: Қазіргі таңда микроконтроллерлер көптеген заманауи техникаларда
Зерттеу объектісі: MC9S12C128 микроконтроллерінің перифериялы модульдері
Жұмыстың нәтижелері: Келесідей зерттеу жұмыстары жасалынды:
Таймер модулінің кірісін ұстап алу режимі
Микроконтроллердің ШИМ (кең импульсті модуляция) модулі
Берілген параметрлері бар жекелеген импульстер генерациясы
Аналогты-цифрлы түрлендіргіштің модулі
SPI тізбекті синхронды интерфейс
SCI тізбекті асинхронды интерфейсі
Зерттеу жұмысының нәтижелері құрылғыларды басқаруда және автоматтандыруда кеңінен қолданысқа
HCS12 БІР КРИСТАЛДЫ МИКРОКОНТРОЛЛЕРЛЕР КЛАСЫ
Кластардың жалпы сипаттамасы
Freescale Semiconductor компаниясы (Motorola компаниясының жартылай өткізгішті
Қазіргі уақытта Freescale Semiconductor өндірушілерге микроконтроллерлердің және интегралданған микропроцессорлардың
8 разрядты МК HCS08 класы бойынша ұсынылған;
16 разрядты МК HCS12(X) және DSP56800/E кластары бойынша
ұсынылған;
32 разрядты ColdFire, PowerPC және iMx кластары бойынша ұсынылған.
Freescale Semiconductor портфеліндегі МК-дің кең таралған әр түрлілігіне және
Әрбір кластың құрамындағы МК-дің моделдерінің көпшілігі автомобильдік сұранысқа ие,
Freescale Semiconductor компаниясының оналтыразрядты МК-лері қазіргі уақытта екі түрлі
HCS12(X) класының МК негізгі қолдану аясы- өндірістік автоматика және
МК-дің классы үдестірілген басқару жүйелерінің интелектуалды түйіндері ретінде жұмыс
EEPROM маңызды облысындағы көптеген МК-лер моделдерінің құрамында болуы, автомобилдік
HCS12(X) класы негізінде CPU12 процессорлы ядро жатыр. CPU12 жалпы
CPU12 процессорлық ядросы тактілеу жиілігінің жиілігінің жоғарлауын алып жүруші
Кластың басты секторы – ішкі шинаның жиілігі 8
Қазіргі уақытта белсенді түрде қолданылатын HCS12 процессоры –
Freescale Semiconductor компаниясының МК тұтынушылары процессорлық ядро типіне сәйкес
Процессорлық ядроның техникалық сипаттамаларының айырмашылығына қарамастан HCS12(X) класы МК-нің
8 және 16 разрядты операндылармен операциялар жүргізуге мүмкіншілік беретін,
Программаның flash - жадысының енгізілген модулі бар. HCS12 және
HSC12(X) класының көптеген моделдерінің кристалында flash ТЕСҚ-ның арнайы, EEPROM
HCS12(X) класының МК-нің көлемі үлкен (512КБ-қа дейін) резидентті ТЕСҚ-сы
Клас модульдерінің кітапханасының екі жаққа бағытталған жеке программаланатын желілері
HSC12(X) класының барлық МК-лері кристалда BDM ішкі схемалық дұрыстау
2 ELVIS_S12C128ЭКСПЕРИМЕНТАЛДЫ – ЛАБОРАТОРИЯЛЫҚ ҚОНДЫРҒЫСЫ
2.1 Қондырғының жалпы сипаттамасы
ELVIS_S12C128 эксперименталды қондырғының сыртқы көрінісі 2.1 суретте көрсетілген. Қондырғы
Екінші тақша – PBMCUSLK әмбебап платформасы. Бұл платформа
CSMB12С128 тақшасы + ДК. Екі компонент бір-бірімен USB кабелдің
CSMB12С128 тақшасы + PBMCUSLK платформасы + ДК. Бірінші компонент
CSMB12С128 тақшасы + PBMCUSLK тақшасы + ELVIS платформасы +
2.1 сурет - ELVIS_S12C128 қондырғының сыртқы көрінісі
MC9S12C128 микроконтроллерімен зерттеу жүргізудің 4 нұсқасы бар. Бұл жұмыс
2.2 Микроконтроллердің тақшасы
80 шығысымен QFP корпусында - MC9S12C128 біркристалды микроконтроллер. Ретке
2.2.1 сурет - CSMB12С128 тақшасының сыртқы көрінісі
4-жарықдиод(LED1..LED4). Осы элементтерді жағатын активті деңгей логикалық нөл болып
4-ауыстырып-қосқыш(SW3-1..SW3-4). Олардың схемотехникалық құрылғысы дрезбергтен аппараттық қорғауды қамтымайды. Қажет
2-белгіленбеген батырмалар (SW1 және SW2). Олардың
1-потенциометр(RV1). Микроконтроллердің AD портының 5-ші кірісіне кернеудің аналогты деңгейін
1-фотодатчик(RZ1). Фототранзисторды негізінде орындалған. Сигнал одан операциялық күшейткішпен
RS-232 интерфейсі тізбекті асинхронды интерфейс бойынша микроконтроллер мен компьютер
CSMB12С128 тақшасының компьютермен бірге жұмыс режимі келесідей түрде жүзеге
2.2.2 сурет - CSMB12С128 тақшасында құрылғыларды қосудың функционалдық схемасы
Аталған құрылғылар мен зерттеліп жатқан микроконтроллердің функционалдық схемасы 2.2.2
2.2.3 сурет - CSMB12С128 тақшасында ұстатқыштардың орналасуы
Тақшаны компьютерге қоспас бұрын оған 2.2.3 суретте көрсетілгендей ұстатқыштарды
2.2.4 сурет - CSMB12C128 тақшасы үшін драйверді орнату
Жаңа құрылғыны орнату мастерінде ең алдымен интернет жүйесінен
2.2.5 сурет - CSMB12C128 тақшасы үшін драйверді орнату
содан кейін “Далее >” батырмасын басамыз (2.2.5 сурет).
2.2.6 сурет - Драйверді іздеу және оны орнату
Ары қарай драйверді іздеу және оны орнату іске асырылады
2.2.7 сурет - CSMB12C128 тақшасы үшін драйверді орнатудың аяқталуы
CSMB12C128 тақшасы + PBMCUSLK тақшасы
PBMCUSLK тақшасы – Freescale Semiconductor компаниясының микроконтроллерлерін зерттегенде
сурет - CSMB12C128 модулінің J1 тіркеуішін ажырату
CSMB12C128 тақшасы 5В кернеуге ие, ал PBMCUSLK платформасы 3.3-5В
2.3.2 сурет - CSMB12С128 және PBMCUSL тақшаларында және олардың
Қондырғыдағы элементтерді қосар алдында ұстатқыштарды 2.3.2 суреттегідей орнату керек
2.3.3 сурет - PBMCUSL тақшасы үшін драйверді орнату
Осыдан кейін PBMCUSLK тақшасындағы тіркеуіштерді және компьютерді USB-кабельмен
CSMB12C128 тақшасы + PBMCUSLK тақшасы + ELVIS II
ELVIS II қондырғысы микроконтроллерді зерттеу барысында виртуалды құрылғыларды қосуға
DMM сандық мультиметрі. Токтың, кернеудің, кедергінің және басқа да
SCOPE осциллографы. ELVIS II қондырғының бүйірінде немесе PBMCUSLK тақшасының
FGEN функционалды генераторы. Қондырғының бүйіріндегі FGEN шығысында немесе
VPS өзгергіш қорек көздері. Оң және теріс полярлығы бар
ARB өңделген формадағы генератор сигналы. PBMCUSLK тақшасының тіркеуішінде екі
DigIn сандық кодты оқу құралы. PBMCUSLK тақшасында 8 сандық
3 МИКРОПРОЦЕССОРЛЫҚ ЖҮЙЕЛЕРГЕ АРНАЛҒАН CODEWARRIOR ПРОГРАММАЛЫҚ ОРТАСЫ
3.1 Өңдеу ортасының жалпы сипаттамасы
CodeWarrior (ауд.- кодтармен күресші) – енгізілген микропроцессорлық жүйелерге арналған
Программаның «құру» (Build) режимі қосымшаның барлық файлдарын трансляциялауға және
Дұрыстау ррежимдері (Debug) қосымшаны тексеруді және дұрыстауды енгізілген тексерудің
3.1.1 сурет - Интеграцияланған CodeWarrior өңдеу ортасының құрылымы
CodeWarrior пакетінің құрамында бір-бірімен байланысқан программалық модульдербар. Олар: жоба
Freescale Semiconductor компаниясының универсалды өңдеу ортасы негізінде анықталған микросхеманың
CodeWarrior интеграцияланған өңдеу ортасымен танысу аспектісі өте қызықты. Себебі
Бір кластың әр түрлі МК-лерінде орындалған аппараттық құралдарды қосу
3.1.2 сурет - CodeWarrior ортасының программаны түзетуінің қолданбалы графикалық
Дәл нақты контроллермен жұмыс істеу режимінде сияқты толық программалық
CodeWarrior пакетінің программалы-логикалық симуляторы Visualization Tool бөлімін қолданып қолданушының
3.2 CodeWarrior ортасында жоба құру техникасы
Бұл бөлімде MC9S12C128 микроконтроллерінің архитектурасы, оның адрестік кеңістігінің таралуы
Кейбір басқару программаларын жасауға арналған әрбір лабораториялық жұмысты орындау
CodeWarrior өңдеу ортасының енгізілген редакторын қолдана отырып берілген программа
Микроконтроллердің жадына жүктеуге арналған машиналық кодты алу үшін қолданбалы
Микроконтроллер жадына жазылған программаның машиналық кодын жүктеу.
Программаның дұрыс орындалуы үшін керекті берілген мәліметтерді микроконтроллер жадына
Программаның орындалуы,оның жұмыс нәтижесінің сараптамасы.
Жіберілген қателіктерді түзету.
Жоғарыда жазылған тізбекті енгізілетін микропроцессорлық жүйе үшін қолданбалы басқару
операциялар тізбегін орындау қажет. Ол үшін CodeWarrior Development Studio
3.2.1 сурет - Бастапқы іс-әрекетті таңдау терезесі
Алғашқыда 3.2.1 суретте көрсетілгендей терезе пайда болады. Жаңа жоба
3.2.2 сурет - Жоба құрудың алғашқы терезесі
Осы терезеде (3.2.2 сурет) жоба құратын МК-дің моделін таңдау
Full Chip Simulation – таңдап алынған микроконтроллердің толық программалық
TBDML - Turbo BDM Light интерфейсін қолдану арқылы аппараттық
3.2.3 сурет - Жоба құрудың екінші терезесі
МК-ді таңдағаннан кейін келесі терезеге көшу керек (3.2.3 сурет).
CodeWarrior пакетінің бірнеше программалау тілі бар: ассемблер, С және
3.2.4 сурет - Жоба құрудың үшінші терезесі
Осы терезеде (3.2.4 сурет) жаңадан жасалынып жатқан жобаға дайын
Егер өзге сырт файлдарды қосу керек болса, онда жай
None – қосымша құралдарды пайдаланбау.
Device Initialization – перифериялы құралдарды инициализациялау құралы. Интуитивті түсінікті
Processor Expert – типік функцияларды автоматты түрде құрушы және
3.2.5 сурет - Жоба құрудың төртінші терезесі
Бұл жұмыста микроконтроллерді және оның компоненттерін өз бетінше күйге
4 МК MC9S12C128 ПЕРИФИРИЯЛЫ МОДУЛЬДЕРІН ЗЕРТТЕУ
4.1 Микроконтроллерлер жайлы жалпы түсінік
Зертханалық жұмыс 3 бөлімнен тұрады:
1) «HCS12 класына жататынон алты разрядты микроконтроллерлер » зертханалық
2) Бұрын микроконтроллерлер немесе микропроцессорлар жайлы оқыған тыңдаушыларға
3) С тілін қолдану арқылы MC9S12C128 микроконтроллердің перифериялы
Бір семестрлік курста студенттер тек CSMB12C128 тақшасын қолдануымен шұғылдана
Модуль жұмысының құрылымы және типтік алгоритмы;
Модульдің арнайы функцияларының регистерлері;
Басқарудың типтік есептерінің шешімдері үшін нақты уақытта модульдың
CodeWarrior ортасында программалық қызмет көрсету алгоритімін C тілінде
Жасалған бағдарламардың басқаруымен перифериялы модудьдердің жұмыс істеуін реттеу. Жұмыс
С тілінде программаның жазылу негізін үйрену;
CodeWarrior ортасында микроконтроллер үшін жобаны реттеу және құру техникасын
Әрбір модульді басқару үшін арнайы функция биттері және регистр
Зертханалық жұмыстарда микроконтроллердің нақты перифериялы модульдерін зерттеу бойынша
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептері;
Өзiндiк жұмысқа арналған орташа деңгейдің есептері;
Өзіндік жұмысқа арналған күрделі деңгейдің есептері;
Бірінші топтың тапсырмасы: эталондық мысалдағы программалық кодтың мәтінің өзгерту
4.2 Elvis II қондырғысыныңвиртуальды құралдарының жиыны
Бұл жұмыста ELVISmx жиынына кіретін 3 стандартты виртуалды құралдары
Стандартты құралдар:
1) Екі каналды осциллограф – Scope. Сигналдарды зерттеу үшін
2) FGEN – функционалды генераторы. Құрылған сигнал Elvis II
3) Digital Reader – күй индикаторы. DI немесе DO
Осы жұмыстар үшін 8 арнайы аспаптар жасалынды:
1) Two Channel Generator – құралы. Логикалық деңгейі бар
2) Analog Level – құралы. Аналогтық шығыстың екі
3) Voltage out – құралы. Микроконтроллермен өлшенген кернеудiң мәнiн
4) T out – құралы. Микроконтроллермен өлшенген сигнал периоды
5) ti out – құралы. Микроконтроллермен өлшенген сигнал импульсi
6) f out – құралы. Микроконтроллермен өлшенген сигнал
7) Duty cycle out – құралы. Микроконтроллермен өлшенген
8) Phase difference out – құралы. Микроконтроллермен өлшенген екi
4.3 Таймер модулі кірісін ұстап алу режимін зерттеу
Осы жұмыста микроконтроллер таймері ішкі жүйесінің ұстап
Two Channel Generatorқұралынан тікбұрышты импульстердің тізбегі микроконтроллердің Т портының
#include // EnableInterrupts макроанықтамасы бар басты
//файлдың қосылуы.
#include "derivative.h" // Қызметтік регисторлар
// қосылуы.
unsigned int TCNT_NEW, TCNT_OLD; //Таймер санағышының
//ескі мәндерін сақтайтын
//айнымалылар.
unsigned char T;
//сақтайтын айнымалы.
void main() {
PPST &= ~0x01;
PERT |= 0x01;
TCTL4 = 0x01;
//ағынының қосылуы EDG0B = 0, EDG0A = 1.
TFLG1 = 0xFF;
//алып тастау.
TFLG2 |= 0x80;
//TOF = 1.
TIE = 1;
//рұқсаты C0I = 1.
TSCR2 = 0x01;
//жиіліктерінің тактілеуін орнату,
// fCT = fBUS/2 =1МГц.
TSCR1 = 0x80;
PUCR |= 0x01; //А
// PUPAE =1.
DDRA = 0xFF; // Шығысқа
//сызықтарының инициализациясы.
EnableInterrupts; //Микроконтроллерде үзүлулер рұқсаты.
for(;;) { }
}
interrupt 8 void IC0() { //Таймердің ішкі
//оқиғалар үзүлуінің ішкі программасы.
// Interrupt сөзінен кейін үзүлулер векторының
//нөмері көрсетіледі.
TFLG1 = 0x01
//алып тастау.
TCNT_NEW = TCNT; //Таймер санағышының жаңа мәнін алу.
T = TCNT_NEW – TCNT_OLD; //Периодты есептеу.
TCNT_OLD = TCNT_NEW; //Таймер санағышының ескі мәнінінің
//жаңартылуы.
PORTA = T;
//шығару.
}
CodeWarrior ортасында жаңа жобаны құру төменде көрсетілген. Ең
4.3.1 cурет - Жаңа жоба құру мастерінің бірінші терезесі
Жаңа жобаны құру мастерінің бірінші терезесі пайда болады. Осы
4.3.2 cурет - Жаңа жоба құру мастерінің екінші терезесі
Алда жоба файлдарының орналасуын көрсету қажет (4.3.2сурет). Мұны “Set”
4.3.3 сурет - Жаңа жоба құру мастерінің үшінші терезесі
Осы терезеде қосымшаларды өңдеуді жылдамдату үшін құрал таңдау мүмкіндігі
4.3.4 сурет - Жаңа жоба құру мастерінің төртінші терезесі
ANSI форматындағы бастапқы кодты, Small жадының үлгiсiн және 32
4.3.5 сурет - Жаңа жоба құру мастерінің бесінші терезесі
Енді C тілінің ерекшелiктеріне қатысты жобаның параметрлерiн орнату керек
4.3.6 сурет - Жаңа жоба құру мастерінің алтыншы терезесі
Осы терезеде (4.3.6 сурет) PC-lint бастапқы кодтағы қате іздеу
4.3.7 сурет - CodeWarriorортасының негізгі терезесі
Жаңа жоба конфигурациясының аяқталуымен CodeWarrior ортасындағы негізгі терезе 4.3.7
4.3.8 сурет - Қондырғыдағы контактілердің қосылуы
MCU_PORT(J6 немесе J7)
Жоғарыда келтірілген программалар дұрыс істеуі үшін 4.3.8 суретте көрсетілгендей
Қондырғыдағы манипуляциялардан (қимылдан) кейiн құрылған сигналдың керектi параметрлерiн таңдау
4.4 Микроконтроллердің ШИМ(кең импульсті модуляция) модулін зерттеу
Осы жұмыста микроконтроллердің кең импульстік модуляциясының модулі зерттеледі. Бұл
1. Микроконтроллердiң T портының 0 аяғына Two Channel Generator
#include
//файлдың қосылуы .
#include "derivative.h"
//файлдың қосылуы.
#define Tmin 50
//қолданыстық макроанықтамасы, мкс
#define Tmax 100
//қолданыстық макроанықтамасы,мкс.
unsigned int TCNT_NEW, TCNT_OLD; //Таймер санағышының
// жаңа мәндерін сақтайтын
//айнымалылар.
unsigned char T, g = 50;
//сақтайтын айнымалы,импульстің
//салыстырмалы ұзақтығы пайыз-
//бен көрсетілген.
void main(){//Программаның басты функциясы.
PERT |= 0x01;
//PERT0 = 1.
TCTL4 = 0x01;
//ағымдарының қосылуы.
TFLG1 = 0xFF;
//ларды алып тастау.
TFLG2 |= 0x80;
//тастау TOF = 1.
TIE = 1;
//рұқсаты, C0I = 1.
TSCR2 = 0x01;
//жиілігінің тактілеуін орнату.
//fCT = fBUS/2 = 1МГц
TSCR1 = 0x80;
PWMPOL = 0x08;
//жоғарғы деңгей,одан кейін логикалық 0-дің
//күйі.
PWMCLK = 0;
PWMCAE = 0;
// CAE = 0.
PWMDTY3 = 100;
PWMPRCLK = 0;
//орнату. fB= fBUS= 2МГц.
PWMPER3 = 133;//ШИМ модулінің санағыш периоды ,
//fPWM= fB/133 = 15 кГц.
PWME = 0x08;
// PWME3 = 1.
asm CLI;
for(;;) { }
}
interrupt 8 void IC0() {
//оқиғалар бойынша үзүлулердің ішкі
//программасы.
//Interrupt сөзінен кейін үзүлулер
// векторының нөмері көрсетіледі.
TFLG1 = 0x01;
//алып тастау.
TCNT_NEW = TCNT;
//алынуы.
T = TCNT_NEW – TCNT_OLD;
TCNT_OLD = TCNT_NEW;
//жаңартылуы.
if (T >= Tmax) {
g = 100;
} else { if (T > Tmin) {
g = (unsigned int) ((unsigned int)(100*(T-Tmin)) /
(unsigned char)(Tmax-Tmin)); //Мәліметтер типін түрлендіру
//қолданылды.
} else g = 0;
}
PWMDTY3 = (unsigned char)((unsigned int)(g*PWMPER3) /
(unsigned char)100); //ШИМ каналы үшін салыстыру деңгейінің есептелуі.
}
4.4 сурет - Қондырғыдағыконтактілердің қосылуы
J2тіркеуіші
J2 тіркеуіші
MCU_PORT (J6 немесе J7) Elvis
Программаларды және виртуалды аспаптарды iске қосу алдында 4.4
4.5 Берілген параметрлері бар жекелеген импульстер генерациясын зерттеу
Бұл жұмыста таймер кіріс ұстап алу функциясы және таймер
Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.1-сурет. Шығыс импульсінің параметрлері
Кіріс сигналға жауап ретінде жүретін шығыс сигналын микроконтроллердің көмегімен
#include
#include "derivative.h"
//файлдың қосылуы.
#define ti_out 200
//қолдануының макроанықтамасы.
void main(void) {
PERT |= 0x01;
// PERT0 = PERT1 = 1.
TCTL4 = 0x01;
//ағымдарының қосылуы.
TFLG1 = 0xFF;
//ларды алып тастау.
TFLG2 |= 0x80;
// TOF = 1.
TIOS = 0x02;
//0-ші канал кірістік ұстап алу.
TIE = 0x03;
// рұқсаты, C0I = C1I = 1.
TSCR2=0x00;
//жиілігініңтактілеуін орнату,fCT = fBUS= 2МГц.
TSCR1 = 0x80;
asm CLI;
here: goto here;//Шексіз бос цикл.
}
}
interrupt 8 void IC0() {
//оқиғалар бойынша үзүлулердің ішкі
//программасы
//Interrupt сөзінен кейін үзүлулер
//нөмері көрсетіледі.
TFLG1 = 0x01;
//алып тастау.
TCTL2 = 0x0C;
// 0-ден 1-ге дейінгі ағымы.
TC1 = TCNT+10;
//рациялау фронты үшін салыстыру деңгейінің
//өзгеруі.
TFLG1 |= 0x02;
}
interrupt 9 void IC1() {
//оқиғалар бойынша үзүлулердің ішкі
// прогаммасы.
//Interrupt сөзінен кейін үзүлулер векторының
//нөмері көрсетіледі.
TC1 = TCNT+ti_out*2; //1 каналында салыстыру деңгейін орнату.
TIE &= ~0x02;
TCTL2 = 0x08;
//1 ден 0-ге дейінгі ағымы.
//OM1 = 1, OL1 = 0.
}
}
4.5.2 сурет - Қондырғыдағы контактілердің қосылуы
J2 тіркеуіші
J2 тіркеуіші
MCU_PORT (J6 немесе J7) Elvis II платформасының BNC-тіркеуіші
Программаларды және виртуалды құралдарды iске қосу алдында 4.5.2 суретке
4.6 Аналогты-цифрлы түрлендіргіштің модулі
Бұл жұмыста АЦТ-тің әр түрлі жұмыс істеу режимдері қарастырылады,
Осы жұмыста АЦТ модулімен және оның жұмыс істеу режимімен
Микроконтроллердің AN00 кірісіне Analog Level құралынан кернеудің аналогты деңгейі
#include
#include "derivative.h"
//файлдың қосылуы.
#define PB1 PORTB_BIT0
//макроанықтамасы.
#define DOWN 0
//макроанықтамасы.
#define UP 0
//макроанықтамасы.
#define delay(us); for(delay=us/2;delay!=0;delay--) asm NOP;
//Программалық кешігуді құру кодының макро-
//анықтамасы. Микросекундтар машиналық цикл-
//ге аударылады.
unsigned int delay;
unsigned char BTN = UP; //Батырма
void main() {
PUCR |= 0x03;
//қосылуы .
DDRA = 0xFF;
PORTA = 0x00;
DDRB = 0x00;// В порты желілерің кіріске орнату.
ATDCTL2 |= 0x82; //АЦТ
// бойынша үзүлулердің қосылуы.
delay(50);
//тері оны қосқаннан кейін жұмыс күйіне келу үшін
//қажет.
ATDCTL3 = 0x08; //Әр тізбекте бір
ATDCTL4 |= 0x81; //АЦТ-ның 8-битті рұқсаты және
//жиілігі fATD= fCLK/4 = 1МГц.
ATDCTL5 = 0x00; //AN0 -ның
//және бір тізбекте таңдалған кірістің бір көшірмесі.
asm CLI;
for(;;) {
if (PB1 == UP) BTN = UP; else {
delay(1000);
if (PB1 == DOWN) BTN = DOWN;
else delay(1000);
//онда BTN = DOWN.
}
}
interrupt 22 void ATD0() { //АЦТ
// үзүлулердің қызмет көрсетуі.
if (BTN == UP) PORTA = ATDDR0H;
//онда портқа сандық мәнді
//шығару.
else PORTA = 0x00
ATDCTL5 = 0x00;
//таңдау.Осы кірістен турленген
//сигналдың жаңа тізбегін іске қосу.
}
}
}
4.6 сурет - Қондырғыдағы контактілердің қосылуы
J2 тіркеуіші
J10 тіркеуіші
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
Программаларды және виртуалды құралдарды iске қосу алдында 4.6 суретке
4.7 SPI тізбекті синхронды интерфейсін зерттеу
Бұл жұмыста SPI тізбекті синхронды интерфейсі зерттеледі. Оның ерекшеліктері
Енгізілген SPI модулі арқылы 0x32 кодын тұрақты шығарып тұратын
#include
#include "derivative.h"
#define delay(us); for(delay=us/2;delay!=0;delay--) asm NOP;
//Программалық кешігудің құру кодының макро-
//анықтамасы. Микросекундтар машиналық цикл-
//ге ауысады.
unsigned int delay;
void main() {
PERM |= 0x3C;
DDRM |= 0x3C;
SPIBR = 0x04;
SPICR1 = 0x5C;
//дік активті деңгейі,жұп фронты бойынша өтеу(2,4..).
EnableInterrupts; //Үзүлулер рұқсаты.
for(;;) {
asm LDAA SPISR; // SPISR регистрінің оқылуы.Осы операциямен
// SPTEF жалаушасы алып тасталынады.
SPI = 0x32;
while(SPISR_SPTEF == 0); // Жіберу регистрінің бос қалу
delay(250);
//Кешігу ~ 250 мкс
}
}
4.7.1 сурет - Қондырғыдағы контактілердің қосылуы
MCU_PORT (J6 немесе J7)
Программаларды және виртуалды құралдарды iске қосу алдында 4.7.1 суретке
4.7.2 сурет - Жөнелту кодының синхронды тізбекті интерфейсі бойынша
Программаны орындау нәтижесі 4.7.2 суретте келтірілген.
4.8 SCI тізбекті асинхронды интерфейсін зерттеу
Бұл жұмыста SCI тізбекті асинхронды интерфейсі зерттеледі. Оның ерекшеліктері
Енгізілген SCI модулі арқылы 0x6D кодын тұрақты шығарып тұратын
#include
#include "derivative.h"
#define delay(us); for(delay=us/2;delay!=0;delay--) asm NOP;
//Программалық кешігудің құру кодының макро-
//анықтамасы. Микросекундтар машиналық цикл-
//ге аударылады.
unsigned int delay;
void main() {
PERS |= 0x3C;
//дың қосылуы.
DDRS |= 0x03;
SCIBD = 0x02;
SCICR2 = 0x08;
EnableInterrupts; //Үзүлулер
for(;;) {
asm LDAA SCISR1; // SPISR регистрінің оқылуы.Осы операциямен
// TDRE жалаушасы алып тасталынады.
SCIDRL = 0x32;
while(SPISR_SPTEF == 0); // Жіберу регистрінің бос қалу
delay(250);
asm LDAA SPISR; //
// SPTEF жалаушасы алып тасталынады.
SPI = 0x32;
//Кешігу ~ 250мкс
interrupt 22 void ATD0() { //АЦТ
// үзүлулердің қызмет көрсетуі.
if (BTN == UP) PORTA = ATDDR0H;
//онда портқа сандық мәнді
//шығару.
}
}
}
4.8.1 сурет - Қондырғыдағы контактілердің қосылуы
MCU_PORT (J6 немесе J7) Elvis
Программаларды және виртуалды құралдарды iске қосу алдында 4.8.1 суретке
4.8.2 сурет - Жөнелту кодының асинхронды тізбекті интерфейсі бойынша
Программаны орындау нәтижесі 4.8.2 суретте келтірілген
ҚОРЫТЫНДЫ
Бұл жұмыста он алты разрядты МК МС9S12C128 перифериялы
Таймер модулінің кірісін ұстап алу режимін зерттеу.Осы жұмыста
Микроконтроллердің ШИМ(кең импульсті модуляция) модулін зерттеу. Бұл жұмыста микроконтроллермен
Берілген параметрлері бар жекелеген импульстер генерациясын зерттеу. Бұл жұмыста
Аналогты-цифрлы түрлендіргіштің модулін зерттеу. Бұл жұмыста АЦТ-нің бірканалды және
SPI тізбекті синхронды интерфейсін зерттеу. Бұл жұмыста енгізілген SPI
SCI тізбекті асинхронды интерфейсін зерттеу. Бұл жұмыста енгізілген SCI
Қорытындылай келе микроконтроллерді студенттерге зертханалық жұмыстар жүргізуде қолдану өте
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
Т. Ремизевич, Д. Доброхотов, Лабораторный практикум «Шестнадцатиразрядные микроконтроллеры семейства
Ахметов М. 16-разрядные микроконтроллеры Hitachi, Mitsubishi, Motorola, NEC, Toshiba
3 Бьярне Страуструп. Программирование: принципы и
4 Гусев В.Г. Электроника
5 Тревис Дж.,
6 Гутников В.С. Интегральная электроника
7 Опадчий Ю.Ф.,Глудкин О.П., Гуров А.И. Аналоговая и цифровая
8 Фрунзе А. В. Микроконтроллеры? Это же просто! //
9 Батоврин В.К., Бессонов А.С., Мошкин В.В.: LabVIEW: Практикум
10 Гребнев В.В. Микроконтроллеры AVR // издательство:радиософт 20027- 174
11 Иванов Ю.И., Югай В.Л Микропроцессорные устройства систем
12 С. Ф. Баррет, Д. Дж. Пак , Встраиваемые
13 Ю. А. Шпак, Программирование на языке C для
14 Досжан Н.С., Курманов Е.Б. Применение технологии отладки программы
ҚОСЫМША А
Таймер модулі кірісін ұстап алу режимін зерттеу
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептерi
1) Микроконтроллердiң T портының 1-ші аяғына Two Channel Generator
2) Микроконтроллердiң T портының 0 аяғына Two Channel Generator
3) Микроконтроллердiң T портының 0 аяғына Two Channel Generator
4) Микроконтроллердiң T портының 0 аяғына Two Channel Generator
5) Микроконтроллердiң T портының 2-ші аяғына Two Channel Generator
Өзiндiк жұмысқа арналған орташа деңгейдің есептерi
1) Микроконтроллердiң T портының 0 аяғына Two Channel Generator
2) Микроконтроллердiң T портының 2-ші аяғына Two Channel Generator
3) Микроконтроллердiң T портының 4-ші аяғына Two Channel Generatorқұралымен
4) Микроконтроллердiң T портының 6-шы аяғына Two Channel Generator
5) Микроконтроллердiң T портының 0 аяғына Two Channel Generator
6) Микроконтроллердiң T портының 3-ші аяғына Two Channel Generator
7) Микроконтроллердiң T портының 5-ші аяғына Two Channel Generator
8) Микроконтроллердiң T портының 7-ші аяғына Two Channel Generator
Өзіндік жұмысқа арналған күрделі деңгейдің есептері
1) Микроконтроллердiң T портының 0 аяғына Two Channel Generator
2) Микроконтроллердiң T портының 1 аяғына Two Channel Generatorқұралынан
3) Микроконтроллердiң T портының 2-аяғына Two ChannelGeneratorқұралымен құрылған тiкбұрышты
4) Микроконтроллердiң T портының 4-аяғына Two Channel Generator құралымен
5) Микроконтроллердiң T портының 0 және 1 аяқтарына Two
6) Микроконтроллердiң T портының 2 және 3-аяқтарына Two Channel
7) Микроконтроллердiң T портының 4 және 5 аяқтарына Two
8) Микроконтроллердiң T портының 3 және 6 аяқтарына Two
ҚОСЫМША Б
Микроконтроллердің шим (кең импульсті модуляция) модулін зерттеу
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептерi
1) Микроконтроллердің кірістерінің біреуіне Two Channel Generatorқұралынан берілетін тікбұрышты
2) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан берілетін
3) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
4) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
5) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
6) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
7) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
8) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
Өзiндiк жұмысқа арналған орташа деңгейдің есептерi
1) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
2) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
3) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
ti-кіріс сигналының импульс ұзақтығы, fout – шығыс сигналының импульс
4) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан берілетін
ti-кіріс сигналының импульс ұзақтығы, fout– шығыс сигналының импульс
5) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
6) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
7) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
8) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
Өзіндік жұмысқа арналған күрделі деңгейдің есептері
1) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
2) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
3) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
4) Микроконтроллердің кірістерінің біреуіне Two Channel Generator құралынан
5) Микроконтроллердің кірістеріне Two Channel Generator құралынан
Микроконтроллермен құрылған ШИМ-сигналды басқаратын осы 2 сигнал
6) Микроконтроллердің кірістеріне Two Channel Generator құралынан
Микроконтроллермен құрылған ШИМ-сигналды басқаратын осы 2 сигнал
7) Микроконтроллердің кірістеріне Two Channel Generator құралынан
Микроконтроллермен құрылған ШИМ-сигналды басқаратын осы 2 сигнал
8) Микроконтроллердің кірістеріне Two Channel Generator құралынан
Микроконтроллермен құрылған ШИМ-сигналды басқаратын осы 2 сигнал үшін
ҚОСЫМША В
Берілген параметрлері бар жекелеген импульстер генерациясын зерттеу
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептерi
1) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды
4.5.3 сурет - Шығыс импульсінің параметрлері
2) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды
4.5.4 сурет - Шығыс импульсінің параметрлері
3) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.5 сурет - Шығыс импульсінің параметрлері
4) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды
4.5.6 сурет - Шығыс импульсінің параметрлері
Өзiндiк жұмысқа арналған орташа деңгейдің есептерi
1) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.7 сурет - Шығыс импульсінің параметрлері
2) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.8 сурет - Шығыс импульсінің параметрлері
3) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.9 сурет - Шығыс импульсінің параметрлері
4) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.10 сурет - Шығыс импульсінің параметрлері
5) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.11 сурет - Шығыс импульсінің параметрлері
6) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.12 сурет - Шығыс импульсінің параметрлері
7) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.13 сурет - Шығыс импульсінің параметрлері
8) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.14 сурет - Шығыс импульсінің параметрлері
Өзіндік жұмысқа арналған күрделі деңгейдің есептері
1) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.15 сурет - Шығыс импульсінің параметрлері
2) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.16 сурет - Шығыс импульсінің параметрлері
3) Микроконтроллердің кірісіне ELVISmxқұралдары жиынтығынан алынған функционалды генератор көмегімен
4.5.17 сурет - Шығыс импульсінің параметрлері
4) Микроконтроллердің кірісіне ELVISmx құралдары жиынтығынан алынған функционалды генератор
4.5.18 сурет - Шығыс импульсінің параметрлері
ҚОСЫМША Г
Аналогты-цифрлы түрлендіргіштің модулі
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептерi
1) Микроконтроллердің AN4 кірісіне Analog Level құралынан кернеудің аналогты
2) Микроконтроллердің AN0 кірісіне Analog Level құралынан кернеудің аналогты
3) Микроконтроллердің AN0 кірісіне Analog Level құралынан кернеудің аналогты
4) Микроконтроллердің AN0 кірісіне Analog Level құралынан кернеудің аналогты
Өзiндiк жұмысқа арналған орташа деңгейдің есептерi
1) Микроконтроллердің AN0 және AN5 кірістеріне Analog Level құралынан
2) Микроконтроллердің AN1 және AN3 кірістеріне Analog Level құралынан
3) Микроконтроллердің AN1 және AN3 кірістеріне Analog Level құралынан
4) Микроконтроллердің AN2 және AN4 кірістеріне Analog Level құралынан
5) Микроконтроллердің AN1 кірісіне ELVISmx құралдары жиынтығынан алынған
Өзіндік жұмысқа арналған күрделі деңгейдің есептері
1) Микроконтроллердің AN7 кірісіне ELVISmxқұралдары жиынтығынан алынған функционалды генератор
2) Микроконтроллердің AN5 кірісіне құралдары жиынтығынан алынған функционалды генератор
3) Микроконтроллердің AN3 кірісіне ELVISmx құралдары жиынтығынан алынған функционалды
4) Микроконтроллердің AN1 кірісіне ELVISmx құралдары жиынтығынан алынған функционалды
ҚОСЫМША Д
SPI тізбекті синхронды интерфейсін зерттеу
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептерi
1) Енгізілген SPI модулі арқылы 0x51 кодын тұрақты шығарып
2) Енгізілген SPI модулі арқылы 0xCD кодын тұрақты шығарып
3) Енгізілген SPI модулі арқылы 0x4E кодын тұрақты шығарып
4) Енгізілген SPI модулі арқылы 0xA9 кодын тұрақты шығарып
Өзiндiк жұмысқа арналған орташа деңгейдің есептерi
1) Енгізілген SPI модулі арқылы 0xB2 кодын тұрақты шығарып
2) Енгізілген SPI модулі арқылы 0x7321 кодын тұрақты шығарып
3) Енгізілген SPI модулі арқылы 0x831D кодын тұрақты шығарып
4) Енгізілген SPI модулі арқылы 0x65F3 кодын тұрақты шығарып
5) Енгізілген SPI модулі арқылы 0xC5 кодын тұрақты шығарып
6) Енгізілген SPI модулі арқылы 0x9A кодын тұрақты шығарып
Өзіндік жұмысқа арналған күрделі деңгейдің есептері
1) Енгізілген SPI модулі арқылы және Digital Reader
2) Two Channel Generator виртуалды құралымен және енгізілген SPI
3) Микроконтроллердің AN5 кірісіне Analog Level құралынан кернеудің аналогты
4) Енгізілген SPI модулі арқылы 0x12C0EF кодын тұрақты шығарып
ҚОСЫМША Е
SCI тізбекті асинхронды интерфейсін зерттеу
Өзiндiк жұмысқа арналған бастапқы деңгейдiң есептерi
1) Енгізілген SCI модулі арқылы 0xC3 кодын тұрақты шығарып
2) Енгізілген SCI модулі арқылы 0x4E кодын тұрақты шығарып
3) Енгізілген SCI модулі арқылы 0x51 кодын тұрақты шығарып
4) Енгізілген SCI модулі арқылы 0xDE кодын тұрақты шығарып
Өзiндiк жұмысқа арналған орташа деңгейдің есептерi
1) Енгізілген SCI модулі арқылы 0x9E кодын тұрақты шығарып
2) Енгізілген SCI модулі арқылы 0x860A кодын тұрақты шығарып
3) Енгізілген SCI модулі арқылы 0xAC20 кодын тұрақты шығарып
4) Енгізілген SCI модулі арқылы 0x21 кодын тұрақты шығарып
5) Енгізілген SCI модулі арқылы 0xE987 кодын тұрақты шығарып
6) Енгізілген SCI модулі арқылы 0x032A кодын тұрақты шығарып
7) Енгізілген SCI модулі арқылы 0x51 кодын тұрақты шығарып
8) Енгізілген SCI модулі арқылы 0x032A кодын тұрақты шығарып
Өзіндік жұмысқа арналған күрделі деңгейдің есептері
2) Енгізілген SCI модулі арқылы 0x 12C0EF кодын тұрақты
3) Енгізілген SCI модулі арқылы және Digital Reader
4) Микроконтроллердің AN3 кірісіне Analog Level құралынан кернеудің аналогты
6
PA7
DI7
DI6
PA6
PA5
DI5
DI4
PA4
PA3
DI3
PA2
DI2
PA1
DI1
PA0
DI0
IOCO
DACO
CH0
DACO
CH1
PP3
IOCO
FUNC_OUT
CH0
FUNC_OUT
IOC1
CH1
DACO
AN00
PB1
PB0
MOSI0
CH0
SCK0
CH1
TXD0
CH0
RXD0
CH1