Разработка узла цифрового генератора ТВ диапазона на базе ТВ - ресивере с управлением от ПЭВМ через LPT – порт

Автор: Пользователь скрыл имя, 05 Апреля 2012 в 23:23, курсовая работа

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

Данная работа посвящена разработке цифрового генератора ТВ диапазона на базе ТВ ресивере с управлением от ПЭВМ.
Целью данной работы является изучение, исследование принципа работы схемы и разработка её программного обеспечения.

Содержание

1. ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНА¬ЧЕНИЙ, ЕДИНИЦ И ТЕРМИНОВ___3
2. ВВЕДЕНИЕ____________________________________________________4
3. ТЕХНИЧЕСКОЕ ЗАДАНИЕ ______________________________________5
3.1 Структурная схема ____________________________________________6
3.2 Принципиальная схема ________________________________________7
3.3 Текст программы в Delphi ______________________________________8
3.4 Алгоритмическая схема _______________________________________15
3.5 Примечание _________________________________________________16
4. ЗАКЛЮЧЕНИЕ _______________________________________________17
5. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ___________________18

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

kadabra.doc

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


2

 

Содержание

1.      ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНА­ЧЕНИЙ, ЕДИНИЦ И ТЕРМИНОВ___3

2.      ВВЕДЕНИЕ____________________________________________________4

3.      ТЕХНИЧЕСКОЕ ЗАДАНИЕ ______________________________________5

3.1   Структурная схема ____________________________________________6

3.2   Принципиальная схема ________________________________________7

3.3   Текст программы в Delphi ______________________________________8

3.4   Алгоритмическая схема _______________________________________15

3.5   Примечание _________________________________________________16

4.      ЗАКЛЮЧЕНИЕ _______________________________________________17

5.      СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ___________________18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНА­ЧЕНИЙ, ЕДИНИЦ И ТЕРМИНОВ

LPT – порт. Общие сведения.

IEEE 1284 (порт принтера, параллельный порт, англ. Line Print Terminal, LPT) — международный стандарт параллельного интерфейса для подключения периферийных устройств персонального компьютера.

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

В основе данного стандарта лежит интерфейс Centronics и его расширенные версии (ECP, EPP).

Название «LPT» образовано от наименования стандартного устройства принтера «LPT1» (Line Printer Terminal или Line PrinTer) в операционных системах семейства MS-DOS.

 

 

Delphi

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

Delphi может функционировать под управлением операционной системы Windows 95, 98, NT, XP. Отличительными чертами рабочей среды Delphi являются: - большинство созданных с помощью Delphi приложений будут направлены главным образом на решение задач, связанных с производством и бизнесом; это значит, что обеспечение функционирования баз данных и создание отчетов будут наиболее часто решаемыми задачами; - совместимость приложений становится все более важной. Помимо всего прочего, это обусловлено еще и бурным развитием аппаратного обеспечения (Hardware), в частности:

а) широким распространением мобильных компьютеров;

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

PLL

PLL - сокращение от Phase-Locked Loop - электронная схема, позволяющая при небольших схемотехнических затратах получить умножение (деление) некоторой опорной частоты сигнала в заданное число раз, при этом множитель (делитель) может быть не целым (дробным) числом.
Наиболее широко применяется в синтезаторах частоты радиоаппаратуры и во встроенных генераторах частоты микроконтроллеров.
 

 

 

ВВЕДЕНИЕ

 

Данная работа посвящена разработке цифрового генератора ТВ диапазона  на базе ТВ ресивере с управлением от ПЭВМ.

Актуальность данной темы состоит в том, что данная разработка позволяет обеспечивать настройку как цифровых приемников, так и других цифровых устройств. Также в ней задействовано управление генератором через LPT порт при помощи написанной программы в Delphi, что позволяет специалистам расширить свой кругозор знаний в настройках такого рода аппаратуры и, возможно, повысить свои навыки в программировании.

Целью данной работы является изучение, исследование принципа работы схемы и разработка  её программного обеспечения.

 

 

 

 

 

 

 

 

 

 

 

 

 

Министерство Обороны Украины

Академия Военно-Морских Сил им.П.С.Нахимова

