[ZLG-MCU] LPC764串行通信的问题(发送数据不对)

[复制链接]
2483|8
 楼主| xiaoxin1986 发表于 2009-8-25 10:25 | 显示全部楼层 |阅读模式
下面的程序我发送04给单片机程序是可以识别的,并且发送数据给上位机,但是发送的数据不对,我要发送51H到59H的内容给上位机,为(2B,30,30,30,30,2E,30,30,00),但是接收到的是(8B,,90,90,90,90,8E,90,90,80).请教各位高手这是什么原因?
;要求上位机发送04,单片机传送从51H开始到59H单元内容给上位机,波特率9600,串行工作方式1,TXD发送端,RXD接收端
HAO EQU 04H
P0M1 EQU 084H ;//0口输出模式选择1
P0M2 EQU 085H ;//0口输出模式选择2
P1M1 EQU 091H ;//1口输出模式选择1
P1M2 EQU 092H ;//1口输出模式选择2
P2M1 DATA 0A4H
P2M2 DATA 0A5H
IEN0 DATA 0A8H ;//外部中断请求标志位
IEN1 DATA 0E8H
LED BIT P0.0
COMM_BIT BIT 00H ; 00H=1,单片机发送数据
ORG 0000H
AJMP STAR
ORG 0023H
AJMP UART
ORG 0100H
STAR:
CLR EA
; MOV WDRST,#01EH ;清除看门狗
; NOP
; MOV WDRST,#0E1H
; NOP
; MOV WDCON,#00H ;看门狗定时110(660ms到1.44s)选1.2s
; NOP
MOV SP,#05CH
NOP
NOP
CLR RS0
CLR RS1
MOV pcon,#80H
NOP
NOP
MOV TMOD,#20H
NOP
mov TL1,#0FAH
NOP
mov th1,#0FAH ;;波特率为9600
NOP
setb TR1
NOP
mov scon,#50H
NOP
MOV IEN0, #10H ; ES=1,开串行中断
NOP
NOP
MOV IEN1 , #00H
NOP
NOP
MOV PSW , #00H
NOP
NOP
MOV P0M1,#00H
NOP
NOP
MOV P0M2,#00H
NOP
NOP
MOV P1M1,#0CH ;P1.0,P1.1.为准双向口
NOP
NOP
MOV P1M2,#2CH
NOP
NOP
MOV P2M1,#03H ;外部CLK,(P2.1)X1输入,(P2.0)X2输出
NOP
NOP
MOV P2M2,#01H
NOP
NOP
MOV P0,#0FFH
NOP
MOV P1,#0FFH
NOP
NOP
MOV SBUF,#00H
NOP
NOP
SETB PS
NOP
;


 楼主| xiaoxin1986 发表于 2009-8-25 10:25 | 显示全部楼层
NOP
NOP
MOV 050H,#051H
NOP
NOP
MOV 051H,#02BH
NOP
NOP
MOV 052H,#030H
NOP
NOP
MOV 053H,#030H
NOP
NOP
MOV 054H,#030H
NOP
NOP
MOV 055H,#030H
NOP
NOP
MOV 056H,#02EH
NOP
NOP
MOV 057H,#030H
NOP
MOV 058H,#030H
NOP
NOP
MOV 059H,#00H
NOP
NOP
MOV R0,#51H
NOP
MOV R1,#09H
NOP
CLR COMM_BIT
NOP
NOP

; MOV WDRST,#01EH ;喂狗
; NOP
;MOV WDRST,#0E1H
;NOP
CLR RI
CLR TI
SETB EA
NOP
MAIN1:
JNB COMM_BIT,MAIN2
CALL send_ZT
INC R0
DJNZ R1,MAIN2
MOV R0,#51H
MOV R1,#09H
CLR COMM_BIT
MAIN2:
NOP
AJMP MAIN1
UART:
CLR EA
PUSH ACC
PUSH PSW
JB ti,commnot
MOV a,sbuf
cjne a,#hao,commnot
setb COMM_BIT
commnot:
CLR ti
CLR ri
POP PSW
POP ACC
SETB EA
RETI

send_ZT:
push ACC
clr ren ; jin zhi shou
clr es ; jin zhi zhong duan
MOV A,@R0
NOP
MOV SBUF,A ;;;;;; 1
ACALL YS_1MS
ZTdeng:
jbc ti,ZT20_1 ;;send over , clr ti
LJMP ZTdeng
ZT20_1:
setb ren
setb es
pop ACC
RETI
YS_1MS:
PUSH PSW
SETB RS0
SETB RS1
MOV R5,#010
YS_20MS1:
MOV R4,#0250
YS_20MS0:
NOP
NOP
DJNZ R4,YS_20MS0
DJNZ R5,YS_20MS1
POP PSW
RET
 楼主| xiaoxin1986 发表于 2009-8-25 10:26 | 显示全部楼层
有没有哪位大虾有空帮我看看这个程序啊?
linhai1986 发表于 2009-8-25 10:28 | 显示全部楼层
先做简单的测试啊,什么功能不行的话,用一个最简单的程序来测试一下。
linhai1986 发表于 2009-8-25 10:29 | 显示全部楼层
查频率、波特率是否准确,还有模式是否正确,如奇偶校验等
linhai1986 发表于 2009-8-25 10:29 | 显示全部楼层
有条件的话,用逻辑分析仪看看。
 楼主| xiaoxin1986 发表于 2009-8-25 10:42 | 显示全部楼层
条件比较破,还有其他的方法吗?
linhai1986 发表于 2009-9-6 18:23 | 显示全部楼层
可以做一些简单的测试吗
 楼主| xiaoxin1986 发表于 2009-9-19 14:22 | 显示全部楼层
谢了,问题已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部