Автор работы: Пользователь скрыл имя, 08 Декабря 2010 в 00:24, Не определен
Целью курсовой работы является разработка программы «Цифровой амперметр с выводом результатов на алфавитно-цифровом индикаторе» с помощью микропроцессора ATmega8. Текст программы написан на языке С с помощью компилятора Code Vision AVR С Compiler
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
В современном мире микроконтроллеры окружают нас со всех сторон. Научно – технический прогресс неутомимо идет вперед, в результате не только в промышленной, но и в бытовой технике все шире используются встроенные компьютерные системы на основе микроконтроллеров. Они широко применяются в персональных компьютерах и их периферийных устройствах, стиральных машинах, музыкальных центрах и т.д. Микроконтроллеры являются сердцем многих современных устройств и приборов, в том числе и бытовых. Самой главной особенностью микроконтроллеров, с точки зрения конструкторов-проектировщиков, является то, что с их помощью легче и зачастую гораздо дешевле реализовать различные схемы [1]
Микроконтроллер может управлять различными устройствами и принимать от них данные при минимуме дополнительных узлов, так как большое число периферийных схем уже имеется непосредственно на кристалле микроконтроллера. Это позволяет уменьшить размеры конструкции и снизить потребление энергии от источника питания.
Вследствие наличия большого количества конкурентов на рынке микроконтроллеров их цена постепенно снижается при увеличении периферии на чипе. На данный момент наиболее известными фирмами по производству микроконтроллеров являются Omron, Microchip, Motorola, Atmel AVR, Texas Instruments и другие.
Микроконтроллеры семейства Mega имеют наиболее развитую периферию, наибольшие среди всех микроконтроллеров AVR объемы памяти программ и данных. Они предназначены для использования в мобильных телефонах, в контроллерах различного периферийного оборудования (такого как принтеры, сканеры, современные дисковые накопители и т.п.), в сложной офисной технике и т.д [2]
Целью курсовой работы является разработка программы «Цифровой амперметр с выводом результатов на алфавитно-цифровом индикаторе» с помощью микропроцессора ATmega8. Текст программы написан на языке С с помощью компилятора Code Vision AVR С Compiler.
1. Теоретическая часть
Необходимо разработать проект, демонстрирующий цифровой амперметр, выводящий результаты на алфавитно-цифровой индикатор, реализованный при помощи микроконтроллера Atmega8 семейства AVR фирмы Atmel. Данный проект должен быть написан на языке С в среде Code Vision AVR C Compiler, а также произведены отладка и анализ полученных результатов с помощью симулятора.
Микроконтро́ллер — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров [3]
Термин «микроконтроллер» (МК) вытеснил из употребления ранее использовавшийся термин «однокристальная микро-ЭВМ». Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также ARM, архитектуру которых разрабатывает фирма ARM и продаёт лицензии другим фирмам для их производства.
Фирма Atmel была основана в 1984 г. в знаменитой Кремниевой долине (Калифорния, США). В середине 90-х годов ее основной продукцией стали микросхемы памяти и перепрограммируемые МК платформы MCS-51. По сравнению с аналогичными изделиями фирм Intel, Philips, Temic, OKI, Siemens, микросхемы Atmel были дешевле, ни в чем не уступая им по качеству. Всем хороши были МК платформы MCS-51 за исключением энергопотребления и производительности. У архитектуры AVR скандинавская родословная. В 1995 г. два норвежских изобретателя Альф Боген и Вегард Воллен предложили фирме Atmel концепцию нового МК. Идея была принята. Базовые принципы и система команд разрабатывались в норвежском отделении фирмы Atmel совместно со шведскими программистами фирмы IAR Systems. Достоинства AVR: быстродействующий RISC-процессор, FLASH-na-мять с низковольтным напряжением программирования, внутреннее перезаписываемое ЭСПЗУ, мощные выходные порты, широкий диапазон питающего напряжения. И все это при малом потреблении тока, высокой скорости, а главное, при низкой цене.
AVR
— семейство восьмибитных
Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций. Большинство команд занимает только 1 ячейку памяти (16 бит). Большинство команд выполняется за 1 такт [4]
Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.Х [5]
Как
и все микроконтроллеры AVR фирмы
«Atmel», микроконтроллеры семейства ATmega
являются 8-разрядными микроконтроллерами,
предназначенными для встраиваемых приложений.
Они изготовлябтся по малопотребляющей
КМОП-технологии, которая в сочетании
с усовершенствованной RISC-архитектурой
позволяет достичь наилучшего соотношения
быстродействия/
К числу особенностей микроконтроллеры AVR семейства ATmega относятся:
Алфавитно-цифровые ЖКИ являются наиболее эффективным средством отображения информации среди наиболее распространенных. Широчайшее распространение получили индикаторы построенные на основе контроллера HD44780 и его аналогов. Такие индикаторы позволяют отображать символьно–цифровую информацию и имеет возможность по отображению 8 символов в одной строке, 8 символов в 2-х строках, 16 в 1,16 в 2-х строках, 20 в 1, 20 в 2, 20 в 4-х;
Наиболее удобны индикаторы, позволяющие отображать русские буквы, имеющие светодиодную, а не электролюминесцентную подсветку, имеющую однородное питание. В состав ЖКИ помимо контроллера входит непосредственно сам индикатор, построенный на жидких кристаллах. Включение индикатора осуществляется драйвером, управляющим специальным контроллером. [5]
Рисунок 2.1.1 – Принципиальная схема устройства
Процесс написания программ для микроконтроллеров состоит из нескольких этапов:
На
каждом из этапов необходимо применение
специальных программных и аппаратных
средств.
Рисунок 2.2.1 - Блок - схема работы программы
Передвигая слайдер 1 вверх/вниз, происходит изменение входного напряжения и, соответственно, меняется результат на ЖКИ.
Рисунок
2.3.1 - Вывод результата
Рисунок 2.3.2 - Вывод результата
Рисунок 2.3.3 - Вывод результата
2.4 Анализ полученных результатов
Основная часть проекта программы была написана в на языке С в среде Code Vision AVR C Compiler, а для получения результатов работы была проведена симуляция в симуляторе VMLab.
В результате тестирования проекта в симуляторе VMLab, программа выдает показания силы тока при помощи цифрового амперметра.
В данном курсовом проекте разработана программа цифрового амперметра, который должен отображать силу тока на алфавитно-цифровом индикаторе с использованием микроконтроллера ATmega8.
Проект реализует работу цифрового амперметра и включает в себя тексты программ на языке высокого уровня С в среде Code Vision AVR C Compiler и в симуляторе VMLab, который использовался непосредственно для просмотра полученных результатов проекта.
В результате работы проекта были выполнены все цели и решена главная задача - подготовили исходный текст программы на языке программирования высокого уровня.
4. Электронный ресурс, http://radiospec.ru
5.
Естифеев, А.В. «Микроконтроллеры AVR
семейства Mega», Москва, Издательский дом
«Додэка-ХХI», 2007. – 598с.
Приложение
Текст
программы: Приложение
А
This program was produced by the
CodeWizardAVR V1.24.8d Professional
Automatic Program Generator
© Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 04.03.2010
Author : OLYA
Company : OLYA
Comments:
Chip type : ATmega8
Program type : Application
Clock frequency : 4,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
******************************
#include <mega8.h>
#include<stdlib.h>
#include<delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB