下面的程序我发送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
;
|
|