Идея создать такой проект появилась у меня после прочтения статьи Rickard Gunee " How to generate video signals in real-time using a PIC16F84 " и знакомства с его играми Pong и Tetris. Оказывается для генерации видеосигнала достаточно всего одной микросхемы и двух резисторов. То есть можно сделать буквально карманный генератор видеосигнала размером с брелок. Такой прибор пригодится телемастеру. Его можно использовать при сведении кинескопа, регулировке чистоты цвета и линейности. Работа генератора и его характеристики. Генератор подключается к видеовходу телевизора, обычно это разъем типа "тюльпан" или "SCART" Прибор генерирует шесть полей: - текстовое поле из 17 строк; - сетка 8x6; - сетка 12x9; - мелкое шахматное поле 8x6; - крупное шахматное поле 2x2; - белое поле.
Технические характеристики прибора: - тактовая частота - 12 МГц; - напряжение питания 3 - 5 В; - ток потрребления в рабочем режиме: . - при напряжении питания 3В - около 5мА ; . - при напряжении питания 5В - около 12мА ; - частота кадров - 50 Гц; - число строк в кадре - 625.
3В ...– R5=456Ом и R6=228Ом 3,5В – R5=571Ом и R6=285Ом 4В ...– R5=684Ом и R6=342Ом 4,5В – R5=802Ом и R6=401Ом 5В ...- R5=900Ом и R6=450Ом Здесь указаны расчетные значения. Реально можно ставить резисторы из стандартного ряда, например для 5В - 910Ом и 470Ом, а для 3В - 470Ом и 240Ом. Напряжение питания генератора может быть и меньше 3В. Для каждого конкретного PICа минимум следует определять эксперементально. У меня, например, 20МГц-й PIC выпуска 2001 года работал и при 2,3 В. Прграмма. Программа формирует 6 полей. Каждое поле состоит из 301 строки ( 300 информационных строк + одна черная ). Вообще расчетное число – 305 ( 625 строк растра - 15 строк кадровой синхронизации = 610. Информация в кадре выводится через строку ( подробнее об этом смотри здесь ), поэтому 610 / 2 = 305 ). Но при таком числе строк размер растра по вертикали получается немного больше того, что формирует видеосигнал, передаваемый телецентром. Первая строка в каждом поле черная. В это время опрашивается состояние кнопки S2, вычисляется время удержания ее в нажатом состоянии и определяется необходимость перехода от одного поля к другому. В графических полях есть небольшие искажения вертикальных линий. Это связано с тем, что длина некоторых строк на пару тактов больше остальных из за необходимости установления счетчиков циклов. Вцелом подпрограммы, формирующие графические поля, очень просты, поэтому нет необходимости их коментировать. Подробнее разберем ту часть программы, которая формирует текстовое поле. Это наиболее сложный участок программы, занимает большую ее часть, использует максимум ресурсов микроконтроллера ( вся память данных и значительная часть ОЗУ ). Здесь используются фрагменты кода, взятые из игры Pong, которую написал Rickard Gunee. Текстовое поле состоит из 17 строк, каждая из которых может состоять не более, чем из восьми символов. Символы отображаются через строку, то есть одна строка текста занимает 17 строк растра. ( Такое отображение связано с ограниченными возможностями PIC. ) Информация о графике символов хранится в памяти программ в разделе таблица. Например букве "Т" соответствует такой фрагмент кода: ;Т Смещение 0x88 retlw 0x7F ;.ШШШШШШШ retlw 0x49 ;.Ш..Ш..Ш retlw 0x49 ;.Ш..Ш..Ш retlw 0x08 ;....Ш... retlw 0x08 ;....Ш... retlw 0x08 ;....Ш... retlw 0x08 ;....Ш... retlw 0x3E ;..ШШШШШ. Информация о тексте строк хранится в памяти данных ( 64 слова = 8 строк по 8 символов ). Например в строке 08h ( адресами от 08h до 0Fh ) записано следующее:.20.60.48.50.90.58.20 20. Каждое значение - это координата ( смещение от начала ) символа в таблице. Значение .20. соответствует пробелу, .60. - буква "В", .48. - буква "И", и так далее. А все вместе образует '_ВИДЕО__'.
Источник: pic16f84.narod.ru |
Страница статьи: http://www.radioland.net.ua/sxemaid-385.html
URL сайта: http://www.radioland.net.ua
© Radioland