Автор работы: Пользователь скрыл имя, 19 Марта 2013 в 18:43, реферат
Транзистордың пайда болуы ЭЕМ жылдамдығын секундына он және жүз мың операцияларды орындайтын халге жеткізді. ЭЕМ элементтерінің құрамына транзистор, диодтар, резисторлар, конденсаторлар қосылды. Мұндай ЭЕМ-дер екiншi ұрпақтың машиналарына жатты. Құрамына электрондық элементтердiң үлкен санын қосатын интегралды микросұлбалар қолданысқа ене бастауы ЭЕМ-нің үшiншi және одан ары қарайғы түрлері жылдамдықтарын тағы бірнеше есе көбейтті және адамның оны басқаруына, жеңіл пайдалануына жол ашты.
Бағдарлама жадысы (EPROM) құрамына тұрақты есте сақтау жүйесін қосқан және бағдарламаларды сақтауға арналған. Микросұлба түріне қарай ТЕСҚ өшірілетін және тазаланатын түрлері қолданылады.
Мәліметтерді көрсету регистрі (DPTR) 16 разрядты адресті сыртқы жадыға немесе бағдарлама жадысына сақтауға арналған.
Стек көрсеткіші (SP) кұрамына сегізразрядты регистрді қосқан, кез келген жады ұяшығына мәліметтерді уақытша сақтай алатын жадының ерекше аймағын қалыптастыруға арналған.
2-БӨЛІМ
МИКРОКОНТРОЛЛЕРЛЕРДІҢ ЖЕКЕЛЕНГЕН ТОПТАРЫ
2.1. Бiр кристалды микроконтроллер, 78K0R/LG3-M
Renesas Electronics компаниясы электр
энергиясын есептейтін
2.1.-сурет. Бір кристалды 78K0R/LG3-M микроконтроллер
Айырмашылық ерекшелiктері:
2.2. 8-биттік микроконтроллерлер, XC82/XC83Smart
XC82x және XC83x сериялары 24 Мгц
жиiлiкте жұмыс iстейтiн 8-
Микроконтроллерлердiң ең маңызды мiнездемелерiне коммуникациялық интерфейстер, генерациялы ендік импулсті модулятор сигналы және көп каналды 10 биттiк АЦТ, сонымен бірге төмен энергия тұтынудың қауіпсіз режимін жатқызуға болады. Микроконтроллердің стандартты 8 биттiк мәлiметтердi өңдеуiн көбейту/бөлу модулі арқылы математикалық сопроцессор жылдамдатады. Бұл микроконтроллерлердiң базасында қозғалтқыштардың басқару жүйелерi үшiн тиiмдi және интеллектуалды шешiмдердi құруға мүмкiндiк бередi.
2.2-сурет. Infineon микроконтроллерлерiнің сұлбасы
Ерекшелiктері:
Микроконтроллерлердiң XC82x/XC83x
топтары сенсорлық басқару
3-БӨЛІМ
МИКРОКОНТРОЛЛЕРДІҢ КОМАНДАЛАР ЖҮЙЕСІ
Микроконтроллердің командалар жүйесі логикалық, арифметикалық операцияларды орындауға, сондай-ақ нақты уақыт режимінде басқарып жұмыс істеуіне улкен мүмкіндік береді.
Командалар жүйесін шартты түрде бес бөлімге бөлуге болады.
Командалар жүйесінде қолданылатын символдар және белгілеулер кестесі
Белгіленуі, символ |
Тағайындалуы |
А |
Аккумулятор |
Rn |
Таңдалған регистор |
r |
Командада көрсетілген жүктелген регистордың номері |
direct |
Тура адрестелген 8-биттік ішкі мәліметтердің адрес ұяшығы |
@Rr |
Ішкі ЖЕСҚ мәліметтерінің адрестелетін 8-биттік ұяшығы |
data8 |
8-биттік тікелей мәліметтер |
dataH |
16-биттік тікелей |
dataL |
16-биттік тікелей |
addr11 |
11-биттік адрес |
addrL |
Тағайындалған адрестің кіші биттері |
disp8 |
8-биттік байт |
bit |
Тура адрестік бит |
a15, a14...a0 |
Адрес биттері |
(Х)[M] |
Х элементінің М разряды |
+ - * / AND OR XOR /X |
Операциялар: Қосу Алу Көбейту Бөлу Логикалық көбейту (және операциясы) Логикалық қосу (немесе операциясы) 2 модулі арқылы қосу Х элементінің инверсиясы |
Микроконтроллерлерде қолданылатын операндтар
Белгіленуі |
Функциясы |
ADC |
Тасымалдаумен қосу |
ADD |
Тасымалдаусыз қосу |
ADIW |
Тікелей мағынада қосу |
AND |
Логикалық AND-ны орындау |
ANDI |
Логикалық AND-ны тіклей мағынада орындау |
ASR |
Арифметикалық оңға жылжыту |
BCLR |
Жалауды тазалау |
BLD |
Бит регисторына Т жалаушасын жүктеу |
BRBC |
Бит регистор жағдайында тазаланған жағдайда өту |
BRBS |
Бит регистор жағдайында орнатылған жағдайда өту |
BRCC |
Тасылмалдау жалаушасы тазаланған жағдайда өту |
BRCS |
Тасылмалдау жалаушасы орнатылған жағдайда өту |
BREQ |
Тең жағдайда өту |
BRGE |
Тең немесе үлкен болған жағдайда өту |
BRHC |
Жартылай тасылмалдау жалаушасы тазаланған жағдайда өту |
BRHS |
Жартылай тасылмалдау жалаушасы орнатылған жағдайда өту |
BRID |
Глобалды үзуге тыйым салынған кезде өту |
BRIE |
Глобалды үзуге рұқсат етілген кезде өту |
BRLO |
Аз болған жағдайда өту (белгісіз) |
BRLT |
Аз болған жағдайда өту (белгімен) |
BRMI |
Минус кезде өту |
BRNE |
Тең емес кезде өту |
BRPL |
Плюс жағдайда өту |
BRSH |
Тең немесе үлкен болған жағдайда өту (белгісіз) |
BRTC |
Т жалаушасы тазаланған жағдайда өту |
BRTS |
Т жалаушасы орнатылған жағдайда өту |
BRVC |
Аса толу тазартылған кезде өту |
BRVS |
Аса толу орнатылған кезде өту |
BSET |
Жалаушаны орнату |
BST |
Т жалаушасына регистрдан битті жазу |
CALL |
Келесі программаны шақыруды орындау |
CBI |
I/O регистрінде битті өшіру |
CBR |
Регистрдағы битты өшіру |
CLC |
Тасымалдау жалаушасын тазарту |
CLH |
Жартылай тасымалдау жалаушасын тазарту |
CLI |
Глобалды үзу жалаушасын тазарту |
CLN |
Теріс мағына жалаушасын тазарту |
CLR |
Регистрді тазалау |
CLS |
Белгі жалаушасын тазарту |
CLT |
Т жалаушасын тазарту |
CLV |
Аса толу жалауын тазарту |
CLZ |
Нольдік мағыналы жалауды тазарту |
COM |
Бірлікке дейін толықтыруды орындау |
CP |
салыстыру |
CPC |
Тасымалдау есебімен салыстыру |
CPI |
Константпен салыстыру |
CPSE |
Тең болса салыстыру және тексеру |
DEC |
Декрементирлеу |
EOR |
Шығаруды орындау |
ICALL |
Келесі программаны жанама шақыру |
IJMP |
Жанама өту |
IN |
I/O портынан мәліметтерді регистрге жазу |
INC |
Инкрементирлеу |
FMUL |
Бөлшекті көбейту |
FMULS |
Сандық бөлшекті көбейту |
FMULSU |
Белгілі және белгісіз (белгісі жоқ) бөлшекті көбейту |
JMP |
Өту |
LD Rd,X |
Жанама жүктеу |
LD Rd,X+ |
Соңынан инкреминтерлеу арқылы жанама жүктеу |
LD Rd,-X |
Алдын ала инкреминтерлеу арқылы жанама жүктеу |
LDI |
Тікелей мағынада жүктеу |
LDS |
Тікелей мағынада ЖЕСҚ-тан жүктеу |
LPM |
Программа жадысына байтты жүктеу |
LSL |
Логикалық солға жылжыту |
LSR |
Логикалық оңға жылжыту |
MOV |
Регистрді көшіру |
MUL |
Көбейту |
NEG |
Екіге дейін толықтыру |
NOP |
Бос команданы орындау |
OR |
Логикалық OR-ді орындау |
ORI |
Логикалық OR-ді тікелей мәнмен орындау |
OUT |
I/O портына регистрден мәліметтерді жазу |
POP |
Стектен регистрді жүктеу |
PUSH |
Стекке регистрді орнату |
RCALL |
Келесі программаны қатысты шақыру |
RET |
Бастапқы программаға кайта оралу |
RETI |
Үзілуден қайта оралу |
RJMP |
Қатысты өту |
ROL |
Тасымалдау арқылы солға жылжыту |
ROR |
Тасымалдау арқылы оңға жылжыту |
SBC |
Тасымалдаумен шегеру |
SBCI |
Тасымалдаудың тікелей мәнімен шегеру |
SBI |
I/O регисторына битті орналастыру |
SBIC |
I/O регистрінде бит тазаланған болса өткізу |
SBIS |
I/O регистрінде бит орнатылған болса өткізу |
SBIW |
Созден тікелей мәнімен шегеру |
SBR |
Регистрге битті орналастыру |
SBRC |
Регистрде бит тазаланған болса өткізу |
SBRS |
Регистрде бит орнатылған болса өткізу |
SEC |
Тасымалдау флагын орнату |
SEH |
Жартылай тасымалдау флагын орнату |
SEI |
Глобалды үзу флагын орнату |
SEN |
Теріс мән флагын орнату |
SER |
Регистрдің барлық биттерін орнату |
SES |
Белгі жалаушысын орнату |
SET |
Т жалаушасын орнату |
SEV |
Толу жалауын орнату |
SEZ |
Нолдік мәне жалауын орнату |
SLEEP |
SLEEP режимін орнату |
ST X,Rr |
Жанама жазу |
ST Y,Rr |
ЖЕСҚ-қа регистрден Ү индексін қолданып жазу |
ST Z,Rr |
ЖЕСҚ-қа регистрден Z индексін қолданып жазу |
STS |
Тікелей ЖЕСҚ-қа жазу |
SUB |
Тасымалдаусыз шегеру |
SUBI |
Тікелей мәнге шегеру |
SWAP |
Ниббл орындарын ауыстыру |
TST |
Нолге немесе минусқа тексеру |
WDR |
Таймерді түсіру (нолге айналдыру) |
Микроконтроллер директивалары
ДИРЕКТИВА |
Мәні |
Мысал |
Басқару директивасы | ||
CONSTANT |
Символдық константты анықтау |
constant cnt=255 |
#DEFINE |
Алмастыру үшiн мәтiндiк тiзбектi анықтама |
#define snd portsnd, 1 |
END |
Программа блогiнiң соңы |
end |
EQU |
Тұрақты шаманың анықтамасы |
temp equ 0xF0 |
ERROR |
Қателiк туралы хабар |
error "error line" |
ERROR LEVEL |
Листингтiң файлында қателiк түрiндегi және файл қателерi туралы хабар қондыру |
errorlevel 1, -202 |
INCLUDE |
Қоректендірудің басқа файлын қою |
include <addmain.asm> |
LIST |
Егер алдын ала тыйым салынған болса форматты (микроконтроллер типі, жолдағы символдар саны) анықтауға рұқсат етеді |
list p=17c42, f=INHX32, r=DEC |
MESSG |
Қолданбалы хабарлама құру |
messg "see here!" |
NOLIST |
Қорытындыға тыйым салу |
nolist |
ORG |
Программаның бастапқы адресi орнату |
org 0x100 |
PAGE |
Листингтiң файлына беттi қыстыру |
page |
PROCESSOR |
Микроконтроллердiң түрiн орнату |
processor 16F84 |
RADIX |
Мәлiметтерлердi бiлдiру үшiн үндемеу бойынша есептеу жүйесiн орнату |
radix dec |
SET |
Тұрақты шаманың анықтамасы. EQU ұқсас, бiрақ кейiнiректе қайта анықтауға болады |
temp set b'00110011' |
SPACE |
Листингтiң файлына жаңа жолды қыстыру |
space 3 |
SUBTITLE |
Листингтiң файлына екiншi тақырыпты қыстыру |
subtitle "Main Project" |
TITLE |
Листингтiң файлына тақырыпты қыстыру |
title "Project Of PIC" |
#UNDEFINE |
Белгiлi мәтiндiк тiзбектi алып тастау |
#undefine snd |
VARIABLE |
Нышандық айнымалының анықтамасы |
variable temp=0xF0 |
Шарт | ||
ELSE |
(IF) баламалы шартты блокгінің басы |
else |
ENDIF |
Шарттың блогiн аяқтау |
endif |
ENDW |
ПОКА циклінің аяқталуы |
endw |
IF |
Шарттың блогiн басы |
if version == 100 |
IFDEF |
Выполнить, если определено |
ifdef testing |
IFNDEF |
Егер анықталынған болса орындау |
ifndef testing |
WHILE |
ПОКА циклы |
while i < count |
Мәліметтер | ||
CBLOCK |
Тұрақты шамалардың блогiн анықтама |
cblock 0x20 |
CONFIG |
Микроконтроллердiң кескiнiнiң битiне сипаттама |
config H'FFFF' |
DATA |
Сандық және мәтiндiк мәлiметтерді жасау |
txt data "please", 0x30 |
DB |
Мәлiметтерлер байтының анықтамасы |
temp db 0xFF |
DE |
EEPROM-де мәлiметтерлердi анықтау |
temp de 0xF0, 0xF1 |
DT |
Кестені анықтау |
temp dt "text", 0, 0x30 |
DW |
Мәлiметтерлер (2 байт) сөзінің анықтамасы |
temp dw 39, "text" |
ENDC |
Тұрақты шамалардың блогiн аяқталу |
endc |
FILL |
Тұрақтылар облысының толтыруы |
fill 0x1009, 5 |
IDLOCS |
ID анықтау |
idlocs H'FFEE' |
RES |
Жадтың сақтауы |
buffer res 64 |
Микроконтроллер жадысын ұйымдастыру
PIC16F87X микроконтроллерлерінде
жадының үш түрі бар.
Бағдарлама жадасын ұйымдастыру. PIC16F87X микроконтроллері РС командасының 13-разрядты санағышына ие, ол бағдарлама жадысының 8К×14 сөздерін адрестей алады. PIC16F877-де 8К×14 FLASH бағдарлама жадысыны физикалық түрде іске асырылған. Физикалық орындалмаған жады бағдарламаларын шақыру орындалған жадының адрестеуіне әкеледі. Бастапқы күйге келтіру векторының адресі – 0000h. Үзу векторының адресі – 0004h.
Деректер жадысын ұйымдастыру. Деректер жадысы жалпы және арнайы (SFR) тағайындалған регистрлері бар 4 банкке бөлінген. RP1 (STATUS<6>) және RPO (STATUS<5>) биттері ақпарат банктерін басқару үшін арналған. Төмендегі кестеде деректер жады банктерін шақыру кезіндегі басқарушы биттердің күйі көрсетілген.
5.1-кесте
RP1:RP0 |
Банк |
00 |
0 |
01 |
1 |
10 |
2 |
11 |
3 |
Деректер жады банкісінің көлемі 128 байт (7Fh) болады. Банктің бас жағында арнайы тағайындалған регистрлеры, одан кейін статикалық ОЕҚ ретінде орындалған жалпы тағайындалған регистрлеры орналасады. Барлық іске асырылған банктердің арнайы таағйындалған регистрлеры болады. Кейбір, жиі қолданылатын арнайы тағайындалған регистрлеры басқа да жады банктерінде бейнеленуі мүмкін.
4-БӨЛІМ
МИКРОКОНТРОЛЛЕРЛЕР АДАМ ӨМІРІНДЕ
Қазіргі заманғы техникалық прогрестің ерекше белгісі – адамның тіршілік әрекетінің барлық салаларында электроника және микроэлектроника құралдарының көмегімен басқарылатын техниканың қолданылуы болып табылады. Бұл уақытта ақылды кибернетикалық машиналардың қолданылуы күнделікті іске айналды. Тұрмыста берілген бағдарламамен жұмыс істейтін ас істейтін, ыдыс және кір жуатын машиналар басқа да адамның жұмысын жеңілдететін техникалыр пайдаланылады.
Ғылым мен техниканың кез-