初学者:有关单片机接收字符的命令,我不太懂,请求您的帮助!
其实不难
我还是不太懂?请求帮助?
建议。。。
</a>
能不能举个例子?
源。。。
需要您的帮助!
经过验证的源代码........
Hi, White Lotus Flower
学51单片机
参考
可不可以更直接一点,用汇编编一下给我看看?
别客气,我不是老师,我们相互学习罢了 ORG 0030H
;-------------------------------------------
;以下是程序运行初使化
MAIN: MOV SP,#30H
CLR PSW.3 ;选定第0组工作寄存器
CLR PSW.4
CLR A
MOV R0,#08H ;inside ram initialize
MOV R7,#30
INITIA: MOV @R0,A
INC R0
DJNZ R7,INITIA
;----------------------
;---------------------
MOV PCON,#00H
MOV SCON,#01010000B ;MODE=1 SM2=0 REN=1
MOV TMOD,#00100000B ;T1:波特率发生器 模式2
MOV TL1,#0F4H ;晶振=11.0592M
MOV TH1,#0F4H
CLR ET1
SETB TR1 ;启动波特率 =2400Bps
;---------------------------
SETB EA
SETB ES ;串行口接收数据开
LOOP: ..... ;程序循环体
.....
LJMP LOOP
;-------------------串口接收-----------
SCINT: PUSH ACC
PUSH PSW
CLR ES
CLR RI
MOV A,SBUF
CJNE R2,#00H,BYTE1 ;接收WORD1 起始码
CJNE A,#STX,REFUSE
MOV R2,#01H
LJMP SCEXIT
BYTE1: CJNE R2,#01H,BYTE2 ;接收WORD2 地址
;CJNE A,#3CH,REFUSE ;与' <'比较
MOV WORD2,A
MOV R2,#02H
LJMP SCEXIT
BYTE2: CJNE R2,#02H,BYTE3 ;接收WORD3 DATA1
;CJNE A,#43H,REFUSE ;与'C'比较
MOV WORD3,A
MOV R2,#03H
LJMP SCEXIT
BYTE3: CJNE R2,#03H,BYTE4 ;接收WORD4 DATA2
;CJNE A,#X1H,REFUSE ;与X1H比较
MOV WORD4,A
MOV R2,#04H
LJMP SCEXIT
BYTE4: CJNE R2,#04H,BYTE5 ;接收WORD5 DATA3
;CJNE A,#X2H,REFUSE ;与X2比较
MOV WORD5,A
SJMP DEALDT
LJMP SCEXIT
BYTE5: CJNE R2,#05H,BYTE6 ;接收WORD6 DATA4
;CJNE A,#3EH,REFUSE ;与' <'比较
CJNE A,ETX,REFUSE
LJMP SCEXIT
REFUSE: LJMP SCRETI ;数据非法返回区
DEALDT: ........ ;中断处理段
SCRETI: MOV R2,#00H
SCEXIT: SETB ES
POP PSW
POP ACC
RETI
END
非常感谢!
一个参考程序font: db LED0,LED1, 。。。,LED9 ;定义LED显示字形编码
你可以根据需要设置串口中断方式接收
非常感谢!不过我很笨呀?
告诉我你哪里
谢谢您!
参考程序
一点修改