\
ВИДЕОТЕХНИКА
J
используется для индикации состояния
генератора. Когда прибор включен, свето-
диод HL1 горит. Когда прибор выключен,
светодиод погашен. Третий бит PORT А ис-
пользуется для переключения режимов ра-
боты генератора и его выключения. Крат-
ковременное нажатие кнопки S2 позволя-
ет перейти от одного поля генератора к дру-
гому. При удержании этой кнопки в нажа-
том состоянии дольше
1
с прибор выклю-
чается (микроконтроллер переходит в со-
стояние “SLEEP’). Чтобы включить генера-
тор, необходимо выполнить сброс. Это осу-
ществляется нажатием кнопки 81 ■
Напря-
жение питания прибора можно выбрать в
пределах 3.
..5 В. При этом соответствен-
но должны быть подобраны номиналы ре-
зисторов:
3 В.
..- R5 = 456 Ом и R
6
= 228 Ом;
3.5 В - R5 = 571 Ом и R
6
= 285 Ом;
4 В.
..- R5 = 684 Ом и R
6
= 342 Ом;
4.5 В - R5 = 802 Ом и R
6
= 401 Ом;
5 В.
..- R5 = 900Ом и R
6
= 450 Ом.
Здесь указаны расчетные значения
(как считать, смотрите [5]). Реально мож-
но использовать резисторы из стандарт-
ного ряда, например, для 5 В - 910 Ом и
470 Ом, а для 3 В - 470 Ом и 240 Ом.
Напряжение питания генератора мо-
жет быть и меньше 3 В. Для каждого конк-
ретного микроконтроллер^ Минимальное
напряжение питания следует определять
экспериментально. Например, PIC выпус-
ка 2001 г. работал и при напряжении 2,3 В.
Программа
Программа формирует
6
полей. Каждое
поле состоит из 301 строки (300 информа-
ционных строк + одна черная ). Вообще
расчетное число - 305 ((625 (строк растра)
-15 (строк кадровой синхронизации) = 610.
Информация в кадре выводится через
строку, поэтому 610/2 = 305)). Но при та-
ком числе строк размер растра по верти-
кали получается немного больше того, что
формирует видеосигнал, передаваемый
телецентром.
Первая строка в каждом поле черная.
В Это время опрашивается состояние
кнопки S2, вычисляется время удержания
ее в нажатом состоянии и определяется
необходимость перехода от одного поля
к другому.
В графических полях есть небольшие
искажения вертикальных линий. Это свя-
зано с тем, что длина некоторых строк
на пару тактов больше остальных из-за
необходимости установления счетчиков
циклов. В целом подпрограммы, форми-
рующие графические поля, очень просты,
поэтому нет необходимости их комменти-
ровать.
Подробнее разберем ту часть програм-
мы, которая формирует текстовое поле.
Это наиболее сложный участок програм-
мы, занимает большую ее часть, исполь-
зует максимум ресурсов микроконтролле-
ра (вся память данных и значительная
часть ОЗУ). Здесь используются фрагмен-
ты кода, взятые из игры [3]. '
Текстовое поле состоит из 17 строк,
каждая из которых может состоять не бо-
лее чем из восьми символов. Символы ото-
бражаются через строку, то есть одна стро-
ка текста занимает 17 строк растра (такое
отображение связано с ограниченными
возможностями РЮ)‘. Информация о гра-
фике символов хранится в памяти про-
грамм в разделе таблица. Например бук-
ве ‘Т ’ соответствует такой фрагмент кода:
;Т Смещение 0x88
re tlw 0x7F
.ШШШШШШШ
re tlw 0x49
.Ш. .III. .Ш
re tlw 0x49
.Ш. .III. .Ш
re tlw 0x08
. . . .III. . .
re tlw 0x08
....Ш.
..
retlw 0x08
___Ш. . .
re tlw 0x08
___Ш. . .
re tlw 0x3E
. .iimmnmii.
Информация о тексте строк хранится
в памяти данных (64 слова =
8
строк по
8
символов). Например, в строке 061т (адре-
сами от 081і до ОРЬ) записано следую-
щее:.20.60.48.50.90.58.20 20. Каждое зна-
чение - это координата (смещение от на-
чала) символа втаблице. Значение .20. со-.
ответствует пробелу, .60. - буква “В”, .48. -
буква “И" и так далее. А все вместе обра-
зует “_ВИДЕО_”.
Разберем на примере, как выводится
текст. Согласно программе, в 12-й тексто-
вой строкеэкрана необходимо вывести ин-
формацию, на которую ссылается строка
памяти данных
28Ь
(АО В
8
68
С
8
08 70 ЕО
00). Таким образом, в следующих 17
строках растра должен быть выведен
текст: “ рісШ84". Это происходит следую-
щим образом. В первой из 17 строк выво-
дится только черный уровень. В эти 64 мкс,
пока на экране отображается черная стро-
ка, в регистры ОЗУ переписываются “вер-
хние значения” символов: ООЬ от “р”, 08Ь
от Т, ООЬ от “с”, 181т от “Г и так далее. Во
время следующей строки эти данные пос-
ледовательно передаются в PORT В, то
есть на видеовыход. Третья строка-снова
черная. За время ее выполнения, в буфер
переписываются “вторые сверху” значения
символов:
00
h от “р”,
00
h от “Г,
00
h от “с”,
1Ch от “Г.
.. В четвертой строке эти дан-
ные выводятся на экран. И так далее, пока
вся строка не будет отображена.
Подпрограмма кадровой синхрониза-
ции целиком взята из игры [3]. Эта подпрог-
рамма короткая, но довольно запутанная.
Если объяснять, как она работает, то полу-
чится еще длиннее и запутаннее. Лучше
всего положить рядом текст подпрограм-,
мы и рисунок осциллограммы кадровых
синхроимпульсов, и не торопясь разобрать
каждую строку кода. Скажу только, что
подпрограмма начинает выполняться не с
верхней строчки, а из середины, от метки
“vertsyrtc”.
Разгон PIC16F84
Как видно из схемы, в этом проекте мик-
роконтроллер работает на частоте 1
2
МГц
На сегодняшний день выпускаются три
версии PIC16F84: на 4 МГц, на 10 МГц и на
20
МГц. В своем проекте [3] Rickard Gunee
утверждает, что использовал 4 МГц
PIC16F84, и они часами работали на час-
тоте
1 2
МГц без проблем. Я попробовал, и
действительно 4 МГц РІС нормально ра-
ботает на частоте, которая в три раза пре-
вышает его допустимую частоту (правда,
я не стал испытывать судьбу и включал ге-
нератор лишь на несколько минут). При
этом у 4 МГц РЮа потребляемый ток был
на
10
...
20
% больше, чем у
20
МГц (отсюда,
видимо, и ограничение по частоте). Думаю,
что 10 МГц микроконтроллер можно раз-
гонять до 12 МГц без риска, но в коммер-
ческих проектах этого, конечно же, делать
не стоит.
Архив проекта (файл
v_generzip)
вы
можете загрузить с сайта журнала:
(раздел “Программы”)
Не забудьте записать информацию о
текстовом поле в память данных. О том,
как это сделать, сказано в
лэт
файле.
Скачанная Вами программа не мо-
жет быть использована в коммерческих
проектах.
Литература и ресурсы Интернет
1
5. http//pic16f84. narod.ru/item_video.htm#z
8
I 29
Радиолюбитель - 09/2006 |
предыдущая страница 29 Радиолюбитель 2006-09 читать онлайн следующая страница 31 Радиолюбитель 2006-09 читать онлайн Домой Выключить/включить текст