新手请教串口通讯问题
我想用STC单片机实现,通过上位机串口发送数据给单片机,单片机直接使用该数据传送到P1口,比如说我在上位机发生“0000 0000”到单片机,那么单片机就直接把“0000 0000”传说到P1口,点亮LED灯,程序如下,就是达不到效果,很不解,新手求助,谢谢!ORG 0000H
START:MOV SCON ,#00H ;初始化串口工作方式
MOV A,#0FFH ;点亮Led条件是单片机输出低电压
OUT0:
MOV P1,A
SCAN01:
MOV A,SBUF
MOV R0,A
;CJNE R0,#0FFH,START;立即数0FFH与寄存器R0比较,如果不相等,则跳转到程序开头
LCALL DELAY
DELAY:
MOV P1,A
DELAY100MS: ;@12.000MHz,100毫秒
NOP
NOP
NOP
PUSH 30H
PUSH 31H
PUSH 32H
MOV 30H,#4
MOV 31H,#166
MOV 32H,#207
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 32H
POP 31H
POP 30H
RET
LCALL SCAN01
END 1.最好直接使用c语言写程序,单片机汇编效率太低
2.检查你串口电压......前几天我刚被这个问题困扰过...... zoologist 发表于 2014-1-13 15:49 static/image/common/back.gif
1.最好直接使用c语言写程序,单片机汇编效率太低
2.检查你串口电压......前几天我刚被这个问题困扰过... ...
谢谢提醒,想想真的很有可能是电压问题,因为是直接在USB取电,所以会造成串口连接时候电压过低 本帖最后由 风之紫 于 2014-1-13 23:04 编辑
MOV A,SBUF这里不对,应该要查询接收标志RI是否置位来确定是否接收到数据;还有你的上下位机的串口参数(波特率,数据位、stop位、是否校验)设置是否一样?
页:
[1]