导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:pc与89c51串口通讯问题[wwlww]

 *第6737篇: C51编程:pc与89c51串口通讯问题

  
楼 主:wwlww 2002年12月4日18:52
 C51编程:pc与89c51串口通讯问题
我在进行PC机与89C51通讯时遇到问题,请高手指点!

PC机用的是串口精灵对单片机发送16进位数据,每次一个
字节,单片机收到数据后发送P1口,由P1的小灯显示。当
发送11(16进制)时显示00010001(0表示暗,1表示亮)是正确,发达22时显示00100010是
正确,发44也正常,但发88时最高位灯不亮。发送33时显示00100010(应该是00110011),
发送77时显示01000100(应该是01110111)。。发现只要多个1连续时就不正常(只有最高
位的灯亮)。我用的是MAX232转换接口,它的四个电容是1UF
的钽电容。此问题困扰着我,如鱼刺在喉,望高手指点
单片机程序如下:
ORG 0000H
AJMP START

ORG 0100H
MOV SCON,#50H  串口方式1,SM1=1,REN=1
MOV TMOD,#20H  TIME1 方式2
MOV TH1,#0F3H  波特率2400
MOV TL1,#0F3H
SETB TR1

LOOP:
  JB RI,UART
  AJMP LOOP
UART:
MOV A,SBUF
CPL A        P1口低电平灯亮
MOV P1,A
CLR RI
JMP LOOP
END

  
2楼:zhengxiaming 2002年12月5日13:24
 位置
MOV A,SBUF
CLR RI
。。。
看看是否可行。
  
3楼:hzuser 2002年12月5日16:00
 用断点调试一下,看是收数据错误还是,点灯时错误了。
  
4楼:wwlww 2002年12月6日09:26
 我找到原因了
上述问题我找到原因了:错将串口线联成了:2-2,3-3,7-7。这种错误的接法具然也能收
到数据,有时收到的数据竟然还是正确的。

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:初学者:请教各位大虾,晶振怎么检测?不起振可能是什么原因?

[下一篇主题]:初学者:那位大虾有关于protel99元件封装的电子文档?能否发给我?zsuhh@yahoo.com