|
ORG 0000H
AJMP START
ORG 000BH
AJMP TIMER1
ORG 0023H
AJMP SERIAL
ORG 30H
START:
MOV DPTR,#TABLE
MOV SP,#5FH
MOV TMOD,#00100101B ;定时计数器1作计数用,1。0不用全置0
MOV PCON,#80H
MOV TH1,#0FDH
MOV SCON,#50H
;预置值,要求每计到6个脉冲即为一个事件
MOV TH0,#0FFH
MOV TL0,#0FAH
SETB REN
SETB TR1
SETB TR0
SETB EA
SETB ET0
SETB ES
GG:JNB P1.1,COMMFS
AJMP GG
;串口发数据
COMMFS:
MOV A,#01FH
;CLR A
;MOVC A,@A+DPTR
;MOV SBUF,A
;CLR RI
;CJNE A,#01H,LOOP1
;LCALL DELAY
;AJMP GG
;LOOP1:INC DPTR
;AJMP COMMFS
MOV SBUF,A
CLR RI
LCALL DELAY
JBC TI,GG ;如果TI等于1则清TI并转GG
;串口收数据
SERIAL:
MOV A,SBUF
MOV P2,A
CLR RI
RETI
;串口发数据
TIMER1:
MOV TH0,#0FFH
MOV TL0,#0FAH
;MOV A,#011H
;改一次发多个数
LX:CLR A
MOVc A,@a+DPTR
MOV A,#05H
MOV SBUF,A
CLR RI
CJNE A,#01H,LOOP2
LCALL DELAY
RETI
LOOP2:INC DPTR
AJMP LX
;MOV SBUF,A
;LCALL DELAY
;CLR RI
;RETI
;延时子程序
DELAY:
MOV R7,#0FFH
DJNZ R7,$
RET
;表数据
TABLE:DB 05H,05H,31H,05H,05H
DB 05H,05H,05H,05H,05H
DB 01H
END
帮我看看我串口发送有什么问题 |
|