Автор работы: Пользователь скрыл имя, 30 Мая 2013 в 12:54, курсовая работа
Микроконтроллеры являются наиболее массовым представителем микропроцессорной техники. Интегрируя на одном кристалле высокопроизводительный процессор, память и набор периферийных устройств, микроконтроллеры позволяют с минимальными затратами реализовать широкую номенклатуру систем управления различными объектами и процессами.
Использование микроконтроллеров в системах управления и обработки информации обеспечивает исключительно высокие показатели эффективности при столь низкой стоимости, что микроконтроллерам практически нет альтернативной элементной базы для построения качественных и дешевых систем. Во многих применениях система может состоять только из одного микроконтроллера. Исключением может стать применение ПЛИС в области обработки сигналов в том случае, когда требуется параллельная обработка большого потока входных данных.
ВВЕДЕНИЕ 4
1.1 Этапы проектирования устройства на базе микро-ЭВМ 5
1.2 Особенности архитектуры однокристальных микро-ЭВМ семейства ATMEL 10
1.3 Программирование микро-ЭВМ 10
2 СТРУКТУРНО-ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ 17
3 СХЕМОТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ 19
3.1 Подключение элементов схемы 19
3.2 Расчёт дискретных элементов 23
4 РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ МИКРО- ЭВМ 25
ЗАКЛЮЧЕНИЕ 27
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 28
Приложение А
БрГТУ.08900 – 08 12 00
Министерство образования Республики Беларусь
Учреждение образования
«Брестский государственный технический университет»
Кафедра «ЭВМ и системы»
РАЗРАБОТКА ЦИФРОВОГО
(текст программы)
БрГТУ.08900 – 08 12 00
Листов: 3
Выполнил
студент 5 курса группы ПЭ-6 Шульжик А.С.
Проверил: Е. Г. Волков
#include <stdio.h>
#include <REG51.H>
#define ESC 0x1B
char buffer[6];
ns = 0;
unsigned int cnt,a,r;
unsigned char codeTable[11] = {0x0C0, 0x0F9, 0x0A4, 0x0B0, 0x99,
0x92, 0x82, 0x0F8, 0x80, 0x98, ESC};
unsigned char *pcodeTable;
void T1Isr(void) interrupt 1 using 1
{
if(RI == 1){
RI = 0;
if(SBUF == '/'){
r = parser(ns);
ns=0;
}else {
buffer[ns] = SBUF;
ns++;}
}
}
int parser(unsigned int len)
{
unsigned int i,pr=0;
a=0;
for(i=0; i<len; i++)
{
if(buffer[ns]==':'){
pr = a + (buffer[i++] - '0');
if((pr%2)==0) init_timer();
return 0;
}
a = a*10+(buffer[i] - '0');
}
}
void print(void) interrupt 0 using 1
{
cnt++;
if (cnt > (a*100))
{
cnt = 0;
P1 = *pcodeTable;
pcodeTable++;
if (*pcodeTable == ESC){
pcodeTable = codeTable;
ET0=0;
}
}
}
void init_uart()
{
SCON = 0x52;
TH1 = 0xFD;
TMOD |= 0x20;
TR1 = 1;
RI = 0;
}
void init_timer()
{
TH0 = 0x0DB;
TL0 = 0x0F2;
TMOD |= 0x2;
ET0 = 1;
EA = 1;
TR0 = 1;
}
void main(void)
{
cnt=0;
P1 = 0x0;
init_uart();
while (1);
}
Информация о работе Разработка цифрового исполнительного устройства на базе микроконтроллера ATMEL