Курсова работа по „Микропроцесорна техника” Студент: Недялко Николов Проверил: III курс, фн 0526004 /доц. В. Христов/ 2008 Задание 17



Дата02.02.2017
Размер123.25 Kb.
#14042


ЮЗУ”НЕОФИТ РИЛСКИ” – БЛАГОЕВГРАД

Природо-математически факултет

Катедра „КСТ”
КУРСОВА РАБОТА

По „Микропроцесорна техника”

Студент: Недялко Николов Проверил: .......................

III курс, ФН 0526004 /доц. В.Христов/

2008

Задание 17
Да се разработи МПС със следната структура:

- 4 kB EPROM реализирана чрез ИС с организация 2 k x 8;

- 32 kB SRAM;

- АЦП за входни сигнали в диапазона 0.16 - 1.6 v;

- динамична индикация с 8 седемсегментни индикатора;

- 16 бутонна клавиатура и интерфейс RS 232-C.


Съдържание на обяснителната записка /8-10 страници/:

- структурна схема на устройството;

- функционално описание на работата на устройството;

- принципна електрическа схема;

- спецификация на използваните елементи;

- примерна асемблерна програма за инициализация и управление на една от използваните в проекта ГИС /ПИА, АСИА, таймер и т.н./.







Микропроцесор

Микропроцесорът 80C51 е разработка на фирмата Philips по технологиата high-density(висока плътност ) CMOS.

Той садържа:


  • 4k x 8 ROM и 128 x 8 RAM

  • 32 входно/изходни порта

  • два 16-битови броячи/таимери

  • сериен входно/изходен порт

  • пет вида прекъсвания с две нива на приоритет

  • сериен канал – пълен дуплекс UART

  • Булев процесор

  • собствен oscillator и clock

  • разширени температурни граници;

80С51 съдържа две различни адресни пространства – за програмна памет и памет за данни. Съответно 64к ROM и 64k RAM.

Софтуерно чипът може да се програмира в два режима на работа - Idle mode (празен ход) и Power down mode (режим с ниска консумациа). Режима idle спира работата на процесора, но позволява паметта (RAM), таимерите, серийният порт и IRQ да продалжат своята работа. При power down съдаржанието на RAM се запазва, но осцилатора спира да работи, като това е причина всички останали функций да са неизпълними.

80C51 може да адресира до 65 536 байта памет. Той има четири скоростни обхвата при Vcc=5V: 12MHz, 16MHz, 24MHz и 33MHz.

Фиг. 1 Обобщена схема на МК 80С51

Микропроцесор 80C51 разполага с четири порта като :

Port0 - Порт за данни и адресен порт (този порт най-напред генерира младшият байт на външния адрес (А0-А7) и след това обменя данни).

Port1 - Универсален порт (общо предназначение)

