unit1.pas
来自「用AVR单片机控制LCD点阵显示屏的程序。」· PAS 代码 · 共 297 行
PAS
297 行
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, CommX;
type
TForm1 = class(TForm)
CommX1: TCommX;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Charcter: TButton;
DEMO2: TButton;
DEMO3: TButton;
procedure Button1Click(Sender: TObject);
procedure Form1Create(Sender: TObject);
procedure CommX1Receive(Sender: TObject; ReceiveSize: Integer);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure CharcterClick(Sender: TObject);
procedure DEMO2Click(Sender: TObject);
procedure DEMO3Click(Sender: TObject);
private
{ Private 愰尵 }
public
{ Public 愰尵 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ "弶婜壔" }
procedure TForm1.Form1Create(Sender: TObject);
begin
CommX1.BitRate := 38400;
CommX1.BufLenReceive := 1024 * 16;
CommX1.BufLenTrans := 1024 * 1;
CommX1.CharSize := 8;
CommX1.FlowCtrl := cfcNONE;
CommX1.ParityBit := cpbNONE;
CommX1.PortNo := 1;
CommX1.StopBit := csb1;
CommX1.TimeOutReceive:= 3000;
CommX1.TimeOutTrans := 3000;
CommX1.PortOpen;
end;
{ 庴怣妱崬 }
procedure TForm1.CommX1Receive(Sender: TObject; ReceiveSize: Integer);
var c, i: integer;
s, buf: string;
begin
{
buf := '';
repeat
c := CommX1.ReceiveChar;
if c <> -1 then
buf := buf + chr( c );
Sleep( 2 );
until CommX1.GetReceiveLength = 0;
s := '';
for i := 1 to Length( buf) do
if ( ' ' < buf[ i ] ) and ( buf[ i ] < #$7F ) then
s := s + buf[ i ]
else
s := s + format( '[$%x]', [ ord( buf[ i ] ) ] );
Memo1.Lines.Add( s );
}
end;
{ 儊儌挔偺僋儕傾 }
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
{ "CLS"儃僞儞 }
procedure TForm1.Button1Click(Sender: TObject);
begin
CommX1.TransChar( 'I' );
end;
{ ABCD... }
procedure TForm1.Button3Click(Sender: TObject);
var t: integer;
begin
for t := 1 to 11 do begin
CommX1.TransString( 'L'+chr(t*7)+#8 );
CommX1.TransString( 'C'+chr(t) );
end;
end;
{ 幬傔暥帤 }
procedure TForm1.Button4Click(Sender: TObject);
var t: integer;
begin
for t := 0 to 7 do begin
CommX1.TransString( 'L'+chr( t * 7 ) + chr( t ) );
CommX1.TransString( 'C' + chr( t + 1 ) );
end;
end;
{ PSET }
procedure TForm1.Button5Click(Sender: TObject);
var i, j: integer;
t, x, y: real;
begin
for i := 0 to 1000 do begin
t := 6.28 / 1000 * i;
x := sin( t * 2) * 15 + 15;
y := cos( t * 5) * 15 + 15;
CommX1.TransString( 'P'+chr(trunc(x)) + chr(trunc(y)) );
end;
for i := 0 to 1000 do begin
t := 6.28 / 1000 * i;
x := sin( t * 2) * 15 + 15 + 90;
y := cos( t * 3) * 15 + 15;
CommX1.TransString( 'P'+chr(trunc(x)) + chr(trunc(y)) );
end;
CommX1.TransString( 'L'#35#0 );
CommX1.TransString( 'C' + chr( ord( 'J' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'L'#43#2 );
CommX1.TransString( 'C' + chr( ord( 'R' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'L'#51#4 );
CommX1.TransString( 'C'#4 );
CommX1.TransString( 'L'#59#6 );
CommX1.TransString( 'C' + chr( ord( 'K' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'L'#67#8 );
CommX1.TransString( 'C' + chr( ord( 'B' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'L'#75#10 );
CommX1.TransString( 'C' + chr( ord( 'U' ) - ord( 'A' ) + 11) );
{
for i := 0 to 121 do
for j := 0 to 31 do
CommX1.TransString( 'P'+chr(i) + chr(j) );
for i := 0 to 121 do
for j := 0 to 31 do
CommX1.TransString( 'R'+chr(i) + chr(j) );
}
end;
{ DEMO }
procedure TForm1.Button6Click(Sender: TObject);
procedure outc( c: byte; x: byte );
var i: byte;
begin
for i := 0 to 3 do begin
CommX1.TransString( 'L'+chr(x) + chr(i*8) );
CommX1.TransString( 'C'+chr(c * 4 + 1 + i) );
end;
end;
begin
outc( 2, 5 );
outc( 3, 30 );
outc( 4, 62 );
outc( 5, 87 );
CommX1.TransString( 'P'#57#10);
CommX1.TransString( 'P'#57#11);
CommX1.TransString( 'P'#57#12);
CommX1.TransString( 'P'#58#10);
CommX1.TransString( 'P'#58#11);
CommX1.TransString( 'P'#58#12);
CommX1.TransString( 'P'#59#10);
CommX1.TransString( 'P'#59#11);
CommX1.TransString( 'P'#59#12);
CommX1.TransString( 'P'#57#22);
CommX1.TransString( 'P'#57#23);
CommX1.TransString( 'P'#57#24);
CommX1.TransString( 'P'#58#22);
CommX1.TransString( 'P'#58#23);
CommX1.TransString( 'P'#58#24);
CommX1.TransString( 'P'#59#22);
CommX1.TransString( 'P'#59#23);
CommX1.TransString( 'P'#59#24);
end;
procedure TForm1.CharcterClick(Sender: TObject);
procedure SendChar( c: char );
begin
if c in [ 'A'..'Z' ] then
CommX1.TransString( 'C' + chr( ord(c) - ord( 'A' ) + 1) )
else if c in [ 'a'..'z' ] then
CommX1.TransString( 'C' + chr( ord(c) - ord( 'a' ) + 27 ) )
end;
procedure SendStrings( st: string );
var i: byte;
begin
for i := 1 to length( st ) do
SendChar( st[ i ] );
end;
begin
CommX1.TransString( 'L'#40#10);
SendStrings( 'Lissajous' );
CommX1.TransString( 'L'#80#20);
SendStrings( 'curve' );
end;
procedure TForm1.DEMO2Click(Sender: TObject);
var i: integer;
begin
CommX1.TransString( 'L'#0#0 );
for i := 1 to 20 do
CommX1.TransString( 'C'+chr( i ) );
CommX1.TransString( 'L'#0#10 );
for i := 21 to 36 do
CommX1.TransString( 'C'+chr( i ) );
end;
procedure TForm1.DEMO3Click(Sender: TObject);
var i: integer;
begin
CommX1.TransString( 'L'#10#0 ); {2}
CommX1.TransString( 'C'#43 );
CommX1.TransString( 'L'#10#8 );
CommX1.TransString( 'C'#44 );
CommX1.TransString( 'L'#10#16 );
CommX1.TransString( 'C'#45 );
CommX1.TransString( 'L'#25#0 ); {1}
CommX1.TransString( 'C'#40 );
CommX1.TransString( 'L'#25#8 );
CommX1.TransString( 'C'#41 );
CommX1.TransString( 'L'#25#16 );
CommX1.TransString( 'C'#42 );
CommX1.TransString( 'L'#42#0 ); {3}
CommX1.TransString( 'C'#46 );
CommX1.TransString( 'L'#42#8 );
CommX1.TransString( 'C'#47 );
CommX1.TransString( 'L'#42#16 );
CommX1.TransString( 'C'#48 );
CommX1.TransString( 'L'#57#0 ); {4}
CommX1.TransString( 'C'#49 );
CommX1.TransString( 'L'#57#8 );
CommX1.TransString( 'C'#50 );
CommX1.TransString( 'L'#57#16 );
CommX1.TransString( 'C'#51 );
CommX1.TransString( 'L'#72#0 ); {5}
CommX1.TransString( 'C'#52 );
CommX1.TransString( 'L'#72#8 );
CommX1.TransString( 'C'#53 );
CommX1.TransString( 'L'#72#16 );
CommX1.TransString( 'C'#54 );
CommX1.TransString( 'L'#90#15 );
CommX1.TransString( 'C'#7 );
CommX1.TransString( 'C'#8 );
CommX1.TransString( 'C'#9 );
CommX1.TransString( 'P'#39#21 );
CommX1.TransString( 'P'#40#21 );
CommX1.TransString( 'P'#39#22 );
CommX1.TransString( 'P'#40#22 );
CommX1.TransString( 'L'#0#24 );
CommX1.TransString( 'C' + chr( ord( 'R' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'C' + chr( ord( 'I' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'C' + chr( ord( 'T' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'L'#22#24 );
CommX1.TransString( 'C' + chr( ord( 'O' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'C' + chr( ord( 'F' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'C' + chr( ord( 'F' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'L'#60#24 );
CommX1.TransString( 'C' + chr( ord( 'S' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'C' + chr( ord( 'S' ) - ord( 'A' ) + 11) );
CommX1.TransString( 'C' + chr( ord( 'B' ) - ord( 'A' ) + 11) );
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?