Шаг3. Пишем FM тюнер ____________________________________
procedure TForm1.TrackBar1Change(Sender: TObject); //--настройка на радиост.(0..256) Var b : byte; begin b := TrackBar1.Position ; //--задаём число записи в порт (0..256) if CheckBox2.Checked = true then b := Not b; //--если галочка, тогда инвертируем (256..0) PortWriteByte(888,(b)); //--собственно пишем Gauge1.Progress := b; //--синхронизируем с индикатором настройки end; procedure TForm1.Timer1Timer(Sender: TObject); //--читаем данные выбранного порта Var pa : integer; b : byte; begin pa:= StrToInt(ComboBox1.Text); //--выбираем порт b :=( PortReadByte(pa) ) ; //--читаем Edit1.text := IntToStr(b); //--выводим на индикатор end; procedure TForm1.Edit1Change(Sender: TObject); //--ведём LOG данных begin if CheckBox1.Checked = true then begin RichEdit1.Lines.Add //--добавляем в лог время + данные ( FormatDateTime('hh:mm:ss', time()) + ' data '+ (Edit1.Text) ); end; end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin TrackBar1.Position := TrackBar1.Position +1; //-- +1 end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin TrackBar1.Position := TrackBar1.Position -1; //-- -1 end; procedure TForm1.ComboBox2Click(Sender: TObject); //--демонстрирует выбор предопр. значений Var ind : integer; begin RichEdit1.Lines.Add ( FormatDateTime('hh:mm:ss', time()) + ' радио ' + (ComboBox2.Text) ); //--время + названиеind := ComboBox2.ItemIndex; if ind = 0 then TrackBar1.Position := 10 ; //--значению 1 (Хит FM) соотв. число 10 if ind = 1 then TrackBar1.Position := 23 ; //--аналогично if ind = 2 then TrackBar1.Position := 58 ; if ind = 3 then TrackBar1.Position := 94 ; if ind = 4 then TrackBar1.Position := 204 ; end; procedure TForm1.SpeedButton6Click(Sender: TObject); //--кнопка Power begin if SpeedButton6.Tag = 0 then //--чтобы определить состояние begin SpeedButton6.Font.Color := clRed; Gauge1.BackColor := clLime; PortWriteByte(890,58); //--устанавливаем 5в бит 0 порта 890 SpeedButton6.Tag :=1; end else begin SpeedButton6.Font.Color := clWindowText; Gauge1.BackColor := clWindow; PortWriteByte(890,59); //--устанавливаем 0в бит 0-3 порта 890 (Power OFF) SpeedButton6.Tag := 0; end ;
end; procedure TForm1.SpinEdit1Change(Sender: TObject); begin Timer2.Interval := SpinEdit1.Value * 60000; //-- интервал таймера выключения end; procedure TForm1.FormActivate(Sender: TObject); begin Timer2.Interval := SpinEdit1.Value * 60000; //-- аналогично end; procedure TForm1.SpeedButton3Click(Sender: TObject); //--ВКЛ таймер отключения begin Timer2.Enabled := true; SpinEdit1.Color := cllime; end; procedure TForm1.SpeedButton4Click(Sender: TObject); //--ОТКЛ таймер отключения begin Timer2.Enabled := false; SpinEdit1.Color := clWindow; end; procedure TForm1.Timer2Timer(Sender: TObject); //--таймер отключения begin PortWriteByte(890,59); close; end; procedure TForm1.SpeedButton5Click(Sender: TObject); //--кнопка MUTE Var b : byte; begin if SpeedButton5.Tag = 0 then begin b:=(PortReadByte(890)); //--читаем значения данных в 890 порт b := b - 8; //--из прочитанного числа вычитаем 8 (бит 3 =5вPin 17) 8 -это 2* в степени N PortWriteByte(890,b); //--пишем нужное число SpeedButton5.Font.Color := clRed; SpeedButton5.Tag := 1; end else begin b:=(PortReadByte(890)); b := b + 8; //--устанавливаем в 0вольт PortWriteByte(890,b); SpeedButton5.Font.Color := clWindowText; SpeedButton5.Tag := 0; end ; end; procedure TForm1.TrackBar2Change(Sender: TObject); begin Timer3.Interval := TrackBar2.Position; //--скорость сканирования end; procedure TForm1.Timer3Timer(Sender: TObject); begin TrackBar1.Position := TrackBar1.Position +1; //--сканируем if TrackBar1.Position = 255 then TrackBar1.Position := 1 ; //--ограничитель end; procedure TForm1.SpeedButton8Click(Sender: TObject); begin Timer3.Enabled := false; //--отключ сканирование end; procedure TForm1.SpeedButton7Click(Sender: TObject); begin Timer3.Enabled := true; //--включить сканирование end; ---------------------------------------------25.04.04----------------------------------------------------------------------- Скачайте этот пример (исходник 13 kb) - Primer3cod.zip , созданный на основе шаблона. |