AT89C51串口通信问题!

gjinzi   2007-2-1 17:30 楼主
老师们我是新手!在网上抄了一个串口发送的16进制的数据FF 00 07 8E FF。可我在仿真的时候串口看到的却是FF FF 00 00 07 07 8E 8E FF FF为什么啊!请老师指点!


        ORG        0000H
        MOV        SCON,#50H        ;设置成串口1方式
        MOV        TMOD,#20H        ;波特率发生器T1工作在模式2上
        MOV        PCON,#80H        ;波特率翻倍为2400X2=4800BPS
        MOV        TH1,#0F3H        ;预置初值(按照波特率2400BPS预置初值)
        MOV        TL1,#0F3H        ;预置初值(按照波特率2400BPS预置初值)
        SETB        TR1        ;启动定时器T1        ;以上完成通讯初始化设置
WRIT:        JB        P3.6,$        ;判断K1是否按下,如果没有按下就等待
        ACALL        DELAY10        ;延时10毫秒消触点抖动
        JB        P3.6,WRIT        ;去除干扰信号
        JNB        P3.6,$        ;等待按键松开
        MOV        A,#FFH        ;
        MOV        SBUF,A        ;将AF通过串口发送出去
        MOV        A,#00H        ;将16进制的字符AF发送到串口去
        MOV        SBUF,A        ;这里是不是还有更简单的命令啊!可以一下都发送出去!就是不知道怎么用。??
        MOV        A,#07H        ;请老师指点
        MOV        SBUF,A        ;
        MOV        A,#8EH        ;请老师指点
        MOV        SBUF,A        ;
        MOV        A,#FFH        ;将16进制的字符AF发送到串口去
        MOV        SBUF,A        ;
        AJMP        WRIT
        ;10毫秒延时子程序
DELAY10:        MOV        R4,#10
D2:        MOV        R5,#124
        DJNZ        R5,$
        DJNZ        R4,D2
        RET
        END
如果用C语言编程是不是更简单了啊!

回复评论 (7)

每一个数据重复发了
点赞  2007-2-1 19:21
MOVSBUF,A;将AF通过串口发送出去
在每一个这句后加
JNB TI,$
CLR TI

理由:先发完一次再说,一次一次来,别没会走就想飞...
呵呵
点赞  2007-2-1 19:37
我接到电脑的串口试了!结果更出呼意料竟然只发了个FF出来!更晕
点赞  2007-2-2 16:24
JNB TI,$ ; 等待发送结束
CLR TI   ; 清标志

没理由哈...
点赞  2007-2-2 19:51
硬件短信平台
用短信猫做短信平台,比较稳定,不受网络安全影响,响应及时,适合一些重要的安全性高的业务需求,但是发送速度有限制,一般是800条/小时
sp短信通道发送速度快,但是由于接入的开发商很多,在服务器不多的情况下,必然会排队,有时繁忙时提交一条短信,第二天才能收到,而且网络不正常时,也会影响使用
建议一些管理软件用短信猫做短信平台
1.方寸GSM-Modem 短信平台

GSM-Modem 短信平台,无需联网,只需一台电脑,一个短信猫(或手机),一个短信开发接口,就可轻松建立短信服务器,可实现短信收发,短信互动等功能,一台电脑可以连接多个短信猫硬件,从而提高吞吐量。

2.方寸短信数据库接口(手机短信接口,短信二次开发控件)

通过本数据库接口,能使你现有的系统(如OA、CRM、ERP等系统)轻松实现无线办公功能,无论你用的是哪种开发语言(VB\VC\VFP\asp\jsp\java\pb\delphi...),只要你的系统能读写数据库即可对接!你仅需要在指定的表中添加记录,本接口程序就自动进行发送短信了,收到的短信会自动保存到数据库里,所以,您不需要了解任何有关数据通信方面的知识,就可实现手机短信的收发等功能!
电话:0755-25996144/25536144
联系人:陈先生
网址:http://www.fcwww.com
qq:393376247
点赞  2007-4-13 15:16
MOVSBUF,A;将AF通过串口发送出去
在每一个这句后加
JNB TI,$
CLR TI


这个一定要加的。先发送完一个再发送下一个了
点赞  2007-4-23 13:03
波特率和数据位配置等两端要一样!

1,和接收要么中断服务中完成,要么循环测试TI 和 RI

2 别忘了复位RI,和 TI

点赞  2007-4-23 19:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复