begin
output:=mmsend.Text; //在mmsend.Text输入的是41
len:=length(output); if len>0 then
begin
i:=1;
count:=1;
tmpvar:=vararraycreate([1,1],varbyte);
while(i<len) do
begin
tmpstr:=copy(output,i,2);
tmpstr:=lowercase(tmpstr);
tmpint:=hextoint(tmpstr); //输出对应十六进制的值,这里tmpint值为65
if tmpint=-1 then
begin
showmessage('发送的数据格式有问题');
exit;
end
else begin
tmpvar[count]:=tmpint;
inc(count);
vararrayredim(tmpvar,count);
end;
i:=i+3;
end;
mscomm1.Output:=tmpvar;
end;
end;
请问把发送的数据41给单片机的P1口,想让P1口显示的是0100 0001,这个程序应该怎么改?请大家多多指教!!
output:=mmsend.Text; //在mmsend.Text输入的是41
len:=length(output); if len>0 then
begin
i:=1;
count:=1;
tmpvar:=vararraycreate([1,1],varbyte);
while(i<len) do
begin
tmpstr:=copy(output,i,2);
tmpstr:=lowercase(tmpstr);
tmpint:=hextoint(tmpstr); //输出对应十六进制的值,这里tmpint值为65
if tmpint=-1 then
begin
showmessage('发送的数据格式有问题');
exit;
end
else begin
tmpvar[count]:=tmpint;
inc(count);
vararrayredim(tmpvar,count);
end;
i:=i+3;
end;
mscomm1.Output:=tmpvar;
end;
end;
请问把发送的数据41给单片机的P1口,想让P1口显示的是0100 0001,这个程序应该怎么改?请大家多多指教!!
解决方案 »
- delphi 使用 slider 制作个性化进度条的问题
- 动态生成的frame中使用多线程问题
- 贴出主窗体增强复用性 源代码 各位再帮我修改、修改
- 问问谁知道这个控件 TPPComm 它大概在一个控件包里面,谁有这个控件包?
- 今年最后一贴,祝福大家猴年有钱!这里求助一个小问题!
- 我的DELPHI是什么版本?!!请朋友们指点一下
- 第三次关于DBLookupComboBox。解决500分相送.(在其它的贴子给400分)
- Delphi6 和Delphi4的文件变量到底有什么区别?——我碰到一奇怪问题
- ehlib中DBDateTimeEditEh使用问题
- 大家看看这三句代码为什么会出现这样的情况
- delphi表格数据保存时老报“update failed.found 4 records”等错误
- delphi+sqlserver 如何将查询结果显示到不同的界面上
二、下位机代码先直接对IO口赋值,用keil进行模拟运行,观测IO端口状态是否正常,正常了后,写芯片、上电,看发光二极管亮的情况是否符合,符合了,按通讯情况修改好代码、重写芯片,再与PC连接调试。这样做好像有点多余,但在问题不能定位时,此方法有助弄清故障来自软件还是硬件。
三、用万用表测量串口电平变换电路,如使用MAX232进行匹配的,着重检测接PC端的电压是否达到最少+-8伏(质量好的MAX232一般能超过+-10伏,如果电压不足,除芯片原因外,跟使用的电解电容有关)?MAX232的输入、输出的RD与TD有否反接?
总的一句话:当问题出现时,自己首先心中要明确,原因到底源自哪方,PC程序(第一点验证)?芯片代码还是硬件(第二、三点验证)?
由于你提供的情况很有限,别人很难明确指出你的问题所在,建议按上述方法细心查对吧。
a,b,c: byte;c:=41;
a:=c mod 10;
b:=c div 10;d:=(b shl 4) or a发送 d 即可