Программное управление принтером при выводе знаковой информации

Автор: Пользователь скрыл имя, 07 Декабря 2011 в 13:49, лабораторная работа

Описание работы

Объектом изучения данной работы является печатающее устройство FX-800.
В этом устройстве использован ударный принцип печати с синтезом контуров знаков из элементов точечной матрицы. Печатающим элементом в устройстве является линейка, образованная девятью вертикально расположенными иголками. Привод печатающих иголок – электромагнитный.

Работа содержит 1 файл

Лабараторная работа№1.doc

— 242.50 Кб (Скачать)

   Команды левого поля

   #27,’I’, ’n’ (#27,#108, #n), где n –номер колонки начала строки. 

   Команды правого поля

   #27,’0’,  ’n’ (#27,#81, #n), где n –номер последней колонки в строке.

   Например, определить строку, начинающуюся  с10 колонки и кончающуюся 30 колонкой, можно с помощью двух управляющих последовательностей 

   #27,’1’,  ’10’ , #27,’0’, #30

   Крайнее положение поля зависит от шрифта, определяющего максимальное количество знаков в строке (табл.2), и от режима печати.

                                                                                                                 

                                                                                                            Таблица 2

   Максимальное  количество знаков в строке

Пайк 80
Элит 96
Уплотненный 137
Уплотненный элит 160
 

   Выбор интервала между  строками

   Команда задается управляющей последовательностью 

    - #27,#65, #n (#27,’A’, #n)

   С помощью этой команды устанавливается интервал между строками, равный  n/72  дюйма. По умолчанию интервал между строками равен 1/6  дюйма, что соответствует трем шагам между печатающими иголками. 

   Немедленная подача строки

   Команда задается управляющей последовательностью 

    - #27,#74, #n (ESC j n) 

   При выполнении этой команды бумага перемещается на одну строку с интервалом между строками n/216  дюйма (0<n<256). Это команда одноразового действия (она распространяется только на одну текущую строку). Она не меняет интервал, ранее установленный другой командой, и не сопровождается возвратом каретки. 

   Выбор длины страницы в строках

   Команда задается управляющей последовательностью 

    #27,’C’, #n или #27, #67, #n , где n – количество строк (n<127) . 

   Подача  формата #12, обеспечивает печать строки  и перевод бумаги к следующей странице.

   На  рис.2 приведен пример задания интервала между строками, который определяется в одной команде вместе с заданием двойной высоты. 

   Порядок выполнения работы 

   При выполнении данной работы производятся действия, определенные объединенным индивидуальным заданием на эту работу и на следующую. Поэтому порядок выполнения индивидуального задания приведен в соответствующем разделе описания лабораторной работы №2.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Лабораторная  работа №2

