Видеогенератор текста с клавиатурой на микроконтроллере

    Хочу сразу предупредить, что эта схема разрабатывалась как экспериментальная при изучении программирования под микроконтроллеры AVR со всеми вытекающими отсюда последствиями.
                                   
 Основой схемы является микроконтроллер ATMEGA8515 на 16 МГц, но запущенный на 12 МГц(другого кварца под рукой не было). Для создания видеосигнала необходимо 3 уровня: синхроуровень(0 вольт), уровень черного(0,3 вольта) и уровень белого(1 вольт) - цвет выводимых на экран букв. Эти уровни получаются с помощью простейшего ЦАП на резисторах R2, R3 и резистора 75 Ом, находящегося на видеовходе телевизора.
К видеогенератору может быть подключена любая компьютерная AT или PS/2 клавиатура. Устройство выводит на экран телевизора 2 строчки по 10 символов в каждой. В знакогенератор заложены только русские буквы и цифры. Логика работы программы следующая. Работает таймер с частотой 15625Гц(частота строк), на нем весит обработчик прерываний, генерирующий синхроимпульсы и постоянно считывающий видеоданные из области статической памяти SRAM. Также включен другой обработчик прерываний на вход INT0, ответственный за прием данных с клавиатуры.  На него поступают тактирующие импульсы от клавиатуры. При появлении таких импульсов включается фунция приема символа из клавиатуры, а при окончании его приема запускается знакогенератор, который помещает в память SRAM, отведенную для хранения выводимого изображения, изображение соответствующего импульса. Для вывода данных используется операция параллельного сдвига <<. Т.о. 1 байт может нести в себе 8 точек чем достигается экономия ресурсов контроллера.
 Программа написана на языке С для компилятора CV AVR. Прошивку и исходник скачать здесь. Из-за того, что использовался высокоуровневый язык, невозможно было точно соблюсти все временные интервалы синхроимпульсов. Это негативно сказалось на качестве выводимого изображения. Так, например, на изображении присутствуют заметные искажения по вертикали. За исключением этого недостатка игрушка получилась довольно прикольная.
 Более подробно о подключении клавиатур к контроллерам можно прочитать в аппноуте ATMEL: Application Note AVR313

На главную

Hosted by uCoz