Курсовая работа: Проектирование программно-управляемого генератора пачек прямоугольных импульсов на микроконтроллере
Рисунок 5.4 – Пачка импульсов длительностью 0,4с с линейным законом нарастания и спада уровня сигнала.
Рисунок 5.5 – Пачка импульсов длительностью 0,6с с линейным законом нарастания и спада уровня сигнала.
Результаты работы генератора пачек импульсов были промоделированы с помощью пакета VisualMicroLab. Программа показала практически идентичность полученных результатов и условий технического задания. Поэтому можно считать, что погрешности измерений нет. В реальном устройстве точность формирования пачек импульсов не хуже 0,5 % от необходимого значения. Окончательные регулировки производятся в собранном генераторе.
генератор импульс алгоритм
Заключение
В данной курсовой работе был спроектирован программно-управляемый генератор пачек прямоугольных импульсов с треугольной огибающей. Он собран на микроконтроллере АТ90S2313 фирмы Atmel, который прошит специальной программой. Генератор управляется посредством нажатия одной из трёх кнопок, которая переводит его в заданный режим работы. Работа генератора была промоделирована средствами ЭВМ. Получены пачки импульсов заданной формы и длительности 0,2с; 0,4 с; 0,6 с.
Перечень ссылок
1. Голубцов М.С. Микроконтроллеры AVR: от простого к сложному. Мос-ква, Солон-Пресс, 2003г.
2. Волков С. Генераторы прямоугольных импульсов на МОП-элементах. Москва , Энергоиздат, 1981г.
3. Баранов В.Н. Применение микроконтроллеров AVR: схеммы, алгорит-мы, программы. Москва, Издательский дом «Додэка-ХХI», 2004г.
4. Журнал Радио № 3, 1994 г.
5. http://radiokot.ru
6. http://forum.cxem.net
7. http://RLBN.ru
8. http://avr123.nm.ru
9. http://costya-radio.narod.ru
10. http://radioradar.net
Приложение 1
Текст программы
.include "C:\PROGRA~1\VMLAB\include\2313def.inc"
; Тактовая частота 4 МГц
; Делитель таймера0 = 8, для длительности 10 мкс - 5 значений до переполнения
.EQUTCCR0_INIT = 0b10; делитель таймера CK/8
.EQUTCNT0_WAIT10 = 0xFB; 10 мкс до прерывания с учетом накладных расходов
.EQUTCNT0_WAIT190 = 0xA2; 190 мкс до прерывания с учетом накладных расходов
; Делитель таймера1 = 1024
.EQUTCCR1B_INIT = 0b0101; CK/1024 без сброса после уд.сравнения
.EQUTCNT1_INIT = 0xFFF0; задержка начала пачки после старта > 0
.EQUTCNT1_START = 0x76AB; задание начального смещения для 9 сек. до переполнения
.EQUN1CMP = TCNT1_START + 781; 0,2 с