«Программно управление принтером  при выводе графической  информации» 

   Печатающее  устройство FX- 800 может осуществлять вывод информации в графической форме.

   Графический режим задается с помощью управляющей последовательности 

   ESC K n1 n2 (27, #75,#n1, #n2)

где:

  • K- определяет одинарную линейную плотность нанесения точек графического изображения;
  • n1,n2 – два числа, определяющих длину печатаемой графической строки;
  • m – количество шагов линейки печатающих иголок при формировании одной знаковой строки графического изображения, причем m=n1+256*n2, т.е.  n1 = mod256 m, n2= int( m/256).

   В рассматриваемой управляющей последовательности вместо символа K можно использовать или L (в этом случае будет использоваться двойная плотность -50 точек/см.), или Y (в этом случае будет использоваться двойная плотность с высокой скоростью).

   Используемое  здесь понятие «знаковая строка»  обозначает набор из элементарных линий, каждая из которых формируются своей иголкой в печатающей линейке при проходе по строке. Количество линий в этом наборе определяется числом иголок в печатающей линейке. Знаковая строка формируется за один проход печатающей линейке по строке на носителе.

   Построение  графической информации осуществляется фрагментами, каждый из которых соответствует одной знаковой строке, в формировании которых участвуют восемь из девяти имеющихся иголок печатающей линейки.

   Вид каждой из колонок, составляющих знаковую строку, задается десятичным числом, соответствующим восьми разрядному двоичному коду управления иголками во время нанесения на бумагу каждой колонки формируемой знаковой  строки. Старший разряд этого кода с весом 128 управляет верхней иголкой печатающей линейки. Младший разряд с весом 1 управляет нижней иголкой. Например, чтобы нанести знаковую строку, состоящую из линий, образуемых второй, пятой, и седьмой иголками на управление иголками необходимо многократно подавать число 7410= =010010102.

   На рис.4  приведена программа, формирующая графическое изображение в трех строках шириной 54 колонки.

   Меняя К на L или Y можно менять линейную плотность точек. 
 
 
 
 

 
 
 
 

PROGRAM PR5;

 USES PRINTER;

 VAR

  C,N:INTEGER;

BEGIN WRITE(LST,#27,’@’);

FOR N:=1 TO 3 DO

  BEGIN WRITE(LST,#27,#36,#200,#0);

WRITE(LST,#27,’Y’,#60,#0);

FOR C:=1 TO 20 DO WRITE(LST,#85,#42,#85);

WRITELN(1ST);END;

END. 

Рис. 4 
 

   Знаки, задаваемые пользователем. 

   Печатающее  устройство дает возможность пользователю задавать нужный ему контур знака, т.е. создавать пользовательский символ. Введение пользовательских знаков начинается с созданием нужного контура пользовательского знака. Предположим необходимо создать знак с контуром близким к

                g

Сначала нужно расположить точки создаваемого знака в матрице  знакоместа, как это показано на рис. Далее кодируются десятичным кодом вид каждой колонки знакоместа. Для образца, приведенного на рис. 6, это будет последовательность чисел: 

   010    =000000002     -  1-ая колонка поля знака;

   3410    =001000102      -  2-ая колонка поля знака;

   8410    =010101002     -  3-ая колонка поля знака;

   13610  =100010002     -  4-ая колонка поля знака;

   1710    =000100012       - 5-ая колонка поля знака;

   13610  =100010002      -  6-ая колонка поля знака;

   8410    =010101002      -  7-ая колонка поля знака;

   3410    =001000102      -  8-ая колонка поля знака;

   010      =000000002      -  9-ая колонка поля знака;

   010      =000000002     -  10-ая колонка поля знака;

   010      =000000002     -  11-ая колонка поля знака;

   010      =000000002     -  12-ая колонка поля знака.

   В приведенном на рис.6 знакоместе имеется  пять полных шагом (без учета одного шага, используемого как промежуток между соседними знакоместами). Колонки могут задаваться на каждом полушаге. При этом необходимо соблюдать правило - расстояние по горизонтали между двумя точками при формировании контура знака не должно быть меньше одного полного шага. Колонки знакоместа, не содержащие точек на рисунке контура, а также пробел между знакоместами кодируется нулевыми кодами. Таким образом, для определения контура знака необходимо задать 12 десятичных или 12 восьми битовых двоичных чисел.

   Данные  числа в соответствующей последовательности используются в управляющих последовательностях, задающих работу печатающего устройства при формировании пользовательского знака. На рис.5 приведен пример такой последовательности в программе. 

YBAB 

PROGRAM PR2;

USES PRINTER;

BEGIN WRITE(LST,#27,’@’);WRITE(LST,#27,#58,#0,#0,#0);

 WRITE(LST,#27,#38,#0,’A’,’A’);

 WRITE(LST,#0,#136,#84,#34,#17,#34,#84,#136,#0,#0,#0,#0);

WRITE(LST,#27,#37,#1,’A’,’B’,#27,#37,#0,’A’,’B’);

WRITE(LST);

END. 

Рис. 5 

   Управляющая последовательность 

   #27, #38,#0,’A’,’A’

определяет в общей последовательности символов, хранимых  в БЗУ в качестве активного алфавита, кодов первого и последнего  символов, определяющих последовательность символов, контуры которых пользователь собирается изменить. В рассматриваемом примере изменяется контур только одного символа, поэтому начальный символ и конечный символ последовательности изменяемых символов совпадают. Далее в следующей команде задается последовательность чисел, соответствующих отдельным колонкам изображения символа, приведенного на рис.6.

Рис. 6

    

   Перед заменой стандартных описаний символов на описание контуров пользовательских символов, в поле описания знака, адрес которого определяется кодом ‘A’ находилось описание контура буквы «A» (т.е. стандартное для данного принтера описание контура кодируемое как ‘A’).

     Это поле в рассматриваемом примере заменяется новым описанием, а именно  описанием контура на рис.6. По этому, когда в дальнейшем будет выполняться обращение к полю по коду  ‘A’, из БЗУ будет извлекаться описание контура на рис.6.

   Управляющая последовательность 

   #27, #37, #n

     позволяет выбирать  или введенный  пользовательский знак (при этом n=1), или стандартное описание (при этом n=0). 

   Порядок выполнения работы 

     По первой и второй работам выдается единое задание. При выполнении задания необходимо сделать следующее.

  1. Составить программу распечатки титульного листа отчета, используя шаблон, приведенный на рис.7.

   Титульный лист Вашего отчета должен содержать относящиеся к Вам и Вашей работе данные: Вашу фамилию, фамилию преподавателя, текущий год и т.п.

Информация о работе Программное управление принтером при выводе знаковой информации