Кафедра радиотехнических систем

 

 

 

 

 

Утверждаю

Руководитель проекта

к.т.н., доцент

                                                                                       Байздренко А.А.

 

 

ТЕХНИЧЕСКОЕ ЗАДАНИЕ


Разработка узла цифрового генератора ТВ диапазона на базе ТВ - ресивере с управлением от ПЭВМ через LPT – порт

 

 

 

 

 

 

                                                                                   Выполнил: студент 536 группы Магда И.О.

 

Севастополь  2011


3.1 Структурная схема цифрового генератора

 


3.2 Принципиальная схема цифрового генератора

 

             

 

 

 

 

 

 

 

 

 

 

3.3. Текст программы

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, ComCtrls;

 

function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';

function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';

 

type

  TForm1 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    TrackBar1: TTrackBar;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Label10: TLabel;

    Timer1: TTimer;

    procedure TrackBar1Change(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

   procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  tuner_step,tuner_if,tuner_vco,tuner_hi,tuner_lo,Tuner_band: integer;

  port,data,tmp:  integer;

  buster: integer;

  implementation

 

{$R *.dfm}

 

Function st(tmp:byte):byte;

    begin

      st:=255;

      if  tmp=0 then st:=1;  if  tmp=1 then st:=2;  if  tmp=2 then st:=4;

      if  tmp=3 then st:=8;  if  tmp=4 then st:=16; if  tmp=5 then st:=32;

      if  tmp=6 then st:=64; if  tmp=7 then st:=128;    end;

Function i2c_del:boolean;     

var tc: integer;

begin

tc:=0; while tc<10000 do begin inc(tc); end;     

      i2c_del:=true; end;

 

 

 

Function i2c_start:byte;           

begin

 

//   Out32(port+2, $00);

  Out32(Port+2,$01);        i2c_del;

  Out32(port,  $00);        i2c_del;

  // Out32(Port, $00);                           i2c_del;

  

   i2c_start:=0;

       end;

 

Function i2c_stop:byte;            

begin

   Out32(Port, $08);      i2c_del;

   Out32(port+2,$00);     i2c_del;

 

//  Out32(Port+2,$00);                        

 

  i2c_stop:=0;

         end;

Function i2c_byte:byte;             

  var

    i:  integer;

  begin

  for i:=0 to 7 do begin

  tmp:=i;

  if (data and st(7-i))=st(7-i) then begin

  Out32(Port+2, $00);  i2c_del;

  Out32(Port, $08);    i2c_del;

  Out32(Port, $00);   i2c_del;

  Out32(port+2,$01);  i2c_del;

  end

  else

    begin

     Out32(Port+2, $01); i2c_del;

     Out32(Port, $08);   i2c_del;

     Out32(Port, $00);  i2c_del;

     Out32(port+2,$01);  i2c_del;

    end;

 

 

 

   end;

 

     i2c_del;

   Out32(Port, $08);   i2c_del;         

   Out32(Port, $00);  i2c_del;

  i2c_del; i2c_del; i2c_del; i2c_del;

  i2c_byte:=0;

end;

 

function tuner_i2c:boolean;

  begin

                    i2c_start;  

  data:=$0c0;        i2c_byte;  

  data:=tuner_hi;   i2c_byte;  

  data:=tuner_lo;   i2c_byte;  

  data:=$0c8;       i2c_byte; 

  data:=Tuner_band;        i2c_byte; 

                   i2c_stop;  

  tuner_i2c:=true;

  end;

 

 

 

 

 

procedure TForm1.FormCreate(Sender: TObject);

begin

port:=$378;                         

tuner_step:=50000;           

tuner_if:=36000000;        

Out32(port,0); buster:=-1; tuner_band:=$01;

end;

 

 

 

procedure TForm1.TrackBar1Change(Sender: TObject);

begin

tuner_vco:=tuner_step*(Form1.TrackBar1.Position);

Tuner_band:=$02;

If tuner_vco-Tuner_if>155000000 then tuner_band:=$04;

If tuner_vco-Tuner_if>440000000 then tuner_band:=$01;

tuner_hi:=Trunc(tuner_vco/tuner_step/1/256);

tuner_lo:=Trunc(Tuner_Vco/tuner_step/1-tuner_hi*256);

 

Form1.Label1.Caption:='кГц '+FloatToStr(tuner_vco/1000);

Form1.Label2.Caption:='кГц '+FloatToStr(tuner_if/1000);

Form1.Label3.Caption:='кГц '+FloatToStr((tuner_vco-tuner_if)/1000);

Form1.Label4.Caption:='BAND='+IntToHex(tuner_band,2);

Form1.Label8.Caption:='Hi byte:='+IntToHex(tuner_hi,2);

Form1.Label9.Caption:='Lo byte:='+IntToHex(tuner_lo,2);

tuner_i2c;               

end;

 

 

procedure TForm1.Button1Click(Sender: TObject);

begin

tuner_vco:=145500000+tuner_if;

Form1.TrackBar1.Position:=Trunc(tuner_vco/tuner_step);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

tuner_vco:=435500000+tuner_if;

Form1.TrackBar1.Position:=Trunc(tuner_vco/tuner_step);

end;

 

procedure TForm1.Button3Click(Sender: TObject);       // у 132 функции этой нет

begin

buster:=-buster; tuner_i2c;

if buster=1 then form1.Label10.Caption:='IF-1(out)=0,0db';

if buster=-1 then form1.Label10.Caption:='IF-1(out)=+20db';

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

            {

               i2c_start;  

  data:=$0c2;        i2c_byte;  

  data:=tuner_hi;   i2c_byte;  

  data:=tuner_lo;   i2c_byte;  

  data:=$0c8;       i2c_byte; 

  data:=Tuner_band;        i2c_byte; 

                    i2c_stop

// tuner_i2c:=true;

 

             }

end;

 

end.

 

3.5 Алгоритмическая схема программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.6 Примечание

tuner_vco:=tuner_step*(position on trackbar_1)

tuner_hi:= Trunc( tuner_vco/tuner_step/1/256)

tuner_lo:=Trunc(tuner_vco/tuner_step/1-tuner_hi*256)

Trunc- целая часть числа с плавающей запятой.

I2c_del – задержка

I2c_start – стартовый бит

I2c_stop – стоповый бит

I2c_byte - передача одного байта по шине I2C

tuner_step - шаг установки частоты тюнера в гц

tuner_if - частота используемой ПЧ в гц

tuner_band - байт управления диапазоном

tuner_vco – текущее положение частоты с шагом установки

tuner_hi - старший байт делителя

tuner_lo - младший байт делителя

tuner_i2c – подпрограмма передачи данных в тюнер по шине i2c

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

В данной курсовой работе показана разработка узла цифрового генератора ТВ диапазона на базе ТВ- ресивера с управлением от ПЭВМ через LPT порт при помощи программы Delphi.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1.      В.В.Сташин, А.В.Урусов, О.Ф.Мологонцева. Проектирование цифровых устройств на однокристальных микроконтроллерах. -М.: Энергоатомиздат, 1990. -224 с.  

2.      А.В.Боборыкин, Г.П.Липовецкий, Г.В.Литвинский и др. Однокристальные микроЭВМ. Справочник.-М.: Микап, 1994. -400 с.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Министерство Обороны Украины

Академия Военно-Морских Сил имени П.С. Нахимова

 

 

Кафедра радиотехнических систем

 

 

 

 

 

Разработка узла цифрового генератора ТВ диапазона на базе ТВ – ресивере с управлением от ПЭВМ через LPT порт

 

ОТЧЕТ ПО КУРСОВОМУ ПРОЕКТУ ПО ДИСЦИПЛИНЕ

"МИКРОПРОЦЕССОРЫЕ В СИСТЕМАХ И УСТРОЙСТВАХ"

 

 

Выполнил: студент 536 группы

Магда И. О.

Руководитель: доцент

Байздренко А. А.

 

 

 

 

Севастополь 2011

 

 

 

 

 

 

 

 



Информация о работе Разработка узла цифрового генератора ТВ диапазона на базе ТВ - ресивере с управлением от ПЭВМ через LPT – порт