求救!关于电子显示屏的问题!

yiyiyan762 2003-10-16 05:50:51
请问如何在电子显示屏上显示字符!相关资料如下:
1、波特率:2400.N.8.1
2. 发送信息段格式:开始标志+屏号+显示信息+结束标志
始标志(2个字节):0X55,0XAA
屏号(1个字节):0x01-1号屏,0x02-2号屏,0x03-3号屏,0x04-4号屏,0x05-5号屏,0x0
6-6号屏,0x07-7号屏
显示信息(16个字节):
西文为ASCII码,汉字为内码(高位在前,低位在后)
注: 如果显示信息为asc码,则直接发送ASC||码
如果为汉字,则发送汉字的内码,高位在前,低位在后。
结束标志(1个字节):0x13.
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2003-10-20
  • 打赏
  • 举报
回复
要引用必要的单元,这点我想你应该是知道的吧。
另外 TMSComm 是微软的东东,要从主菜单的 Component|Import ActiveX Control 中引入。

uses
ActiveX,MSCommLib_TLB;
yiyiyan762 2003-10-20
  • 打赏
  • 举报
回复
还是不行,而且做成动态库时编译时提示DisplayInfo中的CoInitialize(nil); MSComm1:=TMSComm.Create(nil);SetLength(DispInfo,16);都通不过
csntgao 2003-10-20
  • 打赏
  • 举报
回复
MSComm,谁想出来的用这个东西?
hiflower 2003-10-17
  • 打赏
  • 举报
回复
就用这个函数生成动态库也能被 C 调用的,大致如下:

library Disp;

uses
...;


function DisplayInfo(ScreenNo:Integer;DispInfo:PChar):Boolean;stdcall;
const
Header=#$55#$AA;
Tailer=#$13;
var
AFrame:string;
MSComm1:TMSComm;
begin
CoInitialize(nil);
MSComm1:=TMSComm.Create(nil);
try
SetLength(DispInfo,16);
AFrame:=Header+Chr(ScreenNo)+DispInfo+Tailer;
with MSComm1 do
begin
if not PortOpen then
begin
CommPort:=1;
Settings:='2400,n,8,1';
PortOpen:=True;
end;
Output:=AFrame;
end;
Result:=True;
except
Result:=False;
end;
MSComm1.Free;
CoUnitialize;
end;

exports
DisplayInfo;

begin
...
end;
yiyiyan762 2003-10-17
  • 打赏
  • 举报
回复
楼上的兄弟,能不能说详细一点呀!最好能给我一个文件,我的邮箱是:yuanhui_zhang@163.com,谢谢了!!
yiyiyan762 2003-10-17
  • 打赏
  • 举报
回复
谢谢hiflower,我还没试行不行,先给你加分了,不知能不能麻烦你给一个C的动态库我
hiflower 2003-10-17
  • 打赏
  • 举报
回复
不用文件了吧,给你写成一个函数了。你在 Form 上放一个 MSComm 控件就行了。

function TForm1.DisplayInfo(ScreenNo:Integer;DispInfo:string):Boolean;
const
Header=#$55#$AA;
Tailer=#$13;
var
AFrame:string;
begin
try
SetLength(DispInfo,16);
AFrame:=Header+Chr(ScreenNo)+DispInfo+Tailer;
with MSComm1 do
begin
if not PortOpen then
begin
CommPort:=1;
Settings:='2400,n,8,1';
PortOpen:=True;
end;
Output:=AFrame;
end;
Result:=True;
except
Result:=False;
end;
end;
hiflower 2003-10-16
  • 打赏
  • 举报
回复
const
Header=#$55#$AA;
Tailer=#$13;
var
AFrame:string;
DispInfo:string;

Screen:=1;
DispInfo:='Hi,你好!';
SetLength(DispInfo,16);

AFrame:=Header+Chr(ScreenNo)+DispInfo+Tailer;
with MSComm do
begin
CommPort:=1;
Settings:='2400,n,8,1';
Output:=AFrame;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