- •Содержание
- •Введение
- •Общая часть
- •Анализ технической задачи и возможные способы реализации поставленной цели
- •Выбор программных и аппаратных средств для реализации поставленной задачи
- •Обзор программы CodeVisionAvr
- •Обзор программы Altium Designer
- •Основные элементы
- •Подбор lcd-экрана
- •Стабилизатор напряжения
- •Выбор микроконтроллера
- •Исследование рынка
- •Специальная часть
- •Работа частей устройства
- •Общие положения обработки данных
- •Реализация передачи данных на lcd –дисплей
- •Главный цикл системы
- •Основные файлы в проекте на CodeVisionAvr
- •Тестирование устройства и условия эксплуатации
- •Составление эксплуатационной спецификации
- •Табл 1. Спецификация радиодеталей Заключение
- •Список использованной литературы
Главный цикл системы
Главный цикл служит точкой входа в программу для дальнейшего его выполнения, далее приводится код главной функции и главного цикла программы, в комментариях объяснено что за что отвечает.
Далее приведен код основного файла main__.c, который содержит главную функцию и основной цикл программы:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.9 Professional
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Author : test
Company : test
Chip type : ATmega8
Clock frequency : 4,000000 MHz
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <delay.h>
unsigned char i;
int n_sim=1,m_end=500; //m_end - общее количество символов в исходной строке;
char ish_str[] = " Dannaya textovaya stroka operiruyet na microkontrollere AVR Atmega8. Cod scompilirovan na CodeVision AVR. " ;
void beg_str(void)
{
for(i=0;i<15;i++)lcd_write_byte(0xC0+i,lcd_read_byte(0xC1+i));
lcd_gotoxy(15,1); // указали место курсору во второй строке
lcd_putchar(ish_str[n_sim]);
if(++n_sim>m_end)
{n_sim=1;};
delay_ms(100);
}
void main(void)
{
PORTB=0x04;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
while (1)
{
beg_str();
lcd_gotoxy(0,0,);
lcd_putsf("Stroka Texta");
// Place your code here
};
}
Основные файлы в проекте на CodeVisionAvr
Основной особенностью CVAVR является то, что данный компилятор позволяет автоматически генерировать начальный код с помощью мастера начальной настройки, и мы, конечно же, воспользуемся этой возможностью при реализации начального кода интерфейса передачи по шине кода управления LCD-дисплеем.
В проекте, после генерации всех данных кодов будут автоматически сформированы 1 заголовочный файл –lcd.h.
Вся реализация и вызов процедур осуществляется в исходном файле проекта – main__.с, в этом же файле реализован бесконечный цикл, который каждый раз проверяется наличие обновлений данных от датчика. Выше перечисленные являются основными, кроме них еще стандартные файлы самого микроконтроллера Atmega8 и стандартные файлы языка C, которые не приведены.
Тестирование устройства и условия эксплуатации
Проект был оттестирован и просиммулирован в программном симмуляторе Proteus.
Проект был оттестирован и просиммулирован в программном симмуляторе Proteus. В ходе тестирования были получены следующие рабочие характеристики:
Загрузка CPU в пределах 30-40%;
Стабильная работа при питании от 4,5 В до 5,5 В;
Тактовая частота процессора 8Mhz, при испытаниях был опробован резонатор с частотой 4Mhz, при котором микроконтроллер работал в штатном режиме, такой подход может сыкономить электричество, при использовании портативных источников питания;
Рис. 7. Скриншот проекта в симмуляторе Proteus