Port2 - Адресен порт (за подаване на старшия байт от адреса при обмен с външната памет (А8-А15).

Port3 - Специализиран порт

P3.0: RxD – Вход за серийния обмен

P3.1: TxD – Изход за серийния обмен

P3.2: INT0 - Вход 0 за външно прекъсване

P3.3: INT1 - Вход 1 за външно прекъсване

P3.4: T0 - Таимер 0 външен вход

P3.5: T1 - Таймер 1 външен вход

P3.6: WR - Запис във външна памет

P3.7: RD - Четене от външна памет

Входните сигнали (Input) от изводите на първите три порта Port0, Port1 и Port2 се насочват директно към магистралата за данни. Входните сигнали от последния порт Port3 се насочва към съответните интегрирани блокове – таймерите, сериен обмен, прекъсвания и др.

Чрез входовете XTAL1 (X1) и XTAL2 (X2) се определя честотата на тактовият генератор, като за целта външно за микропроцесора се връзват кондензатори и кварцов генератор.

RESET е вход за начално установяване на 80C51. За целта на този вход трябва да се подаде висок сигнал (еденица) за два машинни цикъла, по времето когато тактовият генератор работи.

Vss – земя (маса)

Vcc – захранващо напрежение

RST - Reset




Фиг.2 Блокова схема на МК 80С51



ПАМЕТИ

Паметите използвани в тази микропроцесорна система са SRAM и EPROM. SRAM (Static Random Access Memory) е 32kB и е в организациа 32k x 8. Производство на фирма Hitachi HM6256A е CMOS static RAM с бързо време за достъп и ниска консумация. Тя има три изходни състояние и възможност за директна комуникация с TTL схеми.

А0–А14 - адресни входове, служещи за адресация на паметта

I/O - входове или изходи за данни. Това дали са входове или изходи зависи от сигнлите на OE и WE

CS - вход за избор на чипа

OE - разрешаване на изходите

WE - разрешаване на запис в паметта

Фиг.4 Hitachi HM6256A SRAM памет.

Чипът на EPROM е М2716 (производител SGS – Thomson Microelectronics) с организация 2k x 8. В този проект са използвани две интегрални схеми, за да се получи желания от нас обем 4kB. За тази цел адресните и данновите входове се връзват заедно. Това в кой от чиповете ще се записва или чете се определя чрез специален извод на интегралната схема. Той се нарича избор на чипа и при подадено ниско ниво на този вход чипът е активен т.е. може да работим с него.




Фиг.5 Изводи на EPROM M2716


А0-А10-адресни входове

Q0–Q7-данни

EP - избор на чипа

Vpp - Program Supply

Vcc - Supply Voltage

Тази селекция на чиповете се използва не само при EPROM, а при почти всички интегрални схеми в МПС. Използването на CS и EP позволява правилната комуникация на микропроцесора с отделните части в тази МПС. Това се постига с използването на дешифратор (адресен дешифратор), чийто управляващи входове са свързани към адресната шина на микропроцесора. Така при различни адресни комбинации само един от чиповете в системата е активен и комуникира с процесора.

Организация: Трите чипа са свързани паралелно. А0-А10 на EPROM са свързани към А0-А10 на МК, а адресните входове А0-А14 на SRAM към А0-А14 на МК-ра. Данновите входове са свързани към Port1 на МК.



Дешифратор

В този проект е използван дешифратор DM74LS138 на фирмата Fairchild semiconductor Corporation, който има три входа за данни и осем изхода. Входовете Е1, Е2, Е3 служат за разрешаването на чипът, A0, A1, A2 са свързани към входовете на МК 80С51 съответно към А15, А14 и А13. Изходите Q7 и Q6 управляващи за EPROM и Q5 към CS на SRAM.




Фиг. 6 Изводи на DM74LS138

Фиг. 7 Логическа схема на Дешифратор DM74LS138

Таб.1 Логическа таблица на дешифратора




H = High Level (Високо ниво)

L=Low Level (Ниско ниво)

X= без значение

Забележка: G2=G2A+G2B


Таб.2 Експлоатационни състояние на дешифратора.



МПС садържа още блок клавиатура, блок индикация и АЦП (аналогово-цифров преобразувател).



Клавиатура, индикация и PIA

Клавиатурата и индикациата комуникират с процесора посредством PIA (периферен интерфеисен адаптор). Използваният PIA тук е MC6821, тази схема има два входно/изходни порта, порт за данни и управляващи сигнали.


Фиг. 8 Изводи на PIA MC6821

Входно/изходните портове могат програмно да се конфигурират като входове или изходи, в зависимост от какво точно се нуждаем.

CA1, CA2, CB1, CB2 - входове за прекъсване, подадено от периферно устроиство

IRQA, IRQB - изходи за подаване на заявка за прекъсване от PIA към микропроцесора

CS0, CS1, CS2 - избор на чипът

RESET - начално установяване



Фиг. 9 Блок-схема на MC6821

Клавиатурата в тази МПС е 16 бутонна, бутоните са свързани в тип матрица към два от изходите на PortB. На същите тези входове се подава високо ниво през две съпротивления, свързани към +5V.

Другите изводи на бутоните са свързани към PortA (всеки по отделно към извод от PortA), който програмно е осигурен, така че да се получи бягаща нула на изводите му. По този начин при натискането на бутон от клавиатурата се получава ниско ниво на извода на PortB, към който е сварзан бутонът. Това ниско ниво се подава и на входа на логическа схема И-НЕ, чийто изход е свързан към CA1. Така лесно се установява кой от бутоните е бил натиснат, тъй като във всеки един момент се знае на кой от изходите на PortA има логическа 0 и се засича редът и колоната в които имаме логически нули.



Индикация

Индикацията използвана тук е с 8 седемсегментни индикатора, които използват същият принцип като клавиатурата (бягаща нула). Тази бягаща нула тук се използва като се подава на общия катод на индикаторите, а останалите им изводи се връзват заедно към специална схема (в този случай 7447), наречена преобразувател BSD в седемсегментен код. Тази схема преобразува подаденият й двуичен код в код за управление на тези индикатори. По този начин, тъй като се знае във всеки момент каде е нулата в PortA ,то лесно можем да преценим кога и кой код за съответният индикатор, да се подаде на ИС7447.



Интерфейс RS232

МПС разполага още и с интерфеис RS232, осъществен на базата на ИС MAX232.





Фиг.10 Интерфйс MAX232 (RS232)

Стандартния RS232 описва несиметричен интерфейс между приемопредавателна апаратура, работеща в режим на последователен обмен на данни със скорост най-често 19 200 b/s.

Стандартно се приема, че дължината на връзката между две устройства не може да бъде по-голяма от 15 метра. При работни напрежения по линията ±5V, какъвто е случая при връзка между миктроконтролери, максималната дължина не трябва да надвишава 5 метра при скорост на обмен до 9 600 b/s.

Използван е 9-изводен конектор тип D-shell. Функциите на деветте проводника са следните:


  1. CD – Carrier Detected – детектиране на връзката (откриване на носеща честота по модема);

  2. RxD – Received Data - приемани данни;

  3. TxD – Transmited Data – предаване на данни;

  4. DTR – Data Terminal Ready – готовност на изхода (сигнал към модема);

  5. SGND – Signal Graund – сигнал земя;

  6. DSR – Data Set Ready – готовност на модема за предаване;

  7. RTS – Request to Send – запитване към модема за предаване на данни;

  8. CTS – Clear to Send – линията е чиста за предаване;

  9. RI – Ring Indikator – индикатор за предаване.

Фиг. 11 Конектор

Микроконтролерите обикновено не използват пълните възможности на интерфейса и връзката между тях и персоналния компютър често се осъществяват по трипроводна линия. За целта се използват буфери, най-разпространените от които са MAX 232 съвместимите. Основното предназначение на тези схеми е да съгласува TTL нивата, постъпващи от микроконтролерите с тези на RS232. Буферът включва два предавателя и два приемника, което позволява организация на връзка между два или три точки, т.е. микропроцесорът може да се свърже максимум към две устройства.

АЦП

Имаме също и АЦП с обхват от 0.16V до 1.6V. Той е реализиран с AD574A. Схемата използва 12 разредния биполярен преобразувател на фирмата Analog Devices АЦП - AD574A. Изходите на АЦП са номерирани от 11 (MSB) до 0 (LSB). В схемата е избран вариантът на двукратно четене на изходния код (8-битов интерфейс) чрез 12/8 = 0. Стартирането на преобразуването може да се осъществи чрез отрицателен импулс на входа на CS=0, CE=1 и R/C=0. При А0=0, се реализира 12-битово преобразуване с продължителност 15-35 µs, а ако А0=1, - 8-битово преобразуване за 10-20 µs, след завършване на преобразуването изходът STATUS се нулира.

 

Фиг.12 Блок-схема на АЦП AD574A

Табл.3


ЕЛЕКТРИЧЕСКА СХЕМА






Списък на елементите:



Елемент

Наименование

Количество

Забележка

U1

Микропроцесор 80C51

1




U2

MAX232

1




U3

SRAM HM62256A

1




U4, U5

EPROM HN48016P

2




U6

74LS138 Дешифратор

1




U7

MC6821 ПИА

1




U8

7447

1




U9

АЦП ADC574A

1




U10

Логически елемент

1




U11

Инвертор







VT1-VT8

2Т6821 Транзистори

8




Q1-Q7

NPN










Резистори







R1-R8

680

8




R9-R15

10к

7




R17-R23

4.7к

7




R24-R25

3.3к

2



















Кондензатори







C1-C4



4




C5-C6

10µ

2




DISP1-DISP8

Седемсегментни индикатори AMBER

8




S1-S17

Бутони

16




P1

Конектор

1




4MHz

Кварцов резонатор

1
















Програма:

MOV TH1, #0FDH ;задава стоиност за презареждане на таймер

MOV DPTR, #2000H ;начален адрес, от който е разположен блокът от данни

MOV SCON, #50H ;режим 1 за работа на серийния канал и разрешава приемане

MOV TMOD,#20 ;задава режим 2 на Т/C1 и определя работата в таймерен режим

MOV PCON, #80H ;задава 16 като делител на честотата на таймера

SETB TR1 ;старт на таймер 1

Процедура за приемане:

PRIEM: PUSH 0 ;съхранябане на R0 и А в стека

PUSH E0H


ET1: MOV R0,#0 ;нулиране на брояча за край на блока от данни

ET2: JNB RI,ET2 ;изчакване до завършване на приемането на един байт

CLR RI ;разрешаване на следващо приемане

MOV A, SBUF ;зареждане на приетия байт в А

MOVX @DPTR, A ;запис на байта във външната RAM

INC DPTR


CJNE A,#0FFH,ET1 ;преход при А различно от FFH

INC R0


CJNE R0,#5,ET2 ;преход, ако броячът не е 5,т.е. ако не е срещнат край на блока

POP 0 ;възстановябане на А И R0 от стека

POP E0H

RET


Процедура за предаване:

PRED: PUSH 0

PUSH E0H

ET3: MOV R0,#0 ;нулиране на брояча за край на блока от данни

ET4: JNB TI ET4 ;изчакване да завърши предаването на предходния байт

CLR TI


MOVX @DPTR, A ;прехвърляне на байта от паметта в А

MOV SBUF, A ;предаван на байта

INC DPTR

CJNE A,#0FFH,ET3

INC R0

CJNE R0,#5,ET4



POP 0

POP E0H


RET




Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница