社区
Delphi
帖子详情
一个关于用delphi向串口发数据的问题
1978322
2000-05-23 01:18:00
我在delphi下安装了mscomm这个ocx控件,用它向串口发数据(串口接了一个我自己制作的单片机电路),不过没次接收到的数据都有错误,我也调了波特率,但是还是不行,有那为大虾能帮我解决!
...全文
252
6
打赏
收藏
一个关于用delphi向串口发数据的问题
我在delphi下安装了mscomm这个ocx控件,用它向串口发数据(串口接了一个我自己制作的单片机电路),不过没次接收到的数据都有错误,我也调了波特率,但是还是不行,有那为大虾能帮我解决!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
meijg
2000-05-29
打赏
举报
回复
对于你的单片机程序,我认为有以下几点问题,现提出来与你交流一下:
1、在计算波特率的时候,不知你用的是多少,据我计算可能是2400bps,
这要基于以下几个条件:smod=1、fosc=11.059mhz、th1=e8h(这是你程序里的是设定值)
在这里smod=1是很关键的,如果没有将smod设为1,则计算出的波特率就为1200bps,
不知是否与你的想法吻合。
2、另外我发现在你的LJ1程序段里,好象有些问题,提出来分析一下:
当跳转进入LJ1时,dz中为从pc机收到的数据,接着以dz中的值来累加30h中的值,但是在判断条件
cjne a,30ah,lj处会有问题,因为你的30h内的初始值是#0fh,累加的结果无法满足你的条件(逢十进一)
这样送到显示程序的数就不是你期望的值了,是否应将30h的初始值设为00h(31h、32h也是同样的)
3、关于串行方式的选择我想谈谈我的看法,不知你选择方式3是什么用意,在sm2=1的情况下,若第九位
数据(RB8)为0时,RI是不置位的,也就是单片机认为没有数据,不知在pc端你是怎么处理的?
我建议如果没有特别的要求,还是使用方式1比较好一点。
最后希望能多交流,在这里能遇到做单片机的满珍贵。
有什么问题可以直接E-mail:meijg@elong.com
1978322
2000-05-27
打赏
举报
回复
下面是我写的单片机接收程序,不知有没有错误,请各位指点!
PML EQU 0D000H
PA EQU 0D001H
PB EQU 0D002H
PCC EQU 0D003H
DBPS EQU 0E8H
TX BIT 20H.0
DZ EQU 36H
ORG 0000H
AJMP MAIN
ORG 0023H
AJMP INTU
ORG 0100H
MAIN:MOV R0,#20H
MOV R7,#60H
MAIN0:MOV @R0,#00H
INC R0
DJNZ R7,MAIN0
MOV SP, #40H
SETB EA
SETB ES
MOV TMOD,#20H
MOV TH1,#DBPS
MOV TL1,#DBPS
SETB TR1
MOV SCON,#0D0H
MOV 30H,#0FH
MOV 31H,#0DH
MOV 32H,#0CH
MOV 33H,#0BH
MOV 34H,#0AH
MOV 35H,#0FH
GOOD:JB TX,LJ1
AJMP LED
INTU:JBC RI,RR1
JBC TI,RR2
RETI
RR1:MOV A,SBUF
MOV DZ,A
SETB TX
RR2:RETI
LJ1:MOV R4,DZ
LJ0:INC 30H
MOV A,30H
CJNE A, #0AH,LJ
MOV 30H,#00H
INC 31H
MOV A,31H
CJNE A, #0AH,LJ
MOV 31H,#00H
INC 32H
LJ:DJNZ R4,LJ0
MOV 33H,#0FH
MOV 34H,#0FH
MOV 35H,#0FH
LED:MOV DPTR,#PML
MOV A,#0FH
MOVX @DPTR,A
MOV R0,#30H
MOV R3,#01H
MOV A,R3
LD02:MOV A,#0FFH
MOV DPTR,#PA
MOVX @DPTR,A
MOV A,R3
MOV DPTR,#PCC
MOVX @DPTR,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#PA
MOVX @DPTR,A
ACALL DL
INC R0
MOV A,R3
JB ACC.5,LD1
RL A
MOV R3,A
AJMP LD02
LD1:AJMP GOOD
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
DB 90H,0A3H,0A3H,0A1H,86H
DB 0FFH
laolie
2000-05-27
打赏
举报
回复
双方的定义要一致 如都是asc码 or 都是十六进制数 萡特率一致等
1978322
2000-05-27
打赏
举报
回复
InputMode好象是PC机接收的属性,我说的是单片机接收到PC机发送的数据有错误!
Un1
2000-05-23
打赏
举报
回复
必须设置InputMode为comInputModeBinary以及确认Settings格式正确
flylt
2000-05-23
打赏
举报
回复
详细点
Delphi
中
串口
通讯的实现
Delphi
中
串口
通讯的实现
Delphi
中
串口
通讯的实现
通过
串口
传递
数据
的
Delphi
实现.rar
通过
串口
传递
数据
的
Delphi
实现.rar
Delphi
XE10安卓开
发
(实战篇)
实战方式讲解
Delphi
XE10的安卓开
发
,从安卓开
发
开
发
环境配置开始讲解,实战讲解如何使用FMX进行安卓开
发
,App的创建,调试,UI设计、让学员快速入门
Delphi
安卓App的开
发
Delphi
实现远程
串口
的
数据
采集
Delphi
实现远程
串口
的
数据
采集
Delphi
实现远程
串口
的
数据
采集
Delphi
实现远程
串口
的
数据
采集
Delphi
串口
监视工具
利用
Delphi
编写的
串口
通信工具,很实用适合学习!
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章