Автор работы: Пользователь скрыл имя, 17 Апреля 2013 в 10:57, курсовая работа
Семейство 8-разрядных микроконтроллеров 68НМ08/908, выпуск которых начался в 1995г., является дальнейшим развитием семейства 68НС05/705. В этом семействе реализованы концепции, которые обеспечивают существенное увеличение производительности микроконтроллеров и расширение их функциональных возможностей. Микроконтроллеры этого семейства предназначены для замены семейства 68НС05/705 в новых разработках. Сохраняя архитектуру семейства 68НС05/705, микроконтроллеры 68НС08/908 позволяют обеспечить более высокие технико-экономические характеристики устройств, реализуемых на их основе.
ВВЕДЕНИЕ 4
1. Теоретическая часть
1.1. Структура микроконтроллера MC68HC908GP32 5
1.2. Организация памяти и портов ввода/вывода микроконтроллера 8
1.3. Организация прерываний в микроконтроллере 12
1.4. Цифровая индикация 15
2. Разработка аппаратной части МКУ
2.1. Постановка задачи 19
2.2. Разработка функциональной схемы 20
2.3. Описание принципиальной электрической схемы МКУ 21
3. Разработка программного обеспечения МКУ
3.1. Описание интегрированной среды разработки WinIDE 25
3.2. Описание программы 29
ЗАКЛЮЧЕНИЕ 34
Список используемой литературы 35
После каждого изменения интервала
времени производиться
Рисунок 3.1. Блок-схема
Программа на языке Ассемблера
Prog:
RomStart: equ $8000 ;Назначается начальный адрес ;прикладной программы.
VectorStart equ $ffdc ;Назначается адрес двух ячеек памяти, в ;которые необходимо поместить адрес ;начала прикладной программы.
оne: equ $40 ;Команда присвоения EQU назначает ;адрес первой ячейки памяти ОЗУ МК, ;которое будет использовано в ;программе.
Questions equ $41 ;информация о количестве опросов.
Qut1 equ $42 ;на индикацию.
Qut2 equ $43 ;на индикацию.
Qut3 equ $44 ;на индикацию.
OneCount equ $45 ;считает ноль.
DigitTAB equ $50
******************************
Главная программа
main mov #$00,$20 ;T1SC счетчик тактируется СК.
mov #$00,$21 ;T1MOD=20мксек.
mov #$28,$22
mov #$26,$2В ;T2SC таймер тактируется СК/64.
mov #$09,$2E ;T2MOD=0,02сек.
mov
#$С4,$2F
mov #$FF,$06 ;РТС-выход.
mov #$0E,$05 ;РТВ1-3 –выход.
mov #$06,$01 ;индикаторы
в закрытом состоянии.
mov #$3,OneCount ;OneCount<3.
mov #$10,$20 ;бит TRST сбрасывает счетчик.
ml: Ida $20 ;A<- TISC.
and #$80 ;проверяем флаг TOF (переполнение).
beq ml ;если 1,то проверяем еще раз
******************************
Чтение сигнала на входе
Ida $00 ;А<-РТА.
inc question ;question<question+1
and #$1 ;А< -- AA#$1.
bne Zero ;ветвление, если на входе 0.
dbnz OneCount,ml ;OneCount< -- OneCount-1,
;ветвление если не 1.
jmp output ;вывод на индикацию.
Zero mov #$3, OneCount ;OneCount< --3.
jmp ml ;продолжаем опрос.
Вывод на индикацию
Output Ida question ;А<- question.
Idx #$A ;x<--10.
div
sta out1 ;А<out1.
stx out2 ;А<out2.
sta out3 ;А<out3.
ldhx #(DiditTab) ;H:X<--#(
txa
add out2 ;учитываем смещение в таблице
tax
Ida |
- X |
;загрузить в А кодировку для ;индикатора | |
sta |
$02 |
;А -- >РТС | |
bclr |
1,$01 |
;включаем 2-ой разряд | |
bsr |
IndDealy |
;задержка 0,02сек | |
bclr |
1,$02 |
;включаем 3-ий разряд | |
bsr |
IndDealy |
;задержка 0,02сек | |
bset |
1,$01 |
;выключаем | |
bset |
3,$01 |
;звук | |
jmp |
* |
;> | |
IndDealy: |
mov |
#$06,$2b |
;запуск TIM2 |
m4: |
Ida |
$2b |
;A< - T2SC |
and |
#$80 |
;проверяем флаг TOF( |
beq |
m4 |
;если 1,то проверяем еще раз | |
its |
;выход | ||
****************************** Секция векторов | |||
org |
Vector Start |
||
dw |
Dummy Isr |
;Time Base Vector | |
dw |
Dummy Isr |
;ADC Conversion Complete | |
dw |
Dummy Isr |
;Keyboard Vector | |
dw |
Dummy Isr |
;SCI Transmit Vector | |
dw |
Dummy Isr |
;SCI Receive Vector | |
dw |
Dummy Isr |
;SCI Error Vector | |
dw |
Dummy Isr |
;SPI Transmit Vector | |
dw |
Dummy Isr |
;SPI Receive Vector | |
dw |
Dummy Isr |
;TIM2 Overflow Vector | |
dw |
Dummy Isr |
;TIM2 Chanel 1 Vector | |
dw |
Dummy Isr |
;TIM2 Chanel 0 Vector | |
dw |
Dummy Isr |
;TIM1 Overflow Vector | |
dw |
Dummy Isr |
;TIM1 Chanel 1 Vector | |
dw |
Dummy Isr |
;TIM1 Chanel 0 Vector | |
dw |
Dummy Isr |
;PLL Vector | |
dw |
Dummy Isr |
;IRQ1 Vector | |
dw |
Dummy Isr |
;SWI Vector | |
dw |
main |
;Reset Vector | |
****************************** Ложное прерывание | |||
Dummy Isr |
rti |
||
Кодировка сегментов прерывания | |||
org Digit Tab db
$C0,$F9,$A4,$B0,$99,$92,$82,$ |
ЗАКЛЮЧЕНИЕ
По полученному заданию была проделана работа, в целях которой было необходимо на базе МК семейства MC68HC908GP32 фирмы Motorola разработать микроконтроллерное устройство для выполнения опроса сигнала на входе. Также было разработано и отлажено программное обеспечение микроконтроллерного устройства в интегрированной среде программирования ICS08GPGTZ (WINIDE).
При выполнении данной работы был получен ценный опыт разработки подобных устройств. Получены навыки в разработке программ на языке ассемблер, а также закреплены знания, полученные на занятиях по курсу «Основы микропроцессорной техники».
Список используемой литературы
ПРИЛОЖЕНИЯ
Приложение А2
Поз. |
Наименование |
Кол. |
Примечание |
Дешифратор |
|||
DD1 |
К514ИД1 |
1 |
|
Микроконтроллер |
|||
DD2 |
MC68HC908GP32 |
1 |
|
Конденсаторы |
|||
С1 |
К10 |
1 |
10нФ |
С2 |
К10 |
1 |
33мкФ |
С3,С4 |
К10 |
2 |
3пФ |
Семисегментные индикаторы |
|||
HL1…HL3 |
АЛС324А |
3 |
|
Пьезодинамик |
|||
LS1 |
SCS – 24P10 |
1 |
|
Кварцевый резонатор |
|||
QZ |
CSA460MG |
1 |
|
Резисторы |
|||
R1 |
МЛТ-0.5 |
1 |
560 Ом |
R2 |
МЛТ-0.125 |
1 |
10 кОм |
R3 |
МЛТ-0.125 |
1 |
20 МОм |
R4 |
МЛТ-0.125 |
1 |
350 кОм |
Транзисторы |
|||
VT1…VT3 |
КТ315Г |
3 |