delphi 上位机编程 拜师

wch1314520 2010-10-08 04:19:24
本人接触单片机,主要用dephi写上位机程序,有一段时间,没有师傅,很多问题都是在网上寻找答案,虽然自我解决很有意义,但接工程了,时间抓的有些紧,所以希望拜个师傅,可以熟练的使用delphi进行上位机编程,有意者留一个qq号
...全文
348 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
kwer 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ecjtu5208 的回复:]
搞下位机的飘过。
[/Quote]
是不是真的啊,有点搞?
guyumei 2011-03-23
  • 打赏
  • 举报
回复
路过 。。。
xiaowei_001 2010-10-11
  • 打赏
  • 举报
回复
Q:272324946
可以交流
池龙 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wch1314520 的回复:]
恩,你那是对一个个字符串的操作,我也是一个数组,中的第4喂,他对应的是一个数据。不知道我理解的对不对。
你可以帮忙看一下源程序
http://cache.ourdev.cn/bbs_upload395919/files_34/ourdev_588287DI8N6B.rar

[/Quote]

十进制53 = 十六进制35 = 二进制00110101,跟字符串有啥关系。。。
wch1314520 2010-10-10
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 poolord 的回复:]
比如,现在有个数53,二进制是00110101,你要检查第4位是不是1,用00001000(十进制8)去作AND操作,得到的结果是00001000,表明第4位是1,你要检查第3位是不是1,用00000100(十进制4)去作AND操作,得到的结果是0……
[/Quote]

恩,你那是对一个个字符串的操作,我也是一个数组,中的第4喂,他对应的是一个数据。不知道我理解的对不对。
你可以帮忙看一下源程序
http://cache.ourdev.cn/bbs_upload395919/files_34/ourdev_588287DI8N6B.rar
无条件为你 2010-10-09
  • 打赏
  • 举报
回复
这方面很简单。只是串口发送结构体给对方比较麻烦。

楼主你应该主动留下你的QQ号。楼主是哪里的朋友?
yct0605 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 leeky 的回复:]
上位机编程,无非涉及到上位机与下位机的通信协议。
首先双方要定义一个完善的通信协议(无二义性)
大多数是以串口通讯的吧?掌握串口通信,数据的收发、解析等。
有些是USB口通信,一般会提供一些DLL供调用。
[/Quote]
leeky 2010-10-09
  • 打赏
  • 举报
回复
上位机编程,无非涉及到上位机与下位机的通信协议。
首先双方要定义一个完善的通信协议(无二义性)
大多数是以串口通讯的吧?掌握串口通信,数据的收发、解析等。
有些是USB口通信,一般会提供一些DLL供调用。
allen12345 2010-10-09
  • 打赏
  • 举报
回复
拿本书来看看啊,简单的很。
喝口水 2010-10-09
  • 打赏
  • 举报
回复
引用一下缰哥的东西:

{ 返回一个整型数的某二进位值 }
function TestBit(Value, Index : integer) : Byte;
asm
BT EAX, Index //检测Index位是否为1,如为1则置PSW寄存器的CF位为1
SETB AL // CF -> AL
end;
池龙 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wch1314520 的回复:]
恩,我明白你意思,但是,但AND过后,如何掐头去尾呢。
[/Quote]

。。。。。还掐头去尾干嘛?

比如,现在有个数53,二进制是00110101,你要检查第4位是不是1,用00001000(十进制8)去作AND操作,得到的结果是00001000,表明第4位是1,你要检查第3位是不是1,用00000100(十进制4)去作AND操作,得到的结果是00000000,表明第3位是0。

你要实在还想要把00001000这样的结果变成00000001,用shr就行了。
wch1314520 2010-10-09
  • 打赏
  • 举报
回复
恩,我明白你意思,但是,但AND过后,如何掐头去尾呢。
池龙 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wch1314520 的回复:]
呵呵,是啊,小弟应该主动点吧qq号报上来183423390
现在遇到的问题是我想读出一组数据中某一位的值
部分程序如下
procedure TFrmMain.Button14Click(Sender: TObject);
begin
Memo2.Text:=trim(Edit1.Text)+'3100';
ArrInfo[0]:=StrToInt('$'+trim(Edit1.……
[/Quote]

比如你要得到第4位的值,将数值与二进制的00001000作AND操作,然后判断返回的数值是否为00001000即可。

其它位类推。
ecjtu5208 2010-10-09
  • 打赏
  • 举报
回复
搞下位机的飘过。
wch1314520 2010-10-09
  • 打赏
  • 举报
回复
呵呵,是啊,小弟应该主动点吧qq号报上来183423390
现在遇到的问题是我想读出一组数据中某一位的值
部分程序如下
procedure TFrmMain.Button14Click(Sender: TObject);
begin
Memo2.Text:=trim(Edit1.Text)+'3100';
ArrInfo[0]:=StrToInt('$'+trim(Edit1.Text));
ArrInfo[1]:=StrToInt('$31');
ArrInfo[2]:=StrToInt('$00');
tmpCRC:=CRC16(ArrInfo,3);
Memo2.Text:=Memo2.Text+IntToHex2(tmpCRC mod 255)+IntToHex2(tmpCRC div 255); //低8位在前 高8位在后
btnSend.Click;
end;

我现在想读出第四位的数据,显示在对于的edit中,

完整的程序麻烦大家看一下
http://cache.ourdev.cn/bbs_upload395919/files_34/ourdev_588287DI8N6B.rar
liuhuan992 2010-10-09
  • 打赏
  • 举报
回复
楼主有何问题说来听听
keeroo9 2010-10-09
  • 打赏
  • 举报
回复
乖乖,我在开会,闹得很但是我睡着了。我现在时刻把手机带在身边上厕所洗澡也带着,QQ也挂着,我怕你找我的时候错过。好难哦,但是我不会放弃,因为我知道你也爱我。
勿为 2010-10-08
  • 打赏
  • 举报
回复
其实把问题放出来,大家可以一起想办法、一起学习也不错哦。
plax0850 2010-10-08
  • 打赏
  • 举报
回复
是呀!看书吧,现在没有免费的晚餐了
L3nnon 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 veron_04 的回复:]

看书吧,自己才是自己的老师
[/Quote]
同意, 同意..
加载更多回复(3)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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