- •Введение
- •Разработка принципиальной схемы модуля памяти
- •Описание принципиальной схемы разрабатываемого микропроцессорного комплекта
- •Заключение
- •128К внешней sram с возможностью расширения до 512к, имеющая ……. ADuC842, а остальные страницы доступны только для размещения данных.
- •Список использованных источников и литературы
Разработка принципиальной схемы модуля памяти
Прежде чем рассматривать внешние модули памяти необходимо определить карты распределения памяти в микроконтроллере и методы адресации памяти.. и для данных (смотри рисунок 17). Также на этом рисунке видно, что дополнительно доступно для использования 640 байт для памяти данных во внешней Flash/EE.
Рисунок 17 - Карты памяти программ и данных ADuC842.
….. блок бит адресуемого места памяти в битовые адреса от 00h до 7Fh.
Рисунок 18 - Нижние 128 байт внутренней ОЗУ.
Место блока регистров специальных функций нанесено на карту в верхних 128 байтах ….. через область блока регистров специальных функций, представлена на рисунке 19.
……
Рисунок 19 - Программная модель ADuC842.
2.6 Проектирование модуля интерфейса пользователя
Согласно варианту задания необходимо разработать модуль интерфейса пользователя со следующими характеристиками:
количество клавиш в клавиатуре – 16 (матричная 4x4);
количество знакомест дисплея – 2 строки по 16 символов.
Модуль интерфейса пользователя должен обеспечивать ввод информации с ….. шиной, клавиатурой и дисплеем потребуются соответствующие буферные схемы.
Таким образом получаем функциональную схему (рисунок 20):
……
В качестве ПИУ выступит микросхема ПЛИС MAX3064, которая входит в состав МПК.
Описание структуры разрабатываемого микропроцессорного комплекта
Описание структуры микропроцессорного комплекта (МПК) приведено на рисунке 21.
В состав разрабатываемого учебного стенда входят:
микроконтроллер ADuC842BS;
…….чателей;
параллельный 16..20-ти разрядный порт;
ОЗУ 256 байт IDATA + 2048 байт XDATA
электрически стираемое программируемое ПЗУ (EEPROM) на кристалле ОКЭВМ ADuC842 (4 Кб);
Таким образом, … устройства, предназначенные для ввода, обработки и вывода дискретных и аналоговых данных
Основные параметры и характеристики основных элементов, входящих в МПК были рассмотрены ранее.
…….
Рисунок 21 - Структура разрабатываемого стенда.
Описание принципиальной схемы разрабатываемого микропроцессорного комплекта
МК ADuC842 может обращаться к внешней памяти данных или какой-либо периферии. При доступе к внешней памяти программ используется сигнал . ………………..Q8. Активный уровень на входе CLR (логический «0») приводит к обнулению содержимого регистра-защелки. Регистры-защелки получают данные по сигналу ALE.
……
Рисунок 22 - Подключение ADuC842 к внешнему ОЗУ
Таблица 2 - Таблица истинности 8-разрядного регистра-защелки 74HCT73W.
INPUTS |
OUTPUT |
||
RESET (MR) |
CLOCK CP |
DATA Dn |
Q |
L |
X |
X |
L |
H |
↑ |
H |
H |
H |
↑ |
L |
L |
H |
L |
X |
Qo |
В U3 попадает младшая часть адреса (A0..A7), в U7 – старшие 4 бита адреса (A16..A19). Бит A19 . линии. Это не ошибка, а специальный прием, применяемый при проектировании печатных плат и позволяющий упростить разводку проводников.
При замыкании JP11 сигнал PSEN замыкается на корпус через резистор R22. Это переводит ADuC842 в режим загрузки ПО после аппаратного сброса… на разъем J1. Кроме того, выходы DAC0 и DAC1 можно замкнуть на входы ADC0 и ADC1 с помощью переключателя SW1.
5 Разработка программной части
Разработка программной части для реализации вывода на дисплей заданного ………. обеспечивающий вывод заданной последовательности символов, написанный на языке С.
Для трансляции . языке C, сохраняя ………ные в инструментальные средства Keil, обеспечивают полный доступ к ресурсам микроконтроллеров 8051.
……..
Рисунок 23 - Блок-схема программы для стенда
Программный код:
#include «ADuC842.h»
#include «lcd.h»
#include «…………………………..
{
LCD_GotoXY(i,j);
LCD_Type("...SDK...");
i++;
if (i==15) i=0,j++;
if (j==2) j=0;
}
}
//----------------------------------
void SwitchCurPosControl(bit o)
{
……………………..
,c & 0xFE);
for (i=0;i<300;i++)continue;
}
//----------------------------------
void LCD_Clear(void)
{
int i;
WriteMax(DATA_IND, CLEAR);
Strobe(0x8);
cur_x = 0;
cur_.
...............................
x=0,cur_y=~cur_y;
}
WriteMax(DATA_IND,ch);
Strobe(0xC);
}
//----------------------------------
void LCD_GotoXY(unsigned char x,bit y)
{
……………………
while(*s)
LCD_Putch(*s++);
SwitchCurPosControl(t);
}
Алгоритм программы построен таким образом, что при необходимости может без внесения существенных изменений в код выводить на экран разрабатываемой ……………..). Этим обуславливается наличие переменной j, обозначающей номер строки.
В программном коде используются следующие процедуры:
Main( ),
SwitchCurPosControl ( ),
LCD_......
( ),
LCD_Type( ).
Main( ) – основная программа. Выполняет действия по алгоритму, указанному на блок-схеме (рисунок 23). Переменным i и j, определяющим положение курсора, присваиваются нулевые значения.
SwitchCurPosControl ( ) – процедура переключения позиции курсора. Используется процедурой вывода строки на дисплей.
LCD_Clear( ) – процедура очистки дисплея. Опрашивается значение флага BF. Записывается в DATA_IND код команды установки адреса DD RAM на 0x01. Устанавливается значение RS=0, R/W=0 и выставляется строб E. Для этого в ……………..
………… дисплея, процедура прекращается. В противном случае вызывается функция установки адреса DD RAM с соответствующими параметрами.
LCD_Type( ) – процедура вывода строки на дисплей. Процедура выводит на дисплей С строку, указатель на которую передаётся ей в качестве атрибута. В цикле осуществляется последовательный вывод символов строки.
